Merge "Don't try to verify XML well-formedness for partial SVG uploads"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 6 Nov 2014 18:50:29 +0000 (18:50 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 6 Nov 2014 18:50:29 +0000 (18:50 +0000)
908 files changed:
.rubocop.yml [new file with mode: 0644]
.rubocop_todo.yml [new file with mode: 0644]
CREDITS
Gemfile [new file with mode: 0644]
Gemfile.lock [new file with mode: 0644]
INSTALL
RELEASE-NOTES-1.24
RELEASE-NOTES-1.25
api.php
composer.json
docs/database.txt
docs/export-0.10.xsd [new file with mode: 0644]
docs/export-demo.xml
docs/hooks.txt
docs/mwlogger.txt [new file with mode: 0644]
includes/AutoLoader.php
includes/Block.php
includes/CategoryViewer.php
includes/Cookie.php [deleted file]
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/Export.php
includes/GlobalFunctions.php
includes/Hooks.php
includes/Html.php
includes/Import.php
includes/Linker.php
includes/MagicWord.php
includes/MediaWiki.php
includes/MediaWikiVersionFetcher.php
includes/MimeMagic.php
includes/MovePage.php
includes/OutputPage.php
includes/PHPVersionError.php
includes/Preferences.php
includes/PrefixSearch.php
includes/Revision.php
includes/Setup.php
includes/SiteStats.php
includes/Status.php
includes/TimestampException.php [deleted file]
includes/Title.php
includes/User.php
includes/WebStart.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/api/ApiBase.php
includes/api/ApiBlock.php
includes/api/ApiClearHasMsg.php
includes/api/ApiComparePages.php
includes/api/ApiCreateAccount.php
includes/api/ApiDelete.php
includes/api/ApiDisabled.php
includes/api/ApiEditPage.php
includes/api/ApiEmailUser.php
includes/api/ApiExpandTemplates.php
includes/api/ApiFeedContributions.php
includes/api/ApiFeedRecentChanges.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiFileRevert.php
includes/api/ApiFormatBase.php
includes/api/ApiFormatDbg.php
includes/api/ApiFormatDump.php
includes/api/ApiFormatFeedWrapper.php
includes/api/ApiFormatJson.php
includes/api/ApiFormatNone.php
includes/api/ApiFormatPhp.php
includes/api/ApiFormatRaw.php
includes/api/ApiFormatTxt.php
includes/api/ApiFormatWddx.php
includes/api/ApiFormatXml.php
includes/api/ApiFormatYaml.php
includes/api/ApiHelp.php
includes/api/ApiImageRotate.php
includes/api/ApiImport.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/ApiPageSet.php
includes/api/ApiParamInfo.php
includes/api/ApiParse.php
includes/api/ApiPatrol.php
includes/api/ApiProtect.php
includes/api/ApiPurge.php
includes/api/ApiQuery.php
includes/api/ApiQueryAllCategories.php
includes/api/ApiQueryAllDeletedRevisions.php [new file with mode: 0644]
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryAllLinks.php
includes/api/ApiQueryAllMessages.php
includes/api/ApiQueryAllPages.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryBacklinksprop.php
includes/api/ApiQueryBase.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategories.php
includes/api/ApiQueryCategoryInfo.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryContributors.php
includes/api/ApiQueryDeletedRevisions.php [new file with mode: 0644]
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryDisabled.php
includes/api/ApiQueryDuplicateFiles.php
includes/api/ApiQueryExtLinksUsage.php
includes/api/ApiQueryExternalLinks.php
includes/api/ApiQueryFileRepoInfo.php
includes/api/ApiQueryFilearchive.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryIWLinks.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryImages.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryLangBacklinks.php
includes/api/ApiQueryLangLinks.php
includes/api/ApiQueryLinks.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryORM.php
includes/api/ApiQueryPagePropNames.php
includes/api/ApiQueryPageProps.php
includes/api/ApiQueryPagesWithProp.php
includes/api/ApiQueryPrefixSearch.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryQueryPage.php
includes/api/ApiQueryRandom.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQueryRevisionsBase.php [new file with mode: 0644]
includes/api/ApiQuerySearch.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryTags.php
includes/api/ApiQueryTokens.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiQueryWatchlistRaw.php
includes/api/ApiResult.php
includes/api/ApiRevisionDelete.php
includes/api/ApiRollback.php
includes/api/ApiRsd.php
includes/api/ApiSetNotificationTimestamp.php
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/api/i18n/be-tarask.json [new file with mode: 0644]
includes/api/i18n/ce.json [new file with mode: 0644]
includes/api/i18n/cs.json [new file with mode: 0644]
includes/api/i18n/de.json [new file with mode: 0644]
includes/api/i18n/en-gb.json [new file with mode: 0644]
includes/api/i18n/en.json [new file with mode: 0644]
includes/api/i18n/es.json [new file with mode: 0644]
includes/api/i18n/fa.json [new file with mode: 0644]
includes/api/i18n/fr.json [new file with mode: 0644]
includes/api/i18n/fy.json [new file with mode: 0644]
includes/api/i18n/he.json [new file with mode: 0644]
includes/api/i18n/hu.json [new file with mode: 0644]
includes/api/i18n/ia.json [new file with mode: 0644]
includes/api/i18n/it.json [new file with mode: 0644]
includes/api/i18n/ja.json [new file with mode: 0644]
includes/api/i18n/jam.json [new file with mode: 0644]
includes/api/i18n/lb.json [new file with mode: 0644]
includes/api/i18n/lv.json [new file with mode: 0644]
includes/api/i18n/mk.json [new file with mode: 0644]
includes/api/i18n/ms.json [new file with mode: 0644]
includes/api/i18n/nb.json [new file with mode: 0644]
includes/api/i18n/nl.json [new file with mode: 0644]
includes/api/i18n/pa.json [new file with mode: 0644]
includes/api/i18n/pl.json [new file with mode: 0644]
includes/api/i18n/pt.json [new file with mode: 0644]
includes/api/i18n/qqq.json [new file with mode: 0644]
includes/api/i18n/ru.json [new file with mode: 0644]
includes/api/i18n/si.json [new file with mode: 0644]
includes/api/i18n/sv.json [new file with mode: 0644]
includes/api/i18n/tr.json [new file with mode: 0644]
includes/api/i18n/uk.json [new file with mode: 0644]
includes/api/i18n/vi.json [new file with mode: 0644]
includes/api/i18n/zh-hans.json [new file with mode: 0644]
includes/api/i18n/zh-hant.json [new file with mode: 0644]
includes/cache/LinkCache.php
includes/cache/MessageCache.php
includes/changes/RecentChange.php
includes/config/GlobalVarConfig.php
includes/db/Database.php
includes/db/DatabaseMssql.php
includes/db/IORMTable.php
includes/db/LoadBalancer.php
includes/db/ORMTable.php
includes/debug/MWDebug.php
includes/debug/logger/Logger.php [new file with mode: 0644]
includes/debug/logger/NullSpi.php [new file with mode: 0644]
includes/debug/logger/Spi.php [new file with mode: 0644]
includes/debug/logger/legacy/Logger.php [new file with mode: 0644]
includes/debug/logger/legacy/Spi.php [new file with mode: 0644]
includes/debug/logger/monolog/Handler.php [new file with mode: 0644]
includes/debug/logger/monolog/Processor.php [new file with mode: 0644]
includes/debug/logger/monolog/Spi.php [new file with mode: 0644]
includes/deferred/SiteStatsUpdate.php
includes/deferred/SqlDataUpdate.php
includes/deferred/SquidUpdate.php
includes/deferred/ViewCountUpdate.php [deleted file]
includes/exception/MWExceptionHandler.php
includes/exception/TimestampException.php [new file with mode: 0644]
includes/exception/UserNotLoggedIn.php
includes/filebackend/lockmanager/LockManager.php
includes/filerepo/FileRepo.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLFormFieldCloner.php
includes/htmlform/HTMLHiddenField.php
includes/htmlform/HTMLSelectNamespace.php [new file with mode: 0644]
includes/htmlform/HTMLTagFilter.php [new file with mode: 0644]
includes/installer/DatabaseUpdater.php
includes/installer/WebInstallerPage.php
includes/installer/i18n/ca.json
includes/installer/i18n/fa.json
includes/installer/i18n/fi.json
includes/installer/i18n/fy.json
includes/installer/i18n/hu.json
includes/installer/i18n/it.json
includes/installer/i18n/ja.json
includes/installer/i18n/ko.json
includes/installer/i18n/lzh.json
includes/installer/i18n/mfe.json [new file with mode: 0644]
includes/installer/i18n/mk.json
includes/installer/i18n/ms.json
includes/installer/i18n/nap.json
includes/installer/i18n/nb.json
includes/installer/i18n/nl.json
includes/installer/i18n/pt-br.json
includes/installer/i18n/ro.json
includes/installer/i18n/ru.json
includes/installer/i18n/sk.json
includes/installer/i18n/sl.json
includes/installer/i18n/sv.json
includes/installer/i18n/tl.json
includes/installer/i18n/tr.json
includes/installer/i18n/vi.json
includes/jobqueue/Job.php
includes/jobqueue/JobQueueRedis.php
includes/jobqueue/JobRunner.php
includes/json/FormatJson.php
includes/libs/ArrayUtils.php [new file with mode: 0644]
includes/libs/CSSJanus.php [deleted file]
includes/libs/Cookie.php [new file with mode: 0644]
includes/libs/ObjectFactory.php [new file with mode: 0644]
includes/libs/jsminplus.php
includes/limit.sh [changed mode: 0644->0755]
includes/logging/LogEventsList.php
includes/logging/LogFormatter.php
includes/logging/LogPage.php
includes/logging/MergeLogFormatter.php [new file with mode: 0644]
includes/objectcache/HashBagOStuff.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/page/WikiPage.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/password/MWOldPassword.php
includes/password/ParameterizedPassword.php
includes/password/PasswordFactory.php
includes/profiler/ProfileSection.php [new file with mode: 0644]
includes/profiler/Profiler.php
includes/profiler/ProfilerFunctions.php [new file with mode: 0644]
includes/profiler/ProfilerMwprof.php [deleted file]
includes/profiler/ProfilerSimpleDB.php
includes/profiler/ProfilerSimpleText.php
includes/profiler/ProfilerSimpleTrace.php
includes/profiler/ProfilerSimpleUDP.php
includes/profiler/ProfilerStandard.php
includes/profiler/ProfilerStub.php
includes/profiler/TransactionProfiler.php [new file with mode: 0644]
includes/resourceloader/DerivativeResourceLoaderContext.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php
includes/resourceloader/ResourceLoaderUserGroupsModule.php
includes/resourceloader/ResourceLoaderUserOptionsModule.php
includes/resourceloader/ResourceLoaderUserTokensModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/search/SearchPostgres.php
includes/search/SearchResult.php
includes/skins/BaseTemplate.php
includes/skins/Skin.php
includes/skins/SkinApi.php
includes/skins/SkinApiTemplate.php
includes/skins/SkinFallbackTemplate.php
includes/skins/SkinTemplate.php
includes/specialpage/QueryPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialAllPages.php
includes/specials/SpecialApiHelp.php [new file with mode: 0644]
includes/specials/SpecialBlock.php
includes/specials/SpecialContributions.php
includes/specials/SpecialDeletedContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialExpandTemplates.php
includes/specials/SpecialImport.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPopularpages.php [deleted file]
includes/specials/SpecialSearch.php
includes/specials/SpecialStatistics.php
includes/specials/SpecialTrackingCategories.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWatchlist.php
includes/specials/SpecialWhatlinkshere.php
includes/templates/Usercreate.php
includes/templates/Userlogin.php
includes/upload/UploadBase.php
includes/upload/UploadStash.php
includes/utils/ArrayUtils.php [deleted file]
includes/utils/MWFunction.php
index.php
languages/Names.php
languages/data/plurals-mediawiki.xml
languages/data/plurals.xml
languages/i18n/ab.json
languages/i18n/ace.json
languages/i18n/aeb.json
languages/i18n/af.json
languages/i18n/ak.json
languages/i18n/aln.json
languages/i18n/am.json
languages/i18n/an.json
languages/i18n/ang.json
languages/i18n/anp.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/av.json
languages/i18n/avk.json
languages/i18n/ay.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/ba.json
languages/i18n/bar.json
languages/i18n/bbc-latn.json
languages/i18n/bcc.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bho.json
languages/i18n/bi.json
languages/i18n/bjn.json
languages/i18n/bm.json
languages/i18n/bn.json
languages/i18n/bpy.json
languages/i18n/bqi.json
languages/i18n/br.json
languages/i18n/brh.json
languages/i18n/bs.json
languages/i18n/bto.json
languages/i18n/bug.json
languages/i18n/bxr.json
languages/i18n/ca.json
languages/i18n/cbk-zam.json
languages/i18n/cdo.json
languages/i18n/ce.json
languages/i18n/ch.json
languages/i18n/chr.json
languages/i18n/ckb.json
languages/i18n/co.json
languages/i18n/crh-cyrl.json
languages/i18n/crh-latn.json
languages/i18n/cs.json
languages/i18n/csb.json
languages/i18n/cu.json
languages/i18n/cv.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de-ch.json
languages/i18n/de-formal.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/dtp.json
languages/i18n/dv.json
languages/i18n/dz.json
languages/i18n/ee.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/eml.json
languages/i18n/en-gb.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/ext.json
languages/i18n/fa.json
languages/i18n/ff.json
languages/i18n/fi.json
languages/i18n/fit.json
languages/i18n/fj.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frc.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fur.json
languages/i18n/fy.json
languages/i18n/ga.json
languages/i18n/gag.json
languages/i18n/gan-hans.json
languages/i18n/gan-hant.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/glk.json
languages/i18n/gn.json
languages/i18n/gom-latn.json
languages/i18n/got.json
languages/i18n/grc.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/gv.json
languages/i18n/ha.json
languages/i18n/hak.json
languages/i18n/haw.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hil.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ie.json
languages/i18n/ig.json
languages/i18n/ike-cans.json
languages/i18n/ike-latn.json
languages/i18n/ilo.json
languages/i18n/inh.json
languages/i18n/io.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jam.json
languages/i18n/jbo.json
languages/i18n/jut.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kaa.json
languages/i18n/kab.json
languages/i18n/kbd-cyrl.json
languages/i18n/kg.json
languages/i18n/khw.json
languages/i18n/kiu.json
languages/i18n/kk-arab.json
languages/i18n/kk-cyrl.json
languages/i18n/kk-latn.json
languages/i18n/kl.json
languages/i18n/km.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/koi.json
languages/i18n/krc.json
languages/i18n/kri.json
languages/i18n/krj.json
languages/i18n/ks-arab.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/kv.json
languages/i18n/ky.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lbe.json
languages/i18n/lez.json
languages/i18n/lfn.json
languages/i18n/li.json
languages/i18n/liv.json
languages/i18n/lmo.json
languages/i18n/ln.json
languages/i18n/lo.json
languages/i18n/loz.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lus.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/lzz.json
languages/i18n/mai.json
languages/i18n/map-bms.json
languages/i18n/mdf.json
languages/i18n/mg.json
languages/i18n/mhr.json
languages/i18n/mi.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mo.json
languages/i18n/mr.json
languages/i18n/mrj.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/mwl.json
languages/i18n/my.json
languages/i18n/myv.json
languages/i18n/mzn.json
languages/i18n/na.json
languages/i18n/nah.json
languages/i18n/nan.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/ne.json
languages/i18n/new.json
languages/i18n/niu.json
languages/i18n/nl-informal.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/nov.json
languages/i18n/nso.json
languages/i18n/nv.json
languages/i18n/oc.json
languages/i18n/om.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pag.json
languages/i18n/pam.json
languages/i18n/pap.json
languages/i18n/pdt.json
languages/i18n/pfl.json
languages/i18n/pi.json
languages/i18n/pih.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/prg.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/rgn.json
languages/i18n/rif.json
languages/i18n/rm.json
languages/i18n/rmy.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/rup.json
languages/i18n/ruq-cyrl.json
languages/i18n/ruq-latn.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/sdc.json
languages/i18n/se.json
languages/i18n/ses.json [new file with mode: 0644]
languages/i18n/sg.json
languages/i18n/sgs.json
languages/i18n/sh.json
languages/i18n/shi.json
languages/i18n/si.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sli.json
languages/i18n/sm.json
languages/i18n/sma.json
languages/i18n/sn.json
languages/i18n/so.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/ss.json
languages/i18n/st.json
languages/i18n/stq.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/tcy.json
languages/i18n/te.json
languages/i18n/tg-cyrl.json
languages/i18n/tg-latn.json
languages/i18n/th.json
languages/i18n/ti.json
languages/i18n/tk.json
languages/i18n/tl.json
languages/i18n/tn.json
languages/i18n/to.json
languages/i18n/tokipona.json
languages/i18n/tpi.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/tt-latn.json
languages/i18n/ty.json
languages/i18n/tyv.json
languages/i18n/tzm.json
languages/i18n/udm.json
languages/i18n/ug-arab.json
languages/i18n/ug-latn.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/uz.json
languages/i18n/vec.json
languages/i18n/vep.json
languages/i18n/vi.json
languages/i18n/vls.json
languages/i18n/vo.json
languages/i18n/vro.json
languages/i18n/wa.json
languages/i18n/war.json
languages/i18n/wo.json
languages/i18n/wuu.json
languages/i18n/xal.json
languages/i18n/xh.json
languages/i18n/yi.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/za.json
languages/i18n/zea.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/i18n/zu.json
languages/messages/MessagesAng.php
languages/messages/MessagesEn.php
languages/messages/MessagesMai.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesSes.php [new file with mode: 0644]
languages/messages/MessagesSv.php
load.php
maintenance/Maintenance.php
maintenance/cleanupBlocks.php [new file with mode: 0644]
maintenance/cleanupCaps.php
maintenance/dev/includes/php.sh [changed mode: 0644->0755]
maintenance/dev/includes/require-php.sh [changed mode: 0644->0755]
maintenance/dictionary/mediawiki.dic
maintenance/doMaintenance.php
maintenance/dumpIterator.php
maintenance/eval.php
maintenance/findMissingFiles.php
maintenance/generateSitemap.php
maintenance/importDump.php
maintenance/initSiteStats.php
maintenance/jsduck/CustomTags.rb
maintenance/jsduck/categories.json
maintenance/moveBatch.php
maintenance/oracle/update-keys.sql [new file with mode: 0644]
maintenance/postgres/compare_schemas.pl [changed mode: 0644->0755]
maintenance/postgres/mediawiki_mysql2postgres.pl [changed mode: 0644->0755]
maintenance/renderDump.php
maintenance/resources/update-oojs-ui.sh
maintenance/showJobs.php
maintenance/showSiteStats.php
maintenance/storage/checkStorage.php
maintenance/storage/make-blobs [changed mode: 0644->0755]
maintenance/update.php
maintenance/updateSpecialPages.php
mw-config/index.php
resources/Resources.php
resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css
resources/lib/jquery/jquery.jStorage.js
resources/lib/oojs-ui/i18n/ace.json
resources/lib/oojs-ui/i18n/af.json
resources/lib/oojs-ui/i18n/am.json
resources/lib/oojs-ui/i18n/arc.json
resources/lib/oojs-ui/i18n/az.json
resources/lib/oojs-ui/i18n/ba.json
resources/lib/oojs-ui/i18n/bcc.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/bcl.json
resources/lib/oojs-ui/i18n/be-tarask.json
resources/lib/oojs-ui/i18n/be.json
resources/lib/oojs-ui/i18n/bg.json
resources/lib/oojs-ui/i18n/bn.json
resources/lib/oojs-ui/i18n/bs.json
resources/lib/oojs-ui/i18n/ce.json
resources/lib/oojs-ui/i18n/ckb.json
resources/lib/oojs-ui/i18n/co.json
resources/lib/oojs-ui/i18n/cs.json
resources/lib/oojs-ui/i18n/cu.json
resources/lib/oojs-ui/i18n/cy.json
resources/lib/oojs-ui/i18n/da.json
resources/lib/oojs-ui/i18n/de.json
resources/lib/oojs-ui/i18n/diq.json
resources/lib/oojs-ui/i18n/dsb.json
resources/lib/oojs-ui/i18n/egl.json
resources/lib/oojs-ui/i18n/eml.json
resources/lib/oojs-ui/i18n/en.json
resources/lib/oojs-ui/i18n/eo.json
resources/lib/oojs-ui/i18n/es.json
resources/lib/oojs-ui/i18n/et.json
resources/lib/oojs-ui/i18n/eu.json
resources/lib/oojs-ui/i18n/fo.json
resources/lib/oojs-ui/i18n/fr.json
resources/lib/oojs-ui/i18n/frr.json
resources/lib/oojs-ui/i18n/fur.json
resources/lib/oojs-ui/i18n/he.json
resources/lib/oojs-ui/i18n/hi.json
resources/lib/oojs-ui/i18n/hsb.json
resources/lib/oojs-ui/i18n/id.json
resources/lib/oojs-ui/i18n/ie.json
resources/lib/oojs-ui/i18n/is.json
resources/lib/oojs-ui/i18n/it.json
resources/lib/oojs-ui/i18n/ja.json
resources/lib/oojs-ui/i18n/jv.json
resources/lib/oojs-ui/i18n/ka.json
resources/lib/oojs-ui/i18n/kk-cyrl.json
resources/lib/oojs-ui/i18n/km.json
resources/lib/oojs-ui/i18n/ko.json
resources/lib/oojs-ui/i18n/krc.json
resources/lib/oojs-ui/i18n/kw.json
resources/lib/oojs-ui/i18n/ky.json
resources/lib/oojs-ui/i18n/lb.json
resources/lib/oojs-ui/i18n/lmo.json
resources/lib/oojs-ui/i18n/lt.json
resources/lib/oojs-ui/i18n/lzh.json
resources/lib/oojs-ui/i18n/mg.json
resources/lib/oojs-ui/i18n/min.json
resources/lib/oojs-ui/i18n/mk.json
resources/lib/oojs-ui/i18n/ml.json
resources/lib/oojs-ui/i18n/mr.json
resources/lib/oojs-ui/i18n/nap.json
resources/lib/oojs-ui/i18n/nds-nl.json
resources/lib/oojs-ui/i18n/nds.json
resources/lib/oojs-ui/i18n/ne.json
resources/lib/oojs-ui/i18n/nn.json
resources/lib/oojs-ui/i18n/oc.json
resources/lib/oojs-ui/i18n/or.json
resources/lib/oojs-ui/i18n/pa.json
resources/lib/oojs-ui/i18n/pfl.json
resources/lib/oojs-ui/i18n/pms.json
resources/lib/oojs-ui/i18n/ps.json
resources/lib/oojs-ui/i18n/pt-br.json
resources/lib/oojs-ui/i18n/pt.json
resources/lib/oojs-ui/i18n/qqq.json
resources/lib/oojs-ui/i18n/qu.json
resources/lib/oojs-ui/i18n/ro.json
resources/lib/oojs-ui/i18n/roa-tara.json
resources/lib/oojs-ui/i18n/ru.json
resources/lib/oojs-ui/i18n/sah.json
resources/lib/oojs-ui/i18n/scn.json
resources/lib/oojs-ui/i18n/sco.json
resources/lib/oojs-ui/i18n/sh.json
resources/lib/oojs-ui/i18n/si.json
resources/lib/oojs-ui/i18n/sk.json
resources/lib/oojs-ui/i18n/sv.json
resources/lib/oojs-ui/i18n/ta.json
resources/lib/oojs-ui/i18n/te.json
resources/lib/oojs-ui/i18n/tg-cyrl.json
resources/lib/oojs-ui/i18n/th.json
resources/lib/oojs-ui/i18n/tl.json
resources/lib/oojs-ui/i18n/tt-cyrl.json
resources/lib/oojs-ui/i18n/uz.json
resources/lib/oojs-ui/i18n/vec.json
resources/lib/oojs-ui/i18n/vi.json
resources/lib/oojs-ui/i18n/vo.json
resources/lib/oojs-ui/i18n/yo.json
resources/lib/oojs-ui/i18n/zh-hans.json
resources/lib/oojs-ui/i18n/zh-hant.json
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-apex.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui-apex.svg.css
resources/lib/oojs-ui/oojs-ui-apex.svg.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui-mediawiki.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css
resources/lib/oojs-ui/oojs-ui-mediawiki.svg.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui-minerva.css [deleted file]
resources/lib/oojs-ui/oojs-ui-minerva.js [deleted file]
resources/lib/oojs-ui/oojs-ui-minerva.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui-minerva.svg.css [deleted file]
resources/lib/oojs-ui/oojs-ui-minerva.svg.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui.css [deleted file]
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.rtl.css [deleted file]
resources/lib/oojs-ui/oojs-ui.svg.rtl.css [deleted file]
resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.png [deleted file]
resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.svg [deleted file]
resources/lib/oojs-ui/themes/minerva/images/icons/check.png [deleted file]
resources/lib/oojs-ui/themes/minerva/images/icons/check.svg [deleted file]
resources/src/jquery/jquery.badge.css
resources/src/jquery/jquery.getAttrs.js
resources/src/jquery/jquery.textSelection.js
resources/src/mediawiki.action/mediawiki.action.view.postEdit.js
resources/src/mediawiki.action/templates/postEdit.html [new file with mode: 0644]
resources/src/mediawiki.api/mediawiki.api.js
resources/src/mediawiki.legacy/commonPrint.css
resources/src/mediawiki.less/mediawiki.ui/mixins.less
resources/src/mediawiki.page/mediawiki.page.image.pagination.js
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css
resources/src/mediawiki.special/mediawiki.special.search.css
resources/src/mediawiki.special/mediawiki.special.upload.js
resources/src/mediawiki.special/templates/thumbnail.html [new file with mode: 0644]
resources/src/mediawiki.toolbar/toolbar.js
resources/src/mediawiki.ui/components/anchors.less
resources/src/mediawiki.ui/components/buttons.less
resources/src/mediawiki.ui/components/checkbox.less
resources/src/mediawiki.ui/components/icons.less
resources/src/mediawiki.ui/components/inputs.less
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.apihelp.css [new file with mode: 0644]
resources/src/mediawiki/mediawiki.apipretty.css [new file with mode: 0644]
resources/src/mediawiki/mediawiki.confirmCloseWindow.js
resources/src/mediawiki/mediawiki.feedback.js
resources/src/mediawiki/mediawiki.hlist.js
resources/src/mediawiki/mediawiki.htmlform.js
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.template.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.util.js
resources/src/mediawiki/templates/dialog.html [new file with mode: 0644]
tests/TestsAutoLoader.php
tests/browser/Gemfile [deleted file]
tests/browser/Gemfile.lock [deleted file]
tests/frontend/Gruntfile.js
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/BlockTest.php
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/HttpTest.php
tests/phpunit/includes/ImportTest.php
tests/phpunit/includes/MWTimestampTest.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/PrefixSearchTest.php [new file with mode: 0644]
tests/phpunit/includes/RequestContextTest.php
tests/phpunit/includes/TestUser.php
tests/phpunit/includes/TitlePermissionTest.php
tests/phpunit/includes/TitleTest.php
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/actions/ActionTest.php
tests/phpunit/includes/api/ApiMainTest.php
tests/phpunit/includes/api/ApiOptionsTest.php
tests/phpunit/includes/api/ApiTestCase.php
tests/phpunit/includes/api/PrefixUniquenessTest.php
tests/phpunit/includes/api/format/ApiFormatTestBase.php
tests/phpunit/includes/api/query/ApiQueryContinue2Test.php
tests/phpunit/includes/api/query/ApiQueryContinueTest.php
tests/phpunit/includes/api/query/ApiQueryContinueTestBase.php
tests/phpunit/includes/api/query/ApiQueryTest.php
tests/phpunit/includes/api/query/ApiQueryTestBase.php
tests/phpunit/includes/cache/LocalisationCacheTest.php
tests/phpunit/includes/cache/RedisBloomCacheTest.php
tests/phpunit/includes/changes/RecentChangeTest.php
tests/phpunit/includes/config/GlobalVarConfigTest.php
tests/phpunit/includes/content/TextContentTest.php
tests/phpunit/includes/db/ORMTableTest.php
tests/phpunit/includes/db/TestORMRowTest.php
tests/phpunit/includes/installer/DatabaseUpdaterTest.php [new file with mode: 0644]
tests/phpunit/includes/jobqueue/JobQueueTest.php
tests/phpunit/includes/json/FormatJsonTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php [new file with mode: 0644]
tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
tests/phpunit/includes/resourceloader/templates/template.html [new file with mode: 0644]
tests/phpunit/includes/resourceloader/templates/template2.html [new file with mode: 0644]
tests/phpunit/includes/resourceloader/templates/template_awesome.handlebars [new file with mode: 0644]
tests/phpunit/includes/specialpage/SpecialPageFactoryTest.php
tests/phpunit/includes/specialpage/SpecialPageTestHelper.php [new file with mode: 0644]
tests/phpunit/includes/upload/UploadBaseTest.php
tests/phpunit/includes/utils/MWCryptHKDFTest.php
tests/phpunit/languages/LanguageGvTest.php
tests/phpunit/languages/LanguageRuTest.php
tests/phpunit/languages/LanguageTlTest.php
tests/phpunit/maintenance/DumpTestCase.php
tests/phpunit/maintenance/backupTextPassTest.php
tests/phpunit/structure/AutoLoaderTest.php
tests/phpunit/suites/ExtensionsTestSuite.php
tests/qunit/QUnitTestResources.php
tests/qunit/suites/resources/jquery/jquery.getAttrs.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js [new file with mode: 0644]
tests/testHelpers.inc

diff --git a/.rubocop.yml b/.rubocop.yml
new file mode 100644 (file)
index 0000000..00479d1
--- /dev/null
@@ -0,0 +1,8 @@
+inherit_from: .rubocop_todo.yml
+
+AllCops:
+    Exclude:
+        - 'extensions/**/*'
+        - 'skins/**/*'
+        - 'tests/frontend/node_modules/**/*'
+        - 'vendor/**/*'
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
new file mode 100644 (file)
index 0000000..f0702ba
--- /dev/null
@@ -0,0 +1,84 @@
+# This configuration was generated by `rubocop --auto-gen-config`
+# on 2014-10-21 15:10:03 +0200 using RuboCop version 0.26.1.
+# The point is for the user to remove these configuration records
+# one by one as the offenses are removed from the code base.
+# Note that changes in the inspected code, or installation of new
+# versions of RuboCop, may require this file to be generated again.
+
+# Offense count: 1
+Lint/AmbiguousRegexpLiteral:
+  Enabled: false
+
+# Offense count: 2
+# Cop supports --auto-correct.
+Lint/UnusedMethodArgument:
+  Enabled: false
+
+# Offense count: 19
+# Configuration parameters: AllowURI, URISchemes.
+Metrics/LineLength:
+  Max: 94
+
+# Offense count: 10
+Style/Documentation:
+  Enabled: false
+
+# Offense count: 1
+# Cop supports --auto-correct.
+Style/EmptyLines:
+  Enabled: false
+
+# Offense count: 1
+# Cop supports --auto-correct.
+Style/EmptyLinesAroundBody:
+  Enabled: false
+
+# Offense count: 1
+# Configuration parameters: Exclude.
+Style/FileName:
+  Enabled: false
+
+# Offense count: 8
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Style/HashSyntax:
+  Enabled: false
+
+# Offense count: 2
+# Cop supports --auto-correct.
+Style/LeadingCommentSpace:
+  Enabled: false
+
+# Offense count: 4
+# Cop supports --auto-correct.
+Style/PerlBackrefs:
+  Enabled: false
+
+# Offense count: 4
+# Cop supports --auto-correct.
+Style/SpaceAroundOperators:
+  Enabled: false
+
+# Offense count: 1
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
+Style/SpaceInsideBlockBraces:
+  Enabled: true
+
+# Offense count: 6
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
+Style/SpaceInsideHashLiteralBraces:
+  Enabled: false
+
+# Offense count: 89
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Style/StringLiterals:
+  Enabled: false
+
+# Offense count: 11
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle, SupportedStyles.
+Style/TrailingBlankLines:
+  Enabled: false
diff --git a/CREDITS b/CREDITS
index dbd5a61..e70a035 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -15,6 +15,7 @@ following names for their contribution to the product.
 * Antoine Musso
 * Arthur Richards
 * Aryeh Gregor
+* Bartosz Dziewoński
 * Bertrand Grondin
 * Brad Jorsch
 * Brian Wolff
@@ -104,7 +105,6 @@ following names for their contribution to the product.
 * Asier Lostalé
 * Azliq7
 * Bagariavivek
-* Bartosz Dziewoński
 * Beau
 * Benny Situ
 * Bergi
diff --git a/Gemfile b/Gemfile
new file mode 100644 (file)
index 0000000..1559d0e
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,8 @@
+#ruby=ruby-2.1.2
+#ruby-gemset=core
+
+source "https://rubygems.org"
+
+gem "mediawiki_api"
+gem "mediawiki_selenium"
+gem "rubocop", require: false
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644 (file)
index 0000000..0dc4500
--- /dev/null
@@ -0,0 +1,99 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    ast (2.0.0)
+    astrolabe (1.3.0)
+      parser (>= 2.2.0.pre.3, < 3.0)
+    builder (3.2.2)
+    childprocess (0.5.3)
+      ffi (~> 1.0, >= 1.0.11)
+    cucumber (1.3.16)
+      builder (>= 2.1.2)
+      diff-lcs (>= 1.1.3)
+      gherkin (~> 2.12)
+      multi_json (>= 1.7.5, < 2.0)
+      multi_test (>= 0.1.1)
+    data_magic (0.19)
+      faker (>= 1.1.2)
+      yml_reader (>= 0.3)
+    diff-lcs (1.2.5)
+    domain_name (0.5.20)
+      unf (>= 0.0.5, < 1.0.0)
+    faker (1.4.3)
+      i18n (~> 0.5)
+    faraday (0.9.0)
+      multipart-post (>= 1.2, < 3)
+    faraday-cookie_jar (0.0.6)
+      faraday (>= 0.7.4)
+      http-cookie (~> 1.0.0)
+    ffi (1.9.3)
+    gherkin (2.12.2)
+      multi_json (~> 1.3)
+    headless (1.0.2)
+    http-cookie (1.0.2)
+      domain_name (~> 0.5)
+    i18n (0.6.11)
+    json (1.8.1)
+    mediawiki_api (0.2.1)
+      faraday (~> 0.9, >= 0.9.0)
+      faraday-cookie_jar (~> 0.0, >= 0.0.6)
+    mediawiki_selenium (0.3.2)
+      cucumber (~> 1.3, >= 1.3.10)
+      headless (~> 1.0, >= 1.0.1)
+      json (~> 1.8, >= 1.8.1)
+      mediawiki_api (~> 0.2, >= 0.2.1)
+      page-object (~> 1.0)
+      rest-client (~> 1.6, >= 1.6.7)
+      rspec-expectations (~> 2.14, >= 2.14.4)
+      syntax (~> 1.2, >= 1.2.0)
+    mime-types (2.3)
+    multi_json (1.10.1)
+    multi_test (0.1.1)
+    multipart-post (2.0.0)
+    netrc (0.7.7)
+    page-object (1.0.2)
+      page_navigation (>= 0.9)
+      selenium-webdriver (>= 2.42.0)
+      watir-webdriver (>= 0.6.9)
+    page_navigation (0.9)
+      data_magic (>= 0.14)
+    parser (2.2.0.pre.4)
+      ast (>= 1.1, < 3.0)
+      slop (~> 3.4, >= 3.4.5)
+    powerpack (0.0.9)
+    rainbow (2.0.0)
+    rest-client (1.7.2)
+      mime-types (>= 1.16, < 3.0)
+      netrc (~> 0.7)
+    rspec-expectations (2.99.2)
+      diff-lcs (>= 1.1.3, < 2.0)
+    rubocop (0.26.1)
+      astrolabe (~> 1.3)
+      parser (>= 2.2.0.pre.4, < 3.0)
+      powerpack (~> 0.0.6)
+      rainbow (>= 1.99.1, < 3.0)
+      ruby-progressbar (~> 1.4)
+    ruby-progressbar (1.6.0)
+    rubyzip (1.1.6)
+    selenium-webdriver (2.42.0)
+      childprocess (>= 0.5.0)
+      multi_json (~> 1.0)
+      rubyzip (~> 1.0)
+      websocket (~> 1.0.4)
+    slop (3.6.0)
+    syntax (1.2.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.6)
+    watir-webdriver (0.6.10)
+      selenium-webdriver (>= 2.18.0)
+    websocket (1.0.7)
+    yml_reader (0.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  mediawiki_api
+  mediawiki_selenium
+  rubocop
diff --git a/INSTALL b/INSTALL
index e8731a1..70d8d53 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -6,7 +6,7 @@ Starting with MediaWiki 1.2.0, it's possible to install and configure the wiki
 "in-place", as long as you have the necessary prerequisites available.
 
 Required software:
-* Web server with PHP 5.3.2 or higher.
+* Web server with PHP 5.3.3 or higher.
 * A SQL server, the following types are supported
 ** MySQL 5.0.2 or higher
 ** PostgreSQL 8.3 or higher
index 2b5136e..03cf277 100644 (file)
@@ -505,6 +505,9 @@ changes to languages because of Bugzilla reports.
 * Removed maintenance/purgeOldText.inc and the PurgeRedundantText() function
   it contained (superseded by Maintenance::purgeRedundantText() in 1.16).
   The purgeOldText.php maintenance script has been retained.
+* PHPUnit tests can be found by directory discovery, by adding the directory
+  path from your UnitTestsList callback. Older versions of MediaWiki core will
+  barf at this usage.
 
 ==== Renamed classes ====
 * CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression
index db4c124..b649c2b 100644 (file)
@@ -11,27 +11,138 @@ production.
 === Configuration changes in 1.25 ===
 * $wgPageShowWatchingUsers was removed.
 * $wgLocalVirtualHosts has been added to replace $wgConf->localVHosts.
+* $wgAntiLockFlags was removed.
+* Edit tokens returned from User::getEditToken may change on every call. Token
+  validity must be checked by passing the user-supplied token to
+  User::matchEditToken rather than by testing for equality with a
+  newly-generated token.
+* (bug 72951) The UserGetLanguageObject hook may be passed any IContextSource
+  for its $context parameter. Formerly it was documented as receiving a
+  RequestContext specifically.
 
 === New features in 1.25 ===
+* (bug 62861) Updated plural rules to CLDR 26. Includes incompatible changes
+  for plural forms in Russian, Prussian, Tagalog, Manx and several languages
+  that fall back to Russian.
 * (bug 58139) ResourceLoaderFileModule now supports language fallback
   for 'languageScripts'.
 * Added a new hook, "ContentAlterParserOutput", to allow extensions to modify the
   parser output for a content object before links update.
+* (bug 35785) Enhanced recent changes and extended watchlist are now default.
+  Documentation: https://meta.wikimedia.org/wiki/Help:Enhanced_recent_changes
+  and https://www.mediawiki.org/wiki/Manual:$wgDefaultUserOptions.
 * (bug 67341) SVG images will no longer be base64-encoded when being embedded
   in CSS. This results in slight size increase before gzip compression (due to
   percent-encoding), but up to 20% decrease after it.
+* Upgrade jStorage to v0.4.12.
+* MediaWiki now natively supports page status indicators: icons (or short text
+  snippets) usually displayed in the top-right corner of the page. They have
+  been in use on Wikipedia for a long time, implemented using templates and CSS
+  absolute positioning.
+  - Basic wikitext syntax: <indicator name="foo">[[File:Foo.svg|20px]]</indicator>
+  - Usage instructions: https://www.mediawiki.org/wiki/Help:Page_status_indicators
+  - Adjusting custom skins to support indicators:
+    https://www.mediawiki.org/wiki/Manual:Skinning#Page_status_indicators
+* Edit tokens may now be time-limited: passing a maximum age to
+  User::matchEditToken will reject any older tokens.
+* The debug logging internals have been overhauled, and are now using the
+  PSR-3 interfaces.
 
 === Bug fixes in 1.25 ===
 * (bug 71003) No additional code will be generated to try to load CSS-embedded
   SVG images in Internet Explorer 6 and 7, as they don't support them anyway.
 * (bug 67021) On Special:BookSources, corrected validation of ISBNs (both
   10- and 13-digit forms) containing "X".
+* Page moving was refactored into a MovePage class. As part of that:
+** The AbortMove hook was removed.
+** MovePageIsValidMove is for extensions to specify whether a page
+   cannot be moved for technical reasons, and should not be overriden.
+** MovePageCheckPermissions is for checking whether the given user is
+   allowed to make the move.
+** Title::moveNoAuth() was deprecated. Use the MovePage class instead.
+** Title::moveTo() was deprecated. Use the MovePage class instead.
+** Title::isValidMoveOperation() broken down into MovePage::isValidMove()
+   and MovePage::checkPermissions().
 
 === Action API changes in 1.25 ===
 * (bug 65403) XML tag highlighting is now only performed for formats
   "xmlfm" and "wddxfm".
+* action=paraminfo supports generalized submodules (modules=query+value),
+  querymodules and formatmodules are deprecated
+* action=paraminfo no longer outputs descriptions and other help text by
+  default. If needed, it may be requested using the new 'helpformat' parameter.
+* action=help has been completely rewritten, and outputs help in HTML
+  rather than plain text.
+* Hitting api.php without specifying an action now displays only the help for
+  the main module, with links to submodule help.
+* API help is no longer displayed on errors.
+* 'uselang' is now a recognized API parameter; "uselang=user" may be used to
+  explicitly select the language from the current user's preferences, and
+  "uselang=content" may be used to select the wiki's content language.
+* Default output format for the API is now jsonfm.
+* Simplified continuation will return a "batchcomplete" property in the result
+  when a batch of pages is complete.
+* Pretty-printed HTML output now has nicer formatting and (if available)
+  better syntax highlighting.
+* Deprecated list=deletedrevs in favor of newly-added prop=deletedrevisions and
+  list=alldeletedrevisions.
+* prop=revisions will gracefully continue when given too many revids or titles,
+  rather than just ignoring the extras.
+* prop=revisions will no longer die if rvcontentformat doesn't match a
+  revision's content model; it will instead warn and omit the content.
+* If the user has the 'deletedhistory' right, action=query's revids parameter
+  will now recognize deleted revids.
+* prop=revisions may be used as a generator, generating revids.
 
 === Action API internal changes in 1.25 ===
+* ApiHelp has been rewritten to support i18n and paginated HTML output.
+  Most existing modules should continue working without changes, but should do
+  the following:
+  * Add an i18n message "apihelp-{$moduleName}-description" to replace getDescription().
+  * Add i18n messages "apihelp-{$moduleName}-param-{$param}" for each parameter
+    to replace getParamDescription(). If necessary, the settings array returned
+    by getParams() can use the new ApiBase::PARAM_HELP_MSG key to override the
+    message.
+  * Implement getExamplesMessages() to replace getExamples().
+* Modules with submodules (like action=query) must have their submodules
+  override ApiBase::getParent() to return the correct parent object.
+* The 'APIGetDescription' and 'APIGetParamDescription' hooks are deprecated,
+  and will have no effect for modules using i18n messages. Use
+  'APIGetDescriptionMessages' and 'APIGetParamDescriptionMessages' instead.
+* Api formatters will no longer be asked to display the help screen on errors.
+* ApiMain::getCredits() was removed. The credits are available in the
+  'api-credits' i18n message.
+* ApiFormatBase has been changed to support i18n and syntax highlighting via
+  extensions with the new 'ApiFormatHighlight' hook. Core syntax highlighting
+  has been removed.
+* ApiFormatBase now always buffers. Output is done when
+  ApiFormatBase::closePrinter is called.
+* Much of the logic in ApiQueryRevisions has been split into ApiQueryRevisionsBase.
+* The 'revids' parameter supplied by ApiPageSet will now count deleted
+  revisions as "good" if the user has the 'deletedhistory' right. New methods
+  ApiPageSet::getLiveRevisionIDs() and ApiPageSet::getDeletedRevisionIDs() are
+  provided to access just the live or just the deleted revids.
+* The following methods have been deprecated and may be removed in a future
+  release:
+  * ApiBase::getDescription
+  * ApiBase::getParamDescription
+  * ApiBase::getExamples
+  * ApiBase::makeHelpMsg
+  * ApiBase::makeHelpArrayToString
+  * ApiBase::makeHelpMsgParameters
+  * ApiFormatBase::setUnescapeAmps
+  * ApiFormatBase::getWantsHelp
+  * ApiFormatBase::setHelp
+  * ApiFormatBase::formatHTML
+  * ApiFormatBase::setBufferResult
+  * ApiFormatBase::getDescription
+  * ApiMain::setHelp
+  * ApiMain::reallyMakeHelpMsg
+  * ApiMain::makeHelpMsgHeader
+  * ApiQueryImageInfo::getPropertyDescriptions
+* The following classes have been deprecated and may be removed in a future
+  release:
+  * ApiQueryDeletedrevs
 
 === Languages updated in 1.25 ===
 
@@ -57,10 +168,24 @@ changes to languages because of Bugzilla reports.
   since 1.20)
 * Removed 'jquery.json' module. (deprecated since 1.24)
   Use the 'json' module and global JSON object instead.
+* Deprecated OutputPage::readOnlyPage() and OutputPage::rateLimited().
+  Also, the former will now throw an MWException if called with one or more
+  arguments.
+* Removed hitcounters and associated code.
+* The "temp" zone of the upload respository is now considered private. If it
+  already exists (such as under the images/ directory), please make sure that
+  the directory is not web readable (e.g. via a .htaccess file).
+* BREAKING CHANGE: In the XML dump format used by Special:Export and
+  dumpBackup.php, the <model> and <format> tags now apprear before the <text>
+  tag, instead of after the <text> and <sha1> tags.
+  The new schema version is 0.10, the new schema URI is
+  <https://www.mediawiki.org/xml/export-0.10.xsd>.
+* MWFunction::call() and MWFunction::callArray() were removed, having being
+  deprecated in 1.22.
 
 == Compatibility ==
 
-MediaWiki 1.25 requires PHP 5.3.2 or later. There is experimental support for
+MediaWiki 1.25 requires PHP 5.3.3 or later. There is experimental support for
 HHVM 3.3.0.
 
 MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
diff --git a/api.php b/api.php
index 2a6a095..74ee775 100644 (file)
--- a/api.php
+++ b/api.php
@@ -34,7 +34,7 @@
 define( 'MW_API', true );
 
 // Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) {
+if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
        // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
        require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
        wfPHPVersionError( 'api.php' );
@@ -62,14 +62,14 @@ if ( !$wgEnableAPI ) {
 // In a perfect world this wouldn't be necessary
 $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
 
-/* Construct an ApiMain with the arguments passed via the URL. What we get back
- * is some form of an ApiMain, possibly even one that produces an error message,
- * but we don't care here, as that is handled by the ctor.
- */
-$processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
-
-// Last chance hook before executing the API
 try {
+       /* Construct an ApiMain with the arguments passed via the URL. What we get back
+        * is some form of an ApiMain, possibly even one that produces an error message,
+        * but we don't care here, as that is handled by the ctor.
+        */
+       $processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
+
+       // Last chance hook before executing the API
        wfRunHooks( 'ApiBeforeMain', array( &$processor ) );
        if ( !$processor instanceof ApiMain ) {
                throw new MWException( 'ApiBeforMain hook set $processor to a non-ApiMain class' );
index 3b18933..61f30ce 100644 (file)
@@ -16,8 +16,9 @@
                "wiki": "https://www.mediawiki.org/"
        },
        "require": {
-               "php": ">=5.3.2",
-               "psr/log": "1.0.0"
+               "php": ">=5.3.3",
+               "psr/log": "1.0.0",
+               "cssjanus/cssjanus": "1.1.0"
        },
        "require-dev": {
                "phpunit/phpunit": "*"
index 735f26b..ba3045e 100644 (file)
@@ -159,10 +159,7 @@ $dbw->commit( __METHOD__ );
 
 Use of locking reads (e.g. the FOR UPDATE clause) is not advised. They
 are poorly implemented in InnoDB and will cause regular deadlock errors.
-It's also surprisingly easy to cripple the wiki with lock contention. If
-you must use them, define a new flag for $wgAntiLockFlags which allows
-them to be turned off, because we'll almost certainly need to do so on
-the Wikimedia cluster.
+It's also surprisingly easy to cripple the wiki with lock contention.
 
 Instead of locking reads, combine your existence checks into your write
 queries, by using an appropriate condition in the WHERE clause of an
diff --git a/docs/export-0.10.xsd b/docs/export-0.10.xsd
new file mode 100644 (file)
index 0000000..9d5d49e
--- /dev/null
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+       This is an XML Schema description of the format
+       output by MediaWiki's Special:Export system.
+
+       Version 0.2 adds optional basic file upload info support,
+       which is used by our OAI export/import submodule.
+
+       Version 0.3 adds some site configuration information such
+       as a list of defined namespaces.
+
+       Version 0.4 adds per-revision delete flags, log exports,
+       discussion threading data, a per-page redirect flag, and
+       per-namespace capitalization.
+
+       Version 0.5 adds byte count per revision.
+
+       Version 0.6 adds a separate namespace tag, and resolves the
+       redirect target and adds a separate sha1 tag for each revision.
+
+       Version 0.7 adds a unique identity constraint for both page and
+       revision identifiers. See also bug 4220.
+       Fix type for <ns> from "positiveInteger" to "nonNegativeInteger" to allow 0
+       Moves <logitem> to its right location.
+       Add parentid to revision.
+       Fix type for <id> within <contributor> to "nonNegativeInteger"
+
+       Version 0.8 adds support for a <model> and a <format> tag for
+       each revision. See contenthandler.txt.
+
+       Version 0.9 adds the database name to the site information.
+
+       Version 0.10 moved the <model> and <format> tags before the <text> tag.
+
+       The canonical URL to the schema document is:
+       http://www.mediawiki.org/xml/export-0.10.xsd
+
+       Use the namespace:
+       http://www.mediawiki.org/xml/export-0.10/
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+               xmlns:mw="http://www.mediawiki.org/xml/export-0.10/"
+               targetNamespace="http://www.mediawiki.org/xml/export-0.10/"
+               elementFormDefault="qualified">
+
+       <annotation>
+               <documentation xml:lang="en">
+                       MediaWiki's page export format
+               </documentation>
+       </annotation>
+
+       <!-- Need this to reference xml:lang -->
+       <import namespace="http://www.w3.org/XML/1998/namespace"
+                       schemaLocation="http://www.w3.org/2001/xml.xsd" />
+
+       <!-- Our root element -->
+       <element name="mediawiki" type="mw:MediaWikiType">
+               <!-- Page ID contraint, see bug 4220 -->
+               <unique name="PageIDConstraint">
+                       <selector xpath="mw:page" />
+                       <field xpath="mw:id" />
+               </unique>
+               <!-- Revision ID contraint, see bug 4220 -->
+               <unique name="RevIDConstraint">
+                       <selector xpath="mw:page/mw:revision" />
+                       <field xpath="mw:id" />
+               </unique>
+       </element>
+
+       <complexType name="MediaWikiType">
+               <sequence>
+                       <element name="siteinfo" type="mw:SiteInfoType"
+                                        minOccurs="0" maxOccurs="1" />
+                       <element name="page" type="mw:PageType"
+                                        minOccurs="0" maxOccurs="unbounded" />
+                       <element name="logitem" type="mw:LogItemType"
+                                        minOccurs="0" maxOccurs="unbounded" />
+               </sequence>
+               <attribute name="version" type="string" use="required" />
+               <attribute ref="xml:lang" use="required" />
+       </complexType>
+
+       <complexType name="SiteInfoType">
+               <sequence>
+                       <element name="sitename" type="string" minOccurs="0" />
+            <element name="dbname" type="string" minOccurs="0" />
+                       <element name="base" type="anyURI" minOccurs="0" />
+                       <element name="generator" type="string" minOccurs="0" />
+                       <element name="case" type="mw:CaseType" minOccurs="0" />
+                       <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
+               </sequence>
+       </complexType>
+
+       <simpleType name="CaseType">
+               <restriction base="NMTOKEN">
+                       <!-- Cannot have two titles differing only by case of first letter. -->
+                       <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
+                       <enumeration value="first-letter" />
+
+                       <!-- Complete title is case-sensitive -->
+                       <!-- Behavior when $wgCapitalLinks = false -->
+                       <enumeration value="case-sensitive" />
+
+                       <!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
+                       <!-- Not yet implemented as of MediaWiki 1.18 -->
+                       <enumeration value="case-insensitive" />
+               </restriction>
+       </simpleType>
+
+       <simpleType name="DeletedFlagType">
+               <restriction base="NMTOKEN">
+                       <enumeration value="deleted" />
+               </restriction>
+       </simpleType>
+
+       <complexType name="NamespacesType">
+               <sequence>
+                       <element name="namespace" type="mw:NamespaceType"
+                                        minOccurs="0" maxOccurs="unbounded" />
+               </sequence>
+       </complexType>
+
+       <complexType name="NamespaceType">
+               <simpleContent>
+                       <extension base="string">
+                               <attribute name="key" type="integer" />
+                               <attribute name="case" type="mw:CaseType" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="RedirectType">
+               <simpleContent>
+                       <extension base="string">
+                               <attribute name="title" type="string" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <simpleType name="ContentModelType">
+               <restriction base="string">
+                       <pattern value="[a-zA-Z][-+./a-zA-Z0-9]*" />
+               </restriction>
+       </simpleType>
+
+       <simpleType name="ContentFormatType">
+               <restriction base="string">
+                       <pattern value="[a-zA-Z][-+.a-zA-Z0-9]*/[a-zA-Z][-+.a-zA-Z0-9]*" />
+               </restriction>
+       </simpleType>
+
+       <complexType name="PageType">
+               <sequence>
+                       <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
+                       <element name="title" type="string" />
+
+                       <!-- Namespace in canonical form -->
+                       <element name="ns" type="nonNegativeInteger" />
+
+                       <!-- optional page ID number -->
+                       <element name="id" type="positiveInteger" />
+
+                       <!-- flag if the current revision is a redirect -->
+                       <element name="redirect" type="mw:RedirectType" minOccurs="0" maxOccurs="1" />
+
+                       <!-- comma-separated list of string tokens, if present -->
+                       <element name="restrictions" type="string" minOccurs="0" />
+
+                       <!-- Zero or more sets of revision or upload data -->
+                       <choice minOccurs="0" maxOccurs="unbounded">
+                               <element name="revision" type="mw:RevisionType" />
+                               <element name="upload" type="mw:UploadType" />
+                       </choice>
+
+                       <!-- Zero or One sets of discussion threading data -->
+                       <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
+               </sequence>
+       </complexType>
+
+       <complexType name="RevisionType">
+               <sequence>
+                       <element name="id" type="positiveInteger" />
+                       <element name="parentid" type="positiveInteger" minOccurs="0" />
+                       <element name="timestamp" type="dateTime" />
+                       <element name="contributor" type="mw:ContributorType" />
+                       <element name="minor" minOccurs="0" maxOccurs="1" />
+                       <element name="comment" type="mw:CommentType" minOccurs="0" maxOccurs="1" />
+                       <element name="model" type="mw:ContentModelType" />
+                       <element name="format" type="mw:ContentFormatType" />
+                       <element name="text" type="mw:TextType" />
+                       <element name="sha1" type="string" />
+               </sequence>
+       </complexType>
+
+       <complexType name="LogItemType">
+               <sequence>
+                       <element name="id" type="positiveInteger" />
+                       <element name="timestamp" type="dateTime" />
+                       <element name="contributor" type="mw:ContributorType" />
+                       <element name="comment" type="mw:CommentType" minOccurs="0" />
+                       <element name="type" type="string" />
+                       <element name="action" type="string" />
+                       <element name="text" type="mw:LogTextType" minOccurs="0" maxOccurs="1" />
+                       <element name="logtitle" type="string" minOccurs="0" maxOccurs="1" />
+                       <element name="params" type="mw:LogParamsType" minOccurs="0" maxOccurs="1" />
+               </sequence>
+       </complexType>
+
+       <complexType name="CommentType">
+               <simpleContent>
+                       <extension base="string">
+                               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="TextType">
+               <simpleContent>
+                       <extension base="string">
+                               <attribute ref="xml:space" use="optional" default="preserve" />
+                               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+                               <!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
+                               <!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
+                               <!-- usage ([0-9]+) and with the "ID" type. -->
+                               <attribute name="id" type="NMTOKEN" />
+                               <attribute name="bytes" use="optional" type="nonNegativeInteger" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="LogTextType">
+               <simpleContent>
+                       <extension base="string">
+                               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+                               <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="LogParamsType">
+               <simpleContent>
+                       <extension base="string">
+                               <attribute ref="xml:space" use="optional" default="preserve" />
+                       </extension>
+               </simpleContent>
+       </complexType>
+
+       <complexType name="ContributorType">
+               <sequence>
+                       <element name="username" type="string" minOccurs="0" />
+                       <element name="id" type="nonNegativeInteger" minOccurs="0" />
+
+                       <element name="ip" type="string" minOccurs="0" />
+               </sequence>
+               <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+               <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+       </complexType>
+
+       <complexType name="UploadType">
+               <sequence>
+                       <!-- Revision-style data... -->
+                       <element name="timestamp" type="dateTime" />
+                       <element name="contributor" type="mw:ContributorType" />
+                       <element name="comment" type="string" minOccurs="0" />
+
+                       <!-- Filename. (Using underscores, not spaces. No 'File:' namespace marker.) -->
+                       <element name="filename" type="string" />
+
+                       <!-- URI at which this resource can be obtained -->
+                       <element name="src" type="anyURI" />
+
+                       <element name="size" type="positiveInteger" />
+
+                       <!-- TODO: add other metadata fields -->
+               </sequence>
+       </complexType>
+
+       <!-- Discussion threading data for LiquidThreads -->
+       <complexType name="DiscussionThreadingInfo">
+               <sequence>
+                       <element name="ThreadSubject" type="string" />
+                       <element name="ThreadParent" type="positiveInteger" />
+                       <element name="ThreadAncestor" type="positiveInteger" />
+                       <element name="ThreadPage" type="string" />
+                       <element name="ThreadID" type="positiveInteger" />
+                       <element name="ThreadAuthor" type="string" />
+                       <element name="ThreadEditStatus" type="string" />
+                       <element name="ThreadType" type="string" />
+               </sequence>
+       </complexType>
+
+</schema>
index fd47d13..e96bd6c 100644 (file)
@@ -1,4 +1,4 @@
-<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.9/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.9/ http://www.mediawiki.org/xml/export-0.9.xsd" version="0.9" xml:lang="en">
+<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="en">
   
   <!-- Optional global configuration info -->
   <siteinfo>
       </contributor>
       <minor />
       <comment>I have just one thing to say!</comment>
-      <text xml:space="preserve" bytes="25">A bunch of [[text]] here.</text>
-      <sha1>5x0ux8iwjrbmfzgv6pkketxgkcnpr7h</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
+      <text xml:space="preserve" bytes="25">A bunch of [[text]] here.</text>
+      <sha1>5x0ux8iwjrbmfzgv6pkketxgkcnpr7h</sha1>
     </revision>
     
     <revision>
         <ip>10.0.0.2</ip>
       </contributor>
       <comment>new!</comment>
-      <text xml:space="preserve" bytes="24">An earlier [[revision]].</text>
-      <sha1>etaxt3shcge6igz1biwy3d4um2pnle4</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
+      <text xml:space="preserve" bytes="24">An earlier [[revision]].</text>
+      <sha1>etaxt3shcge6igz1biwy3d4um2pnle4</sha1>
     </revision>
   </page>
   
       <timestamp>2001-01-15T14:03:00Z</timestamp>
       <contributor><ip>10.0.0.2</ip></contributor>
       <comment>hey</comment>
-      <text xml:space="preserve" bytes="47">WHYD YOU LOCK PAGE??!!! i was editing that jerk</text>
-      <sha1>ml80vmyjlixdstnywwihx003exfzq9j</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
+      <text xml:space="preserve" bytes="47">WHYD YOU LOCK PAGE??!!! i was editing that jerk</text>
+      <sha1>ml80vmyjlixdstnywwihx003exfzq9j</sha1>
     </revision>
   </page>
   
       <timestamp>2001-01-15T20:34:12Z</timestamp>
       <contributor><username>Foobar</username><id>42</id></contributor>
       <comment>My awesomeest image!</comment>
-      <text xml:space="preserve" bytes="52">This is an awesome little imgae. I lurves it. {{PD}}</text>
-      <sha1>mehom37npwkpzhaiwu3wyr0egalumki</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
+      <text xml:space="preserve" bytes="52">This is an awesome little imgae. I lurves it. {{PD}}</text>
+      <sha1>mehom37npwkpzhaiwu3wyr0egalumki</sha1>
     </revision>
     <upload>
       <timestamp>2001-01-15T20:34:12Z</timestamp>
index d862983..0eb6572 100644 (file)
@@ -260,13 +260,6 @@ $password: the password being submitted, not yet checked for validity
           a machine API rather than the HTML user interface.
 &$msg: the message identifier for abort reason (new in 1.18, not available before 1.18)
 
-'AbortMove': Allows to abort moving an article (title).
-$old: old title
-$nt: new title
-$user: user who is doing the move
-$err: error message
-$reason: the reason for the move (added in 1.13)
-
 'AbortNewAccount': Return false to cancel explicit account creation.
 $user: the User object about to be created (read-only, incomplete)
 &$msg: out parameter: HTML to display on abort
@@ -379,20 +372,41 @@ $editPage : the EditPage object
 $text : the new text of the article (has yet to be saved)
 &$resultArr : data in this array will be added to the API result
 
+'ApiFormatHighlight': Use to syntax-highlight API pretty-printed output. When
+highlighting, add output to $context->getOutput() and return false.
+$context: An IContextSource.
+$text: Text to be highlighted.
+$mime: MIME type of $text.
+$format: API format code for $text.
+
 'APIGetAllowedParams': Use this hook to modify a module's parameters.
 &$module: ApiBase Module object
 &$params: Array of parameters
 $flags: int zero or OR-ed flags like ApiBase::GET_VALUES_FOR_HELP
 
-'APIGetDescription': Use this hook to modify a module's description.
+'APIGetDescription': DEPRECATED! Use APIGetDescriptionMessages instead.
+Use this hook to modify a module's description.
 &$module: ApiBase Module object
-&$desc: Array of descriptions
+&$desc: String description, or array of description strings
 
-'APIGetParamDescription': Use this hook to modify a module's parameter
-descriptions.
+'APIGetDescriptionMessages': Use this hook to modify a module's help message.
+$module: ApiBase Module object
+&$msg: Array of Message objects
+
+'APIGetParamDescription': DEPRECATED! Use APIGetParamDescriptionMessages instead.
+Use this hook to modify a module's parameter descriptions.
 &$module: ApiBase Module object
 &$desc: Array of parameter descriptions
 
+'APIGetParamDescriptionMessages': Use this hook to modify a module's parameter descriptions.
+$module: ApiBase Module object
+&$msg: Array of arrays of Message objects
+
+'APIHelpModifyOutput': Use this hook to modify an API module's help output.
+$module: ApiBase Module object
+&$help: Array of HTML strings to be joined for the output.
+$options: Array Options passed to ApiHelp::getHelp
+
 'APIQueryAfterExecute': After calling the execute() method of an
 action=query submodule. Use this to extend core API modules.
 &$module: Module object
@@ -514,6 +528,10 @@ $error: if the deletion was prohibited, the (raw HTML) error message to display
 $status: Status object, modify this to throw an error. Overridden by $error
   (added in 1.20)
 
+'ArticleDeleteAfterSuccess': Output after an article has been deleted.
+$title: Title of the article that has been deleted.
+$outputPage: OutputPage that can be used to append the output.
+
 'ArticleDeleteComplete': After an article is deleted.
 $wikiPage: the WikiPage that was deleted
 $user: the user that deleted the article
@@ -1814,6 +1832,18 @@ $db: The database object to be queried.
 &$opts: Options for the query.
 &$join_conds: Join conditions for the query.
 
+'MovePageCheckPermissions': Specify whether the user is allowed to move the page.
+$oldTitle: Title object of the current (old) location
+$newTitle: Title object of the new location
+$user: User making the move
+$reason: string of the reason provided by the user
+$status: Status object to pass error messages to
+
+'MovePageIsValidMove': Specify whether a page can be moved for technical reasons.
+$oldTitle: Title object of the current (old) location
+$newTitle: Title object of the new location
+$status: Status object to pass error messages to
+
 'BaseTemplateToolbox': Called by BaseTemplate when building the $toolbox array
 and returning it for the skin to output. You can add items to the toolbox while
 still letting the skin make final decisions on skin-specific markup conventions
@@ -2118,6 +2148,13 @@ $search : search term (not guaranteed to be conveniently normalized)
 $limit : maximum number of results to return
 &$results : out param: array of page names (strings)
 
+'PrefixSearchExtractNamespace': Called if core was not able to extract a
+namespace from the search string so that extensions can attempt it.
+$namespaces : array of int namespace keys to search in (change this if you can
+extract namespaces)
+$search : search term (replace this with term without the namespace if you can
+extract one)
+
 'PrefsEmailAudit': Called when user changes their email address.
 $user: User (object) changing his email address
 $oldaddr: old email address (string)
@@ -2708,8 +2745,10 @@ actions).
 $action: action name
 $article: article "acted on"
 
-'UnitTestsList': Called when building a list of files with PHPUnit tests.
-&$files: list of files
+'UnitTestsList': Called when building a list of paths containing PHPUnit tests.
+Since 1.24: Paths pointing to a directory will be recursively scanned for
+test case files matching the suffix "Test.php".
+&$paths: list of test cases and directories to search.
 
 'UnwatchArticle': Before a watch is removed from an article.
 $user: user watching
@@ -2837,7 +2876,7 @@ $user: User object
 'UserGetLanguageObject': Called when getting user's interface language object.
 $user: User object
 &$code: Language code that will be used to create the object
-$context: RequestContext object
+$context: IContextSource object
 
 'UserGetReservedNames': Allows to modify $wgReservedUsernames at run time.
 &$reservedUsernames: $wgReservedUsernames
@@ -2970,6 +3009,11 @@ when UserMailer sends an email, with a bounce handling extension.
 $to: Array of MailAddress objects for the recipients
 &$returnPath: The return address string
 
+'LoginFormValidErrorMessages': Called in LoginForm when a function gets valid error
+messages. Allows to add additional error messages (except messages already in
+LoginForm::$validErrorMessages).
+&$messages Already added messages (inclusive messages from LoginForm::$validErrorMessages)
+
 'WantedPages::getQueryInfo': Called in WantedPagesPage::getQueryInfo(), can be
 used to alter the SQL query which gets the list of wanted pages.
 &$wantedPages: WantedPagesPage object
diff --git a/docs/mwlogger.txt b/docs/mwlogger.txt
new file mode 100644 (file)
index 0000000..aab9599
--- /dev/null
@@ -0,0 +1,70 @@
+MWLogger implements a PSR-3 [0] compatible message logging system.
+
+The MWLogger class is actually a thin wrapper around any PSR-3 LoggerInterface
+implementation. Named MWLogger instances can be obtained from the
+MWLogger::getInstance() static method. MWLogger expects a class implementing
+the MWLoggerSpi interface to act as a factory for new MWLogger instances.
+
+The "Spi" in MWLoggerSpi stands for "service provider interface". An SPI is
+a API intended to be implemented or extended by a third party. This software
+design pattern is intended to enable framework extension and replaceable
+components. It is specifically used in the MWLogger service to allow alternate
+PSR-3 logging implementations to be easily integrated with MediaWiki.
+
+The MWLogger::getInstance() static method is the means by which most code
+acquires an MWLogger instance. This in turn delegates creation of MWLogger
+instances to a class implementing the MWLoggerSpi service provider interface.
+
+The service provider interface allows the backend logging library to be
+implemented in multiple ways. The $wgMWLoggerDefaultSpi global provides the
+classname of the default MWLoggerSpi implementation to be loaded at runtime.
+This can either be the name of a class implementing the MWLoggerSpi with
+a zero argument constructor or a callable that will return an MWLoggerSpi
+instance. Alternately the MWLogger::registerProvider method can be called
+to inject an MWLoggerSpi instance into MWLogger and bypass the use of this
+configuration variable.
+
+The MWLoggerLegacySpi class implements a service provider to generate
+MWLoggerLegacyLogger instances. The MWLoggerLegacyLogger class implements the
+PSR-3 logger interface and provides output and configuration equivalent to the
+historic logging output of wfDebug, wfDebugLog, wfLogDBError and wfErrorLog.
+The MWLoggerLegacySpi class is the default service provider configured in
+DefaultSettings.php. It's usage should be transparent for users who are not
+ready or do not wish to switch to a alternate logging platform.
+
+The MWLoggerMonologSpi class implements a service provider to generate
+MWLogger instances that use the Monolog [1] logging library. See the PHP docs
+(or source) for MWLoggerMonologSpi for details on the configuration of this
+provider. The default configuration installs a null handler that will silently
+discard all logging events. The documentation provided by the class describes
+a more feature rich logging configuration.
+
+== Classes ==
+; MWLogger
+: PSR-3 compatible logger that wraps any \Psr\Log\LoggerInterface
+  implementation
+; MWLoggerSpi
+: Service provider interface for MWLogger factories
+; MWLoggerNullSpi
+: MWLoggerSpi for creating instances that discard all log events
+; MWLoggerLegacySpi
+: Service provider for creating MWLoggerLegacyLogger instances
+; MWLoggerLegacyLogger
+: PSR-3 logger that mimics the historical output and configuration of wfDebug,
+  wfErrorLog and other global logging functions.
+; MWLoggerMonologSpi
+: MWLoggerSpi for creating instances backed by the monolog logging library
+; MwLoggerMonologHandler
+: Monolog handler that replicates the udp2log and file logging
+  functionality of wfErrorLog()
+; MwLoggerMonologProcessor
+: Monolog log processer that adds host: wfHostname() and wiki: wfWikiID()
+  to all records
+
+== Globals ==
+; $wgMWLoggerDefaultSpi
+: Specification for creating the default service provider interface to use
+  with MWLogger
+
+[0]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
+[1]: https://github.com/Seldaek/monolog
index 50fcd61..e89e500 100644 (file)
@@ -39,7 +39,6 @@ $wgAutoloadLocalClasses = array(
        'BloomCache' => 'includes/cache/bloom/BloomCache.php',
        'BloomCacheRedis' => 'includes/cache/bloom/BloomCacheRedis.php',
        'BloomFilterTitleHasLogs' => 'includes/cache/bloom/BloomFilters.php',
-       'CacheHelper' => 'includes/CacheHelper.php',
        'Category' => 'includes/Category.php',
        'CategoryFinder' => 'includes/CategoryFinder.php',
        'CategoryViewer' => 'includes/CategoryViewer.php',
@@ -49,8 +48,6 @@ $wgAutoloadLocalClasses = array(
        'CollationCkb' => 'includes/Collation.php',
        'CollationEt' => 'includes/Collation.php',
        'ConcatenatedGzipHistoryBlob' => 'includes/HistoryBlob.php',
-       'Cookie' => 'includes/Cookie.php',
-       'CookieJar' => 'includes/Cookie.php',
        'CurlHttpRequest' => 'includes/HttpFunctions.php',
        'DeprecatedGlobal' => 'includes/DeprecatedGlobal.php',
        'DerivativeRequest' => 'includes/WebRequest.php',
@@ -106,6 +103,8 @@ $wgAutoloadLocalClasses = array(
        'HTMLSelectField' => 'includes/htmlform/HTMLSelectField.php',
        'HTMLSelectLimitField' => 'includes/htmlform/HTMLSelectLimitField.php',
        'HTMLSelectOrOtherField' => 'includes/htmlform/HTMLSelectOrOtherField.php',
+       'HTMLSelectNamespace' => 'includes/htmlform/HTMLSelectNamespace.php',
+       'HTMLTagFilter' => 'includes/htmlform/HTMLTagFilter.php',
        'HTMLSubmitField' => 'includes/htmlform/HTMLSubmitField.php',
        'HTMLTextAreaField' => 'includes/htmlform/HTMLTextAreaField.php',
        'HTMLTextField' => 'includes/htmlform/HTMLTextField.php',
@@ -130,6 +129,7 @@ $wgAutoloadLocalClasses = array(
        'MWHookException' => 'includes/Hooks.php',
        'MWHttpRequest' => 'includes/HttpFunctions.php',
        'MWNamespace' => 'includes/MWNamespace.php',
+       'ObjectFactory' => 'includes/libs/ObjectFactory.php',
        'OutputPage' => 'includes/OutputPage.php',
        'PathRouter' => 'includes/PathRouter.php',
        'PathRouterPatternReplacer' => 'includes/PathRouter.php',
@@ -164,7 +164,6 @@ $wgAutoloadLocalClasses = array(
        'StubObject' => 'includes/StubObject.php',
        'StubUserLang' => 'includes/StubObject.php',
        'MWTimestamp' => 'includes/MWTimestamp.php',
-       'TimestampException' => 'includes/TimestampException.php',
        'Title' => 'includes/Title.php',
        'TitleArray' => 'includes/TitleArray.php',
        'TitleArrayFromResult' => 'includes/TitleArrayFromResult.php',
@@ -261,6 +260,7 @@ $wgAutoloadLocalClasses = array(
        'ApiPurge' => 'includes/api/ApiPurge.php',
        'ApiQuery' => 'includes/api/ApiQuery.php',
        'ApiQueryAllCategories' => 'includes/api/ApiQueryAllCategories.php',
+       'ApiQueryAllDeletedRevisions' => 'includes/api/ApiQueryAllDeletedRevisions.php',
        'ApiQueryAllImages' => 'includes/api/ApiQueryAllImages.php',
        'ApiQueryAllLinks' => 'includes/api/ApiQueryAllLinks.php',
        'ApiQueryAllMessages' => 'includes/api/ApiQueryAllMessages.php',
@@ -275,6 +275,7 @@ $wgAutoloadLocalClasses = array(
        'ApiQueryCategoryMembers' => 'includes/api/ApiQueryCategoryMembers.php',
        'ApiQueryContributions' => 'includes/api/ApiQueryUserContributions.php',
        'ApiQueryContributors' => 'includes/api/ApiQueryContributors.php',
+       'ApiQueryDeletedRevisions' => 'includes/api/ApiQueryDeletedRevisions.php',
        'ApiQueryDeletedrevs' => 'includes/api/ApiQueryDeletedrevs.php',
        'ApiQueryDisabled' => 'includes/api/ApiQueryDisabled.php',
        'ApiQueryDuplicateFiles' => 'includes/api/ApiQueryDuplicateFiles.php',
@@ -302,6 +303,7 @@ $wgAutoloadLocalClasses = array(
        'ApiQueryRecentChanges' => 'includes/api/ApiQueryRecentChanges.php',
        'ApiQueryFileRepoInfo' => 'includes/api/ApiQueryFileRepoInfo.php',
        'ApiQueryRevisions' => 'includes/api/ApiQueryRevisions.php',
+       'ApiQueryRevisionsBase' => 'includes/api/ApiQueryRevisionsBase.php',
        'ApiQuerySearch' => 'includes/api/ApiQuerySearch.php',
        'ApiQuerySiteinfo' => 'includes/api/ApiQuerySiteinfo.php',
        'ApiQueryStashImageInfo' => 'includes/api/ApiQueryStashImageInfo.php',
@@ -462,6 +464,14 @@ $wgAutoloadLocalClasses = array(
 
        # includes/debug
        'MWDebug' => 'includes/debug/MWDebug.php',
+       'MWLogger' => 'includes/debug/logger/Logger.php',
+       'MWLoggerLegacyLogger' => 'includes/debug/logger/legacy/Logger.php',
+       'MWLoggerLegacySpi' => 'includes/debug/logger/legacy/Spi.php',
+       'MWLoggerMonologHandler' => 'includes/debug/logger/monolog/Handler.php',
+       'MWLoggerMonologProcessor' => 'includes/debug/logger/monolog/Processor.php',
+       'MWLoggerMonologSpi' => 'includes/debug/logger/monolog/Spi.php',
+       'MWLoggerNullSpi' => 'includes/debug/logger/NullSpi.php',
+       'MWLoggerSpi' => 'includes/debug/logger/Spi.php',
 
        # includes/deferred
        'DataUpdate' => 'includes/deferred/DataUpdate.php',
@@ -475,7 +485,6 @@ $wgAutoloadLocalClasses = array(
        'SiteStatsUpdate' => 'includes/deferred/SiteStatsUpdate.php',
        'SqlDataUpdate' => 'includes/deferred/SqlDataUpdate.php',
        'SquidUpdate' => 'includes/deferred/SquidUpdate.php',
-       'ViewCountUpdate' => 'includes/deferred/ViewCountUpdate.php',
 
        # includes/diff
        'DiffEngine' => 'includes/diff/DairikiDiff.php',
@@ -500,6 +509,7 @@ $wgAutoloadLocalClasses = array(
        'UserBlockedError' => 'includes/exception/UserBlockedError.php',
        'UserNotLoggedIn' => 'includes/exception/UserNotLoggedIn.php',
        'ThrottledError' => 'includes/exception/ThrottledError.php',
+       'TimestampException' => 'includes/exception/TimestampException.php',
        'ReadOnlyError' => 'includes/exception/ReadOnlyError.php',
        'PermissionsError' => 'includes/exception/PermissionsError.php',
        'MWException' => 'includes/exception/MWException.php',
@@ -663,8 +673,9 @@ $wgAutoloadLocalClasses = array(
        'FormatJson' => 'includes/json/FormatJson.php',
 
        # includes/libs
-       'CSSJanus' => 'includes/libs/CSSJanus.php',
-       'CSSJanusTokenizer' => 'includes/libs/CSSJanus.php',
+       'ArrayUtils' => 'includes/libs/ArrayUtils.php',
+       'Cookie' => 'includes/libs/Cookie.php',
+       'CookieJar' => 'includes/libs/Cookie.php',
        'CSSMin' => 'includes/libs/CSSMin.php',
        'GenericArrayObject' => 'includes/libs/GenericArrayObject.php',
        'HashRing' => 'includes/libs/HashRing.php',
@@ -709,6 +720,7 @@ $wgAutoloadLocalClasses = array(
        'LogPage' => 'includes/logging/LogPage.php',
        'LogPager' => 'includes/logging/LogPager.php',
        'ManualLogEntry' => 'includes/logging/LogEntry.php',
+       'MergeLogFormatter' => 'includes/logging/MergeLogFormatter.php',
        'MoveLogFormatter' => 'includes/logging/MoveLogFormatter.php',
        'NewUsersLogFormatter' => 'includes/logging/NewUsersLogFormatter.php',
        'PageLangLogFormatter' => 'includes/logging/PageLangLogFormatter.php',
@@ -858,15 +870,14 @@ $wgAutoloadLocalClasses = array(
 
        # includes/profiler
        'Profiler' => 'includes/profiler/Profiler.php',
-       'ProfilerMwprof' => 'includes/profiler/ProfilerMwprof.php',
        'ProfilerSimpleDB' => 'includes/profiler/ProfilerSimpleDB.php',
        'ProfilerSimpleText' => 'includes/profiler/ProfilerSimpleText.php',
        'ProfilerSimpleTrace' => 'includes/profiler/ProfilerSimpleTrace.php',
        'ProfilerSimpleUDP' => 'includes/profiler/ProfilerSimpleUDP.php',
        'ProfilerStandard' => 'includes/profiler/ProfilerStandard.php',
        'ProfilerStub' => 'includes/profiler/ProfilerStub.php',
-       'ProfileSection' => 'includes/profiler/Profiler.php',
-       'TransactionProfiler' => 'includes/profiler/Profiler.php',
+       'ProfileSection' => 'includes/profiler/ProfileSection.php',
+       'TransactionProfiler' => 'includes/profiler/TransactionProfiler.php',
 
        # includes/rcfeed
        'RCFeedEngine' => 'includes/rcfeed/RCFeedEngine.php',
@@ -1014,7 +1025,6 @@ $wgAutoloadLocalClasses = array(
        'NewFilesPager' => 'includes/specials/SpecialNewimages.php',
        'NewPagesPager' => 'includes/specials/SpecialNewpages.php',
        'PageArchive' => 'includes/specials/SpecialUndelete.php',
-       'PopularPagesPage' => 'includes/specials/SpecialPopularpages.php',
        'ProtectedPagesPager' => 'includes/specials/SpecialProtectedpages.php',
        'ProtectedTitlesPager' => 'includes/specials/SpecialProtectedtitles.php',
        'RandomPage' => 'includes/specials/SpecialRandompage.php',
@@ -1023,6 +1033,7 @@ $wgAutoloadLocalClasses = array(
        'SpecialAllMessages' => 'includes/specials/SpecialAllMessages.php',
        'SpecialAllMyUploads' => 'includes/specials/SpecialMyRedirectPages.php',
        'SpecialAllPages' => 'includes/specials/SpecialAllPages.php',
+       'SpecialApiHelp' => 'includes/specials/SpecialApiHelp.php',
        'SpecialBlankpage' => 'includes/specials/SpecialBlankpage.php',
        'SpecialBlock' => 'includes/specials/SpecialBlock.php',
        'SpecialBlockList' => 'includes/specials/SpecialBlockList.php',
@@ -1141,7 +1152,6 @@ $wgAutoloadLocalClasses = array(
        'UploadStashNoSuchKeyException' => 'includes/upload/UploadStash.php',
 
        # includes/utils
-       'ArrayUtils' => 'includes/utils/ArrayUtils.php',
        'CdbException' => 'includes/utils/Cdb.php',
        'CdbFunctions' => 'includes/utils/CdbPHP.php',
        'CdbReader' => 'includes/utils/Cdb.php',
index 8e52bf0..3c80035 100644 (file)
@@ -893,7 +893,7 @@ class Block {
        }
 
        /**
-        * Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range
+        * Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range)
         * @param bool|null $x
         * @return bool
         */
@@ -1114,6 +1114,7 @@ class Block {
 
        /**
         * From a list of multiple blocks, find the most exact and strongest Block.
+        *
         * The logic for finding the "best" block is:
         *  - Blocks that match the block's target IP are preferred over ones in a range
         *  - Hardblocks are chosen over softblocks that prevent account creation
@@ -1121,8 +1122,10 @@ class Block {
         *  - Other softblocks are chosen over autoblocks
         *  - If there are multiple exact or range blocks at the same level, the one chosen
         *    is random
+        * This should be used when $blocks where retrieved from the user's IP address
+        * and $ipChain is populated from the same IP address information.
         *
-        * @param array $blocks Array of blocks
+        * @param array $blocks Array of Block objects
         * @param array $ipChain List of IPs (strings). This is used to determine how "close"
         *        a block is to the server, and if a block matches exactly, or is in a range.
         *        The order is furthest from the server to nearest e.g., (Browser, proxy1, proxy2,
index 7581ae4..f68da95 100644 (file)
@@ -136,7 +136,7 @@ class CategoryViewer extends ContextSource {
                }
 
                $lang = $this->getLanguage();
-               $langAttribs = array( 'lang' => $lang->getCode(), 'dir' => $lang->getDir() );
+               $langAttribs = array( 'lang' => $lang->getHtmlCode(), 'dir' => $lang->getDir() );
                # put a div around the headings which are in the user language
                $r = Html::openElement( 'div', $langAttribs ) . $r . '</div>';
 
@@ -515,7 +515,7 @@ class CategoryViewer extends ContextSource {
                }
 
                $pageLang = $this->title->getPageLanguage();
-               $attribs = array( 'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(),
+               $attribs = array( 'lang' => $pageLang->getHtmlCode(), 'dir' => $pageLang->getDir(),
                        'class' => 'mw-content-' . $pageLang->getDir() );
                $list = Html::rawElement( 'div', $attribs, $list );
 
diff --git a/includes/Cookie.php b/includes/Cookie.php
deleted file mode 100644 (file)
index cb04190..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-<?php
-/**
- * Cookie for HTTP requests.
- *
- * 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 HTTP
- */
-
-class Cookie {
-       protected $name;
-       protected $value;
-       protected $expires;
-       protected $path;
-       protected $domain;
-       protected $isSessionKey = true;
-       // TO IMPLEMENT  protected $secure
-       // TO IMPLEMENT? protected $maxAge (add onto expires)
-       // TO IMPLEMENT? protected $version
-       // TO IMPLEMENT? protected $comment
-
-       function __construct( $name, $value, $attr ) {
-               $this->name = $name;
-               $this->set( $value, $attr );
-       }
-
-       /**
-        * Sets a cookie.  Used before a request to set up any individual
-        * cookies. Used internally after a request to parse the
-        * Set-Cookie headers.
-        *
-        * @param string $value The value of the cookie
-        * @param array $attr Possible key/values:
-        *        expires A date string
-        *        path    The path this cookie is used on
-        *        domain  Domain this cookie is used on
-        * @throws MWException
-        */
-       public function set( $value, $attr ) {
-               $this->value = $value;
-
-               if ( isset( $attr['expires'] ) ) {
-                       $this->isSessionKey = false;
-                       $this->expires = strtotime( $attr['expires'] );
-               }
-
-               if ( isset( $attr['path'] ) ) {
-                       $this->path = $attr['path'];
-               } else {
-                       $this->path = '/';
-               }
-
-               if ( isset( $attr['domain'] ) ) {
-                       if ( self::validateCookieDomain( $attr['domain'] ) ) {
-                               $this->domain = $attr['domain'];
-                       }
-               } else {
-                       throw new MWException( 'You must specify a domain.' );
-               }
-       }
-
-       /**
-        * Return the true if the cookie is valid is valid.  Otherwise,
-        * false.  The uses a method similar to IE cookie security
-        * described here:
-        * http://kuza55.blogspot.com/2008/02/understanding-cookie-security.html
-        * A better method might be to use a blacklist like
-        * http://publicsuffix.org/
-        *
-        * @todo fixme fails to detect 3-letter top-level domains
-        * @todo fixme fails to detect 2-letter top-level domains for single-domain use (probably
-        * not a big problem in practice, but there are test cases)
-        *
-        * @param string $domain The domain to validate
-        * @param string $originDomain (optional) the domain the cookie originates from
-        * @return bool
-        */
-       public static function validateCookieDomain( $domain, $originDomain = null ) {
-               $dc = explode( ".", $domain );
-
-               // Don't allow a trailing dot or addresses without a or just a leading dot
-               if ( substr( $domain, -1 ) == '.' ||
-                       count( $dc ) <= 1 ||
-                       count( $dc ) == 2 && $dc[0] === ''
-               ) {
-                       return false;
-               }
-
-               // Only allow full, valid IP addresses
-               if ( preg_match( '/^[0-9.]+$/', $domain ) ) {
-                       if ( count( $dc ) != 4 ) {
-                               return false;
-                       }
-
-                       if ( ip2long( $domain ) === false ) {
-                               return false;
-                       }
-
-                       if ( $originDomain == null || $originDomain == $domain ) {
-                               return true;
-                       }
-
-               }
-
-               // Don't allow cookies for "co.uk" or "gov.uk", etc, but allow "supermarket.uk"
-               if ( strrpos( $domain, "." ) - strlen( $domain ) == -3 ) {
-                       if ( ( count( $dc ) == 2 && strlen( $dc[0] ) <= 2 )
-                               || ( count( $dc ) == 3 && strlen( $dc[0] ) == "" && strlen( $dc[1] ) <= 2 ) ) {
-                               return false;
-                       }
-                       if ( ( count( $dc ) == 2 || ( count( $dc ) == 3 && $dc[0] == '' ) )
-                               && preg_match( '/(com|net|org|gov|edu)\...$/', $domain ) ) {
-                               return false;
-                       }
-               }
-
-               if ( $originDomain != null ) {
-                       if ( substr( $domain, 0, 1 ) != '.' && $domain != $originDomain ) {
-                               return false;
-                       }
-
-                       if ( substr( $domain, 0, 1 ) == '.'
-                               && substr_compare(
-                                       $originDomain,
-                                       $domain,
-                                       -strlen( $domain ),
-                                       strlen( $domain ),
-                                       true
-                               ) != 0
-                       ) {
-                               return false;
-                       }
-               }
-
-               return true;
-       }
-
-       /**
-        * Serialize the cookie jar into a format useful for HTTP Request headers.
-        *
-        * @param string $path The path that will be used. Required.
-        * @param string $domain The domain that will be used. Required.
-        * @return string
-        */
-       public function serializeToHttpRequest( $path, $domain ) {
-               $ret = '';
-
-               if ( $this->canServeDomain( $domain )
-                               && $this->canServePath( $path )
-                               && $this->isUnExpired() ) {
-                       $ret = $this->name . '=' . $this->value;
-               }
-
-               return $ret;
-       }
-
-       /**
-        * @param string $domain
-        * @return bool
-        */
-       protected function canServeDomain( $domain ) {
-               if ( $domain == $this->domain
-                       || ( strlen( $domain ) > strlen( $this->domain )
-                               && substr( $this->domain, 0, 1 ) == '.'
-                               && substr_compare(
-                                       $domain,
-                                       $this->domain,
-                                       -strlen( $this->domain ),
-                                       strlen( $this->domain ),
-                                       true
-                               ) == 0
-                       )
-               ) {
-                       return true;
-               }
-
-               return false;
-       }
-
-       /**
-        * @param string $path
-        * @return bool
-        */
-       protected function canServePath( $path ) {
-               return ( $this->path && substr_compare( $this->path, $path, 0, strlen( $this->path ) ) == 0 );
-       }
-
-       /**
-        * @return bool
-        */
-       protected function isUnExpired() {
-               return $this->isSessionKey || $this->expires > time();
-       }
-}
-
-class CookieJar {
-       private $cookie = array();
-
-       /**
-        * Set a cookie in the cookie jar. Make sure only one cookie per-name exists.
-        * @see Cookie::set()
-        * @param string $name
-        * @param string $value
-        * @param array $attr
-        */
-       public function setCookie( $name, $value, $attr ) {
-               /* cookies: case insensitive, so this should work.
-                * We'll still send the cookies back in the same case we got them, though.
-                */
-               $index = strtoupper( $name );
-
-               if ( isset( $this->cookie[$index] ) ) {
-                       $this->cookie[$index]->set( $value, $attr );
-               } else {
-                       $this->cookie[$index] = new Cookie( $name, $value, $attr );
-               }
-       }
-
-       /**
-        * @see Cookie::serializeToHttpRequest
-        * @param string $path
-        * @param string $domain
-        * @return string
-        */
-       public function serializeToHttpRequest( $path, $domain ) {
-               $cookies = array();
-
-               foreach ( $this->cookie as $c ) {
-                       $serialized = $c->serializeToHttpRequest( $path, $domain );
-
-                       if ( $serialized ) {
-                               $cookies[] = $serialized;
-                       }
-               }
-
-               return implode( '; ', $cookies );
-       }
-
-       /**
-        * Parse the content of an Set-Cookie HTTP Response header.
-        *
-        * @param string $cookie
-        * @param string $domain Cookie's domain
-        * @return null
-        */
-       public function parseCookieResponseHeader( $cookie, $domain ) {
-               $len = strlen( 'Set-Cookie:' );
-
-               if ( substr_compare( 'Set-Cookie:', $cookie, 0, $len, true ) === 0 ) {
-                       $cookie = substr( $cookie, $len );
-               }
-
-               $bit = array_map( 'trim', explode( ';', $cookie ) );
-
-               if ( count( $bit ) >= 1 ) {
-                       list( $name, $value ) = explode( '=', array_shift( $bit ), 2 );
-                       $attr = array();
-
-                       foreach ( $bit as $piece ) {
-                               $parts = explode( '=', $piece );
-                               if ( count( $parts ) > 1 ) {
-                                       $attr[strtolower( $parts[0] )] = $parts[1];
-                               } else {
-                                       $attr[strtolower( $parts[0] )] = true;
-                               }
-                       }
-
-                       if ( !isset( $attr['domain'] ) ) {
-                               $attr['domain'] = $domain;
-                       } elseif ( !Cookie::validateCookieDomain( $attr['domain'], $domain ) ) {
-                               return null;
-                       }
-
-                       $this->setCookie( $name, $value, $attr );
-               }
-       }
-}
index c6e91cf..29d653d 100644 (file)
@@ -1997,15 +1997,6 @@ $wgAllowSlowParserFunctions = false;
  */
 $wgAllowSchemaUpdates = true;
 
-/**
- * Anti-lock flags - bitfield
- *   - ALF_NO_LINK_LOCK:
- *       Don't use locking reads when updating the link table. This is
- *       necessary for wikis with a high edit rate for performance
- *       reasons, but may cause link table inconsistency
- */
-$wgAntiLockFlags = 0;
-
 /**
  * Maximum article size in kilobytes
  */
@@ -2101,7 +2092,7 @@ $wgLanguageConverterCacheType = CACHE_ANYTHING;
  */
 $wgObjectCaches = array(
        CACHE_NONE => array( 'class' => 'EmptyBagOStuff' ),
-       CACHE_DB => array( 'class' => 'SqlBagOStuff', 'table' => 'objectcache' ),
+       CACHE_DB => array( 'class' => 'SqlBagOStuff' ),
 
        CACHE_ANYTHING => array( 'factory' => 'ObjectCache::newAnything' ),
        CACHE_ACCEL => array( 'factory' => 'ObjectCache::newAccelerator' ),
@@ -3088,6 +3079,7 @@ $wgEditPageFrameOptions = 'DENY';
  *   - 'DENY': Do not allow framing. This is recommended for most wikis.
  *   - 'SAMEORIGIN': Allow framing by pages on the same domain.
  *   - false: Allow all framing.
+ * Note: $wgBreakFrames will override this for human formatted API output.
  */
 $wgApiFrameOptions = 'DENY';
 
@@ -3806,6 +3798,7 @@ $wgNamespacesWithSubpages = array(
 $wgTrackingCategories = array(
        'index-category',
        'noindex-category',
+       'duplicate-args-category',
        'expensive-parserfunction-category',
        'post-expand-template-argument-category',
        'post-expand-template-inclusion-category',
@@ -4124,15 +4117,6 @@ $wgTranscludeCacheExpiry = 3600;
  */
 $wgArticleCountMethod = 'link';
 
-/**
- * wgHitcounterUpdateFreq sets how often page counters should be updated, higher
- * values are easier on the database. A value of 1 causes the counters to be
- * updated on every hit, any higher value n cause them to update *on average*
- * every n hits. Should be set to either 1 or something largish, eg 1000, for
- * maximum efficiency.
- */
-$wgHitcounterUpdateFreq = 1;
-
 /**
  * How many days user must be idle before he is considered inactive. Will affect
  * the number shown on Special:Statistics, Special:ActiveUsers, and the
@@ -4283,7 +4267,7 @@ $wgDefaultUserOptions = array(
        'enotifrevealaddr' => 0,
        'enotifusertalkpages' => 1,
        'enotifwatchlistpages' => 1,
-       'extendwatchlist' => 0,
+       'extendwatchlist' => 1,
        'fancysig' => 0,
        'forceeditsummary' => 0,
        'gender' => 'unknown',
@@ -4309,7 +4293,7 @@ $wgDefaultUserOptions = array(
        'thumbsize' => 5,
        'underline' => 2,
        'uselivepreview' => 0,
-       'usenewrc' => 0,
+       'usenewrc' => 1,
        'watchcreations' => 1,
        'watchdefault' => 1,
        'watchdeletion' => 0,
@@ -5232,6 +5216,26 @@ $wgDebugDumpSqlLength = 500;
  */
 $wgDebugLogGroups = array();
 
+/**
+ * Default service provider for creating MWLogger instances.
+ *
+ * The value should be an array suitable for use with
+ * ObjectFactory::getObjectFromSpec(). The created object is expected to
+ * implement the MWLoggerSpi interface. See ObjectFactory for additional
+ * details.
+ *
+ * Alternately the MWLogger::registerProvider method can be called to inject
+ * an MWLoggerSpi instance into MWLogger and bypass the use of this
+ * configuration variable entirely.
+ *
+ * @since 1.25
+ * @var array $wgMWLoggerDefaultSpi
+ * @see MwLogger
+ */
+$wgMWLoggerDefaultSpi = array(
+       'class' => 'MWLoggerLegacySpi',
+);
+
 /**
  * Display debug data at the bottom of the main content area.
  *
@@ -5393,12 +5397,6 @@ $wgAggregateStatsID = false;
  */
 $wgStatsFormatString = "stats/%s - %s 1 1 1 1 %s\n";
 
-/**
- * Whereas to count the number of time an article is viewed.
- * Does not work if pages are cached (for example with squid).
- */
-$wgDisableCounters = false;
-
 /**
  * InfoAction retrieves a list of transclusion links (both to and from).
  * This number puts a limit on that query in the case of highly transcluded
@@ -6176,6 +6174,7 @@ $wgExtensionMessagesFiles = array();
  */
 $wgMessagesDirs = array(
        'core' => "$IP/languages/i18n",
+       'api' => "$IP/includes/api/i18n",
        'oojs-ui' => "$IP/resources/lib/oojs-ui/i18n",
 );
 
@@ -6598,7 +6597,6 @@ $wgLogActions = array(
        'protect/move_prot' => 'movedarticleprotection',
        'import/upload' => 'import-logentry-upload',
        'import/interwiki' => 'import-logentry-interwiki',
-       'merge/merge' => 'pagemerge-logentry',
        'suppress/block' => 'blocklogentry',
        'suppress/reblock' => 'reblock-logentry',
 );
@@ -6625,6 +6623,7 @@ $wgLogActionsHandlers = array(
        'upload/upload' => 'LogFormatter',
        'upload/overwrite' => 'LogFormatter',
        'upload/revert' => 'LogFormatter',
+       'merge/merge' => 'MergeLogFormatter',
 );
 
 /**
@@ -7298,13 +7297,21 @@ $wgPagePropsHaveSortkey = true;
 $wgHttpsPort = 443;
 
 /**
- * Secret and algorithm for hmac-based key derivation function (fast,
+ * Secret for hmac-based key derivation function (fast,
  * cryptographically secure random numbers).
  * This should be set in LocalSettings.php, otherwise wgSecretKey will
  * be used.
+ * See also: $wgHKDFAlgorithm
  * @since 1.24
  */
 $wgHKDFSecret = false;
+
+/**
+ * Algorithm for hmac-based key derivation function (fast,
+ * cryptographically secure random numbers).
+ * See also: $wgHKDFSecret
+ * @since 1.24
+ */
 $wgHKDFAlgorithm = 'sha256';
 
 /**
index 017e9ea..d9e3aab 100644 (file)
@@ -152,12 +152,13 @@ define( 'AV_SCAN_FAILED', false );  #scan failed (scanner not found or error in
 
 /**@{
  * Anti-lock flags
- * See DefaultSettings.php for a description
+ * Was used by $wgAntiLockFlags, which was removed with 1.25
+ * Constants kept to not have warnings when used in LocalSettings
  */
 define( 'ALF_PRELOAD_LINKS', 1 ); // unused
 define( 'ALF_PRELOAD_EXISTENCE', 2 ); // unused
-define( 'ALF_NO_LINK_LOCK', 4 );
-define( 'ALF_NO_BLOCK_LOCK', 8 );
+define( 'ALF_NO_LINK_LOCK', 4 ); // unused
+define( 'ALF_NO_BLOCK_LOCK', 8 ); // unused
 /**@}*/
 
 /**@{
index c330231..d106da2 100644 (file)
@@ -779,7 +779,8 @@ class EditPage {
                                // TODO: softened the check for cutover.  Once we determine
                                // that it is safe, we should complete the transition by
                                // removing the "edittime" clause.
-                               $this->incompleteForm = ( !$request->getVal( 'wpUltimateParam' ) && is_null( $this->edittime ) );
+                               $this->incompleteForm = ( !$request->getVal( 'wpUltimateParam' )
+                                       && is_null( $this->edittime ) );
                        }
                        if ( $this->incompleteForm ) {
                                # If the form is incomplete, force to preview.
@@ -2106,6 +2107,17 @@ class EditPage {
                if ( $namespace == NS_MEDIAWIKI ) {
                        # Show a warning if editing an interface message
                        $wgOut->wrapWikiMsg( "<div class='mw-editinginterface'>\n$1\n</div>", 'editinginterface' );
+                       # If this is a default message (but not css or js),
+                       # show a hint that it is translatable on translatewiki.net
+                       if ( !$this->mTitle->hasContentModel( CONTENT_MODEL_CSS )
+                               && !$this->mTitle->hasContentModel( CONTENT_MODEL_JAVASCRIPT )
+                       ) {
+                               $defaultMessageText = $this->mTitle->getDefaultMessageText();
+                               if ( $defaultMessageText !== false ) {
+                                       $wgOut->wrapWikiMsg( "<div class='mw-translateinterface'>\n$1\n</div>",
+                                               'translateinterface' );
+                               }
+                       }
                } elseif ( $namespace == NS_FILE ) {
                        # Show a hint to shared repo
                        $file = wfFindFile( $this->mTitle );
@@ -2137,7 +2149,8 @@ class EditPage {
                        if ( !( $user && $user->isLoggedIn() ) && !$ip ) { # User does not exist
                                $wgOut->wrapWikiMsg( "<div class=\"mw-userpage-userdoesnotexist error\">\n$1\n</div>",
                                        array( 'userpage-userdoesnotexist', wfEscapeWikiText( $username ) ) );
-                       } elseif ( !is_null( $block ) && $block->getType() != Block::TYPE_AUTO ) { # Show log extract if the user is currently blocked
+                       } elseif ( !is_null( $block ) && $block->getType() != Block::TYPE_AUTO ) {
+                               # Show log extract if the user is currently blocked
                                LogEventsList::showLogExtract(
                                        $wgOut,
                                        'block',
@@ -2204,7 +2217,10 @@ class EditPage {
                        if ( $title instanceof Title && $title->exists() && $title->userCan( 'read' ) ) {
                                global $wgOut;
                                // Added using template syntax, to take <noinclude>'s into account.
-                               $wgOut->addWikiTextTitleTidy( '<div class="mw-editintro">{{:' . $title->getFullText() . '}}</div>', $this->mTitle );
+                               $wgOut->addWikiTextTitleTidy(
+                                       '<div class="mw-editintro">{{:' . $title->getFullText() . '}}</div>',
+                                       $this->mTitle
+                               );
                                return true;
                        }
                }
@@ -2940,7 +2956,7 @@ HTML
                );
 
                $pageLang = $this->mTitle->getPageLanguage();
-               $attribs['lang'] = $pageLang->getCode();
+               $attribs['lang'] = $pageLang->getHtmlCode();
                $attribs['dir'] = $pageLang->getDir();
 
                $wgOut->addHTML( Html::textarea( $name, $wikitext, $attribs ) );
@@ -3653,12 +3669,6 @@ HTML
                        $script .= Xml::encodeJsCall( 'mw.toolbar.addButton', $params );
                }
 
-               // This used to be called on DOMReady from mediawiki.action.edit, which
-               // ended up causing race conditions with the setup code above.
-               $script .= "\n" .
-                       "// Create button bar\n" .
-                       "$(function() { mw.toolbar.init(); } );\n";
-
                $script .= '});';
                $wgOut->addScript( Html::inlineScript( ResourceLoader::makeLoaderConditionalScript( $script ) ) );
 
@@ -3761,7 +3771,7 @@ HTML
                        'tabindex' => $tabindex,
                ) + Linker::tooltipAndAccesskeyAttribs( 'preview' );
                $buttons['preview'] = Html::submitButton( wfMessage( 'showpreview' )->text(),
-                       $attribs, array( 'mw-ui-progressive' ) );
+                       $attribs );
                $buttons['live'] = '';
 
                $attribs = array(
@@ -3770,7 +3780,7 @@ HTML
                        'tabindex' => ++$tabindex,
                ) + Linker::tooltipAndAccesskeyAttribs( 'diff' );
                $buttons['diff'] = Html::submitButton( wfMessage( 'showdiff' )->text(),
-                       $attribs, array( 'mw-ui-progressive' ) );
+                       $attribs );
 
                wfRunHooks( 'EditPageBeforeEditButtons', array( &$this, &$buttons, &$tabindex ) );
                return $buttons;
@@ -3974,7 +3984,7 @@ HTML
                                // Do some sanity checks. These aren't needed for reversibility,
                                // but should help keep the breakage down if the editor
                                // breaks one of the entities whilst editing.
-                               if ( ( substr( $invalue, $i, 1 ) == ";" ) and ( strlen( $hexstring ) <= 6 ) ) {
+                               if ( ( substr( $invalue, $i, 1 ) == ";" ) && ( strlen( $hexstring ) <= 6 ) ) {
                                        $codepoint = hexdec( $hexstring );
                                        $result .= codepointToUtf8( $codepoint );
                                } else {
index dee0a86..840e723 100644 (file)
@@ -69,7 +69,7 @@ class WikiExporter {
         * @return string
         */
        public static function schemaVersion() {
-               return "0.9";
+               return "0.10";
        }
 
        /**
@@ -693,6 +693,9 @@ class XmlDumpWriter {
                        $content_format = $content_handler->getDefaultFormat();
                }
 
+               $out .= "      " . Xml::element( 'model', null, strval( $content_model ) ) . "\n";
+               $out .= "      " . Xml::element( 'format', null, strval( $content_format ) ) . "\n";
+
                $text = '';
                if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_TEXT ) ) {
                        $out .= "      " . Xml::element( 'text', array( 'deleted' => 'deleted' ) ) . "\n";
@@ -719,9 +722,6 @@ class XmlDumpWriter {
                        $out .= "      <sha1/>\n";
                }
 
-               $out .= "      " . Xml::element( 'model', null, strval( $content_model ) ) . "\n";
-               $out .= "      " . Xml::element( 'format', null, strval( $content_format ) ) . "\n";
-
                wfRunHooks( 'XmlDumpWriterWriteRevision', array( &$this, &$out, $row, $text ) );
 
                $out .= "    </revision>\n";
index 3306acd..bb80770 100644 (file)
@@ -30,7 +30,7 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 /**
  * Compatibility functions
  *
- * We support PHP 5.3.2 and up.
+ * We support PHP 5.3.3 and up.
  * Re-implementations of newer functions or functions in non-standard
  * PHP extensions may be included here.
  */
@@ -102,19 +102,30 @@ if ( !function_exists( 'gzdecode' ) ) {
 }
 
 // hash_equals function only exists in PHP >= 5.6.0
+// http://php.net/hash_equals
 if ( !function_exists( 'hash_equals' ) ) {
        /**
-        * Check whether a user-provided string is equal to a fixed-length secret without
-        * revealing bytes of the secret through timing differences.
+        * Check whether a user-provided string is equal to a fixed-length secret string
+        * without revealing bytes of the secret string through timing differences.
         *
-        * This timing guarantee -- that a partial match takes the same time as a complete
-        * mismatch -- is why this function is used in some security-sensitive parts of the code.
-        * For example, it shouldn't be possible to guess an HMAC signature one byte at a time.
+        * The usual way to compare strings (PHP's === operator or the underlying memcmp()
+        * function in C) is to compare corresponding bytes and stop at the first difference,
+        * which would take longer for a partial match than for a complete mismatch. This
+        * is not secure when one of the strings (e.g. an HMAC or token) must remain secret
+        * and the other may come from an attacker. Statistical analysis of timing measurements
+        * over many requests may allow the attacker to guess the string's bytes one at a time
+        * (and check his guesses) even if the timing differences are extremely small.
+        *
+        * When making such a security-sensitive comparison, it is essential that the sequence
+        * in which instructions are executed and memory locations are accessed not depend on
+        * the secret string's value. HOWEVER, for simplicity, we do not attempt to minimize
+        * the inevitable leakage of the string's length. That is generally known anyway as
+        * a chararacteristic of the hash function used to compute the secret value.
         *
         * Longer explanation: http://www.emerose.com/timing-attacks-explained
         *
         * @codeCoverageIgnore
-        * @param string $known_string Fixed-length secret to compare against
+        * @param string $known_string Fixed-length secret string to compare against
         * @param string $user_string User-provided string
         * @return bool True if the strings are the same, false otherwise
         */
@@ -134,14 +145,14 @@ if ( !function_exists( 'hash_equals' ) ) {
                        return false;
                }
 
-               // Note that we do one thing PHP doesn't: try to avoid leaking information about
-               // relative lengths of $known_string and $user_string, and of multiple $known_strings.
-               // However, lengths may still inevitably leak through, for example, CPU cache misses.
                $known_string_len = strlen( $known_string );
-               $user_string_len = strlen( $user_string );
-               $result = $known_string_len ^ $user_string_len;
-               for ( $i = 0; $i < $user_string_len; $i++ ) {
-                       $result |= ord( $known_string[$i % $known_string_len] ) ^ ord( $user_string[$i] );
+               if ( $known_string_len !== strlen( $user_string ) ) {
+                       return false;
+               }
+
+               $result = 0;
+               for ( $i = 0; $i < $known_string_len; $i++ ) {
+                       $result |= ord( $known_string[$i] ) ^ ord( $user_string[$i] );
                }
 
                return ( $result === 0 );
@@ -948,7 +959,7 @@ function wfMatchesDomainList( $url, $domains ) {
  *     - false: same as 'log'
  */
 function wfDebug( $text, $dest = 'all' ) {
-       global $wgDebugLogFile, $wgDebugRawPage, $wgDebugLogPrefix;
+       global $wgDebugRawPage, $wgDebugLogPrefix;
 
        if ( !$wgDebugRawPage && wfIsDebugRawPage() ) {
                return;
@@ -963,6 +974,7 @@ function wfDebug( $text, $dest = 'all' ) {
 
        $timer = wfDebugTimer();
        if ( $timer !== '' ) {
+               // Prepend elapsed request time and real memory usage to each line
                $text = preg_replace( '/[^\n]/', $timer . '\0', $text, 1 );
        }
 
@@ -970,13 +982,13 @@ function wfDebug( $text, $dest = 'all' ) {
                MWDebug::debugMsg( $text );
        }
 
-       if ( $wgDebugLogFile != '' ) {
-               # Strip unprintables; they can switch terminal modes when binary data
-               # gets dumped, which is pretty annoying.
-               $text = preg_replace( '![\x00-\x08\x0b\x0c\x0e-\x1f]!', ' ', $text );
-               $text = $wgDebugLogPrefix . $text;
-               wfErrorLog( $text, $wgDebugLogFile );
+       $ctx = array();
+       if ( $wgDebugLogPrefix !== '' ) {
+               $ctx['prefix'] = $wgDebugLogPrefix;
        }
+
+       $logger = MWLogger::getInstance( 'wfDebug' );
+       $logger->debug( rtrim( $text, "\n" ), $ctx );
 }
 
 /**
@@ -1055,10 +1067,6 @@ function wfDebugMem( $exact = false ) {
  *     - false: same as 'private'
  */
 function wfDebugLog( $logGroup, $text, $dest = 'all' ) {
-       global $wgDebugLogGroups;
-
-       $text = trim( $text ) . "\n";
-
        // Turn $dest into a string if it's a boolean (for b/c)
        if ( $dest === true ) {
                $dest = 'all';
@@ -1066,34 +1074,16 @@ function wfDebugLog( $logGroup, $text, $dest = 'all' ) {
                $dest = 'private';
        }
 
-       if ( !isset( $wgDebugLogGroups[$logGroup] ) ) {
-               if ( $dest !== 'private' ) {
-                       wfDebug( "[$logGroup] $text", $dest );
-               }
-               return;
-       }
+       $text = trim( $text );
 
        if ( $dest === 'all' ) {
-               MWDebug::debugMsg( "[$logGroup] $text" );
-       }
-
-       $logConfig = $wgDebugLogGroups[$logGroup];
-       if ( $logConfig === false ) {
-               return;
-       }
-       if ( is_array( $logConfig ) ) {
-               if ( isset( $logConfig['sample'] ) && mt_rand( 1, $logConfig['sample'] ) !== 1 ) {
-                       return;
-               }
-               $destination = $logConfig['destination'];
-       } else {
-               $destination = strval( $logConfig );
+               MWDebug::debugMsg( "[{$logGroup}] {$text}\n" );
        }
 
-       $time = wfTimestamp( TS_DB );
-       $wiki = wfWikiID();
-       $host = wfHostname();
-       wfErrorLog( "$time $host $wiki: $text", $destination );
+       $logger = MWLogger::getInstance( $logGroup );
+       $logger->debug( $text, array(
+               'private' => ( $dest === 'private' ),
+       ) );
 }
 
 /**
@@ -1102,30 +1092,8 @@ function wfDebugLog( $logGroup, $text, $dest = 'all' ) {
  * @param string $text Database error message.
  */
 function wfLogDBError( $text ) {
-       global $wgDBerrorLog, $wgDBerrorLogTZ;
-       static $logDBErrorTimeZoneObject = null;
-
-       if ( $wgDBerrorLog ) {
-               $host = wfHostname();
-               $wiki = wfWikiID();
-
-               if ( $wgDBerrorLogTZ && !$logDBErrorTimeZoneObject ) {
-                       $logDBErrorTimeZoneObject = new DateTimeZone( $wgDBerrorLogTZ );
-               }
-
-               // Workaround for https://bugs.php.net/bug.php?id=52063
-               // Can be removed when min PHP > 5.3.2
-               if ( $logDBErrorTimeZoneObject === null ) {
-                       $d = date_create( "now" );
-               } else {
-                       $d = date_create( "now", $logDBErrorTimeZoneObject );
-               }
-
-               $date = $d->format( 'D M j G:i:s T Y' );
-
-               $text = "$date\t$host\t$wiki\t" . trim( $text ) . "\n";
-               wfErrorLog( $text, $wgDBerrorLog );
-       }
+       $logger = MWLogger::getInstance( 'wfLogDBError' );
+       $logger->error( trim( $text ) );
 }
 
 /**
@@ -1183,58 +1151,10 @@ function wfLogWarning( $msg, $callerOffset = 1, $level = E_USER_WARNING ) {
  * @throws MWException
  */
 function wfErrorLog( $text, $file ) {
-       if ( substr( $file, 0, 4 ) == 'udp:' ) {
-               # Needs the sockets extension
-               if ( preg_match( '!^(tcp|udp):(?://)?\[([0-9a-fA-F:]+)\]:(\d+)(?:/(.*))?$!', $file, $m ) ) {
-                       // IPv6 bracketed host
-                       $host = $m[2];
-                       $port = intval( $m[3] );
-                       $prefix = isset( $m[4] ) ? $m[4] : false;
-                       $domain = AF_INET6;
-               } elseif ( preg_match( '!^(tcp|udp):(?://)?([a-zA-Z0-9.-]+):(\d+)(?:/(.*))?$!', $file, $m ) ) {
-                       $host = $m[2];
-                       if ( !IP::isIPv4( $host ) ) {
-                               $host = gethostbyname( $host );
-                       }
-                       $port = intval( $m[3] );
-                       $prefix = isset( $m[4] ) ? $m[4] : false;
-                       $domain = AF_INET;
-               } else {
-                       throw new MWException( __METHOD__ . ': Invalid UDP specification' );
-               }
-
-               // Clean it up for the multiplexer
-               if ( strval( $prefix ) !== '' ) {
-                       $text = preg_replace( '/^/m', $prefix . ' ', $text );
-
-                       // Limit to 64KB
-                       if ( strlen( $text ) > 65506 ) {
-                               $text = substr( $text, 0, 65506 );
-                       }
-
-                       if ( substr( $text, -1 ) != "\n" ) {
-                               $text .= "\n";
-                       }
-               } elseif ( strlen( $text ) > 65507 ) {
-                       $text = substr( $text, 0, 65507 );
-               }
-
-               $sock = socket_create( $domain, SOCK_DGRAM, SOL_UDP );
-               if ( !$sock ) {
-                       return;
-               }
-
-               socket_sendto( $sock, $text, strlen( $text ), 0, $host, $port );
-               socket_close( $sock );
-       } else {
-               wfSuppressWarnings();
-               $exists = file_exists( $file );
-               $size = $exists ? filesize( $file ) : false;
-               if ( !$exists || ( $size !== false && $size + strlen( $text ) < 0x7fffffff ) ) {
-                       file_put_contents( $file, $text, FILE_APPEND );
-               }
-               wfRestoreWarnings();
-       }
+       $logger = MWLogger::getInstance( 'wfErrorLog' );
+       $logger->info( trim( $text ), array(
+               'destination' => $file,
+       ) );
 }
 
 /**
@@ -1262,53 +1182,54 @@ function wfLogProfilingData() {
 
        $profiler->logData();
 
-       // Check whether this should be logged in the debug file.
        if ( isset( $wgDebugLogGroups['profileoutput'] )
                && $wgDebugLogGroups['profileoutput'] === false
        ) {
-               // Explicitely disabled
-               return;
-       }
-       if ( !isset( $wgDebugLogGroups['profileoutput'] ) && $wgDebugLogFile == '' ) {
-               // Logging not enabled; no point going further
+               // Explicitly disabled
                return;
        }
        if ( !$wgDebugRawPage && wfIsDebugRawPage() ) {
                return;
        }
 
-       $forward = '';
+       $ctx = array( 'elapsed' => $elapsed );
        if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
-               $forward = ' forwarded for ' . $_SERVER['HTTP_X_FORWARDED_FOR'];
+               $ctx['forwarded_for'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        if ( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
-               $forward .= ' client IP ' . $_SERVER['HTTP_CLIENT_IP'];
+               $ctx['client_ip'] = $_SERVER['HTTP_CLIENT_IP'];
        }
        if ( !empty( $_SERVER['HTTP_FROM'] ) ) {
-               $forward .= ' from ' . $_SERVER['HTTP_FROM'];
+               $ctx['from'] = $_SERVER['HTTP_FROM'];
        }
-       if ( $forward ) {
-               $forward = "\t(proxied via {$_SERVER['REMOTE_ADDR']}{$forward})";
+       if ( isset( $ctx['forwarded_for'] ) ||
+               isset( $ctx['client_ip'] ) ||
+               isset( $ctx['from'] ) ) {
+               $ctx['proxy'] = $_SERVER['REMOTE_ADDR'];
        }
+
        // Don't load $wgUser at this late stage just for statistics purposes
-       // @todo FIXME: We can detect some anons even if it is not loaded. See User::getId()
+       // @todo FIXME: We can detect some anons even if it is not loaded.
+       // See User::getId()
        if ( $wgUser->isItemLoaded( 'id' ) && $wgUser->isAnon() ) {
-               $forward .= ' anon';
+               $ctx['anon'] = true;
+       } else {
+               $ctx['anon'] = false;
        }
 
        // Command line script uses a FauxRequest object which does not have
        // any knowledge about an URL and throw an exception instead.
        try {
-               $requestUrl = $wgRequest->getRequestURL();
-       } catch ( MWException $e ) {
-               $requestUrl = 'n/a';
+               $ctx['url'] = urldecode( $wgRequest->getRequestURL() );
+       } catch ( MWException $ignored ) {
+               // no-op
        }
 
-       $log = sprintf( "%s\t%04.3f\t%s\n",
-               gmdate( 'YmdHis' ), $elapsed,
-               urldecode( $requestUrl . $forward ) );
+       $ctx['output'] = $profiler->getOutput();
+       $ctx['profile'] = $profiler->getRawData();
 
-       wfDebugLog( 'profileoutput', $log . $profiler->getOutput() );
+       $log = MWLogger::getInstance( 'profileoutput' );
+       $log->info( 'Elapsed: {elapsed}', $ctx );
 }
 
 /**
@@ -2975,7 +2896,9 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
  * function, as all the arguments to wfShellExec can become unwieldy.
  *
  * @note This also includes errors from limit.sh, e.g. if $wgMaxShellFileSize is exceeded.
- * @param string $cmd Command line, properly escaped for shell.
+ * @param string|string[] $cmd If string, a properly shell-escaped command line,
+ *   or an array of unescaped arguments, in which case each value will be escaped
+ *   Example:   [ 'convert', '-font', 'font name' ] would produce "'convert' '-font' 'font name'"
  * @param null|mixed &$retval Optional, will receive the program's exit code.
  *   (non-zero is usually failure)
  * @param array $environ Optional environment variables which should be
@@ -3752,11 +3675,19 @@ function wfGetNull() {
 }
 
 /**
- * Modern version of wfWaitForSlaves(). Instead of looking at replication lag
- * and waiting for it to go down, this waits for the slaves to catch up to the
- * master position. Use this when updating very large numbers of rows, as
- * in maintenance scripts, to avoid causing too much lag.  Of course, this is
- * a no-op if there are no slaves.
+ * Waits for the slaves to catch up to the master position
+ *
+ * Use this when updating very large numbers of rows, as in maintenance scripts,
+ * to avoid causing too much lag. Of course, this is a no-op if there are no slaves.
+ *
+ * By default this waits on the main DB cluster of the current wiki.
+ * If $cluster is set to "*" it will wait on all DB clusters, including
+ * external ones. If the lag being waiting on is caused by the code that
+ * does this check, it makes since to use $ifWritesSince, particularly if
+ * cluster is "*", to avoid excess overhead.
+ *
+ * Never call this function after a big DB write that is still in a transaction.
+ * This only makes sense after the possible lag inducing changes were committed.
  *
  * @param float|null $ifWritesSince Only wait if writes were done since this UNIX timestamp
  * @param string|bool $wiki Wiki identifier accepted by wfGetLB
@@ -3774,31 +3705,49 @@ function wfWaitForSlaves(
                $timeout = ( PHP_SAPI === 'cli' ) ? 86400 : 10;
        }
 
-       if ( $cluster !== false ) {
-               $lb = wfGetLBFactory()->getExternalLB( $cluster );
+       // Figure out which clusters need to be checked
+       $lbs = array();
+       if ( $cluster === '*' ) {
+               wfGetLBFactory()->forEachLB( function ( LoadBalancer $lb ) use ( &$lbs ) {
+                       $lbs[] = $lb;
+               } );
+       } elseif ( $cluster !== false ) {
+               $lbs[] = wfGetLBFactory()->getExternalLB( $cluster );
        } else {
-               $lb = wfGetLB( $wiki );
+               $lbs[] = wfGetLB( $wiki );
+       }
+
+       // Get all the master positions of applicable DBs right now.
+       // This can be faster since waiting on one cluster reduces the
+       // time needed to wait on the next clusters.
+       $masterPositions = array_fill( 0, count( $lbs ), false );
+       foreach ( $lbs as $i => $lb ) {
+               // bug 27975 - Don't try to wait for slaves if there are none
+               // Prevents permission error when getting master position
+               if ( $lb->getServerCount() > 1 ) {
+                       if ( $ifWritesSince && !$lb->hasMasterConnection() ) {
+                               continue; // assume no writes done
+                       }
+                       // Use the empty string to not trigger selectDB() since the connection
+                       // may have been to a server that does not have a DB for the current wiki.
+                       $dbw = $lb->getConnection( DB_MASTER, array(), '' );
+                       if ( $ifWritesSince && $dbw->lastDoneWrites() < $ifWritesSince ) {
+                               continue; // no writes since the last wait
+                       }
+                       $masterPositions[$i] = $dbw->getMasterPos();
+               }
        }
 
-       // bug 27975 - Don't try to wait for slaves if there are none
-       // Prevents permission error when getting master position
-       if ( $lb->getServerCount() > 1 ) {
-               if ( $ifWritesSince && !$lb->hasMasterConnection() ) {
-                       return true; // assume no writes done
-               }
-               $dbw = $lb->getConnection( DB_MASTER, array(), $wiki );
-               if ( $ifWritesSince && $dbw->lastDoneWrites() < $ifWritesSince ) {
-                       return true; // no writes since the last wait
-               }
-               $pos = $dbw->getMasterPos();
-               // The DBMS may not support getMasterPos() or the whole
-               // load balancer might be fake (e.g. $wgAllDBsAreLocalhost).
-               if ( $pos !== false ) {
-                       return $lb->waitForAll( $pos, $timeout );
+       $ok = true;
+       foreach ( $lbs as $i => $lb ) {
+               if ( $masterPositions[$i] ) {
+                       // The DBMS may not support getMasterPos() or the whole
+                       // load balancer might be fake (e.g. $wgAllDBsAreLocalhost).
+                       $ok = $lb->waitForAll( $masterPositions[$i], $timeout ) && $ok;
                }
        }
 
-       return true;
+       return $ok;
 }
 
 /**
index 2928748..668c3d9 100644 (file)
@@ -179,7 +179,7 @@ class Hooks {
                        // Run autoloader (workaround for call_user_func_array bug)
                        // and throw error if not callable.
                        if ( !is_callable( $callback ) ) {
-                               throw new MWException( 'Invalid callback in hooks for ' . $event . "\n" );
+                               throw new MWException( 'Invalid callback ' . $func . ' in hooks for ' . $event . "\n" );
                        }
 
                        /*
index fc5916d..fa868e3 100644 (file)
@@ -105,7 +105,7 @@ class Html {
         * Modifies a set of attributes meant for button elements
         * and apply a set of default attributes when $wgUseMediaWikiUIEverywhere enabled.
         * @param array $modifiers to add to the button
-        * @see http://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
+        * @see https://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return array $attrs A modified attribute array
         */
        public static function buttonAttributes( $attrs, $modifiers = array() ) {
index 5319076..4eb8e97 100644 (file)
@@ -37,13 +37,21 @@ class WikiImporter {
        private $mNoticeCallback, $mDebug;
        private $mImportUploads, $mImageBasePath;
        private $mNoUpdates = false;
+       /** @var Config */
+       private $config;
 
        /**
         * Creates an ImportXMLReader drawing from the source provided
         * @param ImportStreamSource $source
+        * @param Config $config
         */
-       function __construct( ImportStreamSource $source ) {
+       function __construct( ImportStreamSource $source, Config $config = null ) {
                $this->reader = new XMLReader();
+               if ( !$config ) {
+                       wfDeprecated( __METHOD__ . ' without a Config instance', '1.25' );
+                       $config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
+               }
+               $this->config = $config;
 
                if ( !in_array( 'uploadsource', stream_get_wrappers() ) ) {
                        stream_wrapper_register( 'uploadsource', 'UploadSourceAdapter' );
@@ -536,7 +544,7 @@ class WikiImporter {
         * @return bool|mixed
         */
        private function processLogItem( $logInfo ) {
-               $revision = new WikiRevision;
+               $revision = new WikiRevision( $this->config );
 
                $revision->setID( $logInfo['id'] );
                $revision->setType( $logInfo['type'] );
@@ -670,7 +678,7 @@ class WikiImporter {
         * @return bool|mixed
         */
        private function processRevision( $pageInfo, $revisionInfo ) {
-               $revision = new WikiRevision;
+               $revision = new WikiRevision( $this->config );
 
                if ( isset( $revisionInfo['id'] ) ) {
                        $revision->setID( $revisionInfo['id'] );
@@ -786,7 +794,7 @@ class WikiImporter {
         * @return mixed
         */
        private function processUpload( $pageInfo, $uploadInfo ) {
-               $revision = new WikiRevision;
+               $revision = new WikiRevision( $this->config );
                $text = isset( $uploadInfo['text'] ) ? $uploadInfo['text'] : '';
 
                $revision->setTitle( $pageInfo['_title'] );
@@ -847,8 +855,6 @@ class WikiImporter {
         * @return array|bool
         */
        private function processTitle( $text ) {
-               global $wgCommandLineMode;
-
                $workTitle = $text;
                $origTitle = Title::newFromText( $workTitle );
 
@@ -864,6 +870,7 @@ class WikiImporter {
                        $title = Title::newFromText( $workTitle );
                }
 
+               $commandLineMode = $this->config->get( 'CommandLineMode' );
                if ( is_null( $title ) ) {
                        # Invalid page title? Ignore the page
                        $this->notice( 'import-error-invalid', $workTitle );
@@ -874,11 +881,11 @@ class WikiImporter {
                } elseif ( !$title->canExist() ) {
                        $this->notice( 'import-error-special', $title->getPrefixedText() );
                        return false;
-               } elseif ( !$title->userCan( 'edit' ) && !$wgCommandLineMode ) {
+               } elseif ( !$title->userCan( 'edit' ) && !$commandLineMode ) {
                        # Do not import if the importing wiki user cannot edit this page
                        $this->notice( 'import-error-edit', $title->getPrefixedText() );
                        return false;
-               } elseif ( !$title->exists() && !$title->userCan( 'create' ) && !$wgCommandLineMode ) {
+               } elseif ( !$title->exists() && !$title->userCan( 'create' ) && !$commandLineMode ) {
                        # Do not import if the importing wiki user cannot create this page
                        $this->notice( 'import-error-create', $title->getPrefixedText() );
                        return false;
@@ -1093,6 +1100,13 @@ class WikiRevision {
        /** @var bool */
        private $mNoUpdates = false;
 
+       /** @var Config $config */
+       private $config;
+
+       public function __construct( Config $config ) {
+               $this->config = $config;
+       }
+
        /**
         * @param Title $title
         * @throws MWException
@@ -1608,8 +1622,7 @@ class WikiRevision {
         * @return bool|string
         */
        function downloadSource() {
-               global $wgEnableUploads;
-               if ( !$wgEnableUploads ) {
+               if ( !$this->config->get( 'EnableUploads' ) ) {
                        return false;
                }
 
index 1d327be..40ebaea 100644 (file)
@@ -219,7 +219,7 @@ class Linker {
 
                # If we don't know whether the page exists, let's find out.
                wfProfileIn( __METHOD__ . '-checkPageExistence' );
-               if ( !in_array( 'known', $options ) and !in_array( 'broken', $options ) ) {
+               if ( !in_array( 'known', $options ) && !in_array( 'broken', $options ) ) {
                        if ( $target->isKnown() ) {
                                $options[] = 'known';
                        } else {
@@ -364,7 +364,7 @@ class Linker {
                foreach ( $merged as $key => $val ) {
                        # A false value suppresses the attribute, and we don't want the
                        # href attribute to be overridden.
-                       if ( $key != 'href' and $val !== false ) {
+                       if ( $key != 'href' && $val !== false ) {
                                $ret[$key] = $val;
                        }
                }
index 4d17298..d281555 100644 (file)
@@ -172,7 +172,6 @@ class MagicWord {
                'directionmark',
                'contentlanguage',
                'numberofadmins',
-               'numberofviews',
                'cascadingsources',
        );
 
@@ -215,7 +214,6 @@ class MagicWord {
                'localtimestamp' => 3600,
                'pagesinnamespace' => 3600,
                'numberofadmins' => 3600,
-               'numberofviews' => 3600,
                'numberingroup' => 3600,
        );
 
index 87468bd..9585c5f 100644 (file)
@@ -682,7 +682,7 @@ class MediaWiki {
                }
 
                $url = wfAppendQuery( wfScript( 'index' ), $query );
-               $req = "POST $url HTTP/1.1\r\nHost: {$info['host']}\r\nConnection: Close\r\n\r\n";
+               $req = "POST $url HTTP/1.1\r\nHost: {$info['host']}\r\nConnection: Close\r\nContent-Length: 0\r\n\r\n";
 
                wfDebugLog( 'runJobs', "Running $n job(s) via '$url'\n" );
                // Send a cron API request to be performed in the background.
index 17cb8aa..c3fb486 100644 (file)
@@ -19,7 +19,7 @@ class MediaWikiVersionFetcher {
                $defaultSettings = file_get_contents( __DIR__ . '/DefaultSettings.php' );
 
                $matches = array();
-               preg_match( "/wgVersion = '([0-9a-zA-Z\.]+)';/", $defaultSettings, $matches );
+               preg_match( "/wgVersion = '([0-9a-zA-Z\.\-]+)';/", $defaultSettings, $matches );
 
                if ( count( $matches ) !== 2 ) {
                        throw new RuntimeException( 'Could not extract the MediaWiki version from DefaultSettings.php' );
index bfd6011..3406831 100644 (file)
@@ -210,7 +210,7 @@ class MimeMagic {
                }
 
                if ( $mimeTypeFile ) {
-                       if ( is_file( $mimeTypeFile ) and is_readable( $mimeTypeFile ) ) {
+                       if ( is_file( $mimeTypeFile ) && is_readable( $mimeTypeFile ) ) {
                                wfDebug( __METHOD__ . ": loading mime types from $mimeTypeFile\n" );
                                $types .= "\n";
                                $types .= file_get_contents( $mimeTypeFile );
@@ -287,7 +287,7 @@ class MimeMagic {
                $info = MM_WELL_KNOWN_MIME_INFO;
 
                if ( $mimeInfoFile ) {
-                       if ( is_file( $mimeInfoFile ) and is_readable( $mimeInfoFile ) ) {
+                       if ( is_file( $mimeInfoFile ) && is_readable( $mimeInfoFile ) ) {
                                wfDebug( __METHOD__ . ": loading mime info from $mimeInfoFile\n" );
                                $info .= "\n";
                                $info .= file_get_contents( $mimeInfoFile );
index 5c9490b..994be91 100644 (file)
@@ -42,6 +42,52 @@ class MovePage {
                $this->newTitle = $newTitle;
        }
 
+       public function checkPermissions( User $user, $reason ) {
+               $status = new Status();
+
+               $errors = wfMergeErrorArrays(
+                       $this->oldTitle->getUserPermissionsErrors( 'move', $user ),
+                       $this->oldTitle->getUserPermissionsErrors( 'edit', $user ),
+                       $this->newTitle->getUserPermissionsErrors( 'move-target', $user ),
+                       $this->newTitle->getUserPermissionsErrors( 'edit', $user )
+               );
+
+               // Convert into a Status object
+               if ( $errors ) {
+                       foreach ( $errors as $error ) {
+                               call_user_func_array( array( $status, 'fatal' ), $error );
+                       }
+               }
+
+               if ( EditPage::matchSummarySpamRegex( $reason ) !== false ) {
+                       // This is kind of lame, won't display nice
+                       $status->fatal( 'spamprotectiontext' );
+               }
+
+               # The move is allowed only if (1) the target doesn't exist, or
+               # (2) the target is a redirect to the source, and has no history
+               # (so we can undo bad moves right after they're done).
+
+               if ( $this->newTitle->getArticleID() ) { # Target exists; check for validity
+                       if ( !$this->isValidMoveTarget() ) {
+                               $status->fatal( 'articleexists' );
+                       }
+               } else {
+                       $tp = $this->newTitle->getTitleProtection();
+                       if ( $tp !== false ) {
+                               if ( !$user->isAllowed( $tp['permission'] ) ) {
+                                       $status->fatal( 'cantmove-titleprotected' );
+                               }
+                       }
+               }
+
+               wfRunHooks( 'MovePageCheckPermissions',
+                       array( $this->oldTitle, $this->newTitle, $user, $reason, $status )
+               );
+
+               return $status;
+       }
+
        /**
         * Does various sanity checks that the move is
         * valid. Only things based on the two titles
@@ -69,14 +115,14 @@ class MovePage {
                $oldid = $this->oldTitle->getArticleID();
 
                if ( strlen( $this->newTitle->getDBkey() ) < 1 ) {
-                       $errors[] = array( 'articleexists' );
+                       $status->fatal( 'articleexists' );
                }
                if (
                        ( $this->oldTitle->getDBkey() == '' ) ||
                        ( !$oldid ) ||
                        ( $this->newTitle->getDBkey() == '' )
                ) {
-                       $errors[] = array( 'badarticleerror' );
+                       $status->fatal( 'badarticleerror' );
                }
 
                // Content model checks
@@ -99,6 +145,9 @@ class MovePage {
                        $status->fatal( 'nonfile-cannot-move-to-file' );
                }
 
+               // Hook for extensions to say a title can't be moved for technical reasons
+               wfRunHooks( 'MovePageIsValidMove', array( $this->oldTitle, $this->newTitle, $status ) );
+
                return $status;
        }
 
@@ -126,6 +175,53 @@ class MovePage {
                return $status;
        }
 
+       /**
+        * Checks if $this can be moved to a given Title
+        * - Selects for update, so don't call it unless you mean business
+        *
+        * @since 1.25
+        * @return bool
+        */
+       protected function isValidMoveTarget() {
+               # Is it an existing file?
+               if ( $this->newTitle->inNamespace( NS_FILE ) ) {
+                       $file = wfLocalFile( $this->newTitle );
+                       if ( $file->exists() ) {
+                               wfDebug( __METHOD__ . ": file exists\n" );
+                               return false;
+                       }
+               }
+               # Is it a redirect with no history?
+               if ( !$this->newTitle->isSingleRevRedirect() ) {
+                       wfDebug( __METHOD__ . ": not a one-rev redirect\n" );
+                       return false;
+               }
+               # Get the article text
+               $rev = Revision::newFromTitle( $this->newTitle, false, Revision::READ_LATEST );
+               if ( !is_object( $rev ) ) {
+                       return false;
+               }
+               $content = $rev->getContent();
+               # Does the redirect point to the source?
+               # Or is it a broken self-redirect, usually caused by namespace collisions?
+               $redirTitle = $content ? $content->getRedirectTarget() : null;
+
+               if ( $redirTitle ) {
+                       if ( $redirTitle->getPrefixedDBkey() !== $this->oldTitle->getPrefixedDBkey() &&
+                               $redirTitle->getPrefixedDBkey() !== $this->newTitle->getPrefixedDBkey() ) {
+                               wfDebug( __METHOD__ . ": redirect points to other page\n" );
+                               return false;
+                       } else {
+                               return true;
+                       }
+               } else {
+                       # Fail safe (not a redirect after all. strange.)
+                       wfDebug( __METHOD__ . ": failsafe: database says " . $this->newTitle->getPrefixedDBkey() .
+                               " is a redirect, but it doesn't contain a valid redirect.\n" );
+                       return false;
+               }
+       }
+
        /**
         * @param User $user
         * @param string $reason
@@ -135,6 +231,8 @@ class MovePage {
        public function move( User $user, $reason, $createRedirect ) {
                global $wgCategoryCollation;
 
+               wfRunHooks( 'TitleMove', array( $this->oldTitle, $this->newTitle, $user ) );
+
                // If it is a file, move it first.
                // It is done before all other moving stuff is done because it's hard to revert.
                $dbw = wfGetDB( DB_MASTER );
@@ -274,7 +372,6 @@ class MovePage {
 
                wfRunHooks( 'TitleMoveComplete', array( &$this->oldTitle, &$this->newTitle, &$user, $pageid, $redirid, $reason ) );
                return Status::newGood();
-
        }
 
        /**
@@ -342,6 +439,9 @@ class MovePage {
 
                $dbw = wfGetDB( DB_MASTER );
 
+               $oldpage = WikiPage::factory( $this->oldTitle );
+               $oldcountable = $oldpage->isCountable();
+
                $newpage = WikiPage::factory( $nt );
 
                if ( $moveOverRedirect ) {
@@ -389,7 +489,8 @@ class MovePage {
                wfRunHooks( 'NewRevisionFromEditComplete',
                        array( $newpage, $nullRevision, $nullRevision->getParentId(), $user ) );
 
-               $newpage->doEditUpdates( $nullRevision, $user, array( 'changed' => false ) );
+               $newpage->doEditUpdates( $nullRevision, $user,
+                       array( 'changed' => false, 'moved' => true, 'oldcountable' => $oldcountable ) );
 
                if ( !$moveOverRedirect ) {
                        WikiPage::onArticleCreate( $nt );
index 3ff0d37..3bb2175 100644 (file)
@@ -122,6 +122,9 @@ class OutputPage extends ContextSource {
        /** @var array */
        protected $mCategories = array();
 
+       /** @var array */
+       protected $mIndicators = array();
+
        /** @var array Array of Interwiki Prefixed (non DB key) Titles (e.g. 'fr:Test page') */
        private $mLanguageLinks = array();
 
@@ -1329,6 +1332,32 @@ class OutputPage extends ContextSource {
                return $this->mCategories;
        }
 
+       /**
+        * Add an array of indicators, with their identifiers as array keys and HTML contents as values.
+        *
+        * In case of duplicate keys, existing values are overwritten.
+        *
+        * @param array $indicators
+        * @since 1.25
+        */
+       public function setIndicators( array $indicators ) {
+               $this->mIndicators = $indicators + $this->mIndicators;
+               // Keep ordered by key
+               ksort( $this->mIndicators );
+       }
+
+       /**
+        * Get the indicators associated with this page.
+        *
+        * The array will be internally ordered by item keys.
+        *
+        * @return array Keys: identifiers, values: HTML contents
+        * @since 1.25
+        */
+       public function getIndicators() {
+               return $this->mIndicators;
+       }
+
        /**
         * Restrict the page to loading modules bundled the software.
         *
@@ -1641,6 +1670,7 @@ class OutputPage extends ContextSource {
        public function addParserOutputMetadata( $parserOutput ) {
                $this->mLanguageLinks += $parserOutput->getLanguageLinks();
                $this->addCategoryLinks( $parserOutput->getCategories() );
+               $this->setIndicators( $parserOutput->getIndicators() );
                $this->mNewSectionLink = $parserOutput->getNewSection();
                $this->mHideNewSectionLink = $parserOutput->getHideNewSection();
 
@@ -2085,8 +2115,6 @@ class OutputPage extends ContextSource {
         * the object, let's actually output it:
         */
        public function output() {
-               global $wgLanguageCode;
-
                if ( $this->mDoNothing ) {
                        return;
                }
@@ -2140,7 +2168,7 @@ class OutputPage extends ContextSource {
                ob_start();
 
                $response->header( 'Content-type: ' . $config->get( 'MimeType' ) . '; charset=UTF-8' );
-               $response->header( 'Content-language: ' . $wgLanguageCode );
+               $response->header( 'Content-language: ' . $config->get( 'LanguageCode' ) );
 
                // Avoid Internet Explorer "compatibility view" in IE 8-10, so that
                // jQuery etc. can work correctly.
@@ -2414,90 +2442,32 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * Display a page stating that the Wiki is in read-only mode,
-        * and optionally show the source of the page that the user
-        * was trying to edit.  Should only be called (for this
-        * purpose) after wfReadOnly() has returned true.
-        *
-        * For historical reasons, this function is _also_ used to
-        * show the error message when a user tries to edit a page
-        * they are not allowed to edit.  (Unless it's because they're
-        * blocked, then we show blockedPage() instead.)  In this
-        * case, the second parameter should be set to true and a list
-        * of reasons supplied as the third parameter.
+        * Display a page stating that the Wiki is in read-only mode.
+        * Should only be called after wfReadOnly() has returned true.
         *
-        * @todo Needs to be split into multiple functions.
+        * Historically, this function was used to show the source of the page that the user
+        * was trying to edit and _also_ permissions error messages. The relevant code was
+        * moved into EditPage in 1.19 (r102024 / d83c2a431c2a) and removed here in 1.25.
         *
-        * @param string $source Source code to show (or null).
-        * @param bool $protected Is this a permissions error?
-        * @param array $reasons List of reasons for this error, as returned by
-        *   Title::getUserPermissionsErrors().
-        * @param string $action Action that was denied or null if unknown
+        * @deprecated since 1.25; throw the exception directly
         * @throws ReadOnlyError
         */
-       public function readOnlyPage( $source = null, $protected = false,
-               array $reasons = array(), $action = null
-       ) {
-               $this->setRobotPolicy( 'noindex,nofollow' );
-               $this->setArticleRelated( false );
-
-               // If no reason is given, just supply a default "I can't let you do
-               // that, Dave" message.  Should only occur if called by legacy code.
-               if ( $protected && empty( $reasons ) ) {
-                       $reasons[] = array( 'badaccess-group0' );
-               }
-
-               if ( !empty( $reasons ) ) {
-                       // Permissions error
-                       if ( $source ) {
-                               $this->setPageTitle( $this->msg( 'viewsource-title', $this->getTitle()->getPrefixedText() ) );
-                               $this->addBacklinkSubtitle( $this->getTitle() );
-                       } else {
-                               $this->setPageTitle( $this->msg( 'badaccess' ) );
-                       }
-                       $this->addWikiText( $this->formatPermissionsErrorMessage( $reasons, $action ) );
-               } else {
-                       // Wiki is read only
-                       throw new ReadOnlyError;
-               }
-
-               // Show source, if supplied
-               if ( is_string( $source ) ) {
-                       $this->addWikiMsg( 'viewsourcetext' );
-
-                       $pageLang = $this->getTitle()->getPageLanguage();
-                       $params = array(
-                               'id' => 'wpTextbox1',
-                               'name' => 'wpTextbox1',
-                               'cols' => $this->getUser()->getOption( 'cols' ),
-                               'rows' => $this->getUser()->getOption( 'rows' ),
-                               'readonly' => 'readonly',
-                               'lang' => $pageLang->getHtmlCode(),
-                               'dir' => $pageLang->getDir(),
-                       );
-                       $this->addHTML( Html::element( 'textarea', $params, $source ) );
-
-                       // Show templates used by this article
-                       $templates = Linker::formatTemplates( $this->getTitle()->getTemplateLinksFrom() );
-                       $this->addHTML( "<div class='templatesUsed'>
-$templates
-</div>
-" );
+       public function readOnlyPage() {
+               if ( func_num_args() > 0 ) {
+                       throw new MWException( __METHOD__ . ' no longer accepts arguments since 1.25.' );
                }
 
-               # If the title doesn't exist, it's fairly pointless to print a return
-               # link to it.  After all, you just tried editing it and couldn't, so
-               # what's there to do there?
-               if ( $this->getTitle()->exists() ) {
-                       $this->returnToMain( null, $this->getTitle() );
-               }
+               throw new ReadOnlyError;
        }
 
        /**
         * Turn off regular page output and return an error response
         * for when rate limiting has triggered.
+        *
+        * @deprecated since 1.25; throw the exception directly
         */
        public function rateLimited() {
+               wfDeprecated( __METHOD__, '1.25' );
                throw new ThrottledError;
        }
 
@@ -3572,7 +3542,9 @@ $templates
                $moduleStyles[] = 'user.groups';
 
                // Per-user custom styles
-               if ( $this->getConfig()->get( 'AllowUserCss' ) && $this->getTitle()->isCssSubpage() && $this->userCanPreview() ) {
+               if ( $this->getConfig()->get( 'AllowUserCss' ) && $this->getTitle()->isCssSubpage()
+                       && $this->userCanPreview()
+               ) {
                        // We're on a preview of a CSS subpage
                        // Exclude this page from the user module in case it's in there (bug 26283)
                        $link = $this->makeResourceLoaderLink( 'user', ResourceLoaderModule::TYPE_STYLES, false,
index 5af818f..b061990 100644 (file)
@@ -40,7 +40,7 @@
  */
 function wfPHPVersionError( $type ) {
        $mwVersion = '1.25';
-       $minimumVersionPHP = '5.3.2';
+       $minimumVersionPHP = '5.3.3';
 
        $phpVersion = PHP_VERSION;
        $protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
index 582a4a5..93844f6 100644 (file)
@@ -706,7 +706,6 @@ class Preferences {
                        'options' => $tzOptions,
                        'default' => $tzSetting,
                        'size' => 20,
-                       'maxlength' => 6,
                        'section' => 'rendering/timeoffset',
                );
        }
index 1f684fb..839fedc 100644 (file)
@@ -60,11 +60,12 @@ abstract class PrefixSearch {
                $title = Title::newFromText( $search );
                if ( $title && !$title->isExternal() ) {
                        $ns = array( $title->getNamespace() );
+                       $search = $title->getText();
                        if ( $ns[0] == NS_MAIN ) {
                                $ns = $namespaces; // no explicit prefix, use default namespaces
+                               wfRunHooks( 'PrefixSearchExtractNamespace', array( &$ns, &$search ) );
                        }
-                       return $this->searchBackend(
-                               $ns, $title->getText(), $limit );
+                       return $this->searchBackend( $ns, $search, $limit );
                }
 
                // Is this a namespace prefix?
@@ -75,6 +76,8 @@ abstract class PrefixSearch {
                {
                        $namespaces = array( $title->getNamespace() );
                        $search = '';
+               } else {
+                       wfRunHooks( 'PrefixSearchExtractNamespace', array( &$namespaces, &$search ) );
                }
 
                return $this->searchBackend( $namespaces, $search, $limit );
@@ -152,7 +155,33 @@ abstract class PrefixSearch {
                $srchres = array();
                if ( wfRunHooks( 'PrefixSearchBackend', array( $namespaces, $search, $limit, &$srchres ) ) ) {
                        return $this->titles( $this->defaultSearchBackend( $namespaces, $search, $limit ) );
+               } else {
+                       // Default search backend does proper prefix searching, but custom backends
+                       // may sort based on other algorythms that may cause the exact title match
+                       // to not be in the results or be lower down the list.
+
+                       // Pick namespace (based on PrefixSearch::defaultSearchBackend)
+                       $ns = in_array( NS_MAIN, $namespaces ) ? NS_MAIN : $namespaces[0];
+                       $t = Title::newFromText( $search, $ns );
+                       if ( $t ) {
+                               // If text is a valid title and is in the search results
+                               $string = $t->getPrefixedText();
+                               $key = array_search( $string, $srchres );
+                               if ( $key !== false ) {
+                                       // Move it to the front
+                                       $cut = array_splice( $srchres, $key, 1 );
+                                       array_unshift( $srchres, $cut[0] );
+                               } elseif ( $t->exists() ) {
+                                       // Add it in front
+                                       array_unshift( $srchres, $string );
+
+                                       if ( count( $srchres ) > $limit ) {
+                                               array_pop( $srchres );
+                                       }
+                               }
+                       }
                }
+
                return $this->strings( $srchres );
        }
 
index 5b39a41..e81ed75 100644 (file)
@@ -1060,8 +1060,6 @@ class Revision implements IDBAccessObject {
                                $format = $this->getContentFormat();
 
                                $this->mContent = $handler->unserializeContent( $this->mText, $format );
-                       } else {
-                               $this->mContent = false; // negative caching!
                        }
                }
 
index 743936e..2faf196 100644 (file)
@@ -517,6 +517,10 @@ if ( $wgTmpDirectory === false ) {
        wfProfileOut( $fname . '-tempDir' );
 }
 
+// We don't use counters anymore. Left here for extensions still
+// expecting this to exist. Should be removed sometime 1.26 or later.
+$wgDisableCounters = true;
+
 wfProfileOut( $fname . '-defaults2' );
 wfProfileIn( $fname . '-misc1' );
 
index 3dc1793..32c6761 100644 (file)
@@ -102,7 +102,6 @@ class SiteStats {
        static function doLoad( $db ) {
                return $db->selectRow( 'site_stats', array(
                                'ss_row_id',
-                               'ss_total_views',
                                'ss_total_edits',
                                'ss_good_articles',
                                'ss_total_pages',
@@ -113,11 +112,16 @@ class SiteStats {
        }
 
        /**
+        * Return the total number of page views. Except we don't track those anymore.
+        * Stop calling this function, it will be removed some time in the future. It's
+        * kept here simply to prevent fatal errors.
+        *
+        * @deprecated since 1.25
         * @return int
         */
        static function views() {
-               self::load();
-               return self::$row->ss_total_views;
+               wfDeprecated( __METHOD__, '1.25' );
+               return 0;
        }
 
        /**
@@ -249,7 +253,6 @@ class SiteStats {
                }
                // Now check for underflow/overflow
                foreach ( array(
-                       'ss_total_views',
                        'ss_total_edits',
                        'ss_good_articles',
                        'ss_total_pages',
@@ -274,7 +277,7 @@ class SiteStatsInit {
 
        // Various stats
        private $mEdits = null, $mArticles = null, $mPages = null;
-       private $mUsers = null, $mViews = null, $mFiles = null;
+       private $mUsers = null, $mFiles = null;
 
        /**
         * Constructor
@@ -348,15 +351,6 @@ class SiteStatsInit {
                return $this->mUsers;
        }
 
-       /**
-        * Count views
-        * @return int
-        */
-       public function views() {
-               $this->mViews = $this->db->selectField( 'page', 'SUM(page_counter)', '', __METHOD__ );
-               return $this->mViews;
-       }
-
        /**
         * Count total files
         * @return int
@@ -374,11 +368,10 @@ class SiteStatsInit {
         * - Boolean: whether to use the master DB
         * - DatabaseBase: database connection to use
         * @param array $options Array of options, may contain the following values
-        * - views Boolean: when true, do not update the number of page views (default: true)
         * - activeUsers Boolean: whether to update the number of active users (default: false)
         */
        public static function doAllAndCommit( $database, array $options = array() ) {
-               $options += array( 'update' => false, 'views' => true, 'activeUsers' => false );
+               $options += array( 'update' => false, 'activeUsers' => false );
 
                // Grab the object and count everything
                $counter = new SiteStatsInit( $database );
@@ -389,11 +382,6 @@ class SiteStatsInit {
                $counter->users();
                $counter->files();
 
-               // Only do views if we don't want to not count them
-               if ( $options['views'] ) {
-                       $counter->views();
-               }
-
                $counter->refresh();
 
                // Count active users if need be
@@ -403,8 +391,7 @@ class SiteStatsInit {
        }
 
        /**
-        * Refresh site_stats. If you want ss_total_views to be updated, be sure to
-        * call views() first.
+        * Refresh site_stats
         */
        public function refresh() {
                $values = array(
@@ -414,8 +401,6 @@ class SiteStatsInit {
                        'ss_total_pages' => ( $this->mPages === null ? $this->pages() : $this->mPages ),
                        'ss_users' => ( $this->mUsers === null ? $this->users() : $this->mUsers ),
                        'ss_images' => ( $this->mFiles === null ? $this->files() : $this->mFiles ),
-               ) + (
-                       $this->mViews ? array( 'ss_total_views' => $this->mViews ) : array()
                );
 
                $dbw = wfGetDB( DB_MASTER );
index 2a9d173..0a8062c 100644 (file)
@@ -159,6 +159,15 @@ class Status {
                $this->ok = false;
        }
 
+       /**
+        * Don't save the callback when serializing, because Closures can't be
+        * serialized and we're going to clear it in __wakeup anyway.
+        */
+       public function __sleep() {
+               $keys = array_keys( get_object_vars( $this ) );
+               return array_diff( $keys, array( 'cleanCallback' ) );
+       }
+
        /**
         * Sanitize the callback parameter on wakeup, to avoid arbitrary execution.
         */
diff --git a/includes/TimestampException.php b/includes/TimestampException.php
deleted file mode 100644 (file)
index b9c0c35..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-/**
- * @since 1.20
- */
-class TimestampException extends MWException {
-}
index e8cda85..b97d36a 100644 (file)
@@ -795,7 +795,8 @@ class Title {
 
        /**
         * Determine whether the object refers to a page within
-        * this project.
+        * this project (either this wiki or a wiki with a local
+        * interwiki, see https://www.mediawiki.org/wiki/Manual:Interwiki_table#iw_local )
         *
         * @return bool True if this is an in-project interwiki link or a wikilink, false otherwise
         */
@@ -2231,19 +2232,13 @@ class Title {
                } elseif ( $action == 'create' ) {
                        $title_protection = $this->getTitleProtection();
                        if ( $title_protection ) {
-                               if ( $title_protection['pt_create_perm'] == 'sysop' ) {
-                                       $title_protection['pt_create_perm'] = 'editprotected'; // B/C
-                               }
-                               if ( $title_protection['pt_create_perm'] == 'autoconfirmed' ) {
-                                       $title_protection['pt_create_perm'] = 'editsemiprotected'; // B/C
-                               }
-                               if ( $title_protection['pt_create_perm'] == ''
-                                       || !$user->isAllowed( $title_protection['pt_create_perm'] )
+                               if ( $title_protection['permission'] == ''
+                                       || !$user->isAllowed( $title_protection['permission'] )
                                ) {
                                        $errors[] = array(
                                                'titleprotected',
-                                               User::whoIs( $title_protection['pt_user'] ),
-                                               $title_protection['pt_reason']
+                                               User::whoIs( $title_protection['user'] ),
+                                               $title_protection['reason']
                                        );
                                }
                        }
@@ -2535,7 +2530,7 @@ class Title {
         * @return array|bool An associative array representing any existent title
         *   protection, or false if there's none.
         */
-       private function getTitleProtection() {
+       public function getTitleProtection() {
                // Can't protect pages in special namespaces
                if ( $this->getNamespace() < 0 ) {
                        return false;
@@ -2550,13 +2545,27 @@ class Title {
                        $dbr = wfGetDB( DB_SLAVE );
                        $res = $dbr->select(
                                'protected_titles',
-                               array( 'pt_user', 'pt_reason', 'pt_expiry', 'pt_create_perm' ),
+                               array(
+                                       'user' => 'pt_user',
+                                       'reason' => 'pt_reason',
+                                       'expiry' => 'pt_expiry',
+                                       'permission' => 'pt_create_perm'
+                               ),
                                array( 'pt_namespace' => $this->getNamespace(), 'pt_title' => $this->getDBkey() ),
                                __METHOD__
                        );
 
                        // fetchRow returns false if there are no rows.
-                       $this->mTitleProtection = $dbr->fetchRow( $res );
+                       $row = $dbr->fetchRow( $res );
+                       if ( $row ) {
+                               if ( $row['permission'] == 'sysop' ) {
+                                       $row['permission'] = 'editprotected'; // B/C
+                               }
+                               if ( $row['permission'] == 'autoconfirmed' ) {
+                                       $row['permission'] = 'editsemiprotected'; // B/C
+                               }
+                       }
+                       $this->mTitleProtection = $row;
                }
                return $this->mTitleProtection;
        }
@@ -2977,12 +2986,12 @@ class Title {
 
                                if ( $title_protection ) {
                                        $now = wfTimestampNow();
-                                       $expiry = $wgContLang->formatExpiry( $title_protection['pt_expiry'], TS_MW );
+                                       $expiry = $wgContLang->formatExpiry( $title_protection['expiry'], TS_MW );
 
                                        if ( !$expiry || $expiry > $now ) {
                                                // Apply the restrictions
                                                $this->mRestrictionsExpiry['create'] = $expiry;
-                                               $this->mRestrictions['create'] = explode( ',', trim( $title_protection['pt_create_perm'] ) );
+                                               $this->mRestrictions['create'] = explode( ',', trim( $title_protection['permission'] ) );
                                        } else { // Get rid of the old restrictions
                                                Title::purgeExpiredRestrictions();
                                                $this->mTitleProtection = false;
@@ -3578,10 +3587,12 @@ class Title {
        /**
         * Move this page without authentication
         *
+        * @deprecated since 1.25 use MovePage class instead
         * @param Title $nt The new page Title
         * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
         */
        public function moveNoAuth( &$nt ) {
+               wfDeprecated( __METHOD__, '1.25' );
                return $this->moveTo( $nt, false );
        }
 
@@ -3589,10 +3600,9 @@ class Title {
         * Check whether a given move operation would be valid.
         * Returns true if ok, or a getUserPermissionsErrors()-like array otherwise
         *
-        * @todo finish moving this into MovePage
+        * @deprecated since 1.25, use MovePage's methods instead
         * @param Title $nt The new title
-        * @param bool $auth Indicates whether $wgUser's permissions
-        *  should be checked
+        * @param bool $auth Ignored
         * @param string $reason Is the log summary of the move, used for spam checking
         * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
         */
@@ -3606,54 +3616,12 @@ class Title {
                }
 
                $mp = new MovePage( $this, $nt );
-               $errors = $mp->isValidMove()->getErrorsArray();
-
-               $newid = $nt->getArticleID();
-
-               if ( $auth ) {
-                       $errors = wfMergeErrorArrays( $errors,
-                               $this->getUserPermissionsErrors( 'move', $wgUser ),
-                               $this->getUserPermissionsErrors( 'edit', $wgUser ),
-                               $nt->getUserPermissionsErrors( 'move-target', $wgUser ),
-                               $nt->getUserPermissionsErrors( 'edit', $wgUser ) );
-               }
-
-               $match = EditPage::matchSummarySpamRegex( $reason );
-               if ( $match !== false ) {
-                       // This is kind of lame, won't display nice
-                       $errors[] = array( 'spamprotectiontext' );
-               }
-
-               $err = null;
-               if ( !wfRunHooks( 'AbortMove', array( $this, $nt, $wgUser, &$err, $reason ) ) ) {
-                       $errors[] = array( 'hookaborted', $err );
-               }
-
-               # The move is allowed only if (1) the target doesn't exist, or
-               # (2) the target is a redirect to the source, and has no history
-               # (so we can undo bad moves right after they're done).
+               $errors = wfMergeErrorArrays(
+                       $mp->isValidMove()->getErrorsArray(),
+                       $mp->checkPermissions( $wgUser, $reason )->getErrorsArray()
+               );
 
-               if ( 0 != $newid ) { # Target exists; check for validity
-                       if ( !$this->isValidMoveTarget( $nt ) ) {
-                               $errors[] = array( 'articleexists' );
-                       }
-               } else {
-                       $tp = $nt->getTitleProtection();
-                       $right = $tp['pt_create_perm'];
-                       if ( $right == 'sysop' ) {
-                               $right = 'editprotected'; // B/C
-                       }
-                       if ( $right == 'autoconfirmed' ) {
-                               $right = 'editsemiprotected'; // B/C
-                       }
-                       if ( $tp and !$wgUser->isAllowed( $right ) ) {
-                               $errors[] = array( 'cantmove-titleprotected' );
-                       }
-               }
-               if ( empty( $errors ) ) {
-                       return true;
-               }
-               return $errors;
+               return $errors ? : true;
        }
 
        /**
@@ -3678,7 +3646,7 @@ class Title {
        /**
         * Move a title to a new location
         *
-        * @todo Deprecate this in favor of MovePage
+        * @deprecated since 1.25, use the MovePage class instead
         * @param Title $nt The new title
         * @param bool $auth Indicates whether $wgUser's permissions
         *  should be checked
@@ -3700,8 +3668,6 @@ class Title {
                        $createRedirect = true;
                }
 
-               wfRunHooks( 'TitleMove', array( $this, $nt, $wgUser ) );
-
                $mp = new MovePage( $this, $nt );
                $status = $mp->move( $wgUser, $reason, $createRedirect );
                if ( $status->isOK() ) {
@@ -3837,7 +3803,7 @@ class Title {
         * Checks if $this can be moved to a given Title
         * - Selects for update, so don't call it unless you mean business
         *
-        * @todo move to MovePage
+        * @deprecated since 1.25, use MovePage's methods instead
         * @param Title $nt The new title to check
         * @return bool
         */
index e25bc1f..90d33fb 100644 (file)
@@ -1752,7 +1752,9 @@ class User implements IDBAccessObject {
                // If more than one group applies, use the group with the highest limit
                foreach ( $this->getGroups() as $group ) {
                        if ( isset( $limits[$group] ) ) {
-                               if ( $userLimit === false || $limits[$group] > $userLimit ) {
+                               if ( $userLimit === false
+                                       || $limits[$group][0] / $limits[$group][1] > $userLimit[0] / $userLimit[1]
+                               ) {
                                        $userLimit = $limits[$group];
                                }
                        }
@@ -3815,7 +3817,6 @@ class User implements IDBAccessObject {
                        return false;
                }
 
-               $passwordFactory = self::getPasswordFactory();
                if ( !$this->mPassword->equals( $password ) ) {
                        if ( $wgLegacyEncoding ) {
                                // Some wikis were converted from ISO 8859-1 to UTF-8, the passwords can't be converted
@@ -3829,6 +3830,7 @@ class User implements IDBAccessObject {
                        }
                }
 
+               $passwordFactory = self::getPasswordFactory();
                if ( $passwordFactory->needsUpdate( $this->mPassword ) ) {
                        $this->mPassword = $passwordFactory->newFromPlaintext( $password );
                        $this->saveSettings();
@@ -3875,22 +3877,15 @@ class User implements IDBAccessObject {
        }
 
        /**
-        * Initialize (if necessary) and return a session token value
-        * which can be used in edit forms to show that the user's
-        * login credentials aren't being hijacked with a foreign form
-        * submission.
+        * Internal implementation for self::getEditToken() and
+        * self::matchEditToken().
         *
-        * @since 1.19
-        *
-        * @param string|array $salt Array of Strings Optional function-specific data for hashing
-        * @param WebRequest|null $request WebRequest object to use or null to use $wgRequest
-        * @return string The new edit token
+        * @param string|array $salt
+        * @param WebRequest $request
+        * @param string|int $timestamp
+        * @return string
         */
-       public function getEditToken( $salt = '', $request = null ) {
-               if ( $request == null ) {
-                       $request = $this->getRequest();
-               }
-
+       private function getEditTokenAtTimestamp( $salt, $request, $timestamp ) {
                if ( $this->isAnon() ) {
                        return self::EDIT_TOKEN_SUFFIX;
                } else {
@@ -3902,10 +3897,30 @@ class User implements IDBAccessObject {
                        if ( is_array( $salt ) ) {
                                $salt = implode( '|', $salt );
                        }
-                       return md5( $token . $salt ) . self::EDIT_TOKEN_SUFFIX;
+                       return hash_hmac( 'md5', $timestamp . $salt, $token, false ) .
+                               dechex( $timestamp ) .
+                               self::EDIT_TOKEN_SUFFIX;
                }
        }
 
+       /**
+        * Initialize (if necessary) and return a session token value
+        * which can be used in edit forms to show that the user's
+        * login credentials aren't being hijacked with a foreign form
+        * submission.
+        *
+        * @since 1.19
+        *
+        * @param string|array $salt Array of Strings Optional function-specific data for hashing
+        * @param WebRequest|null $request WebRequest object to use or null to use $wgRequest
+        * @return string The new edit token
+        */
+       public function getEditToken( $salt = '', $request = null ) {
+               return $this->getEditTokenAtTimestamp(
+                       $salt, $request ?: $this->getRequest(), wfTimestamp()
+               );
+       }
+
        /**
         * Generate a looking random token for various uses.
         *
@@ -3926,15 +3941,34 @@ class User implements IDBAccessObject {
         * @param string $val Input value to compare
         * @param string $salt Optional function-specific data for hashing
         * @param WebRequest|null $request Object to use or null to use $wgRequest
+        * @param int $maxage Fail tokens older than this, in seconds
         * @return bool Whether the token matches
         */
-       public function matchEditToken( $val, $salt = '', $request = null ) {
-               $sessionToken = $this->getEditToken( $salt, $request );
+       public function matchEditToken( $val, $salt = '', $request = null, $maxage = null ) {
+               if ( $this->isAnon() ) {
+                       return $val === self::EDIT_TOKEN_SUFFIX;
+               }
+
+               $suffixLen = strlen( self::EDIT_TOKEN_SUFFIX );
+               if ( strlen( $val ) <= 32 + $suffixLen ) {
+                       return false;
+               }
+
+               $timestamp = hexdec( substr( $val, 32, -$suffixLen ) );
+               if ( $maxage !== null && $timestamp < wfTimestamp() - $maxage ) {
+                       // Expired token
+                       return false;
+               }
+
+               $sessionToken = $this->getEditTokenAtTimestamp(
+                       $salt, $request ?: $this->getRequest(), $timestamp
+               );
+
                if ( $val != $sessionToken ) {
                        wfDebug( "User::matchEditToken: broken session data\n" );
                }
 
-               return $val == $sessionToken;
+               return hash_equals( $sessionToken, $val );
        }
 
        /**
@@ -3944,11 +3978,12 @@ class User implements IDBAccessObject {
         * @param string $val Input value to compare
         * @param string $salt Optional function-specific data for hashing
         * @param WebRequest|null $request Object to use or null to use $wgRequest
+        * @param int $maxage Fail tokens older than this, in seconds
         * @return bool Whether the token matches
         */
-       public function matchEditTokenNoSuffix( $val, $salt = '', $request = null ) {
-               $sessionToken = $this->getEditToken( $salt, $request );
-               return substr( $sessionToken, 0, 32 ) == substr( $val, 0, 32 );
+       public function matchEditTokenNoSuffix( $val, $salt = '', $request = null, $maxage = null ) {
+               $val = substr( $val, 0, strspn( $val, '0123456789abcdef' ) ) . self::EDIT_TOKEN_SUFFIX;
+               return $this->matchEditToken( $val, $salt, $request, $maxage );
        }
 
        /**
index cb35ee5..dd27f3d 100644 (file)
@@ -58,8 +58,8 @@ if ( $IP === false ) {
        $IP = realpath( '.' ) ?: dirname( __DIR__ );
 }
 
-# Load the profiler
-require_once "$IP/includes/profiler/Profiler.php";
+# Grab profiling functions
+require_once "$IP/includes/profiler/ProfilerFunctions.php";
 $wgRUstart = wfGetRusage() ?: array();
 
 # Start the autoloader, so that extensions can derive classes from core files
index dd0c94c..3be8aff 100644 (file)
@@ -181,7 +181,6 @@ class HistoryAction extends FormlessAction {
 
                // Add the general form
                $action = htmlspecialchars( wfScript() );
-               $className = 'historysubmit mw-history-compareselectedversions-button';
                $out->addHTML(
                        "<form action=\"$action\" method=\"get\" id=\"mw-history-searchform\">" .
                        Xml::fieldset(
@@ -199,7 +198,7 @@ class HistoryAction extends FormlessAction {
                        $checkDeleted .
                        Html::submitButton(
                                $this->msg( 'allpagessubmit' )->text(),
-                               $attrs,
+                               array(),
                                array( 'mw-ui-progressive' )
                        ) . "\n" .
                        '</fieldset></form>'
index f932a40..e7455f6 100644 (file)
@@ -290,7 +290,7 @@ class InfoAction extends FormlessAction {
 
                $pageInfo['header-basic'][] = array( $langDisp,
                        Language::fetchLanguageName( $pageLang, $lang->getCode() )
-                       . ' ' . $this->msg( 'parentheses', $pageLang ) );
+                       . ' ' . $this->msg( 'parentheses', $pageLang )->escaped() );
 
                // Content model of the page
                $pageInfo['header-basic'][] = array(
@@ -314,13 +314,6 @@ class InfoAction extends FormlessAction {
                        $this->msg( 'pageinfo-robot-policy' ), $this->msg( "pageinfo-robot-${policy['index']}" )
                );
 
-               if ( isset( $pageCounts['views'] ) ) {
-                       // Number of views
-                       $pageInfo['header-basic'][] = array(
-                               $this->msg( 'pageinfo-views' ), $lang->formatNum( $pageCounts['views'] )
-                       );
-               }
-
                $unwatchedPageThreshold = $config->get( 'UnwatchedPageThreshold' );
                if (
                        $user->isAllowed( 'unwatchedpages' ) ||
@@ -644,17 +637,6 @@ class InfoAction extends FormlessAction {
                $dbr = wfGetDB( DB_SLAVE );
                $result = array();
 
-               if ( !$config->get( 'DisableCounters' ) ) {
-                       // Number of views
-                       $views = (int)$dbr->selectField(
-                               'page',
-                               'page_counter',
-                               array( 'page_id' => $id ),
-                               __METHOD__
-                       );
-                       $result['views'] = $views;
-               }
-
                // Number of page watchers
                $watchers = (int)$dbr->selectField(
                        'watchlist',
index 7bc3f71..3f84f2a 100644 (file)
@@ -64,6 +64,27 @@ abstract class ApiBase extends ContextSource {
        // Boolean, if MIN/MAX are set, enforce (die) these?
        // Only applies if TYPE='integer' Use with extreme caution
        const PARAM_RANGE_ENFORCE = 9;
+       /// @since 1.25
+       // Specify an alternative i18n message for this help parameter.
+       // Value can be a string key, an array giving key and parameters, or a
+       // Message object.
+       const PARAM_HELP_MSG = 10;
+       /// @since 1.25
+       // Specify additional i18n messages to append to the normal message. Value
+       // is an array of any of strings giving the message key, arrays giving key and
+       // parameters, or Message objects.
+       const PARAM_HELP_MSG_APPEND = 11;
+       /// @since 1.25
+       // Specify additional information tags for the parameter. Value is an array
+       // of arrays, with the first member being the 'tag' for the info and the
+       // remaining members being the values. In the help, this is formatted using
+       // apihelp-{$path}-paraminfo-{$tag}, which is passed $1 = count, $2 =
+       // comma-joined list of values, $3 = module prefix.
+       const PARAM_HELP_MSG_INFO = 12;
+       /// @since 1.25
+       // When PARAM_DFLT is an array, this may be an array mapping those values
+       // to page titles which will be linked in the help.
+       const PARAM_VALUE_LINKS = 13;
 
        const LIMIT_BIG1 = 500; // Fast query, std user limit
        const LIMIT_BIG2 = 5000; // Fast query, bot/sysop limit
@@ -143,27 +164,64 @@ abstract class ApiBase extends ContextSource {
        }
 
        /**
-        * Returns the description string for this module
-        * @return string|array
+        * Returns usage examples for this module.
+        *
+        * Return value has query strings as keys, with values being either strings
+        * (message key), arrays (message key + parameter), or Message objects.
+        *
+        * Do not call this base class implementation when overriding this method.
+        *
+        * @since 1.25
+        * @return array
         */
-       protected function getDescription() {
-               return false;
-       }
+       protected function getExamplesMessages() {
+               // Fall back to old non-localised method
+               $ret = array();
+
+               $examples = $this->getExamples();
+               if ( $examples ) {
+                       if ( !is_array( $examples ) ) {
+                               $examples = array( $examples );
+                       } elseif ( $examples && ( count( $examples ) & 1 ) == 0 &&
+                               array_keys( $examples ) === range( 0, count( $examples ) - 1 ) &&
+                               !preg_match( '/^\s*api\.php\?/', $examples[0] )
+                       ) {
+                               // Fix up the ugly "even numbered elements are description, odd
+                               // numbered elemts are the link" format (see doc for self::getExamples)
+                               $tmp = array();
+                               for ( $i = 0; $i < count( $examples ); $i += 2 ) {
+                                       $tmp[$examples[$i + 1]] = $examples[$i];
+                               }
+                               $examples = $tmp;
+                       }
 
-       /**
-        * Returns usage examples for this module. Return false if no examples are available.
-        * @return bool|string|array
-        */
-       protected function getExamples() {
-               return false;
+                       foreach ( $examples as $k => $v ) {
+                               if ( is_numeric( $k ) ) {
+                                       $qs = $v;
+                                       $msg = '';
+                               } else {
+                                       $qs = $k;
+                                       $msg = self::escapeWikiText( $v );
+                                       if ( is_array( $msg ) ) {
+                                               $msg = join( " ", $msg );
+                                       }
+                               }
+
+                               $qs = preg_replace( '/^\s*api\.php\?/', '', $qs );
+                               $ret[$qs] = $this->msg( 'api-help-fallback-example', array( $msg ) );
+                       }
+               }
+
+               return $ret;
        }
 
        /**
-        * @return bool|string|array Returns a false if the module has no help URL,
-        *   else returns a (array of) string
+        * Return links to more detailed help pages about the module.
+        * @since 1.25, returning boolean false is deprecated
+        * @return string|array
         */
        public function getHelpUrls() {
-               return false;
+               return array();
        }
 
        /**
@@ -176,22 +234,12 @@ abstract class ApiBase extends ContextSource {
         * in the overriding methods. Callers of this method can pass zero or
         * more OR-ed flags like GET_VALUES_FOR_HELP.
         *
-        * @return array|bool
+        * @return array
         */
        protected function getAllowedParams( /* $flags = 0 */ ) {
                // int $flags is not declared because it causes "Strict standards"
                // warning. Most derived classes do not implement it.
-               return false;
-       }
-
-       /**
-        * Returns an array of parameter descriptions.
-        * Don't call this function directly: use getFinalParamDescription() to
-        * allow hooks to modify descriptions as needed.
-        * @return array|bool False on no parameter descriptions
-        */
-       protected function getParamDescription() {
-               return false;
+               return array();
        }
 
        /**
@@ -226,6 +274,24 @@ abstract class ApiBase extends ContextSource {
                return $this->needsToken() !== false;
        }
 
+       /**
+        * Indicates whether this module is deprecated
+        * @since 1.25
+        * @return bool
+        */
+       public function isDeprecated() {
+               return false;
+       }
+
+       /**
+        * Indicates whether this module is "internal" or unstable
+        * @since 1.25
+        * @return bool
+        */
+       public function isInternal() {
+               return false;
+       }
+
        /**
         * Returns the token type this module requires in order to execute.
         *
@@ -234,11 +300,9 @@ abstract class ApiBase extends ContextSource {
         * core types, you must use the ApiQueryTokensRegisterTypes hook to
         * register it.
         *
-        * Returning a non-falsey value here will cause self::getFinalParams() to
-        * return a required string 'token' parameter and
-        * self::getFinalParamDescription() to ensure there is standardized
-        * documentation for it. Also, self::mustBePosted() must return true when
-        * tokens are used.
+        * Returning a non-falsey value here will force the addition of an
+        * appropriate 'token' parameter in self::getFinalParams(). Also,
+        * self::mustBePosted() must return true when tokens are used.
         *
         * In previous versions of MediaWiki, true was a valid return value.
         * Returning true will generate errors indicating that the API module needs
@@ -303,6 +367,73 @@ abstract class ApiBase extends ContextSource {
                return $this === $this->mMainModule;
        }
 
+       /**
+        * Get the parent of this module
+        * @since 1.25
+        * @return ApiBase|null
+        */
+       public function getParent() {
+               return $this->isMain() ? null : $this->getMain();
+       }
+
+       /**
+        * Get the path to this module
+        *
+        * @since 1.25
+        * @return string
+        */
+       public function getModulePath() {
+               if ( $this->isMain() ) {
+                       return 'main';
+               } elseif ( $this->getParent()->isMain() ) {
+                       return $this->getModuleName();
+               } else {
+                       return $this->getParent()->getModulePath() . '+' . $this->getModuleName();
+               }
+       }
+
+       /**
+        * Get a module from its module path
+        *
+        * @since 1.25
+        * @param string $path
+        * @return ApiBase|null
+        * @throws UsageException
+        */
+       public function getModuleFromPath( $path ) {
+               $module = $this->getMain();
+               if ( $path === 'main' ) {
+                       return $module;
+               }
+
+               $parts = explode( '+', $path );
+               if ( count( $parts ) === 1 ) {
+                       // In case the '+' was typed into URL, it resolves as a space
+                       $parts = explode( ' ', $path );
+               }
+
+               $count = count( $parts );
+               for ( $i = 0; $i < $count; $i++ ) {
+                       $parent = $module;
+                       $manager = $parent->getModuleManager();
+                       if ( $manager === null ) {
+                               $errorPath = join( '+', array_slice( $parts, 0, $i ) );
+                               $this->dieUsage( "The module \"$errorPath\" has no submodules", 'badmodule' );
+                       }
+                       $module = $manager->getModule( $parts[$i] );
+
+                       if ( $module === null ) {
+                               $errorPath = $i ? join( '+', array_slice( $parts, 0, $i ) ) : $parent->getModuleName();
+                               $this->dieUsage(
+                                       "The module \"$errorPath\" does not have a submodule \"{$parts[$i]}\"",
+                                       'badmodule'
+                               );
+                       }
+               }
+
+               return $module;
+       }
+
        /**
         * Get the result object
         * @return ApiResult
@@ -339,70 +470,6 @@ abstract class ApiBase extends ContextSource {
                return $this->mSlaveDB;
        }
 
-       /**
-        * Get final module description, after hooks have had a chance to tweak it as
-        * needed.
-        *
-        * @return array|bool False on no parameters
-        */
-       public function getFinalDescription() {
-               $desc = $this->getDescription();
-               wfRunHooks( 'APIGetDescription', array( &$this, &$desc ) );
-
-               return $desc;
-       }
-
-       /**
-        * Get final list of parameters, after hooks have had a chance to
-        * tweak it as needed.
-        *
-        * @param int $flags Zero or more flags like GET_VALUES_FOR_HELP
-        * @return array|bool False on no parameters
-        * @since 1.21 $flags param added
-        */
-       public function getFinalParams( $flags = 0 ) {
-               $params = $this->getAllowedParams( $flags );
-
-               if ( $this->needsToken() ) {
-                       $params['token'] = array(
-                               ApiBase::PARAM_TYPE => 'string',
-                               ApiBase::PARAM_REQUIRED => true,
-                       );
-               }
-
-               wfRunHooks( 'APIGetAllowedParams', array( &$this, &$params, $flags ) );
-
-               return $params;
-       }
-
-       /**
-        * Get final parameter descriptions, after hooks have had a chance to tweak it as
-        * needed.
-        *
-        * @return array|bool False on no parameter descriptions
-        */
-       public function getFinalParamDescription() {
-               $desc = $this->getParamDescription();
-
-               $tokenType = $this->needsToken();
-               if ( $tokenType ) {
-                       if ( !isset( $desc['token'] ) ) {
-                               $desc['token'] = array();
-                       } elseif ( !is_array( $desc['token'] ) ) {
-                               // We ignore a plain-string token, because it's probably an
-                               // extension that is supplying the string for BC.
-                               $desc['token'] = array();
-                       }
-                       array_unshift( $desc['token'],
-                               "A '$tokenType' token retrieved from action=query&meta=tokens"
-                       );
-               }
-
-               wfRunHooks( 'APIGetParamDescription', array( &$this, &$desc ) );
-
-               return $desc;
-       }
-
        /**@}*/
 
        /************************************************************************//**
@@ -1093,6 +1160,55 @@ abstract class ApiBase extends ContextSource {
                return $user;
        }
 
+       /**
+        * A subset of wfEscapeWikiText for BC texts
+        *
+        * @since 1.25
+        * @param string|array $v
+        * @return string|array
+        */
+       private static function escapeWikiText( $v ) {
+               if ( is_array( $v ) ) {
+                       return array_map( 'self::escapeWikiText', $v );
+               } else {
+                       return strtr( $v, array(
+                               '__' => '_&#95;', '{' => '&#123;', '}' => '&#125;',
+                               '[[Category:' => '[[:Category:',
+                               '[[File:' => '[[:File:', '[[Image:' => '[[:Image:',
+                       ) );
+               }
+       }
+
+       /**
+        * Create a Message from a string or array
+        *
+        * A string is used as a message key. An array has the message key as the
+        * first value and message parameters as subsequent values.
+        *
+        * @since 1.25
+        * @param string|array|Message $msg
+        * @param IContextSource $context
+        * @param array $params
+        * @return Message|null
+        */
+       public static function makeMessage( $msg, IContextSource $context, array $params = null ) {
+               if ( is_string( $msg ) ) {
+                       $msg = wfMessage( $msg );
+               } elseif ( is_array( $msg ) ) {
+                       $msg = call_user_func_array( 'wfMessage', $msg );
+               }
+               if ( !$msg instanceof Message ) {
+                       return null;
+               }
+
+               $msg->setContext( $context );
+               if ( $params ) {
+                       $msg->params( $params );
+               }
+
+               return $msg;
+       }
+
        /**@}*/
 
        /************************************************************************//**
@@ -1819,262 +1935,199 @@ abstract class ApiBase extends ContextSource {
         */
 
        /**
-        * Generates help message for this module, or false if there is no description
-        * @return string|bool
+        * Return the description message.
+        *
+        * @return string|array|Message
         */
-       public function makeHelpMsg() {
-               static $lnPrfx = "\n  ";
+       protected function getDescriptionMessage() {
+               return "apihelp-{$this->getModulePath()}-description";
+       }
 
-               $msg = $this->getFinalDescription();
+       /**
+        * Get final module description, after hooks have had a chance to tweak it as
+        * needed.
+        *
+        * @since 1.25, returns Message[] rather than string[]
+        * @return Message[]
+        */
+       public function getFinalDescription() {
+               $desc = $this->getDescription();
+               wfRunHooks( 'APIGetDescription', array( &$this, &$desc ) );
+               $desc = self::escapeWikiText( $desc );
+               if ( is_array( $desc ) ) {
+                       $desc = join( "\n", $desc );
+               } else {
+                       $desc = (string)$desc;
+               }
 
-               if ( $msg !== false ) {
+               $msg = ApiBase::makeMessage( $this->getDescriptionMessage(), $this->getContext(), array(
+                       $this->getModulePrefix(),
+                       $this->getModuleName(),
+                       $this->getModulePath(),
+               ) );
+               if ( !$msg->exists() ) {
+                       $msg = $this->msg( 'api-help-fallback-description', $desc );
+               }
+               $msgs = array( $msg );
 
-                       if ( !is_array( $msg ) ) {
-                               $msg = array(
-                                       $msg
-                               );
-                       }
-                       $msg = $lnPrfx . implode( $lnPrfx, $msg ) . "\n";
+               wfRunHooks( 'APIGetDescriptionMessages', array( $this, &$msgs ) );
 
-                       $msg .= $this->makeHelpArrayToString( $lnPrfx, false, $this->getHelpUrls() );
+               return $msgs;
+       }
 
-                       if ( $this->isReadMode() ) {
-                               $msg .= "\nThis module requires read rights";
-                       }
-                       if ( $this->isWriteMode() ) {
-                               $msg .= "\nThis module requires write rights";
-                       }
-                       if ( $this->mustBePosted() ) {
-                               $msg .= "\nThis module only accepts POST requests";
+       /**
+        * Get final list of parameters, after hooks have had a chance to
+        * tweak it as needed.
+        *
+        * @param int $flags Zero or more flags like GET_VALUES_FOR_HELP
+        * @return array|bool False on no parameters
+        * @since 1.21 $flags param added
+        */
+       public function getFinalParams( $flags = 0 ) {
+               $params = $this->getAllowedParams( $flags );
+               if ( !$params ) {
+                       $params = array();
+               }
+
+               if ( $this->needsToken() ) {
+                       $params['token'] = array(
+                               ApiBase::PARAM_TYPE => 'string',
+                               ApiBase::PARAM_REQUIRED => true,
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'api-help-param-token',
+                                       $this->needsToken(),
+                               ),
+                       ) + ( isset( $params['token'] ) ? $params['token'] : array() );
+               }
+
+               wfRunHooks( 'APIGetAllowedParams', array( &$this, &$params, $flags ) );
+
+               return $params;
+       }
+
+       /**
+        * Get final parameter descriptions, after hooks have had a chance to tweak it as
+        * needed.
+        *
+        * @since 1.25, returns array of Message[] rather than array of string[]
+        * @return array Keys are parameter names, values are arrays of Message objects
+        */
+       public function getFinalParamDescription() {
+               $desc = $this->getParamDescription();
+               wfRunHooks( 'APIGetParamDescription', array( &$this, &$desc ) );
+
+               if ( !$desc ) {
+                       $desc = array();
+               }
+               $desc = self::escapeWikiText( $desc );
+
+               $params = $this->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
+               $msgs = array();
+               foreach ( $params as $param => $settings ) {
+                       if ( !is_array( $settings ) ) {
+                               $settings = array();
                        }
-                       if ( $this->isReadMode() || $this->isWriteMode() ||
-                               $this->mustBePosted()
-                       ) {
-                               $msg .= "\n";
+
+                       $d = isset( $desc[$param] ) ? $desc[$param] : '';
+                       if ( is_array( $d ) ) {
+                               // Special handling for prop parameters
+                               $d = array_map( function ( $line ) {
+                                       if ( preg_match( '/^\s+(\S+)\s+-\s+(.+)$/', $line, $m ) ) {
+                                               $line = "\n;{$m[1]}:{$m[2]}";
+                                       }
+                                       return $line;
+                               }, $d );
+                               $d = join( ' ', $d );
                        }
 
-                       // Parameters
-                       $paramsMsg = $this->makeHelpMsgParameters();
-                       if ( $paramsMsg !== false ) {
-                               $msg .= "Parameters:\n$paramsMsg";
+                       if ( isset( $settings[ApiBase::PARAM_HELP_MSG] ) ) {
+                               $msg = $settings[ApiBase::PARAM_HELP_MSG];
+                       } else {
+                               $msg = $this->msg( "apihelp-{$this->getModulePath()}-param-{$param}" );
+                               if ( !$msg->exists() ) {
+                                       $msg = $this->msg( 'api-help-fallback-parameter', $d );
+                               }
                        }
+                       $msg = ApiBase::makeMessage( $msg, $this->getContext(), array(
+                               $this->getModulePrefix(),
+                               $param,
+                               $this->getModuleName(),
+                               $this->getModulePath(),
+                       ) );
+                       if ( !$msg ) {
+                               $this->dieDebug( __METHOD__,
+                                       'Value in ApiBase::PARAM_HELP_MSG is not valid' );
+                       }
+                       $msgs[$param] = array( $msg );
 
-                       $examples = $this->getExamples();
-                       if ( $examples ) {
-                               if ( !is_array( $examples ) ) {
-                                       $examples = array(
-                                               $examples
-                                       );
+                       if ( isset( $settings[ApiBase::PARAM_HELP_MSG_APPEND] ) ) {
+                               if ( !is_array( $settings[ApiBase::PARAM_HELP_MSG_APPEND] ) ) {
+                                       $this->dieDebug( __METHOD__,
+                                               'Value for ApiBase::PARAM_HELP_MSG_APPEND is not an array' );
                                }
-                               $msg .= "Example" . ( count( $examples ) > 1 ? 's' : '' ) . ":\n";
-                               foreach ( $examples as $k => $v ) {
-                                       if ( is_numeric( $k ) ) {
-                                               $msg .= "  $v\n";
+                               foreach ( $settings[ApiBase::PARAM_HELP_MSG_APPEND] as $m ) {
+                                       $m = ApiBase::makeMessage( $m, $this->getContext(), array(
+                                               $this->getModulePrefix(),
+                                               $param,
+                                               $this->getModuleName(),
+                                               $this->getModulePath(),
+                                       ) );
+                                       if ( $m ) {
+                                               $msgs[$param][] = $m;
                                        } else {
-                                               if ( is_array( $v ) ) {
-                                                       $msgExample = implode( "\n", array_map( array( $this, 'indentExampleText' ), $v ) );
-                                               } else {
-                                                       $msgExample = "  $v";
-                                               }
-                                               $msgExample .= ":";
-                                               $msg .= wordwrap( $msgExample, 100, "\n" ) . "\n    $k\n";
+                                               $this->dieDebug( __METHOD__,
+                                                       'Value in ApiBase::PARAM_HELP_MSG_APPEND is not valid' );
                                        }
                                }
                        }
                }
 
-               return $msg;
-       }
+               wfRunHooks( 'APIGetParamDescriptionMessages', array( $this, &$msgs ) );
 
-       /**
-        * @param string $item
-        * @return string
-        */
-       private function indentExampleText( $item ) {
-               return "  " . $item;
+               return $msgs;
        }
 
        /**
-        * @param string $prefix Text to split output items
-        * @param string $title What is being output
-        * @param string|array $input
-        * @return string
+        * Generates the list of flags for the help screen and for action=paraminfo
+        *
+        * Corresponding messages: api-help-flag-deprecated,
+        * api-help-flag-internal, api-help-flag-readrights,
+        * api-help-flag-writerights, api-help-flag-mustbeposted
+        *
+        * @return string[]
         */
-       protected function makeHelpArrayToString( $prefix, $title, $input ) {
-               if ( $input === false ) {
-                       return '';
+       protected function getHelpFlags() {
+               $flags = array();
+
+               if ( $this->isDeprecated() ) {
+                       $flags[] = 'deprecated';
                }
-               if ( !is_array( $input ) ) {
-                       $input = array( $input );
+               if ( $this->isInternal() ) {
+                       $flags[] = 'internal';
                }
-
-               if ( count( $input ) > 0 ) {
-                       if ( $title ) {
-                               $msg = $title . ( count( $input ) > 1 ? 's' : '' ) . ":\n  ";
-                       } else {
-                               $msg = '  ';
-                       }
-                       $msg .= implode( $prefix, $input ) . "\n";
-
-                       return $msg;
+               if ( $this->isReadMode() ) {
+                       $flags[] = 'readrights';
+               }
+               if ( $this->isWriteMode() ) {
+                       $flags[] = 'writerights';
+               }
+               if ( $this->mustBePosted() ) {
+                       $flags[] = 'mustbeposted';
                }
 
-               return '';
+               return $flags;
        }
 
        /**
-        * Generates the parameter descriptions for this module, to be displayed in the
-        * module's help.
-        * @return string|bool
+        * Called from ApiHelp before the pieces are joined together and returned.
+        *
+        * This exists mainly for ApiMain to add the Permissions and Credits
+        * sections. Other modules probably don't need it.
+        *
+        * @param string[] &$help Array of help data
+        * @param array $options Options passed to ApiHelp::getHelp
         */
-       public function makeHelpMsgParameters() {
-               $params = $this->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
-               if ( $params ) {
-
-                       $paramsDescription = $this->getFinalParamDescription();
-                       $msg = '';
-                       $paramPrefix = "\n" . str_repeat( ' ', 24 );
-                       $descWordwrap = "\n" . str_repeat( ' ', 28 );
-                       foreach ( $params as $paramName => $paramSettings ) {
-                               $desc = isset( $paramsDescription[$paramName] ) ? $paramsDescription[$paramName] : '';
-                               if ( is_array( $desc ) ) {
-                                       $desc = implode( $paramPrefix, $desc );
-                               }
-
-                               //handle shorthand
-                               if ( !is_array( $paramSettings ) ) {
-                                       $paramSettings = array(
-                                               self::PARAM_DFLT => $paramSettings,
-                                       );
-                               }
-
-                               //handle missing type
-                               if ( !isset( $paramSettings[ApiBase::PARAM_TYPE] ) ) {
-                                       $dflt = isset( $paramSettings[ApiBase::PARAM_DFLT] )
-                                               ? $paramSettings[ApiBase::PARAM_DFLT]
-                                               : null;
-                                       if ( is_bool( $dflt ) ) {
-                                               $paramSettings[ApiBase::PARAM_TYPE] = 'boolean';
-                                       } elseif ( is_string( $dflt ) || is_null( $dflt ) ) {
-                                               $paramSettings[ApiBase::PARAM_TYPE] = 'string';
-                                       } elseif ( is_int( $dflt ) ) {
-                                               $paramSettings[ApiBase::PARAM_TYPE] = 'integer';
-                                       }
-                               }
-
-                               if ( isset( $paramSettings[self::PARAM_DEPRECATED] )
-                                       && $paramSettings[self::PARAM_DEPRECATED]
-                               ) {
-                                       $desc = "DEPRECATED! $desc";
-                               }
-
-                               if ( isset( $paramSettings[self::PARAM_REQUIRED] )
-                                       && $paramSettings[self::PARAM_REQUIRED]
-                               ) {
-                                       $desc .= $paramPrefix . "This parameter is required";
-                               }
-
-                               $type = isset( $paramSettings[self::PARAM_TYPE] )
-                                       ? $paramSettings[self::PARAM_TYPE]
-                                       : null;
-                               if ( isset( $type ) ) {
-                                       $hintPipeSeparated = true;
-                                       $multi = isset( $paramSettings[self::PARAM_ISMULTI] )
-                                               ? $paramSettings[self::PARAM_ISMULTI]
-                                               : false;
-                                       if ( $multi ) {
-                                               $prompt = 'Values (separate with \'|\'): ';
-                                       } else {
-                                               $prompt = 'One value: ';
-                                       }
-
-                                       if ( $type === 'submodule' ) {
-                                               $type = $this->getModuleManager()->getNames( $paramName );
-                                               sort( $type );
-                                       }
-                                       if ( is_array( $type ) ) {
-                                               $choices = array();
-                                               $nothingPrompt = '';
-                                               foreach ( $type as $t ) {
-                                                       if ( $t === '' ) {
-                                                               $nothingPrompt = 'Can be empty, or ';
-                                                       } else {
-                                                               $choices[] = $t;
-                                                       }
-                                               }
-                                               $desc .= $paramPrefix . $nothingPrompt . $prompt;
-                                               $choicesstring = implode( ', ', $choices );
-                                               $desc .= wordwrap( $choicesstring, 100, $descWordwrap );
-                                               $hintPipeSeparated = false;
-                                       } else {
-                                               switch ( $type ) {
-                                                       case 'namespace':
-                                                               // Special handling because namespaces are
-                                                               // type-limited, yet they are not given
-                                                               $desc .= $paramPrefix . $prompt;
-                                                               $desc .= wordwrap( implode( ', ', MWNamespace::getValidNamespaces() ),
-                                                                       100, $descWordwrap );
-                                                               $hintPipeSeparated = false;
-                                                               break;
-                                                       case 'limit':
-                                                               $desc .= $paramPrefix . "No more than {$paramSettings[self::PARAM_MAX]}";
-                                                               if ( isset( $paramSettings[self::PARAM_MAX2] ) ) {
-                                                                       $desc .= " ({$paramSettings[self::PARAM_MAX2]} for bots)";
-                                                               }
-                                                               $desc .= ' allowed';
-                                                               break;
-                                                       case 'integer':
-                                                               $s = $multi ? 's' : '';
-                                                               $hasMin = isset( $paramSettings[self::PARAM_MIN] );
-                                                               $hasMax = isset( $paramSettings[self::PARAM_MAX] );
-                                                               if ( $hasMin || $hasMax ) {
-                                                                       if ( !$hasMax ) {
-                                                                               $intRangeStr = "The value$s must be no less than " .
-                                                                                       "{$paramSettings[self::PARAM_MIN]}";
-                                                                       } elseif ( !$hasMin ) {
-                                                                               $intRangeStr = "The value$s must be no more than " .
-                                                                                       "{$paramSettings[self::PARAM_MAX]}";
-                                                                       } else {
-                                                                               $intRangeStr = "The value$s must be between " .
-                                                                                       "{$paramSettings[self::PARAM_MIN]} and {$paramSettings[self::PARAM_MAX]}";
-                                                                       }
-
-                                                                       $desc .= $paramPrefix . $intRangeStr;
-                                                               }
-                                                               break;
-                                                       case 'upload':
-                                                               $desc .= $paramPrefix . "Must be posted as a file upload using multipart/form-data";
-                                                               break;
-                                               }
-                                       }
-
-                                       if ( $multi ) {
-                                               if ( $hintPipeSeparated ) {
-                                                       $desc .= $paramPrefix . "Separate values with '|'";
-                                               }
-
-                                               $isArray = is_array( $type );
-                                               if ( !$isArray
-                                                       || $isArray && count( $type ) > self::LIMIT_SML1
-                                               ) {
-                                                       $desc .= $paramPrefix . "Maximum number of values " .
-                                                               self::LIMIT_SML1 . " (" . self::LIMIT_SML2 . " for bots)";
-                                               }
-                                       }
-                               }
-
-                               $default = isset( $paramSettings[self::PARAM_DFLT] ) ? $paramSettings[self::PARAM_DFLT] : null;
-                               if ( !is_null( $default ) && $default !== false ) {
-                                       $desc .= $paramPrefix . "Default: $default";
-                               }
-
-                               $msg .= sprintf( "  %-19s - %s\n", $this->encodeParamName( $paramName ), $desc );
-                       }
-
-                       return $msg;
-               }
-
-               return false;
+       public function modifyHelp( array &$help, array $options ) {
        }
 
        /**@}*/
@@ -2365,6 +2418,321 @@ abstract class ApiBase extends ContextSource {
                return array();
        }
 
+       /**
+        * Returns the description string for this module
+        *
+        * Ignored if an i18n message exists for
+        * "apihelp-{$this->getModulePathString()}-description".
+        *
+        * @deprecated since 1.25
+        * @return Message|string|array
+        */
+       protected function getDescription() {
+               return false;
+       }
+
+       /**
+        * Returns an array of parameter descriptions.
+        *
+        * For each parameter, ignored if an i18n message exists for the parameter.
+        * By default that message is
+        * "apihelp-{$this->getModulePathString()}-param-{$param}", but it may be
+        * overridden using ApiBase::PARAM_HELP_MSG in the data returned by
+        * self::getFinalParams().
+        *
+        * @deprecated since 1.25
+        * @return array|bool False on no parameter descriptions
+        */
+       protected function getParamDescription() {
+               return array();
+       }
+
+       /**
+        * Returns usage examples for this module.
+        *
+        * Return value as an array is either:
+        *  - numeric keys with partial URLs ("api.php?" plus a query string) as
+        *    values
+        *  - sequential numeric keys with even-numbered keys being display-text
+        *    and odd-numbered keys being partial urls
+        *  - partial URLs as keys with display-text (string or array-to-be-joined)
+        *    as values
+        * Return value as a string is the same as an array with a numeric key and
+        * that value, and boolean false means "no examples".
+        *
+        * @deprecated since 1.25, use getExamplesMessages() instead
+        * @return bool|string|array
+        */
+       protected function getExamples() {
+               return false;
+       }
+
+       /**
+        * Generates help message for this module, or false if there is no description
+        * @deprecated since 1.25
+        * @return string|bool
+        */
+       public function makeHelpMsg() {
+               wfDeprecated( __METHOD__, '1.25' );
+               static $lnPrfx = "\n  ";
+
+               $msg = $this->getFinalDescription();
+
+               if ( $msg !== false ) {
+
+                       if ( !is_array( $msg ) ) {
+                               $msg = array(
+                                       $msg
+                               );
+                       }
+                       $msg = $lnPrfx . implode( $lnPrfx, $msg ) . "\n";
+
+                       $msg .= $this->makeHelpArrayToString( $lnPrfx, false, $this->getHelpUrls() );
+
+                       if ( $this->isReadMode() ) {
+                               $msg .= "\nThis module requires read rights";
+                       }
+                       if ( $this->isWriteMode() ) {
+                               $msg .= "\nThis module requires write rights";
+                       }
+                       if ( $this->mustBePosted() ) {
+                               $msg .= "\nThis module only accepts POST requests";
+                       }
+                       if ( $this->isReadMode() || $this->isWriteMode() ||
+                               $this->mustBePosted()
+                       ) {
+                               $msg .= "\n";
+                       }
+
+                       // Parameters
+                       $paramsMsg = $this->makeHelpMsgParameters();
+                       if ( $paramsMsg !== false ) {
+                               $msg .= "Parameters:\n$paramsMsg";
+                       }
+
+                       $examples = $this->getExamples();
+                       if ( $examples ) {
+                               if ( !is_array( $examples ) ) {
+                                       $examples = array(
+                                               $examples
+                                       );
+                               }
+                               $msg .= "Example" . ( count( $examples ) > 1 ? 's' : '' ) . ":\n";
+                               foreach ( $examples as $k => $v ) {
+                                       if ( is_numeric( $k ) ) {
+                                               $msg .= "  $v\n";
+                                       } else {
+                                               if ( is_array( $v ) ) {
+                                                       $msgExample = implode( "\n", array_map( array( $this, 'indentExampleText' ), $v ) );
+                                               } else {
+                                                       $msgExample = "  $v";
+                                               }
+                                               $msgExample .= ":";
+                                               $msg .= wordwrap( $msgExample, 100, "\n" ) . "\n    $k\n";
+                                       }
+                               }
+                       }
+               }
+
+               return $msg;
+       }
+
+       /**
+        * @deprecated since 1.25
+        * @param string $item
+        * @return string
+        */
+       private function indentExampleText( $item ) {
+               return "  " . $item;
+       }
+
+       /**
+        * @deprecated since 1.25
+        * @param string $prefix Text to split output items
+        * @param string $title What is being output
+        * @param string|array $input
+        * @return string
+        */
+       protected function makeHelpArrayToString( $prefix, $title, $input ) {
+               wfDeprecated( __METHOD__, '1.25' );
+               if ( $input === false ) {
+                       return '';
+               }
+               if ( !is_array( $input ) ) {
+                       $input = array( $input );
+               }
+
+               if ( count( $input ) > 0 ) {
+                       if ( $title ) {
+                               $msg = $title . ( count( $input ) > 1 ? 's' : '' ) . ":\n  ";
+                       } else {
+                               $msg = '  ';
+                       }
+                       $msg .= implode( $prefix, $input ) . "\n";
+
+                       return $msg;
+               }
+
+               return '';
+       }
+
+       /**
+        * Generates the parameter descriptions for this module, to be displayed in the
+        * module's help.
+        * @deprecated since 1.25
+        * @return string|bool
+        */
+       public function makeHelpMsgParameters() {
+               wfDeprecated( __METHOD__, '1.25' );
+               $params = $this->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
+               if ( $params ) {
+
+                       $paramsDescription = $this->getFinalParamDescription();
+                       $msg = '';
+                       $paramPrefix = "\n" . str_repeat( ' ', 24 );
+                       $descWordwrap = "\n" . str_repeat( ' ', 28 );
+                       foreach ( $params as $paramName => $paramSettings ) {
+                               $desc = isset( $paramsDescription[$paramName] ) ? $paramsDescription[$paramName] : '';
+                               if ( is_array( $desc ) ) {
+                                       $desc = implode( $paramPrefix, $desc );
+                               }
+
+                               //handle shorthand
+                               if ( !is_array( $paramSettings ) ) {
+                                       $paramSettings = array(
+                                               self::PARAM_DFLT => $paramSettings,
+                                       );
+                               }
+
+                               //handle missing type
+                               if ( !isset( $paramSettings[ApiBase::PARAM_TYPE] ) ) {
+                                       $dflt = isset( $paramSettings[ApiBase::PARAM_DFLT] )
+                                               ? $paramSettings[ApiBase::PARAM_DFLT]
+                                               : null;
+                                       if ( is_bool( $dflt ) ) {
+                                               $paramSettings[ApiBase::PARAM_TYPE] = 'boolean';
+                                       } elseif ( is_string( $dflt ) || is_null( $dflt ) ) {
+                                               $paramSettings[ApiBase::PARAM_TYPE] = 'string';
+                                       } elseif ( is_int( $dflt ) ) {
+                                               $paramSettings[ApiBase::PARAM_TYPE] = 'integer';
+                                       }
+                               }
+
+                               if ( isset( $paramSettings[self::PARAM_DEPRECATED] )
+                                       && $paramSettings[self::PARAM_DEPRECATED]
+                               ) {
+                                       $desc = "DEPRECATED! $desc";
+                               }
+
+                               if ( isset( $paramSettings[self::PARAM_REQUIRED] )
+                                       && $paramSettings[self::PARAM_REQUIRED]
+                               ) {
+                                       $desc .= $paramPrefix . "This parameter is required";
+                               }
+
+                               $type = isset( $paramSettings[self::PARAM_TYPE] )
+                                       ? $paramSettings[self::PARAM_TYPE]
+                                       : null;
+                               if ( isset( $type ) ) {
+                                       $hintPipeSeparated = true;
+                                       $multi = isset( $paramSettings[self::PARAM_ISMULTI] )
+                                               ? $paramSettings[self::PARAM_ISMULTI]
+                                               : false;
+                                       if ( $multi ) {
+                                               $prompt = 'Values (separate with \'|\'): ';
+                                       } else {
+                                               $prompt = 'One value: ';
+                                       }
+
+                                       if ( $type === 'submodule' ) {
+                                               $type = $this->getModuleManager()->getNames( $paramName );
+                                               sort( $type );
+                                       }
+                                       if ( is_array( $type ) ) {
+                                               $choices = array();
+                                               $nothingPrompt = '';
+                                               foreach ( $type as $t ) {
+                                                       if ( $t === '' ) {
+                                                               $nothingPrompt = 'Can be empty, or ';
+                                                       } else {
+                                                               $choices[] = $t;
+                                                       }
+                                               }
+                                               $desc .= $paramPrefix . $nothingPrompt . $prompt;
+                                               $choicesstring = implode( ', ', $choices );
+                                               $desc .= wordwrap( $choicesstring, 100, $descWordwrap );
+                                               $hintPipeSeparated = false;
+                                       } else {
+                                               switch ( $type ) {
+                                                       case 'namespace':
+                                                               // Special handling because namespaces are
+                                                               // type-limited, yet they are not given
+                                                               $desc .= $paramPrefix . $prompt;
+                                                               $desc .= wordwrap( implode( ', ', MWNamespace::getValidNamespaces() ),
+                                                                       100, $descWordwrap );
+                                                               $hintPipeSeparated = false;
+                                                               break;
+                                                       case 'limit':
+                                                               $desc .= $paramPrefix . "No more than {$paramSettings[self::PARAM_MAX]}";
+                                                               if ( isset( $paramSettings[self::PARAM_MAX2] ) ) {
+                                                                       $desc .= " ({$paramSettings[self::PARAM_MAX2]} for bots)";
+                                                               }
+                                                               $desc .= ' allowed';
+                                                               break;
+                                                       case 'integer':
+                                                               $s = $multi ? 's' : '';
+                                                               $hasMin = isset( $paramSettings[self::PARAM_MIN] );
+                                                               $hasMax = isset( $paramSettings[self::PARAM_MAX] );
+                                                               if ( $hasMin || $hasMax ) {
+                                                                       if ( !$hasMax ) {
+                                                                               $intRangeStr = "The value$s must be no less than " .
+                                                                                       "{$paramSettings[self::PARAM_MIN]}";
+                                                                       } elseif ( !$hasMin ) {
+                                                                               $intRangeStr = "The value$s must be no more than " .
+                                                                                       "{$paramSettings[self::PARAM_MAX]}";
+                                                                       } else {
+                                                                               $intRangeStr = "The value$s must be between " .
+                                                                                       "{$paramSettings[self::PARAM_MIN]} and {$paramSettings[self::PARAM_MAX]}";
+                                                                       }
+
+                                                                       $desc .= $paramPrefix . $intRangeStr;
+                                                               }
+                                                               break;
+                                                       case 'upload':
+                                                               $desc .= $paramPrefix . "Must be posted as a file upload using multipart/form-data";
+                                                               break;
+                                               }
+                                       }
+
+                                       if ( $multi ) {
+                                               if ( $hintPipeSeparated ) {
+                                                       $desc .= $paramPrefix . "Separate values with '|'";
+                                               }
+
+                                               $isArray = is_array( $type );
+                                               if ( !$isArray
+                                                       || $isArray && count( $type ) > self::LIMIT_SML1
+                                               ) {
+                                                       $desc .= $paramPrefix . "Maximum number of values " .
+                                                               self::LIMIT_SML1 . " (" . self::LIMIT_SML2 . " for bots)";
+                                               }
+                                       }
+                               }
+
+                               $default = isset( $paramSettings[self::PARAM_DFLT] ) ? $paramSettings[self::PARAM_DFLT] : null;
+                               if ( !is_null( $default ) && $default !== false ) {
+                                       $desc .= $paramPrefix . "Default: $default";
+                               }
+
+                               $msg .= sprintf( "  %-19s - %s\n", $this->encodeParamName( $paramName ), $desc );
+                       }
+
+                       return $msg;
+               }
+
+               return false;
+       }
+
        /**@}*/
 }
 
index 07f62c6..dea43ba 100644 (file)
@@ -165,38 +165,16 @@ class ApiBlock extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'user' => 'Username, IP address or IP range you want to block',
-                       'expiry' => 'Relative expiry time, e.g. \'5 months\' or \'2 weeks\'. ' .
-                               'If set to \'infinite\', \'indefinite\' or \'never\', the block will never expire.',
-                       'reason' => 'Reason for block',
-                       'anononly' => 'Block anonymous users only (i.e. disable anonymous edits for this IP)',
-                       'nocreate' => 'Prevent account creation',
-                       'autoblock' => 'Automatically block the last used IP address, and ' .
-                               'any subsequent IP addresses they try to login from',
-                       'noemail'
-                               => 'Prevent user from sending email through the wiki. (Requires the "blockemail" right.)',
-                       'hidename' => 'Hide the username from the block log. (Requires the "hideuser" right.)',
-                       'allowusertalk'
-                               => 'Allow the user to edit their own talk page (depends on $wgBlockAllowsUTEdit)',
-                       'reblock' => 'If the user is already blocked, overwrite the existing block',
-                       'watchuser' => 'Watch the user/IP\'s user and talk pages',
-               );
-       }
-
-       public function getDescription() {
-               return 'Block a user.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=block&user=123.5.5.12&expiry=3%20days&reason=First%20strike&token=123ABC',
-                       'api.php?action=block&user=Vandal&expiry=never&reason=Vandalism&nocreate=&autoblock=&noemail=&token=123ABC'
+                       'action=block&user=192.0.2.5&expiry=3%20days&reason=First%20strike&token=123ABC'
+                               => 'apihelp-block-example-ip-simple',
+                       'action=block&user=Vandal&expiry=never&reason=Vandalism&nocreate=&autoblock=&noemail=&token=123ABC'
+                               => 'apihelp-block-example-user-complex',
                );
        }
 
index 32e20e8..eb471ae 100644 (file)
@@ -42,13 +42,10 @@ class ApiClearHasMsg extends ApiBase {
                return false;
        }
 
-       public function getDescription() {
-               return array( 'Clears the hasmsg flag for current user.' );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=clearhasmsg' => 'Clears the hasmsg flag for current user',
+                       'action=clearhasmsg'
+                               => 'apihelp-clearhasmsg-example-1',
                );
        }
 
index 4855926..ce256a6 100644 (file)
@@ -126,27 +126,10 @@ class ApiComparePages extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'fromtitle' => 'First title to compare',
-                       'fromid' => 'First page ID to compare',
-                       'fromrev' => 'First revision to compare',
-                       'totitle' => 'Second title to compare',
-                       'toid' => 'Second page ID to compare',
-                       'torev' => 'Second revision to compare',
-               );
-       }
-
-       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).'
-               );
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=compare&fromrev=1&torev=2' => 'Create a diff between revision 1 and 2',
+                       'action=compare&fromrev=1&torev=2'
+                               => 'apihelp-compare-example-1',
                );
        }
 }
index 2ce532b..89f8481 100644 (file)
@@ -165,10 +165,6 @@ class ApiCreateAccount extends ApiBase {
                $apiResult->addValue( null, 'createaccount', $result );
        }
 
-       public function getDescription() {
-               return 'Create a new user account.';
-       }
-
        public function mustBePosted() {
                return true;
        }
@@ -204,27 +200,12 @@ class ApiCreateAccount extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'name' => 'Username',
-                       'password' => "Password (ignored if {$p}mailpassword is set)",
-                       'domain' => 'Domain for external authentication (optional)',
-                       'token' => 'Account creation token obtained in first request',
-                       'email' => 'Email address of user (optional)',
-                       'realname' => 'Real name of user (optional)',
-                       'mailpassword' => 'If set to any value, a random password will be emailed to the user',
-                       'reason' => 'Optional reason for creating the account to be put in the logs',
-                       'language'
-                               => 'Language code to set as default for the user (optional, defaults to content language)'
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=createaccount&name=testuser&password=test123',
-                       'api.php?action=createaccount&name=testmailuser&mailpassword=true&reason=MyReason',
+                       'action=createaccount&name=testuser&password=test123'
+                               => 'apihelp-createaccount-example-pass',
+                       'action=createaccount&name=testmailuser&mailpassword=true&reason=MyReason'
+                               => 'apihelp-createaccount-example-mail',
                );
        }
 
index abca824..d8b5718 100644 (file)
@@ -210,35 +210,16 @@ class ApiDelete extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'title' => "Title of the page you want to delete. Cannot be used together with {$p}pageid",
-                       'pageid' => "Page ID of the page you want to delete. Cannot be used together with {$p}title",
-                       'reason'
-                               => 'Reason for the deletion. If not set, an automatically generated reason will be used',
-                       'watch' => 'Add the page to your watchlist',
-                       'watchlist' => 'Unconditionally add or remove the page from your ' .
-                               'watchlist, use preferences or do not change watch',
-                       'unwatch' => 'Remove the page from your watchlist',
-                       'oldimage' => 'The name of the old image to delete as provided by iiprop=archivename'
-               );
-       }
-
-       public function getDescription() {
-               return 'Delete a page.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=delete&title=Main%20Page&token=123ABC' => 'Delete the Main Page',
-                       'api.php?action=delete&title=Main%20Page&token=123ABC&reason=Preparing%20for%20move'
-                               => 'Delete the Main Page with the reason "Preparing for move"',
+                       'action=delete&title=Main%20Page&token=123ABC'
+                               => 'apihelp-delete-example-simple',
+                       'action=delete&title=Main%20Page&token=123ABC&reason=Preparing%20for%20move'
+                               => 'apihelp-delete-example-reason',
                );
        }
 
index 6ea5d20..fc97522 100644 (file)
@@ -44,19 +44,7 @@ class ApiDisabled extends ApiBase {
                return false;
        }
 
-       public function getAllowedParams() {
-               return array();
-       }
-
-       public function getParamDescription() {
-               return array();
-       }
-
-       public function getDescription() {
-               return 'This module has been disabled.';
-       }
-
-       public function getExamples() {
-               return array();
+       protected function getDescriptionMessage() {
+               return 'apihelp-disabled-description';
        }
 }
index 8a76271..269b016 100644 (file)
@@ -496,10 +496,6 @@ class ApiEditPage extends ApiBase {
                return true;
        }
 
-       public function getDescription() {
-               return 'Create and edit pages.';
-       }
-
        public function getAllowedParams() {
                return array(
                        'title' => array(
@@ -557,58 +553,11 @@ class ApiEditPage extends ApiBase {
                        ),
                        'contentmodel' => array(
                                ApiBase::PARAM_TYPE => ContentHandler::getContentModels(),
-                       )
-               );
-       }
-
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'title' => "Title of the page you want to edit. Cannot be used together with {$p}pageid",
-                       'pageid' => "Page ID of the page you want to edit. Cannot be used together with {$p}title",
-                       'section' => 'Section number. 0 for the top section, \'new\' for a new section',
-                       'sectiontitle' => 'The title for a new section',
-                       'text' => 'Page content',
-                       'token' => array(
-                               /* Standard description is automatically prepended */
-                               'The token should always be sent as the last parameter, or at ' .
-                                       "least, after the {$p}text parameter"
-                       ),
-                       'summary'
-                               => "Edit summary. Also section title when {$p}section=new and {$p}sectiontitle is not set",
-                       'minor' => 'Minor edit',
-                       'notminor' => 'Non-minor edit',
-                       'bot' => 'Mark this edit as bot',
-                       'basetimestamp' => array(
-                               'Timestamp of the base revision (obtained through prop=revisions&rvprop=timestamp).',
-                               'Used to detect edit conflicts; leave unset to ignore conflicts'
                        ),
-                       'starttimestamp' => array(
-                               'Timestamp when you began the editing process, e.g. when the current page content ' .
-                                       'was loaded for editing.',
-                               'Used to detect edit conflicts; leave unset to ignore conflicts'
-                       ),
-                       'recreate' => 'Override any errors about the article having been deleted in the meantime',
-                       'createonly' => 'Don\'t edit the page if it exists already',
-                       'nocreate' => 'Throw an error if the page doesn\'t exist',
-                       'watch' => 'Add the page to your watchlist',
-                       'unwatch' => 'Remove the page from your watchlist',
-                       'watchlist' => 'Unconditionally add or remove the page from your ' .
-                               'watchlist, use preferences or do not change watch',
-                       'md5' => array(
-                               "The MD5 hash of the {$p}text parameter, or the {$p}prependtext " .
-                                       "and {$p}appendtext parameters concatenated.",
-                               'If set, the edit won\'t be done unless the hash is correct'
+                       'token' => array(
+                               // Standard definition automatically inserted
+                               ApiBase::PARAM_HELP_MSG_APPEND => array( 'apihelp-edit-param-token' ),
                        ),
-                       'prependtext' => "Add this text to the beginning of the page. Overrides {$p}text",
-                       'appendtext' => array( "Add this text to the end of the page. Overrides {$p}text.",
-                               "Use {$p}section=new to append a new section" ),
-                       'undo' => "Undo this revision. Overrides {$p}text, {$p}prependtext and {$p}appendtext",
-                       'undoafter' => 'Undo all revisions from undo to this one. If not set, just undo one revision',
-                       'redirect' => 'Automatically resolve redirects',
-                       'contentformat' => 'Content serialization format used for the input text',
-                       'contentmodel' => 'Content model of the new content',
                );
        }
 
@@ -616,17 +565,17 @@ class ApiEditPage extends ApiBase {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=edit&title=Test&summary=test%20summary&' .
-                       'text=article%20content&basetimestamp=20070824123454&token=%2B\\'
-                               => 'Edit a page (anonymous user)',
-                       'api.php?action=edit&title=Test&summary=NOTOC&minor=&' .
-                               'prependtext=__NOTOC__%0A&basetimestamp=20070824123454&token=%2B\\'
-                               => 'Prepend __NOTOC__ to a page (anonymous user)',
-                       'api.php?action=edit&title=Test&undo=13585&undoafter=13579&' .
-                               'basetimestamp=20070824123454&token=%2B\\'
-                               => 'Undo r13579 through r13585 with autosummary (anonymous user)',
+                       'action=edit&title=Test&summary=test%20summary&' .
+                               'text=article%20content&basetimestamp=2007-08-24T12:34:54Z&token=123ABC'
+                               => 'apihelp-edit-example-edit',
+                       'action=edit&title=Test&summary=NOTOC&minor=&' .
+                               'prependtext=__NOTOC__%0A&basetimestamp=2007-08-24T12:34:54Z&token=123ABC'
+                               => 'apihelp-edit-example-prepend',
+                       'action=edit&title=Test&undo=13585&undoafter=13579&' .
+                               'basetimestamp=2007-08-24T12:34:54Z&token=123ABC'
+                               => 'apihelp-edit-example-undo',
                );
        }
 
index 9870b2d..15eb475 100644 (file)
@@ -102,27 +102,14 @@ class ApiEmailUser extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'target' => 'User to send email to',
-                       'subject' => 'Subject header',
-                       'text' => 'Mail body',
-                       'ccme' => 'Send a copy of this mail to me',
-               );
-       }
-
-       public function getDescription() {
-               return 'Email a user.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=emailuser&target=WikiSysop&text=Content&token=123ABC'
-                               => 'Send an email to the User "WikiSysop" with the text "Content"',
+                       'action=emailuser&target=WikiSysop&text=Content&token=123ABC'
+                               => 'apihelp-emailuser-example-email',
                );
        }
 
index 8a3b534..eea10e9 100644 (file)
@@ -75,7 +75,7 @@ class ApiExpandTemplates extends ApiBase {
                                $this->logFeatureUsage( 'action=expandtemplates&generatexml' );
                        }
 
-                       $wgParser->startExternalParse( $title_obj, $options, OT_PREPROCESS );
+                       $wgParser->startExternalParse( $title_obj, $options, Parser::OT_PREPROCESS );
                        $dom = $wgParser->preprocessToDom( $params['text'] );
                        if ( is_callable( array( $dom, 'saveXML' ) ) ) {
                                $xml = $dom->saveXML();
@@ -96,7 +96,7 @@ class ApiExpandTemplates extends ApiBase {
                // if they didn't want any output except (probably) the parse tree,
                // then don't bother actually fully expanding it
                if ( $prop || $params['prop'] === null ) {
-                       $wgParser->startExternalParse( $title_obj, $options, OT_PREPROCESS );
+                       $wgParser->startExternalParse( $title_obj, $options, Parser::OT_PREPROCESS );
                        $frame = $wgParser->getPreprocessor()->newFrame();
                        $wikitext = $wgParser->preprocess( $params['text'], $title_obj, $options, null, $frame );
                        if ( $params['prop'] === null ) {
@@ -159,35 +159,10 @@ class ApiExpandTemplates extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'text' => 'Wikitext to convert',
-                       'title' => 'Title of page',
-                       'prop' => array(
-                               'Which pieces of information to get',
-                               ' wikitext   - The expanded wikitext',
-                               ' categories - Any categories present in the input that are not represented in ' .
-                                       'the wikitext output',
-                               ' volatile   - Whether the output is volatile and should not be reused ' .
-                                       'elsewhere within the page',
-                               ' ttl        - The maximum time after which caches of the result should be ' .
-                                       'invalidated',
-                               ' parsetree  - The XML parse tree of the input',
-                               'Note that if no values are selected, the result will contain the wikitext,',
-                               'but the output will be in a deprecated format.',
-                       ),
-                       'includecomments' => 'Whether to include HTML comments in the output',
-                       'generatexml' => 'Generate XML parse tree (replaced by prop=parsetree)',
-               );
-       }
-
-       public function getDescription() {
-               return 'Expands all templates in wikitext.';
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=expandtemplates&text={{Project:Sandbox}}'
+                       'action=expandtemplates&text={{Project:Sandbox}}'
+                               => 'apihelp-expandtemplates-example-simple',
                );
        }
 
index 374203e..ced5f0c 100644 (file)
@@ -161,7 +161,7 @@ class ApiFeedContributions extends ApiBase {
        public function getAllowedParams() {
                $feedFormatNames = array_keys( $this->getConfig()->get( 'FeedClasses' ) );
 
-               return array(
+               $ret = array(
                        'feedformat' => array(
                                ApiBase::PARAM_DFLT => 'rss',
                                ApiBase::PARAM_TYPE => $feedFormatNames
@@ -187,32 +187,22 @@ class ApiFeedContributions extends ApiBase {
                        'deletedonly' => false,
                        'toponly' => false,
                        'newonly' => false,
-                       'showsizediff' => false,
+                       'showsizediff' => array(
+                               ApiBase::PARAM_DFLT => false,
+                       ),
                );
-       }
 
-       public function getParamDescription() {
-               return array(
-                       'feedformat' => 'The format of the feed',
-                       'user' => 'What users to get the contributions for',
-                       'namespace' => 'What namespace to filter the contributions by',
-                       'year' => 'From year (and earlier)',
-                       'month' => 'From month (and earlier)',
-                       'tagfilter' => 'Filter contributions that have these tags',
-                       'deletedonly' => 'Show only deleted contributions',
-                       'toponly' => 'Only show edits that are latest revisions',
-                       'newonly' => 'Only show edits that are page creations',
-                       'showsizediff' => 'Show the size difference between revisions. Disabled in Miser Mode',
-               );
-       }
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
+                       $ret['showsizediff'][ApiBase::PARAM_HELP_MSG] = 'api-help-param-disabled-in-miser-mode';
+               }
 
-       public function getDescription() {
-               return 'Returns a user contributions feed.';
+               return $ret;
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=feedcontributions&user=Reedy',
+                       'action=feedcontributions&user=Example'
+                               => 'apihelp-feedcontributions-example-simple',
                );
        }
 }
index 7239a29..d452bbd 100644 (file)
@@ -171,37 +171,12 @@ class ApiFeedRecentChanges extends ApiBase {
                return $ret;
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                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 getExamples() {
-               return array(
-                       'api.php?action=feedrecentchanges',
-                       'api.php?action=feedrecentchanges&days=30'
+                       'action=feedrecentchanges'
+                               => 'apihelp-feedrecentchanges-example-simple',
+                       'action=feedrecentchanges&days=30'
+                               => 'apihelp-feedrecentchanges-example-30days',
                );
        }
 }
index 6aef8fc..561ff3b 100644 (file)
@@ -219,50 +219,42 @@ class ApiFeedWatchlist extends ApiBase {
                        ),
                        'linktosections' => false,
                );
+
+               $copyParams = array(
+                       'allrev' => 'allrev',
+                       'owner' => 'wlowner',
+                       'token' => 'wltoken',
+                       'show' => 'wlshow',
+                       'type' => 'wltype',
+                       'excludeuser' => 'wlexcludeuser',
+               );
                if ( $flags ) {
                        $wlparams = $this->getWatchlistModule()->getAllowedParams( $flags );
-                       $ret['allrev'] = $wlparams['allrev'];
-                       $ret['wlowner'] = $wlparams['owner'];
-                       $ret['wltoken'] = $wlparams['token'];
-                       $ret['wlshow'] = $wlparams['show'];
-                       $ret['wltype'] = $wlparams['type'];
-                       $ret['wlexcludeuser'] = $wlparams['excludeuser'];
+                       foreach ( $copyParams as $from => $to ) {
+                               $p = $wlparams[$from];
+                               if ( !is_array( $p ) ) {
+                                       $p = array( ApiBase::PARAM_DFLT => $p );
+                               }
+                               if ( !isset( $p[ApiBase::PARAM_HELP_MSG] ) ) {
+                                       $p[ApiBase::PARAM_HELP_MSG] = "apihelp-query+watchlist-param-$from";
+                               }
+                               $ret[$to] = $p;
+                       }
                } else {
-                       $ret['allrev'] = null;
-                       $ret['wlowner'] = null;
-                       $ret['wltoken'] = null;
-                       $ret['wlshow'] = null;
-                       $ret['wltype'] = null;
-                       $ret['wlexcludeuser'] = null;
+                       foreach ( $copyParams as $from => $to ) {
+                               $ret[$to] = null;
+                       }
                }
 
                return $ret;
        }
 
-       public function getParamDescription() {
-               $wldescr = $this->getWatchlistModule()->getParamDescription();
-
-               return array(
-                       'feedformat' => 'The format of the feed',
-                       'hours' => 'List pages modified within this many hours from now',
-                       'linktosections' => 'Link directly to changed sections if possible',
-                       'allrev' => $wldescr['allrev'],
-                       'wlowner' => $wldescr['owner'],
-                       'wltoken' => $wldescr['token'],
-                       'wlshow' => $wldescr['show'],
-                       'wltype' => $wldescr['type'],
-                       'wlexcludeuser' => $wldescr['excludeuser'],
-               );
-       }
-
-       public function getDescription() {
-               return 'Returns a watchlist feed.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=feedwatchlist',
-                       'api.php?action=feedwatchlist&allrev=&hours=6'
+                       'action=feedwatchlist'
+                               => 'apihelp-feedwatchlist-example-default',
+                       'action=feedwatchlist&allrev=&hours=6'
+                               => 'apihelp-feedwatchlist-example-all6hrs',
                );
        }
 
index f518e17..61966e5 100644 (file)
@@ -135,29 +135,15 @@ class ApiFileRevert extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'filename' => 'Target filename without the File: prefix',
-                       'comment' => 'Upload comment',
-                       'archivename' => 'Archive name of the revision to revert to',
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       'Revert a file to an old version.'
-               );
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=filerevert&filename=Wiki.png&comment=Revert&' .
+                       'action=filerevert&filename=Wiki.png&comment=Revert&' .
                                'archivename=20110305152740!Wiki.png&token=123ABC'
-                               => 'Revert Wiki.png to the version of 20110305152740',
+                               => 'apihelp-filerevert-example-revert',
                );
        }
 }
index 2a57688..913b8eb 100644 (file)
@@ -30,8 +30,8 @@
  * @ingroup API
  */
 abstract class ApiFormatBase extends ApiBase {
-       private $mIsHtml, $mFormat, $mUnescapeAmps, $mHelp, $mCleared;
-       private $mBufferResult = false, $mBuffer, $mDisabled = false;
+       private $mIsHtml, $mFormat, $mUnescapeAmps, $mHelp;
+       private $mBuffer, $mDisabled = false;
 
        /**
         * If $format ends with 'fm', pretty-print the output in HTML.
@@ -48,12 +48,14 @@ abstract class ApiFormatBase extends ApiBase {
                        $this->mFormat = $format;
                }
                $this->mFormat = strtoupper( $this->mFormat );
-               $this->mCleared = false;
        }
 
        /**
         * Overriding class returns the MIME type that should be sent to the client.
-        * This method is not called if getIsHtml() returns true.
+        *
+        * When getIsHtml() returns true, the return value here is used for syntax
+        * highlighting but the client sees text/html.
+        *
         * @return string
         */
        abstract public function getMimeType();
@@ -74,19 +76,6 @@ abstract class ApiFormatBase extends ApiBase {
                return $this->mFormat;
        }
 
-       /**
-        * Specify whether or not sequences like &amp;quot; should be unescaped
-        * to &quot; . This should only be set to true for the help message
-        * when rendered in the default (xmlfm) format. This is a temporary
-        * special-case fix that should be removed once the help has been
-        * reworked to use a fully HTML interface.
-        *
-        * @param bool $b Whether or not ampersands should be escaped.
-        */
-       public function setUnescapeAmps( $b ) {
-               $this->mUnescapeAmps = $b;
-       }
-
        /**
         * Returns true when the HTML pretty-printer should be used.
         * The default implementation assumes that formats ending with 'fm'
@@ -98,30 +87,27 @@ abstract class ApiFormatBase extends ApiBase {
        }
 
        /**
-        * Whether this formatter can format the help message in a nice way.
-        * By default, this returns the same as getIsHtml().
-        * When action=help is set explicitly, the help will always be shown
-        * @return bool
-        */
-       public function getWantsHelp() {
-               return $this->getIsHtml();
-       }
-
-       /**
-        * Disable the formatter completely. This causes calls to initPrinter(),
-        * printText() and closePrinter() to be ignored.
+        * Disable the formatter.
+        *
+        * This causes calls to initPrinter() and closePrinter() to be ignored.
         */
        public function disable() {
                $this->mDisabled = true;
        }
 
+       /**
+        * Whether the printer is disabled
+        * @return bool
+        */
        public function isDisabled() {
                return $this->mDisabled;
        }
 
        /**
-        * Whether this formatter can handle printing API errors. If this returns
-        * false, then on API errors the default printer will be instantiated.
+        * Whether this formatter can handle printing API errors.
+        *
+        * If this returns false, then on API errors the default printer will be
+        * instantiated.
         * @since 1.23
         * @return bool
         */
@@ -130,24 +116,19 @@ abstract class ApiFormatBase extends ApiBase {
        }
 
        /**
-        * Initialize the printer function and prepare the output headers, etc.
-        * This method must be the first outputting method during execution.
-        * A human-targeted notice about available formats is printed for the HTML-based output,
-        * except for help screens (caused by either an error in the API parameters,
-        * the calling of action=help, or requesting the root script api.php).
-        * @param bool $isHelpScreen Whether a help screen is going to be shown
+        * Initialize the printer function and prepare the output headers.
+        * @param bool $unused Always false since 1.25
         */
-       function initPrinter( $isHelpScreen ) {
+       function initPrinter( $unused = false ) {
                if ( $this->mDisabled ) {
                        return;
                }
-               $isHtml = $this->getIsHtml();
-               $mime = $isHtml ? 'text/html' : $this->getMimeType();
-               $script = wfScript( 'api' );
+
+               $mime = $this->getIsHtml() ? 'text/html' : $this->getMimeType();
 
                // Some printers (ex. Feed) do their own header settings,
                // in which case $mime will be set to null
-               if ( is_null( $mime ) ) {
+               if ( $mime === null ) {
                        return; // skip any initialization
                }
 
@@ -158,91 +139,64 @@ abstract class ApiFormatBase extends ApiBase {
                if ( $apiFrameOptions ) {
                        $this->getMain()->getRequest()->response()->header( "X-Frame-Options: $apiFrameOptions" );
                }
-
-               if ( $isHtml ) {
-?>
-<!DOCTYPE HTML>
-<html>
-<head>
-<?php
-                       if ( $this->mUnescapeAmps ) {
-?>     <title>MediaWiki API</title>
-<?php
-                       } else {
-?>     <title>MediaWiki API Result</title>
-<?php
-                       }
-?>
-</head>
-<body>
-<?php
-                       if ( !$isHelpScreen ) {
-// @codingStandardsIgnoreStart Exclude long line from CodeSniffer checks
-?>
-<br />
-<small>
-You are looking at the HTML representation of the <?php echo $this->mFormat; ?> format.<br />
-HTML is good for debugging, but is unsuitable for application use.<br />
-Specify the format parameter to change the output format.<br />
-To see the non HTML representation of the <?php echo $this->mFormat; ?> format, set format=<?php echo strtolower( $this->mFormat ); ?>.<br />
-See the <a href='https://www.mediawiki.org/wiki/API'>complete documentation</a>, or
-<a href='<?php echo $script; ?>'>API help</a> for more information.
-</small>
-<pre style='white-space: pre-wrap;'>
-<?php
-// @codingStandardsIgnoreEnd
-                       // don't wrap the contents of the <pre> for help screens
-                       // because these are actually formatted to rely on
-                       // the monospaced font for layout purposes
-                       } else {
-?>
-<pre>
-<?php
-                       }
-               }
        }
 
        /**
-        * Finish printing. Closes HTML tags.
+        * Finish printing and output buffered data.
         */
        public function closePrinter() {
                if ( $this->mDisabled ) {
                        return;
                }
-               if ( $this->getIsHtml() ) {
-?>
 
-</pre>
-</body>
-</html>
-<?php
+               $mime = $this->getMimeType();
+               if ( $this->getIsHtml() && $mime !== null ) {
+                       $format = $this->getFormat();
+                       $result = $this->getBuffer();
+
+                       $context = new DerivativeContext( $this->getMain() );
+                       $context->setSkin( SkinFactory::getDefaultInstance()->makeSkin( 'apioutput' ) );
+                       $context->setTitle( SpecialPage::getTitleFor( 'ApiHelp' ) );
+                       $out = new OutputPage( $context );
+                       $context->setOutput( $out );
+
+                       $out->addModules( 'mediawiki.apipretty' );
+                       $out->setPageTitle( $context->msg( 'api-format-title' ) );
+
+                       $header = $context->msg( 'api-format-prettyprint-header' )
+                               ->params( $format, strtolower( $format ) )
+                               ->parseAsBlock();
+                       $out->addHTML(
+                               Html::rawElement( 'div', array( 'class' => 'api-pretty-header' ),
+                                       ApiHelp::fixHelpLinks( $header )
+                               )
+                       );
+
+                       if ( wfRunHooks( 'ApiFormatHighlight', array( $context, $result, $mime, $format ) ) ) {
+                               $out->addHTML(
+                                       Html::element( 'pre', array( 'class' => 'api-pretty-content' ), $result )
+                               );
+                       }
+
+                       // API handles its own clickjacking protection.
+                       // Note, that $wgBreakFrames will still override $wgApiFrameOptions for format mode.
+                       $out->allowClickJacking();
+                       $out->output();
+               } else {
+                       // For non-HTML output, clear all errors that might have been
+                       // displayed if display_errors=On
+                       ob_clean();
+
+                       echo $this->getBuffer();
                }
        }
 
        /**
-        * The main format printing function. Call it to output the result
-        * string to the user. This function will automatically output HTML
-        * when format name ends in 'fm'.
+        * Append text to the output buffer.
         * @param string $text
         */
        public function printText( $text ) {
-               if ( $this->mDisabled ) {
-                       return;
-               }
-               if ( $this->mBufferResult ) {
-                       $this->mBuffer = $text;
-               } elseif ( $this->getIsHtml() ) {
-                       echo $this->formatHTML( $text );
-               } else {
-                       // For non-HTML output, clear all errors that might have been
-                       // displayed if display_errors=On
-                       // Do this only once, of course
-                       if ( !$this->mCleared ) {
-                               ob_clean();
-                               $this->mCleared = true;
-                       }
-                       echo $text;
-               }
+               $this->mBuffer .= $text;
        }
 
        /**
@@ -253,29 +207,81 @@ See the <a href='https://www.mediawiki.org/wiki/API'>complete documentation</a>,
                return $this->mBuffer;
        }
 
+       protected function getExamplesMessages() {
+               return array(
+                       'action=query&meta=siteinfo&siprop=namespaces&format=' . $this->getModuleName()
+                               => array( 'apihelp-format-example-generic', $this->getFormat() )
+               );
+       }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:Data_formats';
+       }
+
        /**
-        * Set the flag to buffer the result instead of printing it.
-        * @param bool $value
+        * To avoid code duplication with the deprecation of dbg, dump, txt, wddx,
+        * and yaml, this method is added to do the necessary work. It should be
+        * removed when those deprecated formats are removed.
         */
-       public function setBufferResult( $value ) {
-               $this->mBufferResult = $value;
+       protected function markDeprecated() {
+               $fm = $this->getIsHtml() ? 'fm' : '';
+               $name = $this->getModuleName();
+               $this->logFeatureUsage( "format=$name" );
+               $this->setWarning( "format=$name has been deprecated. Please use format=json$fm instead." );
+       }
+
+       /************************************************************************//**
+        * @name   Deprecated
+        * @{
+        */
+
+       /**
+        * Specify whether or not sequences like &amp;quot; should be unescaped
+        * to &quot; . This should only be set to true for the help message
+        * when rendered in the default (xmlfm) format. This is a temporary
+        * special-case fix that should be removed once the help has been
+        * reworked to use a fully HTML interface.
+        *
+        * @deprecated since 1.25
+        * @param bool $b Whether or not ampersands should be escaped.
+        */
+       public function setUnescapeAmps( $b ) {
+               wfDeprecated( __METHOD__, '1.25' );
+               $this->mUnescapeAmps = $b;
+       }
+
+       /**
+        * Whether this formatter can format the help message in a nice way.
+        * By default, this returns the same as getIsHtml().
+        * When action=help is set explicitly, the help will always be shown
+        * @deprecated since 1.25
+        * @return bool
+        */
+       public function getWantsHelp() {
+               wfDeprecated( __METHOD__, '1.25' );
+               return $this->getIsHtml();
        }
 
        /**
         * Sets whether the pretty-printer should format *bold*
+        * @deprecated since 1.25
         * @param bool $help
         */
        public function setHelp( $help = true ) {
+               wfDeprecated( __METHOD__, '1.25' );
                $this->mHelp = $help;
        }
 
        /**
         * Pretty-print various elements in HTML format, such as xml tags and
         * URLs. This method also escapes characters like <
+        * @deprecated since 1.25
         * @param string $text
         * @return string
         */
        protected function formatHTML( $text ) {
+               wfDeprecated( __METHOD__, '1.25' );
+
                // Escape everything first for full coverage
                $text = htmlspecialchars( $text );
 
@@ -328,30 +334,26 @@ See the <a href='https://www.mediawiki.org/wiki/API'>complete documentation</a>,
                return $text;
        }
 
-       public function getExamples() {
-               return array(
-                       'api.php?action=query&meta=siteinfo&siprop=namespaces&format=' . $this->getModuleName()
-                               => "Format the query result in the {$this->getModuleName()} format",
-               );
-       }
-
-       public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Data_formats';
-       }
-
+       /**
+        * @see ApiBase::getDescription
+        * @deprecated since 1.25
+        */
        public function getDescription() {
                return $this->getIsHtml() ? ' (pretty-print in HTML)' : '';
        }
 
        /**
-        * To avoid code duplication with the deprecation of dbg, dump, txt, wddx,
-        * and yaml, this method is added to do the necessary work. It should be
-        * removed when those deprecated formats are removed.
+        * Set the flag to buffer the result instead of printing it.
+        * @deprecated since 1.25, output is always buffered
+        * @param bool $value
         */
-       protected function markDeprecated() {
-               $fm = $this->getIsHtml() ? 'fm' : '';
-               $name = $this->getModuleName();
-               $this->logFeatureUsage( "format=$name" );
-               $this->setWarning( "format=$name has been deprecated. Please use format=json$fm instead." );
+       public function setBufferResult( $value ) {
        }
+
+       /**@}*/
 }
+
+/**
+ * For really cool vim folding this needs to be at the end:
+ * vim: foldmarker=@{,@} foldmethod=marker
+ */
index 5ec518b..273e205 100644 (file)
@@ -43,7 +43,7 @@ class ApiFormatDbg extends ApiFormatBase {
                $this->printText( var_export( $this->getResultData(), true ) );
        }
 
-       public function getDescription() {
-               return 'DEPRECATED! Output data in PHP\'s var_export() format' . parent::getDescription();
+       public function isDeprecated() {
+               return true;
        }
 }
index d4c7cab..7ef8960 100644 (file)
@@ -47,7 +47,7 @@ class ApiFormatDump extends ApiFormatBase {
                $this->printText( $result );
        }
 
-       public function getDescription() {
-               return 'DEPRECATED! Output data in PHP\'s var_dump() format' . parent::getDescription();
+       public function isDeprecated() {
+               return true;
        }
 }
index 9260006..3f53ed4 100644 (file)
@@ -77,6 +77,27 @@ class ApiFormatFeedWrapper extends ApiFormatBase {
                return false;
        }
 
+       /**
+        * This class expects the result data to be in a custom format set by self::setResult()
+        * $result['_feed'] - an instance of one of the $wgFeedClasses classes
+        * $result['_feeditems'] - an array of FeedItem instances
+        */
+       public function initPrinter( $unused = false ) {
+               parent::initPrinter( $unused );
+
+               if ( $this->isDisabled() ) {
+                       return;
+               }
+
+               $data = $this->getResultData();
+               if ( isset( $data['_feed'] ) && isset( $data['_feeditems'] ) ) {
+                       $data['_feed']->httpHeaders();
+               } else {
+                       // Error has occurred, print something useful
+                       ApiBase::dieDebug( __METHOD__, 'Invalid feed class/item' );
+               }
+       }
+
        /**
         * This class expects the result data to be in a custom format set by self::setResult()
         * $result['_feed'] - an instance of one of the $wgFeedClasses classes
@@ -88,11 +109,14 @@ class ApiFormatFeedWrapper extends ApiFormatBase {
                        $feed = $data['_feed'];
                        $items = $data['_feeditems'];
 
+                       // execute() needs to pass strings to $this->printText, not produce output itself.
+                       ob_start();
                        $feed->outHeader();
                        foreach ( $items as & $item ) {
                                $feed->outItem( $item );
                        }
                        $feed->outFooter();
+                       $this->printText( ob_get_clean() );
                } else {
                        // Error has occurred, print something useful
                        ApiBase::dieDebug( __METHOD__, 'Invalid feed class/item' );
index 6c5ad38..ce8656e 100644 (file)
@@ -51,7 +51,11 @@ class ApiFormatJson extends ApiFormatBase {
                return $this->mIsRaw;
        }
 
+       /**
+        * @deprecated since 1.25
+        */
        public function getWantsHelp() {
+               wfDeprecated( __METHOD__, '1.25' );
                // Help is always ugly in JSON
                return false;
        }
@@ -76,25 +80,13 @@ class ApiFormatJson extends ApiFormatBase {
 
        public function getAllowedParams() {
                return array(
-                       'callback' => null,
-                       'utf8' => false,
+                       'callback' => array(
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-json-param-callback',
+                       ),
+                       'utf8' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-json-param-utf8',
+                       ),
                );
        }
-
-       public function getParamDescription() {
-               return array(
-                       'callback' => 'If specified, wraps the output into a given function ' .
-                               'call. For safety, all user-specific data will be restricted.',
-                       'utf8' => 'If specified, encodes most (but not all) non-ASCII ' .
-                               'characters as UTF-8 instead of replacing them with hexadecimal escape sequences.',
-               );
-       }
-
-       public function getDescription() {
-               if ( $this->mIsRaw ) {
-                       return 'Output data with the debugging elements in JSON format' . parent::getDescription();
-               }
-
-               return 'Output data in JSON format' . parent::getDescription();
-       }
 }
index 78023af..dc623ac 100644 (file)
@@ -36,8 +36,4 @@ class ApiFormatNone extends ApiFormatBase {
 
        public function execute() {
        }
-
-       public function getDescription() {
-               return 'Output nothing' . parent::getDescription();
-       }
 }
index b2d1f04..ae93812 100644 (file)
@@ -37,8 +37,4 @@ class ApiFormatPhp extends ApiFormatBase {
        public function execute() {
                $this->printText( serialize( $this->getResultData() ) );
        }
-
-       public function getDescription() {
-               return 'Output data in serialized PHP format' . parent::getDescription();
-       }
 }
index 3f5c8b7..81d2f4f 100644 (file)
  */
 class ApiFormatRaw extends ApiFormatBase {
 
+       private $errorFallback;
+
        /**
         * @param ApiMain $main
         * @param ApiFormatBase $errorFallback Object to fall back on for errors
         */
        public function __construct( ApiMain $main, ApiFormatBase $errorFallback ) {
                parent::__construct( $main, 'raw' );
-               $this->mErrorFallback = $errorFallback;
+               $this->errorFallback = $errorFallback;
        }
 
        public function getMimeType() {
                $data = $this->getResultData();
 
                if ( isset( $data['error'] ) ) {
-                       return $this->mErrorFallback->getMimeType();
+                       return $this->errorFallback->getMimeType();
                }
 
                if ( !isset( $data['mime'] ) ) {
@@ -53,11 +55,28 @@ class ApiFormatRaw extends ApiFormatBase {
                return $data['mime'];
        }
 
-       public function execute() {
+       public function initPrinter( $unused = false ) {
+               $data = $this->getResultData();
+               if ( isset( $data['error'] ) ) {
+                       $this->errorFallback->initPrinter( $unused );
+               } else {
+                       parent::initPrinter( $unused );
+               }
+       }
+
+       public function closePrinter() {
                $data = $this->getResultData();
                if ( isset( $data['error'] ) ) {
-                       $this->mErrorFallback->execute();
+                       $this->errorFallback->closePrinter();
+               } else {
+                       parent::closePrinter();
+               }
+       }
 
+       public function execute() {
+               $data = $this->getResultData();
+               if ( isset( $data['error'] ) ) {
+                       $this->errorFallback->execute();
                        return;
                }
 
index c451ed7..505b259 100644 (file)
@@ -43,7 +43,7 @@ class ApiFormatTxt extends ApiFormatBase {
                $this->printText( print_r( $this->getResultData(), true ) );
        }
 
-       public function getDescription() {
-               return 'DEPRECATED! Output data in PHP\'s print_r() format' . parent::getDescription();
+       public function isDeprecated() {
+               return true;
        }
 }
index ba90c26..e2d4d61 100644 (file)
@@ -109,7 +109,7 @@ class ApiFormatWddx extends ApiFormatBase {
                }
        }
 
-       public function getDescription() {
-               return 'DEPRECATED! Output data in WDDX format' . parent::getDescription();
+       public function isDeprecated() {
+               return true;
        }
 }
index b3d5937..7010dd6 100644 (file)
@@ -237,20 +237,13 @@ class ApiFormatXml extends ApiFormatBase {
 
        public function getAllowedParams() {
                return array(
-                       'xslt' => null,
-                       'includexmlnamespace' => false,
+                       'xslt' => array(
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-xml-param-xslt',
+                       ),
+                       'includexmlnamespace' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-xml-param-includexmlnamespace',
+                       ),
                );
        }
-
-       public function getParamDescription() {
-               return array(
-                       'xslt' => 'If specified, adds <xslt> as stylesheet. This should be a wiki page '
-                               . 'in the MediaWiki namespace whose page name ends with ".xsl"',
-                       'includexmlnamespace' => 'If specified, adds an XML namespace'
-               );
-       }
-
-       public function getDescription() {
-               return 'Output data in XML format' . parent::getDescription();
-       }
 }
index 3798f89..c9089a7 100644 (file)
@@ -40,7 +40,7 @@ class ApiFormatYaml extends ApiFormatJson {
                parent::execute();
        }
 
-       public function getDescription() {
-               return 'DEPRECATED! Output data in YAML format' . ApiFormatBase::getDescription();
+       public function isDeprecated() {
+               return true;
        }
 }
index bcd6c12..b33b087 100644 (file)
@@ -2,9 +2,9 @@
 /**
  *
  *
- * Created on Sep 6, 2006
+ * Created on Aug 29, 2014
  *
- * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
+ * Copyright © 2014 Brad Jorsch <bjorsch@wikimedia.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
  */
 
 /**
- * This is a simple class to handle action=help
+ * Class to output help for an API module
  *
+ * @since 1.25 completely rewritten
  * @ingroup API
  */
 class ApiHelp extends ApiBase {
-       /**
-        * Module for displaying help
-        */
        public function execute() {
-               // Get parameters
+               global $wgContLang;
+
                $params = $this->extractRequestParams();
+               $modules = array();
 
-               if ( !isset( $params['modules'] ) && !isset( $params['querymodules'] ) ) {
-                       $this->dieUsage( '', 'help' );
+               foreach ( $params['modules'] as $path ) {
+                       $modules[] = $this->getModuleFromPath( $path );
                }
 
-               $this->getMain()->setHelp();
-               $result = $this->getResult();
+               // Get the help
+               $context = new DerivativeContext( $this->getMain()->getContext() );
+               $context->setSkin( SkinFactory::getDefaultInstance()->makeSkin( 'apioutput' ) );
+               $context->setLanguage( $this->getMain()->getLanguage() );
+               $context->setTitle( SpecialPage::getTitleFor( 'ApiHelp' ) );
+               $out = new OutputPage( $context );
+               $context->setOutput( $out );
 
-               if ( is_array( $params['modules'] ) ) {
-                       $modules = $params['modules'];
+               self::getHelp( $context, $modules, $params );
+
+               // Grab the output from the skin
+               ob_start();
+               $context->getOutput()->output();
+               $html = ob_get_clean();
+
+               $result = $this->getResult();
+               if ( $params['wrap'] ) {
+                       $data = array(
+                               'mime' => 'text/html',
+                               'help' => $html,
+                       );
+                       $result->setSubelements( $data, 'help' );
+                       $result->addValue( null, $this->getModuleName(), $data );
                } else {
-                       $modules = array();
+                       $result->reset();
+                       $result->addValue( null, 'text', $html, ApiResult::NO_SIZE_CHECK );
+                       $result->addValue( null, 'mime', 'text/html', ApiResult::NO_SIZE_CHECK );
+               }
+       }
+
+       /**
+        * Generate help for the specified modules
+        *
+        * Help is placed into the OutputPage object returned by
+        * $context->getOutput().
+        *
+        * Recognized options include:
+        *  - headerlevel: (int) Header tag level
+        *  - nolead: (bool) Skip the inclusion of api-help-lead
+        *  - noheader: (bool) Skip the inclusion of the top-level section headers
+        *  - submodules: (bool) Include help for submodules of the current module
+        *  - recursivesubmodules: (bool) Include help for submodules recursively
+        *  - helptitle: (string) Title to link for additional modules' help. Should contain $1.
+        *
+        * @param IContextSource $context
+        * @param ApiBase[]|ApiBase $modules
+        * @param array $options Formatting options (described above)
+        * @return string
+        */
+       public static function getHelp( IContextSource $context, $modules, array $options ) {
+               global $wgMemc, $wgContLang;
+
+               if ( !is_array( $modules ) ) {
+                       $modules = array( $modules );
                }
 
-               if ( is_array( $params['querymodules'] ) ) {
-                       $this->logFeatureUsage( 'action=help&querymodules' );
-                       $queryModules = $params['querymodules'];
-                       foreach ( $queryModules as $m ) {
-                               $modules[] = 'query+' . $m;
+               $out = $context->getOutput();
+               $out->addModules( 'mediawiki.apihelp' );
+               $out->setPageTitle( $context->msg( 'api-help-title' ) );
+
+               $cacheKey = null;
+               if ( count( $modules ) == 1 && $modules[0] instanceof ApiMain &&
+                       $options['recursivesubmodules'] && $context->getLanguage() === $wgContLang
+               ) {
+                       $cacheHelpTimeout = $context->getConfig()->get( 'APICacheHelpTimeout' );
+                       if ( $cacheHelpTimeout > 0 ) {
+                               // Get help text from cache if present
+                               $cacheKey = wfMemcKey( 'apihelp', $modules[0]->getModulePath(),
+                                       str_replace( ' ', '_', SpecialVersion::getVersion( 'nodb' ) ) );
+                               $cached = $wgMemc->get( $cacheKey );
+                               if ( $cached ) {
+                                       $out->addHTML( $cached );
+                                       return;
+                               }
                        }
-               } else {
-                       $queryModules = array();
+               }
+               if ( $out->getHTML() !== '' ) {
+                       // Don't save to cache, there's someone else's content in the page
+                       // already
+                       $cacheKey = null;
                }
 
-               $r = array();
-               foreach ( $modules as $m ) {
-                       // sub-modules could be given in the form of "name[+name[+name...]]"
-                       $subNames = explode( '+', $m );
-                       if ( count( $subNames ) === 1 ) {
-                               // In case the '+' was typed into URL, it resolves as a space
-                               $subNames = explode( ' ', $m );
+               $options['recursivesubmodules'] = !empty( $options['recursivesubmodules'] );
+               $options['submodules'] = $options['recursivesubmodules'] || !empty( $options['submodules'] );
+
+               // Prepend lead
+               if ( empty( $options['nolead'] ) ) {
+                       $msg = $context->msg( 'api-help-lead' );
+                       if ( !$msg->isDisabled() ) {
+                               $out->addHTML( $msg->parseAsBlock() );
                        }
+               }
 
-                       $module = $this->getMain();
-                       $subNamesCount = count( $subNames );
-                       for ( $i = 0; $i < $subNamesCount; $i++ ) {
-                               $subs = $module->getModuleManager();
-                               if ( $subs === null ) {
-                                       $module = null;
-                               } else {
-                                       $module = $subs->getModule( $subNames[$i] );
-                               }
+               $haveModules = array();
+               $out->addHTML( self::getHelpInternal( $context, $modules, $options, $haveModules ) );
 
-                               if ( $module === null ) {
-                                       if ( count( $subNames ) === 2
-                                               && $i === 1
-                                               && $subNames[0] === 'query'
-                                               && in_array( $subNames[1], $queryModules )
-                                       ) {
-                                               // Legacy: This is one of the renamed 'querymodule=...' parameters,
-                                               // do not use '+' notation in the output, use submodule's name instead.
-                                               $name = $subNames[1];
-                                       } else {
-                                               $name = implode( '+', array_slice( $subNames, 0, $i + 1 ) );
-                                       }
-                                       $r[] = array( 'name' => $name, 'missing' => '' );
-                                       break;
+               $helptitle = isset( $options['helptitle'] ) ? $options['helptitle'] : null;
+               $html = self::fixHelpLinks( $out->getHTML(), $helptitle, $haveModules );
+               $out->clearHTML();
+               $out->addHTML( $html );
+
+               if ( $cacheKey !== null ) {
+                       $wgMemc->set( $cacheKey, $out->getHTML(), $cacheHelpTimeout );
+               }
+       }
+
+       /**
+        * Replace Special:ApiHelp links with links to api.php
+        *
+        * @param string $html
+        * @param string|null $helptitle Title to link to rather than api.php, must contain '$1'
+        * @param array $localModules Modules to link within the current page
+        * @return string
+        */
+       public static function fixHelpLinks( $html, $helptitle = null, $localModules = array() ) {
+               $formatter = new HtmlFormatter( $html );
+               $doc = $formatter->getDoc();
+               $xpath = new DOMXPath( $doc );
+               $nodes = $xpath->query( '//a[@href][not(contains(@class,\'apihelp-linktrail\'))]' );
+               foreach ( $nodes as $node ) {
+                       $href = $node->getAttribute( 'href' );
+                       do {
+                               $old = $href;
+                               $href = rawurldecode( $href );
+                       } while ( $old !== $href );
+                       if ( preg_match( '!Special:ApiHelp/([^&/|]+)!', $href, $m ) ) {
+                               if ( isset( $localModules[$m[1]] ) ) {
+                                       $href = '#' . $m[1];
+                               } elseif ( $helptitle !== null ) {
+                                       $href = Title::newFromText( str_replace( '$1', $m[1], $helptitle ) )
+                                               ->getFullUrl();
                                } else {
-                                       $type = $subs->getModuleGroup( $subNames[$i] );
+                                       $href = wfAppendQuery( wfScript( 'api' ), array(
+                                               'action' => 'help',
+                                               'modules' => $m[1],
+                                       ) );
                                }
-                       }
-
-                       if ( $module !== null ) {
-                               $r[] = $this->buildModuleHelp( $module, $type );
+                               $node->setAttribute( 'href', $href );
+                               $node->removeAttribute( 'title' );
                        }
                }
 
-               $result->setIndexedTagName( $r, 'module' );
-               $result->addValue( null, $this->getModuleName(), $r );
+               return $formatter->getText();
+       }
+
+       /**
+        * Wrap a message in HTML with a class.
+        *
+        * @param Message $msg
+        * @param string $class
+        * @param string $tag
+        * @return string
+        */
+       private static function wrap( Message $msg, $class, $tag = 'span' ) {
+               return Html::rawElement( $tag, array( 'class' => $class ),
+                       $msg->parse()
+               );
        }
 
        /**
-        * @param ApiBase $module
-        * @param string $type What type of request is this? e.g. action, query, list, prop, meta, format
+        * Recursively-called function to actually construct the help
+        *
+        * @param IContextSource $context
+        * @param ApiBase[] $modules
+        * @param array $options
+        * @param array &$haveModules
         * @return string
         */
-       private function buildModuleHelp( $module, $type ) {
-               $msg = ApiMain::makeHelpMsgHeader( $module, $type );
+       private static function getHelpInternal( IContextSource $context, array $modules,
+               array $options, &$haveModules
+       ) {
+               $out = '';
+
+               $level = min( 6, empty( $options['headerlevel'] ) ? 2 : $options['headerlevel'] );
+               $options['headerlevel'] = $level;
+
+               foreach ( $modules as $module ) {
+                       $haveModules[$module->getModulePath()] = true;
+                       $module->setContext( $context );
+                       $help = array(
+                               'header' => '',
+                               'flags' => '',
+                               'description' => '',
+                               'help-urls' => '',
+                               'parameters' => '',
+                               'examples' => '',
+                               'submodules' => '',
+                       );
+
+                       if ( empty( $options['noheader'] ) ) {
+                               $path = $module->getModulePath();
+                               if ( $module->isMain() ) {
+                                       $header = $context->msg( 'api-help-main-header' )->parse();
+                               } else {
+                                       $name = $module->getModuleName();
+                                       $header = $module->getParent()->getModuleManager()->getModuleGroup( $name ) .
+                                               "=$name";
+                                       if ( $module->getModulePrefix() !== '' ) {
+                                               $header .= ' ' .
+                                                       $context->msg( 'parentheses', $module->getModulePrefix() )->parse();
+                                       }
+                               }
+                               $help['header'] .= Html::element( "h$level",
+                                       array( 'id' => $path, 'class' => 'apihelp-header' ),
+                                       $header
+                               );
+                       }
+
+                       $links = array();
+                       $any = false;
+                       for ( $m = $module; $m !== null; $m = $m->getParent() ) {
+                               $name = $m->getModuleName();
+                               if ( $name === 'main_int' ) {
+                                       $name = 'main';
+                               }
+
+                               if ( count( $modules ) === 1 && $m === $modules[0] &&
+                                       !( !empty( $options['submodules'] ) && $m->getModuleManager() )
+                               ) {
+                                       $link = Html::element( 'b', null, $name );
+                               } else {
+                                       $link = SpecialPage::getTitleFor( 'ApiHelp', $m->getModulePath() )->getLocalURL();
+                                       $link = Html::element( 'a',
+                                               array( 'href' => $link, 'class' => 'apihelp-linktrail' ),
+                                               $name
+                                       );
+                                       $any = true;
+                               }
+                               array_unshift( $links, $link );
+                       }
+                       if ( $any ) {
+                               $help['header'] .= self::wrap(
+                                       $context->msg( 'parentheses' )
+                                               ->rawParams( $context->getLanguage()->pipeList( $links ) ),
+                                       'apihelp-linktrail', 'div'
+                               );
+                       }
+
+                       $flags = $module->getHelpFlags();
+                       if ( $flags ) {
+                               $help['flags'] .= Html::openElement( 'div',
+                                       array( 'class' => 'apihelp-block apihelp-flags' ) );
+                               $msg = $context->msg( 'api-help-flags' );
+                               if ( !$msg->isDisabled() ) {
+                                       $help['flags'] .= self::wrap(
+                                               $msg->numParams( count( $flags ) ), 'apihelp-block-head', 'div'
+                                       );
+                               }
+                               $help['flags'] .= Html::openElement( 'ul' );
+                               foreach ( $flags as $flag ) {
+                                       $help['flags'] .= Html::rawElement( 'li', null,
+                                               self::wrap( $context->msg( "api-help-flag-$flag" ), "apihelp-flag-$flag" )
+                                       );
+                               }
+                               $help['flags'] .= Html::closeElement( 'ul' );
+                               $help['flags'] .= Html::closeElement( 'div' );
+                       }
+
+                       foreach ( $module->getFinalDescription() as $msg ) {
+                               $msg->setContext( $context );
+                               $help['description'] .= $msg->parseAsBlock();
+                       }
+
+                       $urls = $module->getHelpUrls();
+                       if ( $urls ) {
+                               $help['help-urls'] .= Html::openElement( 'div',
+                                       array( 'class' => 'apihelp-block apihelp-help-urls' )
+                               );
+                               $msg = $context->msg( 'api-help-help-urls' );
+                               if ( !$msg->isDisabled() ) {
+                                       $help['help-urls'] .= self::wrap(
+                                               $msg->numParams( count( $urls ) ), 'apihelp-block-head', 'div'
+                                       );
+                               }
+                               if ( !is_array( $urls ) ) {
+                                       $urls = array( $urls );
+                               }
+                               $help['help-urls'] .= Html::openElement( 'ul' );
+                               foreach ( $urls as $url ) {
+                                       $help['help-urls'] .= Html::rawElement( 'li', null,
+                                               Html::element( 'a', array( 'href' => $url ), $url )
+                                       );
+                               }
+                               $help['help-urls'] .= Html::closeElement( 'ul' );
+                               $help['help-urls'] .= Html::closeElement( 'div' );
+                       }
+
+                       $params = $module->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
+                       $groups = array();
+                       if ( $params ) {
+                               $help['parameters'] .= Html::openElement( 'div',
+                                       array( 'class' => 'apihelp-block apihelp-parameters' )
+                               );
+                               $msg = $context->msg( 'api-help-parameters' );
+                               if ( !$msg->isDisabled() ) {
+                                       $help['parameters'] .= self::wrap(
+                                               $msg->numParams( count( $params ) ), 'apihelp-block-head', 'div'
+                                       );
+                               }
+                               $help['parameters'] .= Html::openElement( 'dl' );
+
+                               $descriptions = $module->getFinalParamDescription();
+
+                               foreach ( $params as $name => $settings ) {
+                                       if ( !is_array( $settings ) ) {
+                                               $settings = array( ApiBase::PARAM_DFLT => $settings );
+                                       }
+
+                                       $help['parameters'] .= Html::element( 'dt', null,
+                                               $module->encodeParamName( $name ) );
 
-               $msg2 = $module->makeHelpMsg();
-               if ( $msg2 !== false ) {
-                       $msg .= $msg2;
+                                       // Add description
+                                       $description = array();
+                                       if ( isset( $descriptions[$name] ) ) {
+                                               foreach ( $descriptions[$name] as $msg ) {
+                                                       $msg->setContext( $context );
+                                                       $description[] = $msg->parseAsBlock();
+                                               }
+                                       }
+
+                                       // Add usage info
+                                       $info = array();
+
+                                       // Required?
+                                       if ( !empty( $settings[ApiBase::PARAM_REQUIRED] ) ) {
+                                               $info[] = $context->msg( 'api-help-param-required' )->parse();
+                                       }
+
+                                       // Custom info?
+                                       if ( !empty( $settings[ApiBase::PARAM_HELP_MSG_INFO] ) ) {
+                                               foreach ( $settings[ApiBase::PARAM_HELP_MSG_INFO] as $i ) {
+                                                       $tag = array_shift( $i );
+                                                       $info[] = $context->msg( "apihelp-{$path}-paraminfo-{$tag}" )
+                                                               ->numParams( count( $i ) )
+                                                               ->params( $context->getLanguage()->commaList( $i ) )
+                                                               ->params( $module->getModulePrefix() )
+                                                               ->parse();
+                                               }
+                                       }
+
+                                       // Type documentation
+                                       if ( !isset( $settings[ApiBase::PARAM_TYPE] ) ) {
+                                               $dflt = isset( $settings[ApiBase::PARAM_DFLT] )
+                                                       ? $settings[ApiBase::PARAM_DFLT]
+                                                       : null;
+                                               if ( is_bool( $dflt ) ) {
+                                                       $settings[ApiBase::PARAM_TYPE] = 'boolean';
+                                               } elseif ( is_string( $dflt ) || is_null( $dflt ) ) {
+                                                       $settings[ApiBase::PARAM_TYPE] = 'string';
+                                               } elseif ( is_int( $dflt ) ) {
+                                                       $settings[ApiBase::PARAM_TYPE] = 'integer';
+                                               }
+                                       }
+                                       if ( isset( $settings[ApiBase::PARAM_TYPE] ) ) {
+                                               $type = $settings[ApiBase::PARAM_TYPE];
+                                               $multi = !empty( $settings[ApiBase::PARAM_ISMULTI] );
+                                               $hintPipeSeparated = true;
+                                               $count = ApiBase::LIMIT_SML2 + 1;
+
+                                               if ( is_array( $type ) ) {
+                                                       $count = count( $type );
+                                                       $links = isset( $settings[ApiBase::PARAM_VALUE_LINKS] )
+                                                               ? $settings[ApiBase::PARAM_VALUE_LINKS]
+                                                               : array();
+                                                       $type = array_map( function ( $v ) use ( $links ) {
+                                                               $ret = wfEscapeWikiText( $v );
+                                                               if ( isset( $links[$v] ) ) {
+                                                                       $ret = "[[{$links[$v]}|$ret]]";
+                                                               }
+                                                               return $ret;
+                                                       }, $type );
+                                                       $i = array_search( '', $type, true );
+                                                       if ( $i === false ) {
+                                                               $type = $context->getLanguage()->commaList( $type );
+                                                       } else {
+                                                               unset( $type[$i] );
+                                                               $type = $context->msg( 'api-help-param-list-can-be-empty' )
+                                                                       ->numParams( count( $type ) )
+                                                                       ->params( $context->getLanguage()->commaList( $type ) )
+                                                                       ->parse();
+                                                       }
+                                                       $info[] = $context->msg( 'api-help-param-list' )
+                                                               ->params( $multi ? 2 : 1 )
+                                                               ->params( $type )
+                                                               ->parse();
+                                                       $hintPipeSeparated = false;
+                                               } else {
+                                                       switch ( $type ) {
+                                                               case 'submodule':
+                                                                       $groups[] = $name;
+                                                                       $submodules = $module->getModuleManager()->getNames( $name );
+                                                                       $count = count( $submodules );
+                                                                       sort( $submodules );
+                                                                       $prefix = $module->isMain()
+                                                                               ? '' : ( $module->getModulePath() . '+' );
+                                                                       $submodules = array_map( function ( $name ) use ( $prefix ) {
+                                                                               return "[[Special:ApiHelp/{$prefix}{$name}|{$name}]]";
+                                                                       }, $submodules );
+                                                                       $info[] = $context->msg( 'api-help-param-list' )
+                                                                               ->params( $multi ? 2 : 1 )
+                                                                               ->params( $context->getLanguage()->commaList( $submodules ) )
+                                                                               ->parse();
+                                                                       $hintPipeSeparated = false;
+                                                                       break;
+
+                                                               case 'namespace':
+                                                                       $namespaces = MWNamespace::getValidNamespaces();
+                                                                       $count = count( $namespaces );
+                                                                       $info[] = $context->msg( 'api-help-param-list' )
+                                                                               ->params( $multi ? 2 : 1 )
+                                                                               ->params( $context->getLanguage()->commaList( $namespaces ) )
+                                                                               ->parse();
+                                                                       $hintPipeSeparated = false;
+                                                                       break;
+
+                                                               case 'limit':
+                                                                       if ( isset( $settings[ApiBase::PARAM_MAX2] ) ) {
+                                                                               $info[] = $context->msg( 'api-help-param-limit2' )
+                                                                                       ->numParams( $settings[ApiBase::PARAM_MAX] )
+                                                                                       ->numParams( $settings[ApiBase::PARAM_MAX2] )
+                                                                                       ->parse();
+                                                                       } else {
+                                                                               $info[] = $context->msg( 'api-help-param-limit' )
+                                                                                       ->numParams( $settings[ApiBase::PARAM_MAX] )
+                                                                                       ->parse();
+                                                                       }
+                                                                       break;
+
+                                                               case 'integer':
+                                                                       // Possible messages:
+                                                                       // api-help-param-integer-min,
+                                                                       // api-help-param-integer-max,
+                                                                       // api-help-param-integer-minmax
+                                                                       $suffix = '';
+                                                                       $min = $max = 0;
+                                                                       if ( isset( $settings[ApiBase::PARAM_MIN] ) ) {
+                                                                               $suffix .= 'min';
+                                                                               $min = $settings[ApiBase::PARAM_MIN];
+                                                                       }
+                                                                       if ( isset( $settings[ApiBase::PARAM_MAX] ) ) {
+                                                                               $suffix .= 'max';
+                                                                               $max = $settings[ApiBase::PARAM_MAX];
+                                                                       }
+                                                                       if ( $suffix !== '' ) {
+                                                                               $info[] =
+                                                                                       $context->msg( "api-help-param-integer-$suffix" )
+                                                                                               ->params( $multi ? 2 : 1 )
+                                                                                               ->numParams( $min, $max )
+                                                                                               ->parse();
+                                                                       }
+                                                                       break;
+
+                                                               case 'upload':
+                                                                       $info[] = $context->msg( 'api-help-param-upload' )
+                                                                               ->parse();
+                                                                       break;
+                                                       }
+                                               }
+
+                                               if ( $multi ) {
+                                                       $extra = array();
+                                                       if ( $hintPipeSeparated ) {
+                                                               $extra[] = $context->msg( 'api-help-param-multi-separate' )->parse();
+                                                       }
+                                                       if ( $count > ApiBase::LIMIT_SML1 ) {
+                                                               $extra[] = $context->msg( 'api-help-param-multi-max' )
+                                                                       ->numParams( ApiBase::LIMIT_SML1, ApiBase::LIMIT_SML2 )
+                                                                       ->parse();
+                                                       }
+                                                       if ( $extra ) {
+                                                               $info[] = join( ' ', $extra );
+                                                       }
+                                               }
+                                       }
+
+                                       // Add default
+                                       $default = isset( $settings[ApiBase::PARAM_DFLT] )
+                                               ? $settings[ApiBase::PARAM_DFLT]
+                                               : null;
+                                       if ( $default === '' ) {
+                                               $info[] = $context->msg( 'api-help-param-default-empty' )
+                                                       ->parse();
+                                       } elseif ( $default !== null && $default !== false ) {
+                                               $info[] = $context->msg( 'api-help-param-default' )
+                                                       ->params( wfEscapeWikiText( $default ) )
+                                                       ->parse();
+                                       }
+
+                                       if ( !array_filter( $description ) ) {
+                                               $description = array( self::wrap(
+                                                       $context->msg( 'api-help-param-no-description' ),
+                                                       'apihelp-empty'
+                                               ) );
+                                       }
+
+                                       // Add "deprecated" flag
+                                       if ( !empty( $settings[ApiBase::PARAM_DEPRECATED] ) ) {
+                                               $help['parameters'] .= Html::openElement( 'dd',
+                                                       array( 'class' => 'info' ) );
+                                               $help['parameters'] .= self::wrap(
+                                                       $context->msg( 'api-help-param-deprecated' ),
+                                                       'apihelp-deprecated', 'strong'
+                                               );
+                                               $help['parameters'] .= Html::closeElement( 'dd' );
+                                       }
+
+                                       if ( $description ) {
+                                               $help['parameters'] .= Html::openElement( 'dd',
+                                                       array( 'class' => 'description' ) );
+                                               $help['parameters'] .= join( '', $description );
+                                               $help['parameters'] .= Html::closeElement( 'dd' );
+                                       }
+
+                                       foreach ( $info as $i ) {
+                                               $help['parameters'] .= Html::rawElement( 'dd', array( 'class' => 'info' ), $i );
+                                       }
+                               }
+
+                               $help['parameters'] .= Html::closeElement( 'dl' );
+                               $help['parameters'] .= Html::closeElement( 'div' );
+                       }
+
+                       $examples = $module->getExamplesMessages();
+                       if ( $examples ) {
+                               $help['examples'] .= Html::openElement( 'div',
+                                       array( 'class' => 'apihelp-block apihelp-examples' ) );
+                               $msg = $context->msg( 'api-help-examples' );
+                               if ( !$msg->isDisabled() ) {
+                                       $help['examples'] .= self::wrap(
+                                               $msg->numParams( count( $examples ) ), 'apihelp-block-head', 'div'
+                                       );
+                               }
+
+                               $help['examples'] .= Html::openElement( 'dl' );
+                               foreach ( $examples as $qs => $msg ) {
+                                       $msg = ApiBase::makeMessage( $msg, $context, array(
+                                               $module->getModulePrefix(),
+                                               $module->getModuleName(),
+                                               $module->getModulePath()
+                                       ) );
+
+                                       $link = wfAppendQuery( wfScript( 'api' ), $qs );
+                                       $help['examples'] .= Html::rawElement( 'dt', null, $msg->parse() );
+                                       $help['examples'] .= Html::rawElement( 'dd', null,
+                                               Html::element( 'a', array( 'href' => $link ), "api.php?$qs" )
+                                       );
+                               }
+                               $help['examples'] .= Html::closeElement( 'dl' );
+                               $help['examples'] .= Html::closeElement( 'div' );
+                       }
+
+                       if ( $options['submodules'] && $module->getModuleManager() ) {
+                               $manager = $module->getModuleManager();
+                               $submodules = array();
+                               foreach ( $groups as $group ) {
+                                       $names = $manager->getNames( $group );
+                                       sort( $names );
+                                       foreach ( $names as $name ) {
+                                               $submodules[] = $manager->getModule( $name );
+                                       }
+                               }
+                               $help['submodules'] .= self::getHelpInternal( $context, $submodules, array(
+                                       'submodules' => $options['recursivesubmodules'],
+                                       'headerlevel' => $level + 1,
+                                       'noheader' => false,
+                               ) + $options, $haveModules );
+                       }
+
+                       $module->modifyHelp( $help, $options );
+
+                       wfRunHooks( 'APIHelpModifyOutput', array( $module, &$help, $options ) );
+
+                       $out .= join( "\n", $help );
                }
 
-               return $msg;
+               return $out;
        }
 
        public function shouldCheckMaxlag() {
@@ -131,39 +627,40 @@ class ApiHelp extends ApiBase {
                return false;
        }
 
+       public function getCustomPrinter() {
+               $params = $this->extractRequestParams();
+               if ( $params['wrap'] ) {
+                       return null;
+               }
+
+               $main = $this->getMain();
+               $errorPrinter = $main->createPrinterByName( $main->getParameter( 'format' ) );
+               return new ApiFormatRaw( $main, $errorPrinter );
+       }
+
        public function getAllowedParams() {
                return array(
                        'modules' => array(
-                               ApiBase::PARAM_ISMULTI => true
-                       ),
-                       'querymodules' => array(
+                               ApiBase::PARAM_DFLT => 'main',
                                ApiBase::PARAM_ISMULTI => true,
-                               ApiBase::PARAM_DEPRECATED => true
                        ),
+                       'submodules' => false,
+                       'recursivesubmodules' => false,
+                       'wrap' => false,
+                       'toc' => false,
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'modules' => 'List of module names (value of the action= parameter). ' .
-                               'Can specify submodules with a \'+\'',
-                       'querymodules' => 'Use modules=query+value instead. List of query ' .
-                               'module names (value of prop=, meta= or list= parameter)',
-               );
-       }
-
-       public function getDescription() {
-               return 'Display this help screen. Or the help screen for the specified module.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=help' => 'Whole help page',
-                       'api.php?action=help&modules=protect' => 'Module (action) help page',
-                       'api.php?action=help&modules=query+categorymembers'
-                               => 'Help for the query/categorymembers module',
-                       'api.php?action=help&modules=login|query+info'
-                               => 'Help for the login and query/info modules',
+                       'action=help'
+                               => 'apihelp-help-example-main',
+                       'action=help&recursivesubmodules=1'
+                               => 'apihelp-help-example-recursive',
+                       'action=help&modules=help'
+                               => 'apihelp-help-example-help',
+                       'action=help&modules=query+info|query+categorymembers'
+                               => 'apihelp-help-example-query',
                );
        }
 
index 20396dd..aba6921 100644 (file)
@@ -184,7 +184,9 @@ class ApiImageRotate extends ApiBase {
                                ApiBase::PARAM_TYPE => array( '90', '180', '270' ),
                                ApiBase::PARAM_REQUIRED => true
                        ),
-                       'continue' => '',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                );
                if ( $flags ) {
                        $result += $this->getPageSet()->getFinalParams( $flags );
@@ -193,26 +195,17 @@ class ApiImageRotate extends ApiBase {
                return $result;
        }
 
-       public function getParamDescription() {
-               $pageSet = $this->getPageSet();
-
-               return $pageSet->getFinalParamDescription() + array(
-                       'rotation' => 'Degrees to rotate image clockwise',
-                       'continue' => 'When more results are available, use this to continue',
-               );
-       }
-
-       public function getDescription() {
-               return 'Rotate one or more images.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=imagerotate&titles=Example.jpg&rotation=90&token=123ABC',
+                       'action=imagerotate&titles=File:Example.jpg&rotation=90&token=123ABC'
+                               => 'apihelp-imagerotate-example-simple',
+                       'action=imagerotate&generator=categorymembers&gcmtitle=Category:Flip&gcmtype=file&' .
+                               'rotation=180&token=123ABC'
+                               => 'apihelp-imagerotate-example-generator',
                );
        }
 }
index b11348e..a134074 100644 (file)
@@ -60,7 +60,7 @@ class ApiImport extends ApiBase {
                        $this->dieStatus( $source );
                }
 
-               $importer = new WikiImporter( $source->value );
+               $importer = new WikiImporter( $source->value, $this->getConfig() );
                if ( isset( $params['namespace'] ) ) {
                        $importer->setTargetNamespace( $params['namespace'] );
                }
@@ -116,36 +116,15 @@ class ApiImport extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'summary' => 'Import summary',
-                       'xml' => 'Uploaded XML file',
-                       'interwikisource' => 'For interwiki imports: wiki to import from',
-                       'interwikipage' => 'For interwiki imports: page to import',
-                       'fullhistory' => 'For interwiki imports: import the full history, not just the current version',
-                       'templates' => 'For interwiki imports: import all included templates as well',
-                       'namespace' => 'For interwiki imports: import to this namespace',
-                       'rootpage' => 'Import as subpage of this page',
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       'Import a page from another wiki, or an XML file.',
-                       'Note that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when',
-                       'sending a file for the "xml" parameter.'
-               );
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=import&interwikisource=meta&interwikipage=Help:ParserFunctions&' .
+                       'action=import&interwikisource=meta&interwikipage=Help:ParserFunctions&' .
                                'namespace=100&fullhistory=&token=123ABC'
-                               => 'Import [[meta:Help:Parserfunctions]] to namespace 100 with full history',
+                               => 'apihelp-import-example-import',
                );
        }
 
index 976f4c1..cc4dee4 100644 (file)
@@ -184,28 +184,12 @@ class ApiLogin extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'name' => 'User Name',
-                       'password' => 'Password',
-                       'domain' => 'Domain (optional)',
-                       'token' => 'Login token obtained in first request',
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       'Log in and get the authentication tokens.',
-                       '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.'
-               );
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=login&lgname=user&lgpassword=password'
+                       'action=login&lgname=user&lgpassword=password'
+                               => 'apihelp-login-example-gettoken',
+                       'action=login&lgname=user&lgpassword=password&lgtoken=123ABC'
+                               => 'apihelp-login-example-login',
                );
        }
 
index 324f4b2..bf81723 100644 (file)
@@ -46,21 +46,10 @@ class ApiLogout extends ApiBase {
                return false;
        }
 
-       public function getAllowedParams() {
-               return array();
-       }
-
-       public function getParamDescription() {
-               return array();
-       }
-
-       public function getDescription() {
-               return 'Log out and clear session data.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=logout' => 'Log the current user out',
+                       'action=logout'
+                               => 'apihelp-logout-example-logout',
                );
        }
 
index bd20b14..10a99c9 100644 (file)
@@ -42,7 +42,7 @@ class ApiMain extends ApiBase {
        /**
         * When no format parameter is given, this format will be used
         */
-       const API_DEFAULT_FORMAT = 'xmlfm';
+       const API_DEFAULT_FORMAT = 'jsonfm';
 
        /**
         * List of available modules: action name => module class
@@ -121,11 +121,11 @@ class ApiMain extends ApiBase {
         */
        private static $mRights = array(
                'writeapi' => array(
-                       'msg' => 'Use of the write API',
+                       'msg' => 'right-writeapi',
                        'params' => array()
                ),
                'apihighlimits' => array(
-                       'msg' => 'Use higher limits in API queries (Slow queries: $1 results; Fast queries: $2 results). The limits for slow queries also apply to multivalue parameters.',
+                       'msg' => 'api-help-right-apihighlimits',
                        'params' => array( ApiBase::LIMIT_SML2, ApiBase::LIMIT_BIG2 )
                )
        );
@@ -187,6 +187,23 @@ class ApiMain extends ApiBase {
                        }
                }
 
+               $uselang = $this->getParameter( 'uselang' );
+               if ( $uselang === 'user' ) {
+                       $uselang = $this->getUser()->getOption( 'language' );
+                       $uselang = RequestContext::sanitizeLangCode( $uselang );
+                       wfRunHooks( 'UserGetLanguageObject', array( $this->getUser(), &$uselang, $this ) );
+               } elseif ( $uselang === 'content' ) {
+                       global $wgContLang;
+                       $uselang = $wgContLang->getCode();
+               }
+               $code = RequestContext::sanitizeLangCode( $uselang );
+               $this->getContext()->setLanguage( $code );
+               if ( !$this->mInternalMode ) {
+                       global $wgLang;
+                       $wgLang = $this->getContext()->getLanguage();
+                       RequestContext::getMain()->setLanguage( $wgLang );
+               }
+
                $config = $this->getConfig();
                $this->mModuleMgr = new ApiModuleManager( $this );
                $this->mModuleMgr->addModules( self::$Modules, 'action' );
@@ -290,6 +307,16 @@ class ApiMain extends ApiBase {
                        }
                }
 
+               if ( $mode === 'public' && $this->getParameter( 'uselang' ) === 'user' ) {
+                       // User language is used for i18n, so we don't want to publicly
+                       // cache. Anons are ok, because if they have non-default language
+                       // then there's an appropriate Vary header set by whatever set
+                       // their non-default language.
+                       wfDebug( __METHOD__ . ": downgrading cache mode 'public' to " .
+                               "'anon-public-user-private' due to uselang=user\n" );
+                       $mode = 'anon-public-user-private';
+               }
+
                wfDebug( __METHOD__ . ": setting cache mode $mode\n" );
                $this->mCacheMode = $mode;
        }
@@ -373,10 +400,6 @@ class ApiMain extends ApiBase {
                // avoid sending public cache headers for errors.
                $this->sendCacheHeaders();
 
-               if ( $this->mPrinter->getIsHtml() && !$this->mPrinter->isDisabled() ) {
-                       echo wfReportTime();
-               }
-
                ob_end_flush();
        }
 
@@ -670,13 +693,10 @@ class ApiMain extends ApiBase {
                $config = $this->getConfig();
 
                if ( $e instanceof UsageException ) {
-                       // User entered incorrect parameters - print usage screen
+                       // User entered incorrect parameters - generate error response
                        $errMessage = $e->getMessageArray();
-
-                       // Only print the help message when this is for the developer, not runtime
-                       if ( $this->mPrinter->getWantsHelp() || $this->mAction == 'help' ) {
-                               ApiResult::setContent( $errMessage, $this->makeHelpMsg() );
-                       }
+                       $link = wfExpandUrl( wfScript( 'api' ) );
+                       ApiResult::setContent( $errMessage, "See $link for API usage" );
                } else {
                        // Something is seriously wrong
                        if ( ( $e instanceof DBQueryError ) && !$config->get( 'ShowSQLErrors' ) ) {
@@ -1084,15 +1104,7 @@ class ApiMain extends ApiBase {
                $printer = $this->mPrinter;
                $printer->profileIn();
 
-               /**
-                * If the help message is requested in the default (xmlfm) format,
-                * tell the printer not to escape ampersands so that our links do
-                * not break.
-                */
-               $isHelp = $isError || $this->mAction == 'help';
-               $printer->setUnescapeAmps( $isHelp && $printer->getFormat() == 'XML' && $printer->getIsHtml() );
-
-               $printer->initPrinter( $isHelp );
+               $printer->initPrinter( false );
 
                $printer->execute();
                $printer->closePrinter();
@@ -1113,14 +1125,14 @@ class ApiMain extends ApiBase {
         */
        public function getAllowedParams() {
                return array(
-                       'format' => array(
-                               ApiBase::PARAM_DFLT => ApiMain::API_DEFAULT_FORMAT,
-                               ApiBase::PARAM_TYPE => 'submodule',
-                       ),
                        'action' => array(
                                ApiBase::PARAM_DFLT => 'help',
                                ApiBase::PARAM_TYPE => 'submodule',
                        ),
+                       'format' => array(
+                               ApiBase::PARAM_DFLT => ApiMain::API_DEFAULT_FORMAT,
+                               ApiBase::PARAM_TYPE => 'submodule',
+                       ),
                        'maxlag' => array(
                                ApiBase::PARAM_TYPE => 'integer'
                        ),
@@ -1139,126 +1151,121 @@ class ApiMain extends ApiBase {
                        'servedby' => false,
                        'curtimestamp' => false,
                        'origin' => null,
+                       'uselang' => array(
+                               ApiBase::PARAM_DFLT => 'user',
+                       ),
                );
        }
 
-       /**
-        * See ApiBase for description.
-        *
-        * @return array
-        */
-       public function getParamDescription() {
+       /** @see ApiBase::getExamplesMessages() */
+       protected function getExamplesMessages() {
                return array(
-                       'format' => 'The format of the output',
-                       'action' => 'What action you would like to perform. See below for module help',
-                       'maxlag' => array(
-                               'Maximum lag can be used when MediaWiki is installed on a database replicated cluster.',
-                               'To save actions causing any more site replication lag, this parameter can make the client',
-                               'wait until the replication lag is less than the specified value.',
-                               'In case of a replag error, error code "maxlag" is returned, with the message like',
-                               '"Waiting for $host: $lag seconds lagged\n".',
-                               'See https://www.mediawiki.org/wiki/Manual:Maxlag_parameter for more information',
-                       ),
-                       'smaxage' => 'Set the s-maxage header to this many seconds. Errors are never cached',
-                       'maxage' => 'Set the max-age header to this many seconds. Errors are never cached',
-                       'assert' => 'Verify the user is logged in if set to "user", or has the bot userright if "bot"',
-                       'requestid' => 'Request ID to distinguish requests. This will just be output back to you',
-                       'servedby' => 'Include the hostname that served the request in the ' .
-                               'results. Unconditionally shown on error',
-                       'curtimestamp' => 'Include the current timestamp in the result.',
-                       'origin' => array(
-                               'When accessing the API using a cross-domain AJAX request (CORS), set this to the',
-                               'originating domain. This must be included in any pre-flight request, and',
-                               'therefore must be part of the request URI (not the POST body). This must match',
-                               'one of the origins in the Origin: header exactly, so it has to be set to ',
-                               'something like http://en.wikipedia.org or https://meta.wikimedia.org . If this',
-                               'parameter does not match the Origin: header, a 403 response will be returned. If',
-                               'this parameter matches the Origin: header and the origin is whitelisted, an',
-                               'Access-Control-Allow-Origin header will be set.',
-                       ),
+                       'action=help'
+                               => 'apihelp-help-example-main',
+                       'action=help&recursivesubmodules=1'
+                               => 'apihelp-help-example-recursive',
                );
        }
 
+       public function modifyHelp( array &$help, array $options ) {
+               // Wish PHP had an "array_insert_before". Instead, we have to manually
+               // reindex the array to get 'permissions' in the right place.
+               $oldHelp = $help;
+               $help = array();
+               foreach ( $oldHelp as $k => $v ) {
+                       if ( $k === 'submodules' ) {
+                               $help['permissions'] = '';
+                       }
+                       $help[$k] = $v;
+               }
+               $help['credits'] = '';
+
+               // Fill 'permissions'
+               $help['permissions'] .= Html::openElement( 'div',
+                       array( 'class' => 'apihelp-block apihelp-permissions' ) );
+               $m = $this->msg( 'api-help-permissions' );
+               if ( !$m->isDisabled() ) {
+                       $help['permissions'] .= Html::rawElement( 'div', array( 'class' => 'apihelp-block-head' ),
+                               $m->numParams( count( self::$mRights ) )->parse()
+                       );
+               }
+               $help['permissions'] .= Html::openElement( 'dl' );
+               foreach ( self::$mRights as $right => $rightMsg ) {
+                       $help['permissions'] .= Html::element( 'dt', null, $right );
+
+                       $rightMsg = $this->msg( $rightMsg['msg'], $rightMsg['params'] )->parse();
+                       $help['permissions'] .= Html::rawElement( 'dd', null, $rightMsg );
+
+                       $groups = array_map( function ( $group ) {
+                               return $group == '*' ? 'all' : $group;
+                       }, User::getGroupsWithPermission( $right ) );
+
+                       $help['permissions'] .= Html::rawElement( 'dd', null,
+                               $this->msg( 'api-help-permissions-granted-to' )
+                                       ->numParams( count( $groups ) )
+                                       ->params( $this->getLanguage()->commaList( $groups ) )
+                                       ->parse()
+                       );
+               }
+               $help['permissions'] .= Html::closeElement( 'dl' );
+               $help['permissions'] .= Html::closeElement( 'div' );
+
+               // Fill 'credits', if applicable
+               if ( empty( $options['nolead'] ) ) {
+                       $help['credits'] .= Html::element( 'h' . min( 6, $options['headerlevel'] + 1 ),
+                               array( 'id' => '+credits', 'class' => 'apihelp-header' ),
+                               $this->msg( 'api-credits-header' )->parse()
+                       );
+                       $help['credits'] .= $this->msg( 'api-credits' )->useDatabase( false )->parseAsBlock();
+               }
+       }
+
+       private $mCanApiHighLimits = null;
+
        /**
-        * See ApiBase for description.
-        *
-        * @return array
+        * Check whether the current user is allowed to use high limits
+        * @return bool
         */
-       public function getDescription() {
-               return array(
-                       '',
-                       '',
-                       '**********************************************************************************************',
-                       '**                                                                                          **',
-                       '**                This is an auto-generated MediaWiki API documentation page                **',
-                       '**                                                                                          **',
-                       '**                               Documentation and Examples:                                **',
-                       '**                            https://www.mediawiki.org/wiki/API                            **',
-                       '**                                                                                          **',
-                       '**********************************************************************************************',
-                       '',
-                       '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.',
-                       '',
-                       '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.',
-                       '',
-                       '                       In the case of an invalid action being passed, these will have a value',
-                       '                       of "unknown_action".',
-                       '',
-                       '                       For more information see https://www.mediawiki.org' .
-                               '/wiki/API:Errors_and_warnings',
-                       '',
-                       'Documentation:         https://www.mediawiki.org/wiki/API:Main_page',
-                       'FAQ                    https://www.mediawiki.org/wiki/API:FAQ',
-                       'Mailing list:          https://lists.wikimedia.org/mailman/listinfo/mediawiki-api',
-                       'Api Announcements:     https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce',
-                       'Bugs & Requests:       https://bugzilla.wikimedia.org/buglist.cgi?component=API&' .
-                               'bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts',
-                       '',
-                       '',
-                       '',
-                       '',
-                       '',
-               );
+       public function canApiHighLimits() {
+               if ( !isset( $this->mCanApiHighLimits ) ) {
+                       $this->mCanApiHighLimits = $this->getUser()->isAllowed( 'apihighlimits' );
+               }
+
+               return $this->mCanApiHighLimits;
        }
 
        /**
-        * Returns an array of strings with credits for the API
-        * @return array
+        * Overrides to return this instance's module manager.
+        * @return ApiModuleManager
         */
-       protected function getCredits() {
-               return array(
-                       'API developers:',
-                       '    Roan Kattouw (lead developer Sep 2007-2009)',
-                       '    Victor Vasiliev',
-                       '    Bryan Tong Minh',
-                       '    Sam Reed',
-                       '    Yuri Astrakhan (creator, lead developer Sep 2006-Sep 2007, 2012-2013)',
-                       '    Brad Jorsch (lead developer 2013-now)',
-                       '',
-                       'Please send your comments, suggestions and questions to mediawiki-api@lists.wikimedia.org',
-                       'or file a bug report at https://bugzilla.wikimedia.org/'
-               );
+       public function getModuleManager() {
+               return $this->mModuleMgr;
        }
 
+       /************************************************************************//**
+        * @name   Deprecated
+        * @{
+        */
+
        /**
         * Sets whether the pretty-printer should format *bold* and $italics$
         *
+        * @deprecated since 1.25
         * @param bool $help
         */
        public function setHelp( $help = true ) {
+               wfDeprecated( __METHOD__, '1.25' );
                $this->mPrinter->setHelp( $help );
        }
 
        /**
         * Override the parent to generate help messages for all available modules.
         *
+        * @deprecated since 1.25
         * @return string
         */
        public function makeHelpMsg() {
+               wfDeprecated( __METHOD__, '1.25' );
                global $wgMemc;
                $this->setHelp();
                // Get help text from cache if present
@@ -1281,9 +1288,11 @@ class ApiMain extends ApiBase {
        }
 
        /**
+        * @deprecated since 1.25
         * @return mixed|string
         */
        public function reallyMakeHelpMsg() {
+               wfDeprecated( __METHOD__, '1.25' );
                $this->setHelp();
 
                // Use parent to make default message for the main module
@@ -1305,8 +1314,12 @@ class ApiMain extends ApiBase {
 
                $msg .= "\n$astriks Permissions $astriks\n\n";
                foreach ( self::$mRights as $right => $rightMsg ) {
+                       $rightsMsg = $this->msg( $rightMsg['msg'], $rightMsg['params'] )
+                               ->useDatabase( false )
+                               ->inLanguage( 'en' )
+                               ->text();
                        $groups = User::getGroupsWithPermission( $right );
-                       $msg .= "* " . $right . " *\n  " . wfMsgReplaceArgs( $rightMsg['msg'], $rightMsg['params'] ) .
+                       $msg .= "* " . $right . " *\n  $rightsMsg" .
                                "\nGranted to:\n  " . str_replace( '*', 'all', implode( ', ', $groups ) ) . "\n\n";
                }
 
@@ -1321,18 +1334,22 @@ class ApiMain extends ApiBase {
                        $msg .= "\n";
                }
 
-               $msg .= "\n*** Credits: ***\n   " . implode( "\n   ", $this->getCredits() ) . "\n";
+               $credits = $this->msg( 'api-credits' )->useDatabase( 'false' )->inLanguage( 'en' )->text();
+               $credits = str_replace( "\n", "\n   ", $credits );
+               $msg .= "\n*** Credits: ***\n   $credits\n";
 
                return $msg;
        }
 
        /**
+        * @deprecated since 1.25
         * @param ApiBase $module
         * @param string $paramName What type of request is this? e.g. action,
         *    query, list, prop, meta, format
         * @return string
         */
        public static function makeHelpMsgHeader( $module, $paramName ) {
+               wfDeprecated( __METHOD__, '1.25' );
                $modulePrefix = $module->getModulePrefix();
                if ( strval( $modulePrefix ) !== '' ) {
                        $modulePrefix = "($modulePrefix) ";
@@ -1341,20 +1358,6 @@ class ApiMain extends ApiBase {
                return "* $paramName={$module->getModuleName()} $modulePrefix*";
        }
 
-       private $mCanApiHighLimits = null;
-
-       /**
-        * Check whether the current user is allowed to use high limits
-        * @return bool
-        */
-       public function canApiHighLimits() {
-               if ( !isset( $this->mCanApiHighLimits ) ) {
-                       $this->mCanApiHighLimits = $this->getUser()->isAllowed( 'apihighlimits' );
-               }
-
-               return $this->mCanApiHighLimits;
-       }
-
        /**
         * Check whether the user wants us to show version information in the API help
         * @return bool
@@ -1366,14 +1369,6 @@ class ApiMain extends ApiBase {
                return false;
        }
 
-       /**
-        * Overrides to return this instance's module manager.
-        * @return ApiModuleManager
-        */
-       public function getModuleManager() {
-               return $this->mModuleMgr;
-       }
-
        /**
         * Add or overwrite a module in this ApiMain instance. Intended for use by extending
         * classes who wish to add their own modules to their lexicon or override the
@@ -1418,11 +1413,13 @@ class ApiMain extends ApiBase {
        public function getFormats() {
                return $this->getModuleManager()->getNamesWithClasses( 'format' );
        }
+
+       /**@}*/
+
 }
 
 /**
  * This exception will be thrown when dieUsage is called to stop module execution.
- * The exception handling code will print a help screen explaining how this API may be used.
  *
  * @ingroup API
  */
@@ -1476,3 +1473,8 @@ class UsageException extends MWException {
                return "{$this->getCodeString()}: {$this->getMessage()}";
        }
 }
+
+/**
+ * For really cool vim folding this needs to be at the end:
+ * vim: foldmarker=@{,@} foldmethod=marker
+ */
index 04e931d..c7f40c7 100644 (file)
@@ -72,9 +72,9 @@ class ApiMove extends ApiBase {
 
                // Move the page
                $toTitleExists = $toTitle->exists();
-               $retval = $fromTitle->moveTo( $toTitle, true, $params['reason'], !$params['noredirect'] );
-               if ( $retval !== true ) {
-                       $this->dieUsageMsg( reset( $retval ) );
+               $status = $this->movePage( $fromTitle, $toTitle, $params['reason'], !$params['noredirect'] );
+               if ( !$status->isOK() ) {
+                       $this->dieStatus( $status );
                }
 
                $r = array(
@@ -99,8 +99,8 @@ class ApiMove extends ApiBase {
                // Move the talk page
                if ( $params['movetalk'] && $fromTalk->exists() && !$fromTitle->isTalkPage() ) {
                        $toTalkExists = $toTalk->exists();
-                       $retval = $fromTalk->moveTo( $toTalk, true, $params['reason'], !$params['noredirect'] );
-                       if ( $retval === true ) {
+                       $status = $this->movePage( $fromTalk, $toTalk, $params['reason'], !$params['noredirect'] );
+                       if ( $status->isOK() ) {
                                $r['talkfrom'] = $fromTalk->getPrefixedText();
                                $r['talkto'] = $toTalk->getPrefixedText();
                                if ( $toTalkExists ) {
@@ -108,9 +108,9 @@ class ApiMove extends ApiBase {
                                }
                        } else {
                                // We're not gonna dieUsage() on failure, since we already changed something
-                               $parsed = $this->parseMsg( reset( $retval ) );
-                               $r['talkmove-error-code'] = $parsed['code'];
-                               $r['talkmove-error-info'] = $parsed['info'];
+                               $error = $this->getErrorFromStatus( $status );
+                               $r['talkmove-error-code'] = $error[0];
+                               $r['talkmove-error-info'] = $error[1];
                        }
                }
 
@@ -147,6 +147,28 @@ class ApiMove extends ApiBase {
                $result->addValue( null, $this->getModuleName(), $r );
        }
 
+       /**
+        * @param Title $from
+        * @param Title $to
+        * @param string $reason
+        * @param bool $createRedirect
+        * @return Status
+        */
+       protected function movePage( Title $from, Title $to, $reason, $createRedirect ) {
+               $mp = new MovePage( $from, $to );
+               $valid = $mp->isValidMove();
+               if ( !$valid->isOK() ) {
+                       return $valid;
+               }
+
+               $permStatus = $mp->checkPermissions( $this->getUser(), $reason );
+               if ( !$permStatus->isOK() ) {
+                       return $permStatus;
+               }
+
+               return $mp->move( $this->getUser(), $reason, $createRedirect );
+       }
+
        /**
         * @param Title $fromTitle
         * @param Title $toTitle
@@ -220,37 +242,15 @@ class ApiMove extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'from' => "Title of the page you want to move. Cannot be used together with {$p}fromid",
-                       'fromid' => "Page ID of the page you want to move. Cannot be used together with {$p}from",
-                       'to' => 'Title you want to rename the page to',
-                       'reason' => 'Reason for the move',
-                       'movetalk' => 'Move the talk page, if it exists',
-                       'movesubpages' => 'Move subpages, if applicable',
-                       'noredirect' => 'Don\'t create a redirect',
-                       'watch' => 'Add the page and the redirect to your watchlist',
-                       'unwatch' => 'Remove the page and the redirect from your watchlist',
-                       'watchlist' => 'Unconditionally add or remove the page from your ' .
-                               'watchlist, use preferences or do not change watch',
-                       'ignorewarnings' => 'Ignore any warnings'
-               );
-       }
-
-       public function getDescription() {
-               return 'Move a page.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=move&from=Badtitle&to=Goodtitle&token=123ABC&' .
+                       'action=move&from=Badtitle&to=Goodtitle&token=123ABC&' .
                                'reason=Misspelled%20title&movetalk=&noredirect='
+                               => 'apihelp-move-example-move',
                );
        }
 
index 7fb045e..8fa495c 100644 (file)
@@ -91,23 +91,10 @@ class ApiOpenSearch extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'search' => 'Search string',
-                       'limit' => 'Maximum amount of results to return',
-                       'namespace' => 'Namespaces to search',
-                       'suggest' => 'Do nothing if $wgEnableOpenSearchSuggest is false',
-                       'format' => 'The format of the output',
-               );
-       }
-
-       public function getDescription() {
-               return 'Search the wiki using the OpenSearch protocol.';
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=opensearch&search=Te'
+                       'action=opensearch&search=Te'
+                               => 'apihelp-opensearch-example-te',
                );
        }
 
index b01dc3e..8ef0629 100644 (file)
@@ -153,30 +153,6 @@ class ApiOptions extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'reset' => 'Resets preferences to the site defaults',
-                       'resetkinds' => 'List of types of options to reset when the "reset" option is set',
-                       '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'
-                       ),
-                       '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',
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       '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.'
-               );
-       }
-
        public function needsToken() {
                return 'csrf';
        }
@@ -185,12 +161,15 @@ class ApiOptions extends ApiBase {
                return 'https://www.mediawiki.org/wiki/API:Options';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=options&reset=&token=123ABC',
-                       'api.php?action=options&change=skin=vector|hideminor=1&token=123ABC',
-                       'api.php?action=options&reset=&change=skin=monobook&optionname=nickname&' .
-                               'optionvalue=[[User:Beau|Beau]]%20([[User_talk:Beau|talk]])&token=123ABC',
+                       'action=options&reset=&token=123ABC'
+                               => 'apihelp-options-example-reset',
+                       'action=options&change=skin=vector|hideminor=1&token=123ABC'
+                               => 'apihelp-options-example-change',
+                       'action=options&reset=&change=skin=monobook&optionname=nickname&' .
+                               'optionvalue=[[User:Beau|Beau]]%20([[User_talk:Beau|talk]])&token=123ABC'
+                               => 'apihelp-options-example-complex',
                );
        }
 }
index 3bdecaa..ea85cac 100644 (file)
@@ -68,6 +68,8 @@ class ApiPageSet extends ApiBase {
        private $mPendingRedirectIDs = array();
        private $mConvertedTitles = array();
        private $mGoodRevIDs = array();
+       private $mLiveRevIDs = array();
+       private $mDeletedRevIDs = array();
        private $mMissingRevIDs = array();
        private $mFakePageId = -1;
        private $mCacheMode = 'public';
@@ -596,13 +598,29 @@ class ApiPageSet extends ApiBase {
        }
 
        /**
-        * Get the list of revision IDs (requested with the revids= parameter)
+        * Get the list of valid revision IDs (requested with the revids= parameter)
         * @return array Array of revID (int) => pageID (int)
         */
        public function getRevisionIDs() {
                return $this->mGoodRevIDs;
        }
 
+       /**
+        * Get the list of non-deleted revision IDs (requested with the revids= parameter)
+        * @return array Array of revID (int) => pageID (int)
+        */
+       public function getLiveRevisionIDs() {
+               return $this->mLiveRevIDs;
+       }
+
+       /**
+        * Get the list of revision IDs that were associated with deleted titles.
+        * @return array Array of revID (int) => pageID (int)
+        */
+       public function getDeletedRevisionIDs() {
+               return $this->mDeletedRevIDs;
+       }
+
        /**
         * Revision IDs that were not found in the database
         * @return array Array of revision IDs
@@ -669,6 +687,10 @@ class ApiPageSet extends ApiBase {
 
        /**
         * Populate this PageSet from a rowset returned from the database
+        *
+        * Note that the query result must include the columns returned by
+        * $this->getPageTableFields().
+        *
         * @param DatabaseBase $db
         * @param ResultWrapper $queryResult Query result object
         */
@@ -897,6 +919,7 @@ class ApiPageSet extends ApiBase {
                                $revid = intval( $row->rev_id );
                                $pageid = intval( $row->rev_page );
                                $this->mGoodRevIDs[$revid] = $pageid;
+                               $this->mLiveRevIDs[$revid] = $pageid;
                                $pageids[$pageid] = '';
                                unset( $remaining[$revid] );
                        }
@@ -907,6 +930,51 @@ class ApiPageSet extends ApiBase {
 
                // Populate all the page information
                $this->initFromPageIds( array_keys( $pageids ) );
+
+               // If the user can see deleted revisions, pull out the corresponding
+               // titles from the archive table and include them too. We ignore
+               // ar_page_id because deleted revisions are tied by title, not page_id.
+               if ( !empty( $this->mMissingRevIDs ) && $this->getUser()->isAllowed( 'deletedhistory' ) ) {
+                       $remaining = array_flip( $this->mMissingRevIDs );
+                       $tables = array( 'archive' );
+                       $fields = array( 'ar_rev_id', 'ar_namespace', 'ar_title' );
+                       $where = array( 'ar_rev_id' => $this->mMissingRevIDs );
+
+                       $this->profileDBIn();
+                       $res = $db->select( $tables, $fields, $where, __METHOD__ );
+                       $titles = array();
+                       foreach ( $res as $row ) {
+                               $revid = intval( $row->ar_rev_id );
+                               $titles[$revid] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
+                               unset( $remaining[$revid] );
+                       }
+                       $this->profileDBOut();
+
+                       $this->initFromTitles( $titles );
+
+                       foreach ( $titles as $revid => $title ) {
+                               $ns = $title->getNamespace();
+                               $dbkey = $title->getDBkey();
+
+                               // Handle converted titles
+                               if ( !isset( $this->mAllPages[$ns][$dbkey] ) &&
+                                       isset( $this->mConvertedTitles[$title->getPrefixedText()] )
+                               ) {
+                                       $title = Title::newFromText( $this->mConvertedTitles[$title->getPrefixedText()] );
+                                       $ns = $title->getNamespace();
+                                       $dbkey = $title->getDBkey();
+                               }
+
+                               if ( isset( $this->mAllPages[$ns][$dbkey] ) ) {
+                                       $this->mGoodRevIDs[$revid] = $this->mAllPages[$ns][$dbkey];
+                                       $this->mDeletedRevIDs[$revid] = $this->mAllPages[$ns][$dbkey];
+                               } else {
+                                       $remaining[$revid] = true;
+                               }
+                       }
+
+                       $this->mMissingRevIDs = array_keys( $remaining );
+               }
        }
 
        /**
@@ -1135,26 +1203,46 @@ class ApiPageSet extends ApiBase {
        public function getAllowedParams( $flags = 0 ) {
                $result = array(
                        'titles' => array(
-                               ApiBase::PARAM_ISMULTI => true
+                               ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_HELP_MSG => 'api-pageset-param-titles',
                        ),
                        'pageids' => array(
                                ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_ISMULTI => true
+                               ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_HELP_MSG => 'api-pageset-param-pageids',
                        ),
                        'revids' => array(
                                ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_ISMULTI => true
+                               ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_HELP_MSG => 'api-pageset-param-revids',
+                       ),
+                       'generator' => array(
+                               ApiBase::PARAM_TYPE => null,
+                               ApiBase::PARAM_VALUE_LINKS => array(),
+                               ApiBase::PARAM_HELP_MSG => 'api-pageset-param-generator',
+                       ),
+                       'redirects' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => $this->mAllowGenerator
+                                       ? 'api-pageset-param-redirects-generator'
+                                       : 'api-pageset-param-redirects-nogenerator',
+                       ),
+                       'converttitles' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'api-pageset-param-converttitles',
+                                       $this->getLanguage()->commaList( LanguageConverter::$languagesWithVariants ),
+                               ),
                        ),
-                       'redirects' => false,
-                       'converttitles' => false,
                );
-               if ( $this->mAllowGenerator ) {
-                       if ( $flags & ApiBase::GET_VALUES_FOR_HELP ) {
-                               $result['generator'] = array(
-                                       ApiBase::PARAM_TYPE => $this->getGenerators()
-                               );
-                       } else {
-                               $result['generator'] = null;
+
+               if ( !$this->mAllowGenerator ) {
+                       unset( $result['generator'] );
+               } elseif ( $flags & ApiBase::GET_VALUES_FOR_HELP ) {
+                       $result['generator'][ApiBase::PARAM_TYPE] = $this->getGenerators();
+                       foreach ( $result['generator'][ApiBase::PARAM_TYPE] as $g ) {
+                               $result['generator'][ApiBase::PARAM_TYPE][] = $g;
+                               $result['generator'][ApiBase::PARAM_VALUE_LINKS][$g] = "Special:ApiHelp/query+$g";
                        }
                }
 
@@ -1188,23 +1276,4 @@ class ApiPageSet extends ApiBase {
 
                return self::$generators;
        }
-
-       public function getParamDescription() {
-               return array(
-                       'titles' => 'A list of titles to work on',
-                       'pageids' => 'A list of page IDs to work on',
-                       'revids' => 'A list of revision IDs to work on',
-                       'generator' => array(
-                               'Get the list of pages to work on by executing the specified query module.',
-                               'NOTE: generator parameter names must be prefixed with a \'g\', see examples'
-                       ),
-                       'redirects' => 'Automatically resolve redirects',
-                       'converttitles' => array(
-                               'Convert titles to other variants if necessary. Only works if ' .
-                                       'the wiki\'s content language supports variant conversion.',
-                               'Languages that support variant conversion include ' .
-                                       implode( ', ', LanguageConverter::$languagesWithVariants )
-                       ),
-               );
-       }
 }
index 067b2f5..b1c092e 100644 (file)
  */
 class ApiParamInfo extends ApiBase {
 
-       /**
-        * @var ApiQuery
-        */
-       protected $queryObj;
+       private $helpFormat;
+       private $context;
 
        public function __construct( ApiMain $main, $action ) {
                parent::__construct( $main, $action );
-               $this->queryObj = new ApiQuery( $this->getMain(), 'query' );
        }
 
        public function execute() {
+               global $wgContLang;
+
                // Get parameters
                $params = $this->extractRequestParams();
-               $resultObj = $this->getResult();
+
+               $this->helpFormat = $params['helpformat'];
+               $this->context = new RequestContext;
+               $this->context->setUser( new User ); // anon to avoid caching issues
+               $this->context->setLanguage( $this->getMain()->getLanguage() );
+
+               if ( is_array( $params['modules'] ) ) {
+                       $modules = $params['modules'];
+               } else {
+                       $modules = array();
+               }
+
+               if ( is_array( $params['querymodules'] ) ) {
+                       $this->logFeatureUsage( 'action=paraminfo&querymodules' );
+                       $queryModules = $params['querymodules'];
+                       foreach ( $queryModules as $m ) {
+                               $modules[] = 'query+' . $m;
+                       }
+               } else {
+                       $queryModules = array();
+               }
+
+               if ( is_array( $params['formatmodules'] ) ) {
+                       $this->logFeatureUsage( 'action=paraminfo&formatmodules' );
+                       $formatModules = $params['formatmodules'];
+                       foreach ( $formatModules as $m ) {
+                               $modules[] = $m;
+                       }
+               } else {
+                       $formatModules = array();
+               }
 
                $res = array();
 
-               $this->addModulesInfo( $params, 'modules', $res, $resultObj );
+               foreach ( $modules as $m ) {
+                       try {
+                               $module = $this->getModuleFromPath( $m );
+                       } catch ( UsageException $ex ) {
+                               $this->setWarning( $ex->getMessage() );
+                               continue;
+                       }
+                       $key = 'modules';
+
+                       // Back compat
+                       $isBCQuery = false;
+                       if ( $module->getParent() && $module->getParent()->getModuleName() == 'query' &&
+                               in_array( $module->getModuleName(), $queryModules )
+                       ) {
+                               $isBCQuery = true;
+                               $key = 'querymodules';
+                       }
+                       if ( in_array( $module->getModuleName(), $formatModules ) ) {
+                               $key = 'formatmodules';
+                       }
+
+                       $item = $this->getModuleInfo( $module );
+                       if ( $isBCQuery ) {
+                               $item['querytype'] = $item['group'];
+                       }
+                       $res[$key][] = $item;
+               }
+
+               $result = $this->getResult();
+               $result->addValue( array( $this->getModuleName() ), 'helpformat', $this->helpFormat );
 
-               $this->addModulesInfo( $params, 'querymodules', $res, $resultObj );
+               foreach ( $res as $key => $stuff ) {
+                       $result->setIndexedTagName( $res[$key], 'module' );
+               }
 
                if ( $params['mainmodule'] ) {
-                       $res['mainmodule'] = $this->getClassInfo( $this->getMain() );
+                       $this->logFeatureUsage( 'action=paraminfo&mainmodule' );
+                       $res['mainmodule'] = $this->getModuleInfo( $this->getMain() );
                }
 
                if ( $params['pagesetmodule'] ) {
-                       $pageSet = new ApiPageSet( $this->queryObj );
-                       $res['pagesetmodule'] = $this->getClassInfo( $pageSet );
+                       $this->logFeatureUsage( 'action=paraminfo&pagesetmodule' );
+                       $pageSet = new ApiPageSet( $this->getMain()->getModuleManager()->getModule( 'query' ) );
+                       $res['pagesetmodule'] = $this->getModuleInfo( $pageSet );
+                       unset( $res['pagesetmodule']['name'] );
+                       unset( $res['pagesetmodule']['path'] );
+                       unset( $res['pagesetmodule']['group'] );
                }
 
-               $this->addModulesInfo( $params, 'formatmodules', $res, $resultObj );
-
-               $resultObj->addValue( null, $this->getModuleName(), $res );
+               $result->addValue( null, $this->getModuleName(), $res );
        }
 
        /**
-        * If the type is requested in parameters, adds a section to res with module info.
-        * @param array $params User parameters array
-        * @param string $type Parameter name
-        * @param array $res Store results in this array
-        * @param ApiResult $resultObj Results object to set indexed tag.
+        * @param array $res Result array
+        * @param string $key Result key
+        * @param Message[] $msgs
         */
-       private function addModulesInfo( $params, $type, &$res, $resultObj ) {
-               if ( !is_array( $params[$type] ) ) {
-                       return;
-               }
-               $isQuery = ( $type === 'querymodules' );
-               if ( $isQuery ) {
-                       $mgr = $this->queryObj->getModuleManager();
-               } else {
-                       $mgr = $this->getMain()->getModuleManager();
-               }
-               $res[$type] = array();
-               foreach ( $params[$type] as $mod ) {
-                       if ( !$mgr->isDefined( $mod ) ) {
-                               $res[$type][] = array( 'name' => $mod, 'missing' => '' );
-                               continue;
-                       }
-                       $obj = $mgr->getModule( $mod );
-                       $item = $this->getClassInfo( $obj );
-                       $item['name'] = $mod;
-                       if ( $isQuery ) {
-                               $item['querytype'] = $mgr->getModuleGroup( $mod );
-                       }
-                       $res[$type][] = $item;
+       protected function formatHelpMessages( array &$res, $key, array $msgs ) {
+               switch ( $this->helpFormat ) {
+                       case 'none':
+                               break;
+
+                       case 'wikitext':
+                               $ret = array();
+                               foreach ( $msgs as $m ) {
+                                       $ret[] = $m->setContext( $this->context )->text();
+                               }
+                               $res[$key] = join( "\n\n", $ret );
+                               break;
+
+                       case 'html':
+                               $ret = array();
+                               foreach ( $msgs as $m ) {
+                                       $ret[] = $m->setContext( $this->context )->parseAsBlock();
+                               }
+                               $res[$key] = join( "\n", $ret );
+                               break;
+
+                       case 'raw':
+                               $res[$key] = array();
+                               foreach ( $msgs as $m ) {
+                                       $res[$key][] = array(
+                                               'key' => $m->getKey(),
+                                               'params' => $m->getParams(),
+                                       );
+                               }
+                               $this->getResult()->setIndexedTagName( $res[$key], 'msg' );
+                               break;
                }
-               $resultObj->setIndexedTagName( $res[$type], 'module' );
        }
 
        /**
-        * @param ApiBase $obj
+        * @param ApiBase $module
         * @return ApiResult
         */
-       private function getClassInfo( $obj ) {
+       private function getModuleInfo( $module ) {
                $result = $this->getResult();
-               $retval['classname'] = get_class( $obj );
-               $retval['description'] = implode( "\n", (array)$obj->getFinalDescription() );
-               $retval['examples'] = '';
-
-               // version is deprecated since 1.21, but needs to be returned for v1
-               $retval['version'] = '';
-               $retval['prefix'] = $obj->getModulePrefix();
-
-               if ( $obj->isReadMode() ) {
-                       $retval['readrights'] = '';
-               }
-               if ( $obj->isWriteMode() ) {
-                       $retval['writerights'] = '';
-               }
-               if ( $obj->mustBePosted() ) {
-                       $retval['mustbeposted'] = '';
-               }
-               if ( $obj instanceof ApiQueryGeneratorBase ) {
-                       $retval['generator'] = '';
+               $ret = array();
+               $path = $module->getModulePath();
+
+               $ret['name'] = $module->getModuleName();
+               $ret['classname'] = get_class( $module );
+               $ret['path'] = $path;
+               if ( !$module->isMain() ) {
+                       $ret['group'] = $module->getParent()->getModuleManager()->getModuleGroup(
+                               $module->getModuleName()
+                       );
                }
+               $ret['prefix'] = $module->getModulePrefix();
 
-               $allowedParams = $obj->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
-               if ( !is_array( $allowedParams ) ) {
-                       return $retval;
-               }
+               $this->formatHelpMessages( $ret, 'description', $module->getFinalDescription() );
 
-               $retval['helpurls'] = (array)$obj->getHelpUrls();
-               if ( isset( $retval['helpurls'][0] ) && $retval['helpurls'][0] === false ) {
-                       $retval['helpurls'] = array();
+               foreach ( $module->getHelpFlags() as $flag ) {
+                       $ret[$flag] = '';
                }
-               $result->setIndexedTagName( $retval['helpurls'], 'helpurl' );
 
-               $examples = $obj->getExamples();
-               $retval['allexamples'] = array();
-               if ( $examples !== false ) {
-                       if ( is_string( $examples ) ) {
-                               $examples = array( $examples );
-                       }
-                       foreach ( $examples as $k => $v ) {
-                               if ( strlen( $retval['examples'] ) ) {
-                                       $retval['examples'] .= ' ';
-                               }
-                               $item = array();
-                               if ( is_numeric( $k ) ) {
-                                       $retval['examples'] .= $v;
-                                       ApiResult::setContent( $item, $v );
-                               } else {
-                                       if ( !is_array( $v ) ) {
-                                               $item['description'] = $v;
+               $ret['helpurls'] = (array)$module->getHelpUrls();
+               if ( isset( $ret['helpurls'][0] ) && $ret['helpurls'][0] === false ) {
+                       $ret['helpurls'] = array();
+               }
+               $result->setIndexedTagName( $ret['helpurls'], 'helpurl' );
+
+               if ( $this->helpFormat !== 'none' ) {
+                       $ret['examples'] = array();
+                       $examples = $module->getExamplesMessages();
+                       foreach ( $examples as $qs => $msg ) {
+                               $item = array(
+                                       'query' => $qs
+                               );
+                               $msg = ApiBase::makeMessage( $msg, $this->context, array(
+                                       $module->getModulePrefix(),
+                                       $module->getModuleName(),
+                                       $module->getModulePath()
+                               ) );
+                               $this->formatHelpMessages( $item, 'description', array( $msg ) );
+                               if ( isset( $item['description'] ) ) {
+                                       if ( is_array( $item['description'] ) ) {
+                                               $item['description'] = $item['description'][0];
                                        } else {
-                                               $item['description'] = implode( $v, "\n" );
+                                               $result->setSubelements( $item, 'description' );
                                        }
-                                       $retval['examples'] .= $item['description'] . ' ' . $k;
-                                       ApiResult::setContent( $item, $k );
                                }
-                               $retval['allexamples'][] = $item;
+                               $ret['examples'][] = $item;
                        }
+                       $result->setIndexedTagName( $ret['examples'], 'example' );
                }
-               $result->setIndexedTagName( $retval['allexamples'], 'example' );
-
-               $retval['parameters'] = array();
-               $paramDesc = $obj->getFinalParamDescription();
-               foreach ( $allowedParams as $n => $p ) {
-                       $a = array( 'name' => $n );
-                       if ( isset( $paramDesc[$n] ) ) {
-                               $a['description'] = implode( "\n", (array)$paramDesc[$n] );
+
+               $ret['parameters'] = array();
+               $params = $module->getFinalParams( ApiBase::GET_VALUES_FOR_HELP );
+               $paramDesc = $module->getFinalParamDescription();
+               foreach ( $params as $name => $settings ) {
+                       if ( !is_array( $settings ) ) {
+                               $settings = array( ApiBase::PARAM_DFLT => $settings );
                        }
 
-                       //handle shorthand
-                       if ( !is_array( $p ) ) {
-                               $p = array(
-                                       ApiBase::PARAM_DFLT => $p,
-                               );
+                       $item = array(
+                               'name' => $name
+                       );
+                       if ( isset( $paramDesc[$name] ) ) {
+                               $this->formatHelpMessages( $item, 'description', $paramDesc[$name] );
                        }
 
-                       //handle missing type
-                       if ( !isset( $p[ApiBase::PARAM_TYPE] ) ) {
-                               $dflt = isset( $p[ApiBase::PARAM_DFLT] ) ? $p[ApiBase::PARAM_DFLT] : null;
-                               if ( is_bool( $dflt ) ) {
-                                       $p[ApiBase::PARAM_TYPE] = 'boolean';
-                               } elseif ( is_string( $dflt ) || is_null( $dflt ) ) {
-                                       $p[ApiBase::PARAM_TYPE] = 'string';
-                               } elseif ( is_int( $dflt ) ) {
-                                       $p[ApiBase::PARAM_TYPE] = 'integer';
-                               }
+                       if ( !empty( $settings[ApiBase::PARAM_REQUIRED] ) ) {
+                               $item['required'] = '';
                        }
 
-                       if ( isset( $p[ApiBase::PARAM_DEPRECATED] ) && $p[ApiBase::PARAM_DEPRECATED] ) {
-                               $a['deprecated'] = '';
+                       if ( !empty( $settings[ApiBase::PARAM_DEPRECATED] ) ) {
+                               $item['deprecated'] = '';
                        }
-                       if ( isset( $p[ApiBase::PARAM_REQUIRED] ) && $p[ApiBase::PARAM_REQUIRED] ) {
-                               $a['required'] = '';
+
+                       if ( $name === 'token' && $module->needsToken() ) {
+                               $item['tokentype'] = $module->needsToken();
                        }
 
-                       if ( $n === 'token' && $obj->needsToken() ) {
-                               $a['tokentype'] = $obj->needsToken();
+                       if ( !isset( $settings[ApiBase::PARAM_TYPE] ) ) {
+                               $dflt = isset( $settings[ApiBase::PARAM_DFLT] )
+                                       ? $settings[ApiBase::PARAM_DFLT]
+                                       : null;
+                               if ( is_bool( $dflt ) ) {
+                                       $settings[ApiBase::PARAM_TYPE] = 'boolean';
+                               } elseif ( is_string( $dflt ) || is_null( $dflt ) ) {
+                                       $settings[ApiBase::PARAM_TYPE] = 'string';
+                               } elseif ( is_int( $dflt ) ) {
+                                       $settings[ApiBase::PARAM_TYPE] = 'integer';
+                               }
                        }
 
-                       if ( isset( $p[ApiBase::PARAM_DFLT] ) ) {
-                               $type = $p[ApiBase::PARAM_TYPE];
-                               if ( $type === 'boolean' ) {
-                                       $a['default'] = ( $p[ApiBase::PARAM_DFLT] ? 'true' : 'false' );
-                               } elseif ( $type === 'string' ) {
-                                       $a['default'] = strval( $p[ApiBase::PARAM_DFLT] );
-                               } elseif ( $type === 'integer' ) {
-                                       $a['default'] = intval( $p[ApiBase::PARAM_DFLT] );
-                               } else {
-                                       $a['default'] = $p[ApiBase::PARAM_DFLT];
+                       if ( isset( $settings[ApiBase::PARAM_DFLT] ) ) {
+                               switch ( $settings[ApiBase::PARAM_TYPE] ) {
+                                       case 'boolean':
+                                               $item['default'] = ( $settings[ApiBase::PARAM_DFLT] ? 'true' : 'false' );
+                                               break;
+                                       case 'string':
+                                               $item['default'] = strval( $settings[ApiBase::PARAM_DFLT] );
+                                               break;
+                                       case 'integer':
+                                               $item['default'] = intval( $settings[ApiBase::PARAM_DFLT] );
+                                               break;
+                                       default:
+                                               $item['default'] = $settings[ApiBase::PARAM_DFLT];
+                                               break;
                                }
                        }
-                       if ( isset( $p[ApiBase::PARAM_ISMULTI] ) && $p[ApiBase::PARAM_ISMULTI] ) {
-                               $a['multi'] = '';
-                               $a['limit'] = $this->getMain()->canApiHighLimits() ?
+
+                       if ( !empty( $settings[ApiBase::PARAM_ISMULTI] ) ) {
+                               $item['multi'] = '';
+                               $item['limit'] = $this->getMain()->canApiHighLimits() ?
                                        ApiBase::LIMIT_SML2 :
                                        ApiBase::LIMIT_SML1;
-                               $a['lowlimit'] = ApiBase::LIMIT_SML1;
-                               $a['highlimit'] = ApiBase::LIMIT_SML2;
+                               $item['lowlimit'] = ApiBase::LIMIT_SML1;
+                               $item['highlimit'] = ApiBase::LIMIT_SML2;
                        }
 
-                       if ( isset( $p[ApiBase::PARAM_ALLOW_DUPLICATES] ) && $p[ApiBase::PARAM_ALLOW_DUPLICATES] ) {
-                               $a['allowsduplicates'] = '';
+                       if ( !empty( $settings[ApiBase::PARAM_ALLOW_DUPLICATES] ) ) {
+                               $item['allowsduplicates'] = '';
                        }
 
-                       if ( isset( $p[ApiBase::PARAM_TYPE] ) ) {
-                               if ( $p[ApiBase::PARAM_TYPE] === 'submodule' ) {
-                                       $a['type'] = $obj->getModuleManager()->getNames( $n );
-                                       sort( $a['type'] );
-                                       $a['submodules'] = '';
+                       if ( isset( $settings[ApiBase::PARAM_TYPE] ) ) {
+                               if ( $settings[ApiBase::PARAM_TYPE] === 'submodule' ) {
+                                       $item['type'] = $module->getModuleManager()->getNames( $name );
+                                       sort( $item['type'] );
+                                       $item['submodules'] = '';
                                } else {
-                                       $a['type'] = $p[ApiBase::PARAM_TYPE];
+                                       $item['type'] = $settings[ApiBase::PARAM_TYPE];
                                }
-                               if ( is_array( $a['type'] ) ) {
+                               if ( is_array( $item['type'] ) ) {
                                        // To prevent sparse arrays from being serialized to JSON as objects
-                                       $a['type'] = array_values( $a['type'] );
-                                       $result->setIndexedTagName( $a['type'], 't' );
+                                       $item['type'] = array_values( $item['type'] );
+                                       $result->setIndexedTagName( $item['type'], 't' );
                                }
                        }
-                       if ( isset( $p[ApiBase::PARAM_MAX] ) ) {
-                               $a['max'] = $p[ApiBase::PARAM_MAX];
+                       if ( isset( $settings[ApiBase::PARAM_MAX] ) ) {
+                               $item['max'] = $settings[ApiBase::PARAM_MAX];
                        }
-                       if ( isset( $p[ApiBase::PARAM_MAX2] ) ) {
-                               $a['highmax'] = $p[ApiBase::PARAM_MAX2];
+                       if ( isset( $settings[ApiBase::PARAM_MAX2] ) ) {
+                               $item['highmax'] = $settings[ApiBase::PARAM_MAX2];
                        }
-                       if ( isset( $p[ApiBase::PARAM_MIN] ) ) {
-                               $a['min'] = $p[ApiBase::PARAM_MIN];
+                       if ( isset( $settings[ApiBase::PARAM_MIN] ) ) {
+                               $item['min'] = $settings[ApiBase::PARAM_MIN];
                        }
-                       $retval['parameters'][] = $a;
+
+                       if ( !empty( $settings[ApiBase::PARAM_HELP_MSG_INFO] ) ) {
+                               $item['info'] = array();
+                               foreach ( $settings[ApiBase::PARAM_HELP_MSG_INFO] as $i ) {
+                                       $tag = array_shift( $i );
+                                       $info = array(
+                                               'name' => $tag,
+                                       );
+                                       if ( count( $i ) ) {
+                                               $info['values'] = $i;
+                                               $result->setIndexedTagName( $info['values'], 'v' );
+                                       }
+                                       $this->formatHelpMessages( $info, 'text', array(
+                                               $this->context->msg( "apihelp-{$path}-paraminfo-{$tag}" )
+                                                       ->numParams( count( $i ) )
+                                                       ->params( $this->context->getLanguage()->commaList( $i ) )
+                                                       ->params( $module->getModulePrefix() )
+                                       ) );
+                                       $result->setSubelements( $info, 'text' );
+                                       $item['info'][] = $info;
+                               }
+                               $result->setIndexedTagName( $item['info'], 'i' );
+                       }
+
+                       $ret['parameters'][] = $item;
                }
-               $result->setIndexedTagName( $retval['parameters'], 'param' );
+               $result->setIndexedTagName( $ret['parameters'], 'param' );
 
-               return $retval;
+               return $ret;
        }
 
        public function isReadMode() {
@@ -262,9 +351,9 @@ class ApiParamInfo extends ApiBase {
        }
 
        public function getAllowedParams() {
-               $modules = $this->getMain()->getModuleManager()->getNames( 'action' );
-               sort( $modules );
-               $querymodules = $this->queryObj->getModuleManager()->getNames();
+               // back compat
+               $querymodules = $this->getMain()->getModuleManager()
+                       ->getModule( 'query' )->getModuleManager()->getNames();
                sort( $querymodules );
                $formatmodules = $this->getMain()->getModuleManager()->getNames( 'format' );
                sort( $formatmodules );
@@ -272,39 +361,35 @@ class ApiParamInfo extends ApiBase {
                return array(
                        'modules' => array(
                                ApiBase::PARAM_ISMULTI => true,
-                               ApiBase::PARAM_TYPE => $modules,
                        ),
+                       'helpformat' => array(
+                               ApiBase::PARAM_DFLT => 'none',
+                               ApiBase::PARAM_TYPE => array( 'html', 'wikitext', 'raw', 'none' ),
+                       ),
+
                        'querymodules' => array(
+                               ApiBase::PARAM_DEPRECATED => true,
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => $querymodules,
                        ),
-                       'mainmodule' => false,
-                       'pagesetmodule' => false,
+                       'mainmodule' => array(
+                               ApiBase::PARAM_DEPRECATED => true,
+                       ),
+                       'pagesetmodule' => array(
+                               ApiBase::PARAM_DEPRECATED => true,
+                       ),
                        'formatmodules' => array(
+                               ApiBase::PARAM_DEPRECATED => true,
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => $formatmodules,
                        )
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'modules' => 'List of module names (value of the action= parameter)',
-                       'querymodules' => 'List of query module names (value of prop=, meta= or list= parameter)',
-                       'mainmodule' => 'Get information about the main (top-level) module as well',
-                       'pagesetmodule' => 'Get information about the pageset module ' .
-                               '(providing titles= and friends) as well',
-                       'formatmodules' => 'List of format module names (value of format= parameter)',
-               );
-       }
-
-       public function getDescription() {
-               return 'Obtain information about certain API parameters and errors.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=paraminfo&modules=parse&querymodules=allpages|siteinfo'
+                       'action=paraminfo&modules=parse|phpfm|query+allpages|query+siteinfo'
+                               => 'apihelp-paraminfo-example-1',
                );
        }
 
index 06fdf85..2bf1677 100644 (file)
@@ -79,16 +79,6 @@ class ApiParse extends ApiBase {
                // TODO: Does this still need $wgTitle?
                global $wgParser, $wgTitle;
 
-               // Currently unnecessary, code to act as a safeguard against any change
-               // in current behavior of uselang
-               $oldLang = null;
-               if ( isset( $params['uselang'] )
-                       && $params['uselang'] != $this->getContext()->getLanguage()->getCode()
-               ) {
-                       $oldLang = $this->getContext()->getLanguage(); // Backup language
-                       $this->getContext()->setLanguage( Language::factory( $params['uselang'] ) );
-               }
-
                $redirValues = null;
 
                // Return result
@@ -347,6 +337,14 @@ class ApiParse extends ApiBase {
                        $result_array['modulemessages'] = array_values( array_unique( $p_result->getModuleMessages() ) );
                }
 
+               if ( isset( $prop['indicators'] ) ) {
+                       foreach ( $p_result->getIndicators() as $name => $content ) {
+                               $indicator = array( 'name' => $name );
+                               ApiResult::setContent( $indicator, $content );
+                               $result_array['indicators'][] = $indicator;
+                       }
+               }
+
                if ( isset( $prop['iwlinks'] ) ) {
                        $result_array['iwlinks'] = $this->formatIWLinks( $p_result->getInterwikiLinks() );
                }
@@ -378,7 +376,7 @@ class ApiParse extends ApiBase {
                                $this->dieUsage( "generatexml is only supported for wikitext content", "notwikitext" );
                        }
 
-                       $wgParser->startExternalParse( $titleObj, $popts, OT_PREPROCESS );
+                       $wgParser->startExternalParse( $titleObj, $popts, Parser::OT_PREPROCESS );
                        $dom = $wgParser->preprocessToDom( $this->content->getNativeData() );
                        if ( is_callable( array( $dom, 'saveXML' ) ) ) {
                                $xml = $dom->saveXML();
@@ -401,6 +399,7 @@ class ApiParse extends ApiBase {
                        'sections' => 's',
                        'headitems' => 'hi',
                        'modules' => 'm',
+                       'indicators' => 'ind',
                        'modulescripts' => 'm',
                        'modulestyles' => 'm',
                        'modulemessages' => 'm',
@@ -409,10 +408,6 @@ class ApiParse extends ApiBase {
                );
                $this->setIndexedTagNames( $result_array, $result_mapping );
                $result->addValue( null, $this->getModuleName(), $result_array );
-
-               if ( !is_null( $oldLang ) ) {
-                       $this->getContext()->setLanguage( $oldLang ); // Reset language to $oldLang
-               }
        }
 
        /**
@@ -499,7 +494,7 @@ class ApiParse extends ApiBase {
                        $entry['lang'] = $bits[0];
                        if ( $title ) {
                                $entry['url'] = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
-                               // localised language name in user language (maybe set by uselang=)
+                               // localised language name in 'uselang' language
                                $entry['langname'] = Language::fetchLanguageName(
                                        $title->getInterwiki(),
                                        $this->getLanguage()->getCode()
@@ -694,6 +689,7 @@ class ApiParse extends ApiBase {
                                        'headitems',
                                        'headhtml',
                                        'modules',
+                                       'indicators',
                                        'iwlinks',
                                        'wikitext',
                                        'properties',
@@ -704,11 +700,15 @@ class ApiParse extends ApiBase {
                        'pst' => false,
                        'onlypst' => false,
                        'effectivelanglinks' => false,
-                       'uselang' => null,
                        'section' => null,
                        'disablepp' => false,
                        'disableeditsection' => false,
-                       'generatexml' => false,
+                       'generatexml' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-parse-param-generatexml', CONTENT_MODEL_WIKITEXT
+                               ),
+                       ),
                        'preview' => false,
                        'sectionpreview' => false,
                        'disabletoc' => false,
@@ -721,97 +721,16 @@ class ApiParse extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-               $wikitext = CONTENT_MODEL_WIKITEXT;
-
-               return array(
-                       'text' => "Text to parse. Use {$p}title or {$p}contentmodel to control the content model",
-                       'summary' => 'Summary to parse',
-                       'redirects' => "If the {$p}page or the {$p}pageid parameter is set to a redirect, resolve it",
-                       'title' => "Title of page the text belongs to. " .
-                               "If omitted, {$p}contentmodel must be specified, and \"API\" will be used as the title",
-                       'page' => "Parse the content of this page. Cannot be used together with {$p}text and {$p}title",
-                       'pageid' => "Parse the content of this page. Overrides {$p}page",
-                       'oldid' => "Parse the content of this revision. Overrides {$p}page and {$p}pageid",
-                       'prop' => array(
-                               'Which pieces of information to get',
-                               ' text           - Gives the parsed text of the wikitext',
-                               ' langlinks      - Gives the language links in the parsed wikitext',
-                               ' categories     - Gives the categories in the parsed wikitext',
-                               ' categorieshtml - Gives the HTML version of the categories',
-                               ' links          - Gives the internal links in the parsed wikitext',
-                               ' templates      - Gives the templates in the parsed wikitext',
-                               ' images         - Gives the images in the parsed wikitext',
-                               ' externallinks  - Gives the external links in the parsed wikitext',
-                               ' sections       - Gives the sections in the parsed wikitext',
-                               ' revid          - Adds the revision ID of the parsed page',
-                               ' displaytitle   - Adds the title of the parsed wikitext',
-                               ' headitems      - Gives items to put in the <head> of the page',
-                               ' headhtml       - Gives parsed <head> of the page',
-                               ' modules        - Gives the ResourceLoader modules used on the page',
-                               ' iwlinks        - Gives interwiki links in the parsed wikitext',
-                               ' wikitext       - Gives the original wikitext that was parsed',
-                               ' properties     - Gives various properties defined in the parsed wikitext',
-                               ' limitreportdata - Gives the limit report in a structured way.',
-                               "                   Gives no data, when {$p}disablepp is set.",
-                               ' limitreporthtml - Gives the HTML version of the limit report.',
-                               "                   Gives no data, when {$p}disablepp is set.",
-                       ),
-                       'effectivelanglinks' => array(
-                               'Includes language links supplied by extensions',
-                               '(for use with prop=langlinks)',
-                       ),
-                       'pst' => array(
-                               'Do a pre-save transform on the input before parsing it',
-                               "Only valid when used with {$p}text",
-                       ),
-                       'onlypst' => array(
-                               'Do a pre-save transform (PST) on the input, but don\'t parse it',
-                               'Returns the same wikitext, after a PST has been applied.',
-                               "Only valid when used with {$p}text",
-                       ),
-                       'uselang' => 'Which language to parse the request in',
-                       'section' => 'Only retrieve the content of this section number',
-                       'disablepp' => 'Disable the PP Report from the parser output',
-                       'disableeditsection' => 'Disable edit section links from the parser output',
-                       'generatexml' => "Generate XML parse tree (requires contentmodel=$wikitext)",
-                       'preview' => 'Parse in preview mode',
-                       'sectionpreview' => 'Parse in section preview mode (enables preview mode too)',
-                       'disabletoc' => 'Disable table of contents in output',
-                       'contentformat' => array(
-                               'Content serialization format used for the input text',
-                               "Only valid when used with {$p}text",
-                       ),
-                       'contentmodel' => array(
-                               "Content model of the input text. If omitted, ${p}title must be specified, " .
-                                       "and default will be the model of the specified ${p}title",
-                               "Only valid when used with {$p}text",
-                       ),
-               );
-       }
-
-       public function getDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'Parses content and returns parser output.',
-                       'See the various prop-Modules of action=query to get information from the current' .
-                               'version of a page.',
-                       'There are several ways to specify the text to parse:',
-                       "1) Specify a page or revision, using {$p}page, {$p}pageid, or {$p}oldid.",
-                       "2) Specify content explicitly, using {$p}text, {$p}title, and {$p}contentmodel.",
-                       "3) Specify only a summary to parse. {$p}prop should be given an empty value.",
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=parse&page=Project:Sandbox' => 'Parse a page',
-                       'api.php?action=parse&text={{Project:Sandbox}}&contentmodel=wikitext' => 'Parse wikitext',
-                       'api.php?action=parse&text={{PAGENAME}}&title=Test'
-                               => 'Parse wikitext, specifying the page title',
-                       'api.php?action=parse&summary=Some+[[link]]&prop=' => 'Parse a summary',
+                       'action=parse&page=Project:Sandbox'
+                               => 'apihelp-parse-example-page',
+                       'action=parse&text={{Project:Sandbox}}&contentmodel=wikitext'
+                               => 'apihelp-parse-example-text',
+                       'action=parse&text={{PAGENAME}}&title=Test'
+                               => 'apihelp-parse-example-texttitle',
+                       'action=parse&summary=Some+[[link]]&prop='
+                               => 'apihelp-parse-example-summary',
                );
        }
 
index 8b66781..3684461 100644 (file)
@@ -86,25 +86,16 @@ class ApiPatrol extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'rcid' => 'Recentchanges ID to patrol',
-                       'revid' => 'Revision ID to patrol',
-               );
-       }
-
-       public function getDescription() {
-               return 'Patrol a page or revision.';
-       }
-
        public function needsToken() {
                return 'patrol';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=patrol&token=123ABC&rcid=230672766',
-                       'api.php?action=patrol&token=123ABC&revid=230672766'
+                       'action=patrol&token=123ABC&rcid=230672766'
+                               => 'apihelp-patrol-example-rcid',
+                       'action=patrol&token=123ABC&revid=230672766'
+                               => 'apihelp-patrol-example-revid',
                );
        }
 
index a3d12b7..ae7d42b 100644 (file)
@@ -175,43 +175,21 @@ class ApiProtect extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'title' => "Title of the page you want to (un)protect. Cannot be used together with {$p}pageid",
-                       'pageid' => "ID of the page you want to (un)protect. Cannot be used together with {$p}title",
-                       'protections' => 'List of protection levels, formatted action=group (e.g. edit=sysop)',
-                       'expiry' => array(
-                               'Expiry timestamps. If only one timestamp is ' .
-                                       'set, it\'ll be used for all protections.',
-                               'Use \'infinite\', \'indefinite\', \'infinity\' or \'never\', for a never-expiring protection.'
-                       ),
-                       'reason' => 'Reason for (un)protecting',
-                       'cascade' => array(
-                               'Enable cascading protection (i.e. protect pages included in this page)',
-                               'Ignored if not all protection levels are \'sysop\' or \'protect\''
-                       ),
-                       'watch' => 'If set, add the page being (un)protected to your watchlist',
-                       'watchlist' => 'Unconditionally add or remove the page from your ' .
-                               'watchlist, use preferences or do not change watch',
-               );
-       }
-
-       public function getDescription() {
-               return 'Change the protection level of a page.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=protect&title=Main%20Page&token=123ABC&' .
-                               'protections=edit=sysop|move=sysop&cascade=&expiry=20070901163000|never',
-                       'api.php?action=protect&title=Main%20Page&token=123ABC&' .
+                       'action=protect&title=Main%20Page&token=123ABC&' .
+                               'protections=edit=sysop|move=sysop&cascade=&expiry=20070901163000|never'
+                               => 'apihelp-protect-example-protect',
+                       'action=protect&title=Main%20Page&token=123ABC&' .
                                'protections=edit=all|move=all&reason=Lifting%20restrictions'
+                               => 'apihelp-protect-example-unprotect',
+                       'action=protect&title=Main%20Page&token=123ABC&' .
+                               'protections=&reason=Lifting%20restrictions'
+                               => 'apihelp-protect-example-unprotect2',
                );
        }
 
index 7667b23..ec55137 100644 (file)
@@ -133,7 +133,9 @@ class ApiPurge extends ApiBase {
                $result = array(
                        'forcelinkupdate' => false,
                        'forcerecursivelinkupdate' => false,
-                       'continue' => '',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                );
                if ( $flags ) {
                        $result += $this->getPageSet()->getFinalParams( $flags );
@@ -142,25 +144,12 @@ class ApiPurge extends ApiBase {
                return $result;
        }
 
-       public function getParamDescription() {
-               return $this->getPageSet()->getFinalParamDescription()
-                       + array(
-                               'forcelinkupdate' => 'Update the links tables',
-                               'forcerecursivelinkupdate' => 'Update the links table, and update ' .
-                                       'the links tables for any page that uses this page as a template',
-                               'continue' => 'When more results are available, use this to continue',
-                       );
-       }
-
-       public function getDescription() {
-               return array( 'Purge the cache for the given titles.',
-                       'Requires a POST request if the user is not logged in.'
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=purge&titles=Main_Page|API' => 'Purge the "Main Page" and the "API" page',
+                       'action=purge&titles=Main_Page|API'
+                               => 'apihelp-purge-example-simple',
+                       'action=purge&generator=allpages&gapnamespace=0&gaplimit=10'
+                               => 'apihelp-purge-example-generator',
                );
        }
 
index 7c750e4..5a0491a 100644 (file)
@@ -45,6 +45,7 @@ class ApiQuery extends ApiBase {
                'categories' => 'ApiQueryCategories',
                'categoryinfo' => 'ApiQueryCategoryInfo',
                'contributors' => 'ApiQueryContributors',
+               'deletedrevisions' => 'ApiQueryDeletedRevisions',
                'duplicatefiles' => 'ApiQueryDuplicateFiles',
                'extlinks' => 'ApiQueryExternalLinks',
                'fileusage' => 'ApiQueryBacklinksprop',
@@ -69,6 +70,7 @@ class ApiQuery extends ApiBase {
         */
        private static $QueryListModules = array(
                'allcategories' => 'ApiQueryAllCategories',
+               'alldeletedrevisions' => 'ApiQueryAllDeletedRevisions',
                'allfileusages' => 'ApiQueryAllLinks',
                'allimages' => 'ApiQueryAllImages',
                'alllinks' => 'ApiQueryAllLinks',
@@ -247,6 +249,16 @@ class ApiQuery extends ApiBase {
        public function execute() {
                $this->mParams = $this->extractRequestParams();
 
+               if ( $this->mParams['continue'] === null && !$this->mParams['rawcontinue'] ) {
+                       $this->logFeatureUsage( 'action=query&!rawcontinue&!continue' );
+                       $this->setWarning(
+                               'Formatting of continuation data will be changing soon. ' .
+                               'To continue using the current formatting, use the \'rawcontinue\' parameter. ' .
+                               'To begin using the new format, pass an empty string for \'continue\' ' .
+                               'in the initial query.'
+                       );
+               }
+
                // Instantiate requested modules
                $allModules = array();
                $this->instantiateModules( $allModules, 'prop' );
@@ -540,9 +552,11 @@ class ApiQuery extends ApiBase {
 
        /**
         * Override the parent to generate help messages for all available query modules.
+        * @deprecated since 1.25
         * @return string
         */
        public function makeHelpMsg() {
+               wfDeprecated( __METHOD__, '1.25' );
 
                // Use parent to make default message for the query module
                $msg = parent::makeHelpMsg();
@@ -562,6 +576,7 @@ class ApiQuery extends ApiBase {
 
        /**
         * For all modules of a given group, generate help messages and join them together
+        * @deprecated since 1.25
         * @param string $group Module group
         * @return string
         */
@@ -594,44 +609,13 @@ class ApiQuery extends ApiBase {
                return true;
        }
 
-       public function getParamDescription() {
-               return $this->getPageSet()->getFinalParamDescription() + array(
-                       'prop' => 'Which properties to get for the titles/revisions/pageids. ' .
-                               'Module help is available below',
-                       'list' => 'Which lists to get. Module help is available below',
-                       'meta' => 'Which metadata to get about the site. Module help is available below',
-                       'indexpageids' => 'Include an additional pageids section listing all returned page IDs',
-                       'export' => 'Export the current revisions of all given or generated pages',
-                       'exportnowrap' => 'Return the export XML without wrapping it in an ' .
-                               'XML result (same format as Special:Export). Can only be used with export',
-                       'iwurl' => 'Whether to get the full URL if the title is an interwiki link',
-                       'continue' => array(
-                               'When present, formats query-continue as key-value pairs that ' .
-                                       'should simply be merged into the original request.',
-                               'This parameter must be set to an empty string in the initial query.',
-                               'This parameter is recommended for all new development, and ' .
-                                       'will be made default in the next API version.'
-                       ),
-                       'rawcontinue' => 'Currently ignored. In the future, \'continue=\' will become the ' .
-                               'default and this will be needed to receive the raw query-continue data.',
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       'Query API module allows applications to get needed pieces of data ' .
-                               '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.'
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=revisions&meta=siteinfo&' .
-                               'titles=Main%20Page&rvprop=user|comment&continue=',
-                       'api.php?action=query&generator=allpages&gapprefix=API/&prop=revisions&continue=',
+                       'action=query&prop=revisions&meta=siteinfo&' .
+                               'titles=Main%20Page&rvprop=user|comment&continue='
+                               => 'apihelp-query-example-revisions',
+                       'action=query&generator=allpages&gapprefix=API/&prop=revisions&continue='
+                               => 'apihelp-query-example-allpages',
                );
        }
 
index 79fab72..672c234 100644 (file)
@@ -156,7 +156,9 @@ class ApiQueryAllCategories extends ApiQueryGeneratorBase {
        public function getAllowedParams() {
                return array(
                        'from' => null,
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'to' => null,
                        'prefix' => null,
                        'dir' => array(
@@ -189,32 +191,12 @@ class ApiQueryAllCategories extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'from' => 'The category to start enumerating from',
-                       'continue' => 'When more results are available, use this to continue',
-                       'to' => 'The category to stop enumerating at',
-                       'prefix' => 'Search for all category titles that begin with this value',
-                       'dir' => 'Direction to sort in',
-                       'min' => 'Minimum number of category members',
-                       'max' => 'Maximum number of category members',
-                       'limit' => 'How many categories to return',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' size    - Adds number of pages in the category',
-                               ' hidden  - Tags categories that are hidden with __HIDDENCAT__',
-                       ),
-               );
-       }
-
-       public function getDescription() {
-               return 'Enumerate all categories.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=allcategories&acprop=size',
-                       'api.php?action=query&generator=allcategories&gacprefix=List&prop=info',
+                       'action=query&list=allcategories&acprop=size'
+                               => 'apihelp-query+allcategories-example-size',
+                       'action=query&generator=allcategories&gacprefix=List&prop=info'
+                               => 'apihelp-query+allcategories-example-generator',
                );
        }
 
diff --git a/includes/api/ApiQueryAllDeletedRevisions.php b/includes/api/ApiQueryAllDeletedRevisions.php
new file mode 100644 (file)
index 0000000..0292e9a
--- /dev/null
@@ -0,0 +1,384 @@
+<?php
+/**
+ * Created on Oct 3, 2014
+ *
+ * Copyright © 2014 Brad Jorsch "bjorsch@wikimedia.org"
+ *
+ * Heavily based on ApiQueryDeletedrevs,
+ * Copyright © 2007 Roan Kattouw "<Firstname>.<Lastname>@gmail.com"
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Query module to enumerate all deleted revisions.
+ *
+ * @ingroup API
+ */
+class ApiQueryAllDeletedRevisions extends ApiQueryRevisionsBase {
+
+       public function __construct( ApiQuery $query, $moduleName ) {
+               parent::__construct( $query, $moduleName, 'adr' );
+       }
+
+       /**
+        * @param ApiPageSet $resultPageSet
+        * @return void
+        */
+       protected function run( ApiPageSet $resultPageSet = null ) {
+               $user = $this->getUser();
+               // Before doing anything at all, let's check permissions
+               if ( !$user->isAllowed( 'deletedhistory' ) ) {
+                       $this->dieUsage(
+                               'You don\'t have permission to view deleted revision information',
+                               'permissiondenied'
+                       );
+               }
+
+               $db = $this->getDB();
+               $params = $this->extractRequestParams( false );
+
+               $result = $this->getResult();
+               $pageSet = $this->getPageSet();
+               $titles = $pageSet->getTitles();
+
+               // This module operates in two modes:
+               // 'user': List deleted revs by a certain user
+               // 'all': List all deleted revs in NS
+               $mode = 'all';
+               if ( !is_null( $params['user'] ) ) {
+                       $mode = 'user';
+               }
+
+               if ( $mode == 'user' ) {
+                       foreach ( array( 'from', 'to', 'prefix', 'excludeuser' ) as $param ) {
+                               if ( !is_null( $params[$param] ) ) {
+                                       $p = $this->getModulePrefix();
+                                       $this->dieUsage( "The '{$p}{$param}' parameter cannot be used with '{$p}user'",
+                                               'badparams' );
+                               }
+                       }
+               } else {
+                       foreach ( array( 'start', 'end' ) as $param ) {
+                               if ( !is_null( $params[$param] ) ) {
+                                       $p = $this->getModulePrefix();
+                                       $this->dieUsage( "The '{$p}{$param}' parameter may only be used with '{$p}user'",
+                                               'badparams' );
+                               }
+                       }
+               }
+
+               $this->addTables( 'archive' );
+               if ( $resultPageSet === null ) {
+                       $this->parseParameters( $params );
+                       $this->addFields( Revision::selectArchiveFields() );
+                       $this->addFields( array( 'ar_title', 'ar_namespace' ) );
+               } else {
+                       $this->limit = $this->getParameter( 'limit' ) ?: 10;
+                       $this->addFields( array( 'ar_title', 'ar_namespace', 'ar_timestamp', 'ar_rev_id', 'ar_id' ) );
+               }
+
+               if ( $this->fld_tags ) {
+                       $this->addTables( 'tag_summary' );
+                       $this->addJoinConds(
+                               array( 'tag_summary' => array( 'LEFT JOIN', array( 'ar_rev_id=ts_rev_id' ) ) )
+                       );
+                       $this->addFields( 'ts_tags' );
+               }
+
+               if ( !is_null( $params['tag'] ) ) {
+                       $this->addTables( 'change_tag' );
+                       $this->addJoinConds(
+                               array( 'change_tag' => array( 'INNER JOIN', array( 'ar_rev_id=ct_rev_id' ) ) )
+                       );
+                       $this->addWhereFld( 'ct_tag', $params['tag'] );
+               }
+
+               if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+                       // Modern MediaWiki has the content for deleted revs in the 'text'
+                       // table using fields old_text and old_flags. But revisions deleted
+                       // pre-1.5 store the content in the 'archive' table directly using
+                       // fields ar_text and ar_flags, and no corresponding 'text' row. So
+                       // we have to LEFT JOIN and fetch all four fields.
+                       $this->addTables( 'text' );
+                       $this->addJoinConds(
+                               array( 'text' => array( 'LEFT JOIN', array( 'ar_text_id=old_id' ) ) )
+                       );
+                       $this->addFields( array( 'ar_text', 'ar_flags', 'old_text', 'old_flags' ) );
+
+                       // This also means stricter restrictions
+                       if ( !$user->isAllowedAny( 'undelete', 'deletedtext' ) ) {
+                               $this->dieUsage(
+                                       'You don\'t have permission to view deleted revision content',
+                                       'permissiondenied'
+                               );
+                       }
+               }
+
+               $dir = $params['dir'];
+               $miser_ns = null;
+
+               if ( $mode == 'all' ) {
+                       if ( $params['namespace'] !== null ) {
+                               $this->addWhereFld( 'ar_namespace', $params['namespace'] );
+                       }
+
+                       $from = $params['from'] === null
+                               ? null
+                               : $this->titlePartToKey( $params['from'], $params['namespace'] );
+                       $to = $params['to'] === null
+                               ? null
+                               : $this->titlePartToKey( $params['to'], $params['namespace'] );
+                       $this->addWhereRange( 'ar_title', $dir, $from, $to );
+
+                       if ( isset( $params['prefix'] ) ) {
+                               $this->addWhere( 'ar_title' . $db->buildLike(
+                                       $this->titlePartToKey( $params['prefix'], $params['namespace'] ),
+                                       $db->anyString() ) );
+                       }
+               } else {
+                       if ( $this->getConfig()->get( 'MiserMode' ) ) {
+                               $miser_ns = $params['namespace'];
+                       } else {
+                               $this->addWhereFld( 'ar_namespace', $params['namespace'] );
+                       }
+                       $this->addTimestampWhereRange( 'ar_timestamp', $dir, $params['start'], $params['end'] );
+               }
+
+               if ( !is_null( $params['user'] ) ) {
+                       $this->addWhereFld( 'ar_user_text', $params['user'] );
+               } elseif ( !is_null( $params['excludeuser'] ) ) {
+                       $this->addWhere( 'ar_user_text != ' .
+                               $db->addQuotes( $params['excludeuser'] ) );
+               }
+
+               if ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ) {
+                       // Paranoia: avoid brute force searches (bug 17342)
+                       // (shouldn't be able to get here without 'deletedhistory', but
+                       // check it again just in case)
+                       if ( !$user->isAllowed( 'deletedhistory' ) ) {
+                               $bitmask = Revision::DELETED_USER;
+                       } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
+                               $bitmask = Revision::DELETED_USER | Revision::DELETED_RESTRICTED;
+                       } else {
+                               $bitmask = 0;
+                       }
+                       if ( $bitmask ) {
+                               $this->addWhere( $db->bitAnd( 'ar_deleted', $bitmask ) . " != $bitmask" );
+                       }
+               }
+
+               if ( !is_null( $params['continue'] ) ) {
+                       $cont = explode( '|', $params['continue'] );
+                       $op = ( $dir == 'newer' ? '>' : '<' );
+                       if ( $mode == 'all' ) {
+                               $this->dieContinueUsageIf( count( $cont ) != 4 );
+                               $ns = intval( $cont[0] );
+                               $this->dieContinueUsageIf( strval( $ns ) !== $cont[0] );
+                               $title = $db->addQuotes( $cont[1] );
+                               $ts = $db->addQuotes( $db->timestamp( $cont[2] ) );
+                               $ar_id = (int)$cont[3];
+                               $this->dieContinueUsageIf( strval( $ar_id ) !== $cont[3] );
+                               $this->addWhere( "ar_namespace $op $ns OR " .
+                                       "(ar_namespace = $ns AND " .
+                                       "(ar_title $op $title OR " .
+                                       "(ar_title = $title AND " .
+                                       "(ar_timestamp $op $ts OR " .
+                                       "(ar_timestamp = $ts AND " .
+                                       "ar_id $op= $ar_id)))))" );
+                       } else {
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $ts = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                               $ar_id = (int)$cont[1];
+                               $this->dieContinueUsageIf( strval( $ar_id ) !== $cont[1] );
+                               $this->addWhere( "ar_timestamp $op $ts OR " .
+                                       "(ar_timestamp = $ts AND " .
+                                       "ar_id $op= $ar_id)" );
+                       }
+               }
+
+               $this->addOption( 'LIMIT', $this->limit + 1 );
+
+               $sort = ( $dir == 'newer' ? '' : ' DESC' );
+               $orderby = array();
+               if ( $mode == 'all' ) {
+                       // Targeting index name_title_timestamp
+                       if ( $params['namespace'] === null || count( array_unique( $params['namespace'] ) ) > 1 ) {
+                               $orderby[] = "ar_namespace $sort";
+                       }
+                       $orderby[] = "ar_title $sort";
+                       $orderby[] = "ar_timestamp $sort";
+                       $orderby[] = "ar_id $sort";
+               } else {
+                       // Targeting index usertext_timestamp
+                       // 'user' is always constant.
+                       $orderby[] = "ar_timestamp $sort";
+                       $orderby[] = "ar_id $sort";
+               }
+               $this->addOption( 'ORDER BY', $orderby );
+
+               $res = $this->select( __METHOD__ );
+               $pageMap = array(); // Maps ns&title to array index
+               $count = 0;
+               $nextIndex = 0;
+               $generated = array();
+               foreach ( $res as $row ) {
+                       if ( ++$count > $this->limit ) {
+                               // We've had enough
+                               if ( $mode == 'all' ) {
+                                       $this->setContinueEnumParameter( 'continue',
+                                               "$row->ar_namespace|$row->ar_title|$row->ar_timestamp|$row->ar_id"
+                                       );
+                               } else {
+                                       $this->setContinueEnumParameter( 'continue', "$row->ar_timestamp|$row->ar_id" );
+                               }
+                               break;
+                       }
+
+                       // Miser mode namespace check
+                       if ( $miser_ns !== null && !in_array( $row->ar_namespace, $miser_ns ) ) {
+                               continue;
+                       }
+
+                       if ( $resultPageSet !== null ) {
+                               if ( $params['generatetitles'] ) {
+                                       $key = "{$row->ar_namespace}:{$row->ar_title}";
+                                       if ( !isset( $generated[$key] ) ) {
+                                               $generated[$key] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
+                                       }
+                               } else {
+                                       $generated[] = $row->ar_rev_id;
+                               }
+                       } else {
+                               $revision = Revision::newFromArchiveRow( $row );
+                               $rev = $this->extractRevisionInfo( $revision, $row );
+
+                               if ( !isset( $pageMap[$row->ar_namespace][$row->ar_title] ) ) {
+                                       $index = $nextIndex++;
+                                       $pageMap[$row->ar_namespace][$row->ar_title] = $index;
+                                       $title = $revision->getTitle();
+                                       $a = array(
+                                               'pageid' => $title->getArticleID(),
+                                               'revisions' => array( $rev ),
+                                       );
+                                       $result->setIndexedTagName( $a['revisions'], 'rev' );
+                                       ApiQueryBase::addTitleInfo( $a, $title );
+                                       $fit = $result->addValue( array( 'query', $this->getModuleName() ), $index, $a );
+                               } else {
+                                       $index = $pageMap[$row->ar_namespace][$row->ar_title];
+                                       $fit = $result->addValue(
+                                               array( 'query', $this->getModuleName(), $index, 'revisions' ),
+                                               null, $rev );
+                               }
+                               if ( !$fit ) {
+                                       if ( $mode == 'all' ) {
+                                               $this->setContinueEnumParameter( 'continue',
+                                                       "$row->ar_namespace|$row->ar_title|$row->ar_timestamp|$row->ar_id"
+                                               );
+                                       } else {
+                                               $this->setContinueEnumParameter( 'continue', "$row->ar_timestamp|$row->ar_id" );
+                                       }
+                                       break;
+                               }
+                       }
+               }
+
+               if ( $resultPageSet !== null ) {
+                       if ( $params['generatetitles'] ) {
+                               $resultPageSet->populateFromTitles( $generated );
+                       } else {
+                               $resultPageSet->populateFromRevisionIDs( $generated );
+                       }
+               } else {
+                       $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'page' );
+               }
+       }
+
+       public function getAllowedParams() {
+               $ret = parent::getAllowedParams() + array(
+                       'user' => array(
+                               ApiBase::PARAM_TYPE => 'user'
+                       ),
+                       'namespace' => array(
+                               ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_TYPE => 'namespace',
+                               ApiBase::PARAM_DFLT => null,
+                       ),
+                       'start' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'useronly' ) ),
+                       ),
+                       'end' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'useronly' ) ),
+                       ),
+                       'dir' => array(
+                               ApiBase::PARAM_TYPE => array(
+                                       'newer',
+                                       'older'
+                               ),
+                               ApiBase::PARAM_DFLT => 'older',
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
+                       ),
+                       'from' => array(
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'nonuseronly' ) ),
+                       ),
+                       'to' => array(
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'nonuseronly' ) ),
+                       ),
+                       'prefix' => array(
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'nonuseronly' ) ),
+                       ),
+                       'excludeuser' => array(
+                               ApiBase::PARAM_TYPE => 'user',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'nonuseronly' ) ),
+                       ),
+                       'tag' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
+                       'generatetitles' => array(
+                               ApiBase::PARAM_DFLT => false
+                       ),
+               );
+
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
+                       $ret['user'][ApiBase::PARAM_HELP_MSG_APPEND] = array(
+                               'apihelp-query+alldeletedrevisions-param-miser-user-namespace',
+                       );
+                       $ret['namespace'][ApiBase::PARAM_HELP_MSG_APPEND] = array(
+                               'apihelp-query+alldeletedrevisions-param-miser-user-namespace',
+                       );
+               }
+
+               return $ret;
+       }
+
+       protected function getExamplesMessages() {
+               return array(
+                       'action=query&list=alldeletedrevisions&adruser=Example&adrlimit=50'
+                               => 'apihelp-query+alldeletedrevisions-example-user',
+                       'action=query&list=alldeletedrevisions&adrdir=newer&adrlimit=50'
+                               => 'apihelp-query+alldeletedrevisions-example-ns-main',
+               );
+       }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:Alldeletedrevisions';
+       }
+}
index 9dc5f69..725b782 100644 (file)
@@ -300,7 +300,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               return array(
+               $ret = array(
                        'sort' => array(
                                ApiBase::PARAM_DFLT => 'name',
                                ApiBase::PARAM_TYPE => array(
@@ -321,7 +321,9 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                        ),
                        'from' => null,
                        'to' => null,
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'start' => array(
                                ApiBase::PARAM_TYPE => 'timestamp'
                        ),
@@ -353,7 +355,9 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                                        'nobots'
                                )
                        ),
-                       'mime' => null,
+                       'mime' => array(
+                               ApiBase::PARAM_DFLT => null,
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -362,57 +366,26 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
                );
-       }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
+                       $ret['mime'][ApiBase::PARAM_HELP_MSG] = 'api-help-param-disabled-in-miser-mode';
+               }
 
-               return array(
-                       'sort' => 'Property to sort by',
-                       'dir' => 'The direction in which to list',
-                       'from' => "The image title to start enumerating from. Can only be used with {$p}sort=name",
-                       'to' => "The image title to stop enumerating at. Can only be used with {$p}sort=name",
-                       'continue' => 'When more results are available, use this to continue',
-                       'start' => "The timestamp to start enumerating from. Can only be used with {$p}sort=timestamp",
-                       'end' => "The timestamp to end enumerating. Can only be used with {$p}sort=timestamp",
-                       'prop' => ApiQueryImageInfo::getPropertyDescriptions( $this->propertyFilter ),
-                       'prefix' => "Search for all image titles that begin with this " .
-                               "value. Can only be used with {$p}sort=name",
-                       'minsize' => 'Limit to images with at least this many bytes',
-                       'maxsize' => 'Limit to images with at most this many bytes',
-                       'sha1' => "SHA1 hash of image. Overrides {$p}sha1base36",
-                       'sha1base36' => 'SHA1 hash of image in base 36 (used in MediaWiki)',
-                       'user' => "Only return files uploaded by this user. Can only be used " .
-                               "with {$p}sort=timestamp. Cannot be used together with {$p}filterbots",
-                       'filterbots' => "How to filter files uploaded by bots. Can only be " .
-                               "used with {$p}sort=timestamp. Cannot be used together with {$p}user",
-                       'mime' => 'What MIME type to search for. e.g. image/jpeg. Disabled in Miser Mode',
-                       'limit' => 'How many images in total to return',
-               );
+               return $ret;
        }
 
        private $propertyFilter = array( 'archivename', 'thumbmime', 'uploadwarning' );
 
-       public function getDescription() {
-               return 'Enumerate all images sequentially.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=allimages&aifrom=B' => array(
-                               'Simple Use',
-                               'Show a list of files starting at the letter "B"',
-                       ),
-                       'api.php?action=query&list=allimages&aiprop=user|timestamp|url&' .
-                               'aisort=timestamp&aidir=older' => array(
-                               'Simple Use',
-                               'Show a list of recently uploaded files similar to Special:NewFiles',
-                       ),
-                       'api.php?action=query&generator=allimages&gailimit=4&' .
-                               'gaifrom=T&prop=imageinfo' => array(
-                               'Using as Generator',
-                               'Show info about 4 files starting at the letter "T"',
-                       ),
+                       'action=query&list=allimages&aifrom=B'
+                               => 'apihelp-query+allimages-example-B',
+                       'action=query&list=allimages&aiprop=user|timestamp|url&' .
+                               'aisort=timestamp&aidir=older'
+                               => 'apihelp-query+allimages-example-recent',
+                       'action=query&generator=allimages&gailimit=4&' .
+                               'gaifrom=T&prop=imageinfo'
+                               => 'apihelp-query+allimages-example-generator',
                );
        }
 
index 903dee4..a70d019 100644 (file)
  */
 class ApiQueryAllLinks extends ApiQueryGeneratorBase {
 
-       private $table, $tablePrefix, $indexTag,
-               $description, $descriptionWhat, $descriptionTargets, $descriptionLinking;
+       private $table, $tablePrefix, $indexTag;
        private $fieldTitle = 'title';
        private $dfltNamespace = NS_MAIN;
        private $hasNamespace = true;
        private $useIndex = null;
-       private $props = array(), $propHelp = array();
+       private $props = array();
 
        public function __construct( ApiQuery $query, $moduleName ) {
                switch ( $moduleName ) {
@@ -47,10 +46,6 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                                $this->tablePrefix = 'pl_';
                                $this->useIndex = 'pl_namespace';
                                $this->indexTag = 'l';
-                               $this->description = 'Enumerate all links that point to a given namespace';
-                               $this->descriptionWhat = 'link';
-                               $this->descriptionTargets = 'linked titles';
-                               $this->descriptionLinking = 'linking';
                                break;
                        case 'alltransclusions':
                                $prefix = 'at';
@@ -59,11 +54,6 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                                $this->dfltNamespace = NS_TEMPLATE;
                                $this->useIndex = 'tl_namespace';
                                $this->indexTag = 't';
-                               $this->description =
-                                       'List all transclusions (pages embedded using {{x}}), including non-existing';
-                               $this->descriptionWhat = 'transclusion';
-                               $this->descriptionTargets = 'transcluded titles';
-                               $this->descriptionLinking = 'transcluding';
                                break;
                        case 'allfileusages':
                                $prefix = 'af';
@@ -73,28 +63,16 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                                $this->dfltNamespace = NS_FILE;
                                $this->hasNamespace = false;
                                $this->indexTag = 'f';
-                               $this->description = 'List all file usages, including non-existing';
-                               $this->descriptionWhat = 'file';
-                               $this->descriptionTargets = 'file titles';
-                               $this->descriptionLinking = 'using';
                                break;
                        case 'allredirects':
                                $prefix = 'ar';
                                $this->table = 'redirect';
                                $this->tablePrefix = 'rd_';
                                $this->indexTag = 'r';
-                               $this->description = 'List all redirects to a namespace';
-                               $this->descriptionWhat = 'redirect';
-                               $this->descriptionTargets = 'target pages';
-                               $this->descriptionLinking = 'redirecting';
                                $this->props = array(
                                        'fragment' => 'rd_fragment',
                                        'interwiki' => 'rd_interwiki',
                                );
-                               $this->propHelp = array(
-                                       ' fragment - Adds the fragment from the redirect, if any',
-                                       ' interwiki - Adds the interwiki prefix from the redirect, if any',
-                               );
                                break;
                        default:
                                ApiBase::dieDebug( __METHOD__, 'Unknown module name' );
@@ -262,7 +240,9 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
 
        public function getAllowedParams() {
                $allowedParams = array(
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'from' => null,
                        'to' => null,
                        'prefix' => null,
@@ -300,59 +280,20 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                return $allowedParams;
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-               $what = $this->descriptionWhat;
-               $targets = $this->descriptionTargets;
-               $linking = $this->descriptionLinking;
-               $paramDescription = array(
-                       'from' => "The title of the $what to start enumerating from",
-                       'to' => "The title of the $what to stop enumerating at",
-                       'prefix' => "Search for all $targets that begin with this value",
-                       'unique' => array(
-                               "Only show distinct $targets. Cannot be used with {$p}prop=" .
-                                       join( '|', array_keys( array( 'ids' => 1 ) + $this->props ) ) . '.',
-                               'When used as a generator, yields target pages instead of source pages.',
-                       ),
-                       'prop' => array(
-                               'What pieces of information to include',
-                               " ids      - Adds the pageid of the $linking page (Cannot be used with {$p}unique)",
-                               " title    - Adds the title of the $what",
-                       ),
-                       'namespace' => 'The namespace to enumerate',
-                       'limit' => 'How many total items to return',
-                       'continue' => 'When more results are available, use this to continue',
-                       'dir' => 'The direction in which to list',
-               );
-               foreach ( $this->propHelp as $help ) {
-                       $paramDescription['prop'][] = "$help (Cannot be used with {$p}unique)";
-               }
-               if ( !$this->hasNamespace ) {
-                       unset( $paramDescription['namespace'] );
-               }
-
-               return $paramDescription;
-       }
-
-       public function getDescription() {
-               return $this->description;
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                $p = $this->getModulePrefix();
                $name = $this->getModuleName();
-               $what = $this->descriptionWhat;
-               $targets = $this->descriptionTargets;
+               $path = $this->getModulePath();
 
                return array(
-                       "api.php?action=query&list={$name}&{$p}from=B&{$p}prop=ids|title"
-                               => "List $targets with page ids they are from, including missing ones. Start at B",
-                       "api.php?action=query&list={$name}&{$p}unique=&{$p}from=B"
-                               => "List unique $targets",
-                       "api.php?action=query&generator={$name}&g{$p}unique=&g{$p}from=B"
-                               => "Gets all $targets, marking the missing ones",
-                       "api.php?action=query&generator={$name}&g{$p}from=B"
-                               => "Gets pages containing the {$what}s",
+                       "action=query&list={$name}&{$p}from=B&{$p}prop=ids|title"
+                               => "apihelp-$path-example-B",
+                       "action=query&list={$name}&{$p}unique=&{$p}from=B"
+                               => "apihelp-$path-example-unique",
+                       "action=query&generator={$name}&g{$p}unique=&g{$p}from=B"
+                               => "apihelp-$path-example-unique-generator",
+                       "action=query&generator={$name}&g{$p}from=B"
+                               => "apihelp-$path-example-generator",
                );
        }
 
index a75a16f..98552ba 100644 (file)
@@ -235,35 +235,12 @@ class ApiQueryAllMessages extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'messages' => 'Which messages to output. "*" (default) means all messages',
-                       'prop' => 'Which properties to get',
-                       'enableparser' => array( 'Set to enable parser, will preprocess the wikitext of message',
-                               'Will substitute magic words, handle templates etc.' ),
-                       'nocontent' => 'If set, do not include the content of the messages in the output.',
-                       'includelocal' => array( "Also include local messages, i.e. messages that don't exist in the software but do exist as a MediaWiki: page.",
-                               "This lists all MediaWiki: pages, so it will also list those that aren't 'really' messages such as Common.js",
-                       ),
-                       'title' => 'Page name to use as context when parsing message (for enableparser option)',
-                       'args' => 'Arguments to be substituted into message',
-                       'prefix' => 'Return messages with this prefix',
-                       'filter' => 'Return only messages with names that contain this string',
-                       'customised' => 'Return only messages in this customisation state',
-                       'lang' => 'Return messages in this language',
-                       'from' => 'Return messages starting at this message',
-                       'to' => 'Return messages ending at this message',
-               );
-       }
-
-       public function getDescription() {
-               return 'Return messages from this site.';
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=query&meta=allmessages&amprefix=ipb-',
-                       'api.php?action=query&meta=allmessages&ammessages=august|mainpage&amlang=de',
+                       'action=query&meta=allmessages&amprefix=ipb-'
+                               => 'apihelp-query+allmessages-example-ipb',
+                       'action=query&meta=allmessages&ammessages=august|mainpage&amlang=de'
+                               => 'apihelp-query+allmessages-example-de',
                );
        }
 
index b7bd65a..a85c9c9 100644 (file)
@@ -227,7 +227,9 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
        public function getAllowedParams() {
                return array(
                        'from' => null,
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'to' => null,
                        'prefix' => null,
                        'namespace' => array(
@@ -297,54 +299,15 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'from' => 'The page title to start enumerating from',
-                       'continue' => 'When more results are available, use this to continue',
-                       'to' => 'The page title to stop enumerating at',
-                       'prefix' => 'Search for all page titles that begin with this value',
-                       'namespace' => 'The namespace to enumerate',
-                       'filterredir' => 'Which pages to list',
-                       'dir' => 'The direction in which to list',
-                       'minsize' => 'Limit to pages with at least this many bytes',
-                       'maxsize' => 'Limit to pages with at most this many bytes',
-                       'prtype' => 'Limit to protected pages only',
-                       'prlevel' => "The protection level (must be used with {$p}prtype= parameter)",
-                       'prfiltercascade'
-                               => "Filter protections based on cascadingness (ignored when {$p}prtype isn't set)",
-                       'filterlanglinks' => array(
-                               'Filter based on whether a page has langlinks',
-                               'Note that this may not consider langlinks added by extensions.',
-                       ),
-                       'limit' => 'How many total pages to return.',
-                       'prexpiry' => array(
-                               'Which protection expiry to filter the page on',
-                               ' indefinite - Get only pages with indefinite protection expiry',
-                               ' definite - Get only pages with a definite (specific) protection expiry',
-                               ' all - Get pages with any protections expiry'
-                       ),
-               );
-       }
-
-       public function getDescription() {
-               return 'Enumerate all pages sequentially in a given namespace.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=allpages&apfrom=B' => array(
-                               'Simple Use',
-                               'Show a list of pages starting at the letter "B"',
-                       ),
-                       'api.php?action=query&generator=allpages&gaplimit=4&gapfrom=T&prop=info' => array(
-                               'Using as Generator',
-                               'Show info about 4 pages starting at the letter "T"',
-                       ),
-                       'api.php?action=query&generator=allpages&gaplimit=2&' .
+                       'action=query&list=allpages&apfrom=B'
+                               => 'apihelp-query+allpages-example-B',
+                       'action=query&generator=allpages&gaplimit=4&gapfrom=T&prop=info'
+                               => 'apihelp-query+allpages-example-generator',
+                       'action=query&generator=allpages&gaplimit=2&' .
                                'gapfilterredir=nonredirects&gapfrom=Re&prop=revisions&rvprop=content'
-                               => array( 'Show content of first 2 non-redirect pages beginning at "Re"' )
+                               => 'apihelp-query+allpages-example-generator-revisions',
                );
        }
 
index e1cc75a..1c3f9fb 100644 (file)
@@ -352,43 +352,20 @@ class ApiQueryAllUsers extends ApiQueryBase {
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
                        'witheditsonly' => false,
-                       'activeusers' => false,
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'from' => 'The user name to start enumerating from',
-                       'to' => 'The user name to stop enumerating at',
-                       'prefix' => 'Search for all users that begin with this value',
-                       'dir' => 'Direction to sort in',
-                       'group' => 'Limit users to given group name(s)',
-                       'excludegroup' => 'Exclude users in given group name(s)',
-                       'rights' => 'Limit users to given right(s) (does not include rights ' .
-                               'granted by implicit or auto-promoted groups like *, user, or autoconfirmed)',
-                       'prop' => array(
-                               'What pieces of information to include.',
-                               ' blockinfo      - Adds the information about a current block on the user',
-                               ' groups         - Lists groups that the user is in. This uses ' .
-                                       'more server resources and may return fewer results than the limit',
-                               ' implicitgroups - Lists all the groups the user is automatically in',
-                               ' rights         - Lists rights that the user has',
-                               ' editcount      - Adds the edit count of the user',
-                               ' registration   - Adds the timestamp of when the user registered if available (may be blank)',
+                       'activeusers' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-query+allusers-param-activeusers',
+                                       $this->getConfig()->get( 'ActiveUserDays' )
+                               ),
                        ),
-                       'limit' => 'How many total user names to return',
-                       'witheditsonly' => 'Only list users who have made edits',
-                       'activeusers' => "Only list users active in the last {$this->getConfig()->get( 'ActiveUserDays' )} days(s)"
                );
        }
 
-       public function getDescription() {
-               return 'Enumerate all registered users.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=allusers&aufrom=Y',
+                       'action=query&list=allusers&aufrom=Y'
+                               => 'apihelp-query+allusers-example-Y',
                );
        }
 
index e344236..5e17a5c 100644 (file)
@@ -422,7 +422,15 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
 
                if ( is_null( $resultPageSet ) ) {
                        // Try to add the result data in one go and pray that it fits
-                       $fit = $result->addValue( 'query', $this->getModuleName(), array_values( $this->resultArr ) );
+                       $code = $this->bl_code;
+                       $data = array_map( function ( $arr ) use ( $result, $code ) {
+                               if ( isset( $arr['redirlinks'] ) ) {
+                                       $arr['redirlinks'] = array_values( $arr['redirlinks'] );
+                                       $result->setIndexedTagName( $arr['redirlinks'], $code );
+                               }
+                               return $arr;
+                       }, array_values( $this->resultArr ) );
+                       $fit = $result->addValue( 'query', $this->getModuleName(), $data );
                        if ( !$fit ) {
                                // It didn't fit. Add elements one by one until the
                                // result is full.
@@ -504,7 +512,9 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                        'pageid' => array(
                                ApiBase::PARAM_TYPE => 'integer',
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'namespace' => array(
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => 'namespace'
@@ -540,59 +550,25 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                return $retval;
        }
 
-       public function getParamDescription() {
-               $retval = array(
-                       'title' => "Title to search. Cannot be used together with {$this->bl_code}pageid",
-                       'pageid' => "Pageid to search. Cannot be used together with {$this->bl_code}title",
-                       'continue' => 'When more results are available, use this to continue',
-                       'namespace' => 'The namespace to enumerate',
-                       'dir' => 'The direction in which to list',
-               );
-               if ( $this->getModuleName() != 'embeddedin' ) {
-                       return array_merge( $retval, array(
-                               'redirect' => 'If linking page is a redirect, find all pages ' .
-                                       'that link to that redirect as well. Maximum limit is halved.',
-                               'filterredir' => 'How to filter for redirects. If set to ' .
-                                       "nonredirects when {$this->bl_code}redirect is enabled, " .
-                                       'this is only applied to the second level',
-                               'limit' => 'How many total pages to return. If ' .
-                                       "{$this->bl_code}redirect is enabled, limit applies to each " .
-                                       'level separately (which means you may get up to 2 * limit results).'
-                       ) );
-               }
-
-               return array_merge( $retval, array(
-                       'filterredir' => 'How to filter for redirects',
-                       'limit' => 'How many total pages to return'
-               ) );
-       }
-
-       public function getDescription() {
-               switch ( $this->getModuleName() ) {
-                       case 'backlinks':
-                               return 'Find all pages that link to the given page.';
-                       case 'embeddedin':
-                               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.' );
-               }
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                static $examples = array(
                        'backlinks' => array(
-                               'api.php?action=query&list=backlinks&bltitle=Main%20Page',
-                               'api.php?action=query&generator=backlinks&gbltitle=Main%20Page&prop=info'
+                               'action=query&list=backlinks&bltitle=Main%20Page'
+                                       => 'apihelp-query+backlinks-example-simple',
+                               'action=query&generator=backlinks&gbltitle=Main%20Page&prop=info'
+                                       => 'apihelp-query+backlinks-example-generator',
                        ),
                        'embeddedin' => array(
-                               'api.php?action=query&list=embeddedin&eititle=Template:Stub',
-                               'api.php?action=query&generator=embeddedin&geititle=Template:Stub&prop=info'
+                               'action=query&list=embeddedin&eititle=Template:Stub'
+                                       => 'apihelp-query+embeddedin-example-simple',
+                               'action=query&generator=embeddedin&geititle=Template:Stub&prop=info'
+                                       => 'apihelp-query+embeddedin-example-generator',
                        ),
                        'imageusage' => array(
-                               'api.php?action=query&list=imageusage&iutitle=File:Albert%20Einstein%20Head.jpg',
-                               'api.php?action=query&generator=imageusage&giutitle=File:Albert%20Einstein%20Head.jpg&prop=info'
+                               'action=query&list=imageusage&iutitle=File:Albert%20Einstein%20Head.jpg'
+                                       => 'apihelp-query+imageusage-example-simple',
+                               'action=query&generator=imageusage&giutitle=File:Albert%20Einstein%20Head.jpg&prop=info'
+                                       => 'apihelp-query+imageusage-example-generator',
                        )
                );
 
index 2458a26..b4752ae 100644 (file)
@@ -40,15 +40,13 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                        'code' => 'rd',
                        'prefix' => 'rd',
                        'linktable' => 'redirect',
-                       'what' => 'redirects to',
-                       'description' => 'Returns all redirects to the given pages.',
                        'props' => array(
-                               'fragment' => 'Fragment of each redirect, if any',
+                               'fragment',
                        ),
                        'showredirects' => false,
                        'show' => array(
-                               'fragment' => 'Only show redirects with a fragment',
-                               '!fragment' => 'Only show redirects without a fragment',
+                               'fragment',
+                               '!fragment',
                        ),
                ),
                'linkshere' => array(
@@ -56,8 +54,6 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                        'prefix' => 'pl',
                        'linktable' => 'pagelinks',
                        'from_namespace' => true,
-                       'what' => 'pages linking to',
-                       'description' => 'Find all pages that link to the given pages.',
                        'showredirects' => true,
                ),
                'transcludedin' => array(
@@ -65,8 +61,6 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                        'prefix' => 'tl',
                        'linktable' => 'templatelinks',
                        'from_namespace' => true,
-                       'what' => 'pages transcluding',
-                       'description' => 'Find all pages that transclude the given pages.',
                        'showredirects' => true,
                ),
                'fileusage' => array(
@@ -75,9 +69,7 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                        'linktable' => 'imagelinks',
                        'from_namespace' => true,
                        'to_namespace' => NS_FILE,
-                       'what' => 'pages using',
                        'exampletitle' => 'File:Example.jpg',
-                       'description' => 'Find all pages that use the given files.',
                        'showredirects' => true,
                ),
        );
@@ -348,6 +340,7 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => 'namespace',
                        ),
+                       'show' => null, // Will be filled/removed below
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -355,16 +348,24 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                );
 
+               if ( empty( $settings['from_namespace'] ) && $this->getConfig()->get( 'MiserMode' ) ) {
+                       $ret['namespace'][ApiBase::PARAM_HELP_MSG_APPEND] = array(
+                               'api-help-param-limited-in-miser-mode',
+                       );
+               }
+
                if ( !empty( $settings['showredirects'] ) ) {
                        $ret['prop'][ApiBase::PARAM_TYPE][] = 'redirect';
                        $ret['prop'][ApiBase::PARAM_DFLT] .= '|redirect';
                }
                if ( isset( $settings['props'] ) ) {
                        $ret['prop'][ApiBase::PARAM_TYPE] = array_merge(
-                               $ret['prop'][ApiBase::PARAM_TYPE], array_keys( $settings['props'] )
+                               $ret['prop'][ApiBase::PARAM_TYPE], $settings['props']
                        );
                }
 
@@ -374,93 +375,32 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
                        $show[] = '!redirect';
                }
                if ( isset( $settings['show'] ) ) {
-                       $show = array_merge( $show, array_keys( $settings['show'] ) );
+                       $show = array_merge( $show, $settings['show'] );
                }
                if ( $show ) {
                        $ret['show'] = array(
                                ApiBase::PARAM_TYPE => $show,
                                ApiBase::PARAM_ISMULTI => true,
                        );
+               } else {
+                       unset( $ret['show'] );
                }
 
                return $ret;
        }
 
-       public function getParamDescription() {
-               $settings = self::$settings[$this->getModuleName()];
-               $p = $this->getModulePrefix();
-
-               $ret = array(
-                       'prop' => array(
-                               'Which properties to get:',
-                       ),
-                       'show' => array(
-                               'Show only items that meet this criteria.',
-                       ),
-                       'namespace' => 'Only include pages in these namespaces',
-                       'limit' => 'How many to return',
-                       'continue' => 'When more results are available, use this to continue',
-               );
-
-               if ( empty( $settings['from_namespace'] ) && $this->getConfig()->get( 'MiserMode' ) ) {
-                       $ret['namespace'] = array(
-                               $ret['namespace'],
-                               "NOTE: Due to \$wgMiserMode, using this may result in fewer than \"{$p}limit\" results",
-                               'returned before continuing; in extreme cases, zero results may be returned.',
-                       );
-                       if ( isset( $ret['type'] ) ) {
-                               $ret['namespace'][] = "Note that you can use {$p}type=subcat or {$p}type=file " .
-                                       "instead of {$p}namespace=14 or 6.";
-                       }
-               }
-
-               $props = array(
-                       'pageid' => 'Adds the ID of page',
-                       'title' => 'Adds the title and namespace ID of the page',
-               );
-               if ( !empty( $settings['showredirects'] ) ) {
-                       $props['redirect'] = 'Indicate if the page is a redirect';
-               }
-               if ( isset( $settings['props'] ) ) {
-                       $props += $settings['props'];
-               }
-               foreach ( $props as $k => $v ) {
-                       $ret['props'][] = sprintf( "%-9s - %s", $k, $v );
-               }
-
-               $show = array();
-               if ( !empty( $settings['showredirects'] ) ) {
-                       $show += array(
-                               'redirect' => 'Only show redirects',
-                               '!redirect' => 'Only show non-redirects',
-                       );
-               }
-               if ( isset( $settings['show'] ) ) {
-                       $show += $settings['show'];
-               }
-               foreach ( $show as $k => $v ) {
-                       $ret['show'][] = sprintf( "%-9s - %s", $k, $v );
-               }
-
-               return $ret;
-       }
-
-       public function getDescription() {
-               return self::$settings[$this->getModuleName()]['description'];
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                $settings = self::$settings[$this->getModuleName()];
                $name = $this->getModuleName();
-               $what = $settings['what'];
+               $path = $this->getModulePath();
                $title = isset( $settings['exampletitle'] ) ? $settings['exampletitle'] : 'Main Page';
                $etitle = rawurlencode( $title );
 
                return array(
-                       "api.php?action=query&prop={$name}&titles={$etitle}"
-                               => "Get a list of $what [[$title]]",
-                       "api.php?action=query&generator={$name}&titles={$etitle}&prop=info"
-                               => "Get information about $what [[$title]]",
+                       "action=query&prop={$name}&titles={$etitle}"
+                               => "apihelp-$path-example-simple",
+                       "action=query&generator={$name}&titles={$etitle}&prop=info"
+                               => "apihelp-$path-example-generator",
                );
        }
 
index 65e10ab..998cc91 100644 (file)
@@ -70,6 +70,10 @@ abstract class ApiQueryBase extends ApiBase {
        /**
         * Override this method to request extra fields from the pageSet
         * using $pageSet->requestField('fieldName')
+        *
+        * Note this only makes sense for 'prop' modules, as 'list' and 'meta'
+        * modules should not be using the pageset.
+        *
         * @param ApiPageSet $pageSet
         */
        public function requestExtraData( $pageSet ) {
@@ -90,6 +94,13 @@ abstract class ApiQueryBase extends ApiBase {
                return $this->mQueryModule;
        }
 
+       /**
+        * @see ApiBase::getParent()
+        */
+       public function getParent() {
+               return $this->getQuery();
+       }
+
        /**
         * Get the Query database connection (read-only)
         * @return DatabaseBase
@@ -711,6 +722,17 @@ abstract class ApiQueryGeneratorBase extends ApiQueryBase {
                }
        }
 
+       /**
+        * @see ApiBase::getHelpFlags()
+        *
+        * Corresponding messages: api-help-flag-generator
+        */
+       protected function getHelpFlags() {
+               $flags = parent::getHelpFlags();
+               $flags[] = 'generator';
+               return $flags;
+       }
+
        /**
         * Execute this module as a generator
         * @param ApiPageSet $resultPageSet All output should be appended to this object
index 33b25fd..5c44173 100644 (file)
@@ -268,6 +268,8 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getAllowedParams() {
+               $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
+
                return array(
                        'start' => array(
                                ApiBase::PARAM_TYPE => 'timestamp'
@@ -280,7 +282,8 @@ class ApiQueryBlocks extends ApiQueryBase {
                                        'newer',
                                        'older'
                                ),
-                               ApiBase::PARAM_DFLT => 'older'
+                               ApiBase::PARAM_DFLT => 'older',
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                        'ids' => array(
                                ApiBase::PARAM_TYPE => 'integer',
@@ -289,7 +292,13 @@ class ApiQueryBlocks extends ApiQueryBase {
                        'users' => array(
                                ApiBase::PARAM_ISMULTI => true
                        ),
-                       'ip' => null,
+                       'ip' => array(
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-query+blocks-param-ip',
+                                       $blockCIDRLimit['IPv4'],
+                                       $blockCIDRLimit['IPv6'],
+                               ),
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -326,56 +335,18 @@ class ApiQueryBlocks extends ApiQueryBase {
                                ),
                                ApiBase::PARAM_ISMULTI => true
                        ),
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'start' => 'The timestamp to start enumerating from',
-                       'end' => 'The timestamp to stop enumerating at',
-                       'dir' => $this->getDirectionDescription( $p ),
-                       'ids' => 'List of block IDs to list (optional)',
-                       'users' => 'List of users to search for (optional)',
-                       'ip' => array(
-                               'Get all blocks applying to this IP or CIDR range, including range blocks.',
-                               "Cannot be used together with bkusers. CIDR ranges broader than " .
-                                       "IPv4/{$blockCIDRLimit['IPv4']} or IPv6/{$blockCIDRLimit['IPv6']} " .
-                                       "are not accepted"
-                       ),
-                       'limit' => 'The maximum amount of blocks to list',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' id         - Adds the ID of the block',
-                               ' user       - Adds the username of the blocked user',
-                               ' userid     - Adds the user ID of the blocked user',
-                               ' by         - Adds the username of the blocking user',
-                               ' byid       - Adds the user ID of the blocking user',
-                               ' timestamp  - Adds the timestamp of when the block was given',
-                               ' expiry     - Adds the timestamp of when the block expires',
-                               ' reason     - Adds the reason given for the block',
-                               ' range      - Adds the range of IPs affected by the block',
-                               ' flags      - Tags the ban with (autoblock, anononly, etc)',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'show' => array(
-                               'Show only items that meet this criteria.',
-                               "For example, to see only indefinite blocks on IPs, set {$p}show=ip|!temp"
-                       ),
-                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
-       public function getDescription() {
-               return 'List all blocked users and IP addresses.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=blocks',
-                       'api.php?action=query&list=blocks&bkusers=Alice|Bob'
+                       'action=query&list=blocks'
+                               => 'apihelp-query+blocks-example-simple',
+                       'action=query&list=blocks&bkusers=Alice|Bob'
+                               => 'apihelp-query+blocks-example-users',
                );
        }
 
index 1926dd0..fcfddd6 100644 (file)
@@ -202,7 +202,9 @@ class ApiQueryCategories extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'categories' => array(
                                ApiBase::PARAM_ISMULTI => true,
                        ),
@@ -216,34 +218,12 @@ class ApiQueryCategories extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'prop' => array(
-                               'Which additional properties to get for each category',
-                               ' sortkey    - Adds the sortkey (hexadecimal string) and sortkey prefix',
-                               '              (human-readable part) for the category',
-                               ' timestamp  - Adds timestamp of when the category was added',
-                               ' hidden     - Tags categories that are hidden with __HIDDENCAT__',
-                       ),
-                       'limit' => 'How many categories to return',
-                       'show' => 'Which kind of categories to show',
-                       'continue' => 'When more results are available, use this to continue',
-                       'categories' => 'Only list these categories. Useful for checking ' .
-                               'whether a certain page is in a certain category',
-                       'dir' => 'The direction in which to list',
-               );
-       }
-
-       public function getDescription() {
-               return 'List all categories the page(s) belong to.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=categories&titles=Albert%20Einstein'
-                               => 'Get a list of categories [[Albert Einstein]] belongs to',
-                       'api.php?action=query&generator=categories&titles=Albert%20Einstein&prop=info'
-                               => 'Get information about all categories used in the [[Albert Einstein]]',
+                       'action=query&prop=categories&titles=Albert%20Einstein'
+                               => 'apihelp-query+categories-example-simple',
+                       'action=query&generator=categories&titles=Albert%20Einstein&prop=info'
+                               => 'apihelp-query+categories-example-generator',
                );
        }
 
index 3dd4c65..5c67ebf 100644 (file)
@@ -103,24 +103,19 @@ class ApiQueryCategoryInfo extends ApiQueryBase {
 
        public function getAllowedParams() {
                return array(
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'continue' => 'When more results are available, use this to continue',
+                       'action=query&prop=categoryinfo&titles=Category:Foo|Category:Bar'
+                               => 'apihelp-query+categoryinfo-example-simple',
                );
        }
 
-       public function getDescription() {
-               return 'Returns information about the given categories.';
-       }
-
-       public function getExamples() {
-               return 'api.php?action=query&prop=categoryinfo&titles=Category:Foo|Category:Bar';
-       }
-
        public function getHelpUrls() {
                return 'https://www.mediawiki.org/wiki/API:Properties#categoryinfo_.2F_ci';
        }
index a88a9cb..a6fc223 100644 (file)
@@ -47,6 +47,15 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                $this->run( $resultPageSet );
        }
 
+       /**
+        * @param string $hexSortkey
+        * @return bool
+        */
+       private function validateHexSortkey( $hexSortkey ) {
+               // A hex sortkey has an unbound number of 2 letter pairs
+               return preg_match( '/^(?:[a-fA-F0-9]{2})*$/', $hexSortkey );
+       }
+
        /**
         * @param ApiPageSet $resultPageSet
         * @return void
@@ -128,6 +137,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                $queryTypes = array_slice( $queryTypes, $contTypeIndex );
 
                                // Add a WHERE clause for sortkey and from
+                               $this->dieContinueUsageIf( !$this->validateHexSortkey( $cont[1] ) );
                                // pack( "H*", $foo ) is used to convert hex back to binary
                                $escSortkey = $this->getDB()->addQuotes( pack( 'H*', $cont[1] ) );
                                $from = intval( $cont[2] );
@@ -143,6 +153,9 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                if ( $params['startsortkeyprefix'] !== null ) {
                                        $startsortkey = Collation::singleton()->getSortkey( $params['startsortkeyprefix'] );
                                } elseif ( $params['starthexsortkey'] !== null ) {
+                                       if ( !$this->validateHexSortkey( $params['starthexsortkey'] ) ) {
+                                               $this->dieUsage( 'The starthexsortkey provided is not valid', 'bad_starthexsortkey' );
+                                       }
                                        $startsortkey = pack( 'H*', $params['starthexsortkey'] );
                                } else {
                                        $this->logFeatureUsage( 'list=categorymembers&cmstartsortkey' );
@@ -151,6 +164,9 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                if ( $params['endsortkeyprefix'] !== null ) {
                                        $endsortkey = Collation::singleton()->getSortkey( $params['endsortkeyprefix'] );
                                } elseif ( $params['endhexsortkey'] !== null ) {
+                                       if ( !$this->validateHexSortkey( $params['endhexsortkey'] ) ) {
+                                               $this->dieUsage( 'The endhexsortkey provided is not valid', 'bad_endhexsortkey' );
+                                       }
                                        $endsortkey = pack( 'H*', $params['endhexsortkey'] );
                                } else {
                                        $this->logFeatureUsage( 'list=categorymembers&cmendsortkey' );
@@ -275,7 +291,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               return array(
+               $ret = array(
                        'title' => array(
                                ApiBase::PARAM_TYPE => 'string',
                        ),
@@ -307,7 +323,9 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                        'file'
                                )
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_TYPE => 'limit',
                                ApiBase::PARAM_DFLT => 10,
@@ -351,67 +369,22 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_DEPRECATED => true,
                        ),
                );
-       }
-
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-               $desc = array(
-                       'title' => "Which category to enumerate (required). Must include " .
-                               "'Category:' prefix. Cannot be used together with {$p}pageid",
-                       'pageid' => "Page ID of the category to enumerate. Cannot be used together with {$p}title",
-                       'prop' => array(
-                               'What pieces of information to include',
-                               ' ids           - Adds the page ID',
-                               ' title         - Adds the title and namespace ID of the page',
-                               ' sortkey       - Adds the sortkey used for sorting in the category (hexadecimal string)',
-                               ' sortkeyprefix - Adds the sortkey prefix used for sorting in the ' .
-                                       'category (human-readable part of the sortkey)',
-                               ' type          - Adds the type that the page has been categorised as (page, subcat or file)',
-                               ' timestamp     - Adds the timestamp of when the page was included',
-                       ),
-                       'namespace' => 'Only include pages in these namespaces',
-                       'type' => "What type of category members to include. Ignored when {$p}sort=timestamp is set",
-                       'sort' => 'Property to sort by',
-                       'dir' => 'In which direction to sort',
-                       'start' => "Timestamp to start listing from. Can only be used with {$p}sort=timestamp",
-                       'end' => "Timestamp to end listing at. Can only be used with {$p}sort=timestamp",
-                       'starthexsortkey' => "Sortkey to start listing from, as returned by prop=sortkey. " .
-                               "Can only be used with {$p}sort=sortkey",
-                       'endhexsortkey' => "Sortkey to end listing from, as returned by prop=sortkey. " .
-                               "Can only be used with {$p}sort=sortkey",
-                       'startsortkeyprefix' => "Sortkey prefix to start listing from. Can " .
-                               "only be used with {$p}sort=sortkey. Overrides {$p}starthexsortkey",
-                       'endsortkeyprefix' => "Sortkey prefix to end listing BEFORE (not at, " .
-                               "if this value occurs it will not be included!). Can only be used with " .
-                               "{$p}sort=sortkey. Overrides {$p}endhexsortkey",
-                       'startsortkey' => "Use starthexsortkey instead",
-                       'endsortkey' => "Use endhexsortkey instead",
-                       'continue' => 'For large categories, give the value returned from previous query',
-                       'limit' => 'The maximum number of pages to return.',
-               );
 
                if ( $this->getConfig()->get( 'MiserMode' ) ) {
-                       $desc['namespace'] = array(
-                               $desc['namespace'],
-                               "NOTE: Due to \$wgMiserMode, using this may result in fewer than \"{$p}limit\" results",
-                               'returned before continuing; in extreme cases, zero results may be returned.',
-                               "Note that you can use {$p}type=subcat or {$p}type=file instead of {$p}namespace=14 or 6.",
+                       $ret['namespace'][ApiBase::PARAM_HELP_MSG_APPEND] = array(
+                               'api-help-param-limited-in-miser-mode',
                        );
                }
 
-               return $desc;
-       }
-
-       public function getDescription() {
-               return 'List all pages in a given category.';
+               return $ret;
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=categorymembers&cmtitle=Category:Physics'
-                               => 'Get first 10 pages in [[Category:Physics]]',
-                       'api.php?action=query&generator=categorymembers&gcmtitle=Category:Physics&prop=info'
-                               => 'Get page info about first 10 pages in [[Category:Physics]]',
+                       'action=query&list=categorymembers&cmtitle=Category:Physics'
+                               => 'apihelp-query+categorymembers-example-simple',
+                       'action=query&generator=categorymembers&gcmtitle=Category:Physics&prop=info'
+                               => 'apihelp-query+categorymembers-example-generator',
                );
        }
 
index 55ea470..7e76db2 100644 (file)
@@ -236,43 +236,16 @@ class ApiQueryContributors extends ApiQueryBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'group' => array(
-                               'Limit users to given group name(s)',
-                               'Does not include implicit or auto-promoted groups like *, user, or autoconfirmed'
-                       ),
-                       'excludegroup' => array(
-                               'Exclude users in given group name(s)',
-                               'Does not include implicit or auto-promoted groups like *, user, or autoconfirmed'
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'rights' => array(
-                               'Limit users to those having given right(s)',
-                               'Does not include rights granted by implicit or auto-promoted groups ' .
-                                       'like *, user, or autoconfirmed'
-                       ),
-                       'excluderights' => array(
-                               'Limit users to those not having given right(s)',
-                               'Does not include rights granted by implicit or auto-promoted groups ' .
-                                       'like *, user, or autoconfirmed'
-                       ),
-                       'limit' => 'How many contributors to return',
-                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
-       public function getDescription() {
-               return 'Get the list of logged-in contributors and ' .
-                       'the count of anonymous contributors to a page.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=contributors&titles=Main_Page',
+                       'action=query&prop=contributors&titles=Main_Page'
+                               => 'apihelp-query+contributors-example-simple',
                );
        }
 
diff --git a/includes/api/ApiQueryDeletedRevisions.php b/includes/api/ApiQueryDeletedRevisions.php
new file mode 100644 (file)
index 0000000..0271037
--- /dev/null
@@ -0,0 +1,304 @@
+<?php
+/**
+ * Created on Oct 3, 2014
+ *
+ * Copyright © 2014 Brad Jorsch "bjorsch@wikimedia.org"
+ *
+ * Heavily based on ApiQueryDeletedrevs,
+ * Copyright © 2007 Roan Kattouw "<Firstname>.<Lastname>@gmail.com"
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Query module to enumerate deleted revisions for pages.
+ *
+ * @ingroup API
+ */
+class ApiQueryDeletedRevisions extends ApiQueryRevisionsBase {
+
+       public function __construct( ApiQuery $query, $moduleName ) {
+               parent::__construct( $query, $moduleName, 'drv' );
+       }
+
+       protected function run( ApiPageSet $resultPageSet = null ) {
+               $user = $this->getUser();
+               // Before doing anything at all, let's check permissions
+               if ( !$user->isAllowed( 'deletedhistory' ) ) {
+                       $this->dieUsage(
+                               'You don\'t have permission to view deleted revision information',
+                               'permissiondenied'
+                       );
+               }
+
+               $result = $this->getResult();
+               $pageSet = $this->getPageSet();
+               $pageMap = $pageSet->getGoodAndMissingTitlesByNamespace();
+               $pageCount = count( $pageSet->getGoodAndMissingTitles() );
+               $revCount = $pageSet->getRevisionCount();
+               if ( $revCount === 0 && $pageCount === 0 ) {
+                       // Nothing to do
+                       return;
+               }
+               if ( $revCount !== 0 && count( $pageSet->getDeletedRevisionIDs() ) === 0 ) {
+                       // Nothing to do, revisions were supplied but none are deleted
+                       return;
+               }
+
+               $params = $this->extractRequestParams( false );
+
+               $db = $this->getDB();
+
+               if ( !is_null( $params['user'] ) && !is_null( $params['excludeuser'] ) ) {
+                       $this->dieUsage( 'user and excludeuser cannot be used together', 'badparams' );
+               }
+
+               $this->addTables( 'archive' );
+               if ( $resultPageSet === null ) {
+                       $this->parseParameters( $params );
+                       $this->addFields( Revision::selectArchiveFields() );
+                       $this->addFields( array( 'ar_title', 'ar_namespace' ) );
+               } else {
+                       $this->limit = $this->getParameter( 'limit' ) ?: 10;
+                       $this->addFields( array( 'ar_title', 'ar_namespace', 'ar_timestamp', 'ar_rev_id', 'ar_id' ) );
+               }
+
+               if ( $this->fld_tags ) {
+                       $this->addTables( 'tag_summary' );
+                       $this->addJoinConds(
+                               array( 'tag_summary' => array( 'LEFT JOIN', array( 'ar_rev_id=ts_rev_id' ) ) )
+                       );
+                       $this->addFields( 'ts_tags' );
+               }
+
+               if ( !is_null( $params['tag'] ) ) {
+                       $this->addTables( 'change_tag' );
+                       $this->addJoinConds(
+                               array( 'change_tag' => array( 'INNER JOIN', array( 'ar_rev_id=ct_rev_id' ) ) )
+                       );
+                       $this->addWhereFld( 'ct_tag', $params['tag'] );
+               }
+
+               if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+                       // Modern MediaWiki has the content for deleted revs in the 'text'
+                       // table using fields old_text and old_flags. But revisions deleted
+                       // pre-1.5 store the content in the 'archive' table directly using
+                       // fields ar_text and ar_flags, and no corresponding 'text' row. So
+                       // we have to LEFT JOIN and fetch all four fields.
+                       $this->addTables( 'text' );
+                       $this->addJoinConds(
+                               array( 'text' => array( 'LEFT JOIN', array( 'ar_text_id=old_id' ) ) )
+                       );
+                       $this->addFields( array( 'ar_text', 'ar_flags', 'old_text', 'old_flags' ) );
+
+                       // This also means stricter restrictions
+                       if ( !$user->isAllowedAny( 'undelete', 'deletedtext' ) ) {
+                               $this->dieUsage(
+                                       'You don\'t have permission to view deleted revision content',
+                                       'permissiondenied'
+                               );
+                       }
+               }
+
+               $dir = $params['dir'];
+
+               if ( $revCount !== 0 ) {
+                       $this->addWhere( array(
+                               'ar_rev_id' => array_keys( $pageSet->getDeletedRevisionIDs() )
+                       ) );
+               } else {
+                       // We need a custom WHERE clause that matches all titles.
+                       $lb = new LinkBatch( $pageSet->getGoodAndMissingTitles() );
+                       $where = $lb->constructSet( 'ar', $db );
+                       $this->addWhere( $where );
+               }
+
+               if ( !is_null( $params['user'] ) ) {
+                       $this->addWhereFld( 'ar_user_text', $params['user'] );
+               } elseif ( !is_null( $params['excludeuser'] ) ) {
+                       $this->addWhere( 'ar_user_text != ' .
+                               $db->addQuotes( $params['excludeuser'] ) );
+               }
+
+               if ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ) {
+                       // Paranoia: avoid brute force searches (bug 17342)
+                       // (shouldn't be able to get here without 'deletedhistory', but
+                       // check it again just in case)
+                       if ( !$user->isAllowed( 'deletedhistory' ) ) {
+                               $bitmask = Revision::DELETED_USER;
+                       } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
+                               $bitmask = Revision::DELETED_USER | Revision::DELETED_RESTRICTED;
+                       } else {
+                               $bitmask = 0;
+                       }
+                       if ( $bitmask ) {
+                               $this->addWhere( $db->bitAnd( 'ar_deleted', $bitmask ) . " != $bitmask" );
+                       }
+               }
+
+               if ( !is_null( $params['continue'] ) ) {
+                       $cont = explode( '|', $params['continue'] );
+                       $op = ( $dir == 'newer' ? '>' : '<' );
+                       if ( $revCount !== 0 ) {
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $rev = intval( $cont[0] );
+                               $this->dieContinueUsageIf( strval( $rev ) !== $cont[0] );
+                               $ar_id = (int)$cont[1];
+                               $this->dieContinueUsageIf( strval( $ar_id ) !== $cont[1] );
+                               $this->addWhere( "ar_rev_id $op $rev OR " .
+                                       "(ar_rev_id = $rev AND " .
+                                       "ar_id $op= $ar_id)" );
+                       } else {
+                               $this->dieContinueUsageIf( count( $cont ) != 4 );
+                               $ns = intval( $cont[0] );
+                               $this->dieContinueUsageIf( strval( $ns ) !== $cont[0] );
+                               $title = $db->addQuotes( $cont[1] );
+                               $ts = $db->addQuotes( $db->timestamp( $cont[2] ) );
+                               $ar_id = (int)$cont[3];
+                               $this->dieContinueUsageIf( strval( $ar_id ) !== $cont[3] );
+                               $this->addWhere( "ar_namespace $op $ns OR " .
+                                       "(ar_namespace = $ns AND " .
+                                       "(ar_title $op $title OR " .
+                                       "(ar_title = $title AND " .
+                                       "(ar_timestamp $op $ts OR " .
+                                       "(ar_timestamp = $ts AND " .
+                                       "ar_id $op= $ar_id)))))" );
+                       }
+               }
+
+               $this->addOption( 'LIMIT', $this->limit + 1 );
+
+               if ( $revCount !== 0 ) {
+                       // Sort by ar_rev_id when querying by ar_rev_id
+                       $this->addWhereRange( 'ar_rev_id', $dir, null, null );
+               } else {
+                       // Sort by ns and title in the same order as timestamp for efficiency
+                       // But only when not already unique in the query
+                       if ( count( $pageMap ) > 1 ) {
+                               $this->addWhereRange( 'ar_namespace', $dir, null, null );
+                       }
+                       $oneTitle = key( reset( $pageMap ) );
+                       foreach ( $pageMap as $pages ) {
+                               if ( count( $pages ) > 1 || key( $pages ) !== $oneTitle ) {
+                                       $this->addWhereRange( 'ar_title', $dir, null, null );
+                                       break;
+                               }
+                       }
+                       $this->addTimestampWhereRange( 'ar_timestamp', $dir, $params['start'], $params['end'] );
+               }
+               // Include in ORDER BY for uniqueness
+               $this->addWhereRange( 'ar_id', $dir, null, null );
+
+               $res = $this->select( __METHOD__ );
+               $count = 0;
+               $generated = array();
+               foreach ( $res as $row ) {
+                       if ( ++$count > $this->limit ) {
+                               // We've had enough
+                               $this->setContinueEnumParameter( 'continue',
+                                       $revCount
+                                               ? "$row->ar_rev_id|$row->ar_id"
+                                               : "$row->ar_namespace|$row->ar_title|$row->ar_timestamp|$row->ar_id"
+                               );
+                               break;
+                       }
+
+                       if ( $resultPageSet !== null ) {
+                               $generated[] = $row->ar_rev_id;
+                       } else {
+                               if ( !isset( $pageMap[$row->ar_namespace][$row->ar_title] ) ) {
+                                       // Was it converted?
+                                       $title = Title::makeTitle( $row->ar_namespace, $row->ar_title );
+                                       $converted = $pageSet->getConvertedTitles();
+                                       if ( $title && isset( $converted[$title->getPrefixedText()] ) ) {
+                                               $title = Title::newFromText( $converted[$title->getPrefixedText()] );
+                                               if ( $title && isset( $pageMap[$title->getNamespace()][$title->getDBkey()] ) ) {
+                                                       $pageMap[$row->ar_namespace][$row->ar_title] =
+                                                               $pageMap[$title->getNamespace()][$title->getDBkey()];
+                                               }
+                                       }
+                               }
+                               if ( !isset( $pageMap[$row->ar_namespace][$row->ar_title] ) ) {
+                                       ApiBase::dieDebug( "Found row in archive (ar_id={$row->ar_id}) that didn't " .
+                                               "get processed by ApiPageSet" );
+                               }
+
+                               $fit = $this->addPageSubItem(
+                                       $pageMap[$row->ar_namespace][$row->ar_title],
+                                       $this->extractRevisionInfo( Revision::newFromArchiveRow( $row ), $row ),
+                                       'rev'
+                               );
+                               if ( !$fit ) {
+                                       $this->setContinueEnumParameter( 'continue',
+                                               $revCount
+                                                       ? "$row->ar_rev_id|$row->ar_id"
+                                                       : "$row->ar_namespace|$row->ar_title|$row->ar_timestamp|$row->ar_id"
+                                       );
+                                       break;
+                               }
+                       }
+               }
+
+               if ( $resultPageSet !== null ) {
+                       $resultPageSet->populateFromRevisionIDs( $generated );
+               }
+       }
+
+       public function getAllowedParams() {
+               return parent::getAllowedParams() + array(
+                       'start' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                       ),
+                       'end' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                       ),
+                       'dir' => array(
+                               ApiBase::PARAM_TYPE => array(
+                                       'newer',
+                                       'older'
+                               ),
+                               ApiBase::PARAM_DFLT => 'older',
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
+                       ),
+                       'tag' => null,
+                       'user' => array(
+                               ApiBase::PARAM_TYPE => 'user'
+                       ),
+                       'excludeuser' => array(
+                               ApiBase::PARAM_TYPE => 'user'
+                       ),
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
+               );
+       }
+
+       protected function getExamplesMessages() {
+               return array(
+                       'action=query&prop=deletedrevisions&titles=Main%20Page|Talk:Main%20Page&' .
+                               'drvprop=user|comment|content'
+                               => 'apihelp-query+deletedrevisions-example-titles',
+                       'action=query&prop=deletedrevisions&revids=123456'
+                               => 'apihelp-query+deletedrevisions-example-revids',
+               );
+       }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:Properties#deletedrevisions_.2F_drv';
+       }
+}
index 9042696..f828255 100644 (file)
@@ -28,6 +28,7 @@
  * Query module to enumerate all deleted revisions.
  *
  * @ingroup API
+ * @deprecated since 1.25
  */
 class ApiQueryDeletedrevs extends ApiQueryBase {
 
@@ -45,6 +46,12 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        );
                }
 
+               $this->setWarning(
+                       'list=deletedrevs has been deprecated. Please use prop=deletedrevisions or ' .
+                       'list=alldeletedrevisions instead.'
+               );
+               $this->logFeatureUsage( 'action=query&list=deletedrevs' );
+
                $db = $this->getDB();
                $params = $this->extractRequestParams( false );
                $prop = array_flip( $params['prop'] );
@@ -420,43 +427,53 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'page' );
        }
 
+       public function isDeprecated() {
+               return true;
+       }
+
        public function getAllowedParams() {
                return array(
                        'start' => array(
-                               ApiBase::PARAM_TYPE => 'timestamp'
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 1, 2 ) ),
                        ),
                        'end' => array(
                                ApiBase::PARAM_TYPE => 'timestamp',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 1, 2 ) ),
                        ),
                        'dir' => array(
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
                                ),
-                               ApiBase::PARAM_DFLT => 'older'
+                               ApiBase::PARAM_DFLT => 'older',
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 1, 3 ) ),
                        ),
-                       'from' => null,
-                       'to' => null,
-                       'prefix' => null,
-                       'continue' => null,
-                       'unique' => false,
-                       'tag' => null,
-                       'user' => array(
-                               ApiBase::PARAM_TYPE => 'user'
+                       'from' => array(
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 3 ) ),
                        ),
-                       'excludeuser' => array(
-                               ApiBase::PARAM_TYPE => 'user'
+                       'to' => array(
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 3 ) ),
+                       ),
+                       'prefix' => array(
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 3 ) ),
+                       ),
+                       'unique' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 3 ) ),
                        ),
                        'namespace' => array(
                                ApiBase::PARAM_TYPE => 'namespace',
                                ApiBase::PARAM_DFLT => NS_MAIN,
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'modes', 3 ) ),
                        ),
-                       'limit' => array(
-                               ApiBase::PARAM_DFLT => 10,
-                               ApiBase::PARAM_TYPE => 'limit',
-                               ApiBase::PARAM_MIN => 1,
-                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
-                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
+                       'tag' => null,
+                       'user' => array(
+                               ApiBase::PARAM_TYPE => 'user'
+                       ),
+                       'excludeuser' => array(
+                               ApiBase::PARAM_TYPE => 'user'
                        ),
                        'prop' => array(
                                ApiBase::PARAM_DFLT => 'user|comment',
@@ -476,68 +493,30 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                                ),
                                ApiBase::PARAM_ISMULTI => true
                        ),
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'start' => 'The timestamp to start enumerating from (1, 2)',
-                       'end' => 'The timestamp to stop enumerating at (1, 2)',
-                       'dir' => $this->getDirectionDescription( $this->getModulePrefix(), ' (1, 3)' ),
-                       'from' => 'Start listing at this title (3)',
-                       'to' => 'Stop listing at this title (3)',
-                       'prefix' => 'Search for all page titles that begin with this value (3)',
-                       'limit' => 'The maximum amount of revisions to list',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' revid          - Adds the revision ID of the deleted revision',
-                               ' parentid       - Adds the revision ID of the previous revision to the page',
-                               ' user           - Adds the user who made the revision',
-                               ' userid         - Adds the user ID whom made the revision',
-                               ' comment        - Adds the comment of the revision',
-                               ' parsedcomment  - Adds the parsed comment of the revision',
-                               ' minor          - Tags if the revision is minor',
-                               ' len            - Adds the length (bytes) of the revision',
-                               ' sha1           - Adds the SHA-1 (base 16) of the revision',
-                               ' content        - Adds the content of the revision',
-                               ' token          - DEPRECATED! Gives the edit token',
-                               ' tags           - Tags for the revision',
+                       'limit' => array(
+                               ApiBase::PARAM_DFLT => 10,
+                               ApiBase::PARAM_TYPE => 'limit',
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
+                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
+                       ),
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'namespace' => 'Only list pages in this namespace (3)',
-                       'user' => 'Only list revisions by this user',
-                       'excludeuser' => 'Don\'t list revisions by this user',
-                       'continue' => 'When more results are available, use this to continue',
-                       'unique' => 'List only one revision for each page (3)',
-                       'tag' => 'Only list revisions tagged with this tag',
-               );
-       }
-
-       public function getDescription() {
-               $p = $this->getModulePrefix();
-
-               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).',
-                       ' 3) List all deleted revisions in the given namespace, sorted by title and timestamp',
-                       "    (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.',
                );
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=deletedrevs&titles=Main%20Page|Talk:Main%20Page&' .
+                       'action=query&list=deletedrevs&titles=Main%20Page|Talk:Main%20Page&' .
                                'drprop=user|comment|content'
-                               => 'List the last deleted revisions of Main Page and Talk:Main Page, with content (mode 1)',
-                       'api.php?action=query&list=deletedrevs&druser=Bob&drlimit=50'
-                               => 'List the last 50 deleted contributions by Bob (mode 2)',
-                       'api.php?action=query&list=deletedrevs&drdir=newer&drlimit=50'
-                               => 'List the first 50 deleted revisions in the main namespace (mode 3)',
-                       'api.php?action=query&list=deletedrevs&drdir=newer&drlimit=50&drnamespace=1&drunique='
-                               => 'List the first 50 deleted pages in the Talk namespace (mode 3):',
+                               => 'apihelp-query+deletedrevs-example-mode1',
+                       'action=query&list=deletedrevs&druser=Bob&drlimit=50'
+                               => 'apihelp-query+deletedrevs-example-mode2',
+                       'action=query&list=deletedrevs&drdir=newer&drlimit=50'
+                               => 'apihelp-query+deletedrevs-example-mode3-main',
+                       'action=query&list=deletedrevs&drdir=newer&drlimit=50&drnamespace=1&drunique='
+                               => 'apihelp-query+deletedrevs-example-mode3-talk',
                );
        }
 
index cf0d841..a6509d4 100644 (file)
@@ -44,17 +44,7 @@ class ApiQueryDisabled extends ApiQueryBase {
                return array();
        }
 
-       public function getParamDescription() {
-               return array();
-       }
-
-       public function getDescription() {
-               return array(
-                       'This module has been disabled.'
-               );
-       }
-
-       public function getExamples() {
-               return array();
+       public function getDescriptionMessage() {
+               return 'apihelp-query+disabled-description';
        }
 }
index 2212957..010f8d5 100644 (file)
@@ -167,7 +167,9 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'dir' => array(
                                ApiBase::PARAM_DFLT => 'ascending',
                                ApiBase::PARAM_TYPE => array(
@@ -179,23 +181,12 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'limit' => 'How many duplicate files to return',
-                       'continue' => 'When more results are available, use this to continue',
-                       'dir' => 'The direction in which to list',
-                       'localonly' => 'Look only for files in the local repository',
-               );
-       }
-
-       public function getDescription() {
-               return 'List all files that are duplicates of the given file(s) based on hash values.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&titles=File:Albert_Einstein_Head.jpg&prop=duplicatefiles',
-                       'api.php?action=query&generator=allimages&prop=duplicatefiles',
+                       'action=query&titles=File:Albert_Einstein_Head.jpg&prop=duplicatefiles'
+                               => 'apihelp-query+duplicatefiles-example-simple',
+                       'action=query&generator=allimages&prop=duplicatefiles'
+                               => 'apihelp-query+duplicatefiles-example-generated',
                );
        }
 
index faabb92..e77355b 100644 (file)
@@ -145,7 +145,7 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               return array(
+               $ret = array(
                        'prop' => array(
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_DFLT => 'ids|title|url',
@@ -156,7 +156,8 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                                )
                        ),
                        'offset' => array(
-                               ApiBase::PARAM_TYPE => 'integer'
+                               ApiBase::PARAM_TYPE => 'integer',
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
                        'protocol' => array(
                                ApiBase::PARAM_TYPE => self::prepareProtocols(),
@@ -176,6 +177,14 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                        ),
                        'expandurl' => false,
                );
+
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
+                       $ret['namespace'][ApiBase::PARAM_HELP_MSG_APPEND] = array(
+                               'api-help-param-limited-in-miser-mode',
+                       );
+               }
+
+               return $ret;
        }
 
        public static function prepareProtocols() {
@@ -207,45 +216,10 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                }
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-               $desc = array(
-                       'prop' => array(
-                               'What pieces of information to include',
-                               ' ids    - Adds the ID of page',
-                               ' title  - Adds the title and namespace ID of the page',
-                               ' url    - Adds the URL used in the page',
-                       ),
-                       'offset' => 'Used for paging. Use the value returned for "continue"',
-                       'protocol' => array(
-                               "Protocol of the URL. If empty and {$p}query set, the protocol is http.",
-                               "Leave both this and {$p}query empty to list all external links"
-                       ),
-                       'query' => 'Search string without protocol. See [[Special:LinkSearch]]. ' .
-                               'Leave empty to list all external links',
-                       'namespace' => 'The page namespace(s) to enumerate.',
-                       'limit' => 'How many pages to return.',
-                       'expandurl' => 'Expand protocol-relative URLs with the canonical protocol',
-               );
-
-               if ( $this->getConfig()->get( 'MiserMode' ) ) {
-                       $desc['namespace'] = array(
-                               $desc['namespace'],
-                               "NOTE: Due to \$wgMiserMode, using this may result in fewer than \"{$p}limit\" results",
-                               'returned before continuing; in extreme cases, zero results may be returned',
-                       );
-               }
-
-               return $desc;
-       }
-
-       public function getDescription() {
-               return 'Enumerate pages that contain a given URL.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=exturlusage&euquery=www.mediawiki.org'
+                       'action=query&list=exturlusage&euquery=www.mediawiki.org'
+                               => 'apihelp-query+exturlusage-example-simple',
                );
        }
 
index 9566635..6ddb6c8 100644 (file)
@@ -114,7 +114,8 @@ class ApiQueryExternalLinks extends ApiQueryBase {
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
                        'offset' => array(
-                               ApiBase::PARAM_TYPE => 'integer'
+                               ApiBase::PARAM_TYPE => 'integer',
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
                        'protocol' => array(
                                ApiBase::PARAM_TYPE => ApiQueryExtLinksUsage::prepareProtocols(),
@@ -125,30 +126,10 @@ class ApiQueryExternalLinks extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'limit' => 'How many links to return',
-                       'offset' => 'When more results are available, use this to continue',
-                       'protocol' => array(
-                               "Protocol of the URL. If empty and {$p}query set, the protocol is http.",
-                               "Leave both this and {$p}query empty to list all external links"
-                       ),
-                       'query' => 'Search string without protocol. Useful for checking ' .
-                               'whether a certain page contains a certain external url',
-                       'expandurl' => 'Expand protocol-relative URLs with the canonical protocol',
-               );
-       }
-
-       public function getDescription() {
-               return 'Returns all external URLs (not interwikis) from the given page(s).';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=extlinks&titles=Main%20Page'
-                               => 'Get a list of external links on the [[Main Page]]',
+                       'action=query&prop=extlinks&titles=Main%20Page'
+                               => 'apihelp-query+extlinks-example-simple',
                );
        }
 
index d1600ef..39c5902 100644 (file)
@@ -89,27 +89,10 @@ class ApiQueryFileRepoInfo extends ApiQueryBase {
                ) ) );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'prop' => array(
-                               'Which repository properties to get (there may be more available on some wikis):',
-                               ' apiurl      - URL to the repository API - helpful for getting image info from the host.',
-                               ' name        - The key of the repository - used in e.g. ' .
-                                       '$wgForeignFileRepos and imageinfo return values.',
-                               ' displayname - The human-readable name of the repository wiki.',
-                               ' rooturl     - Root URL for image paths.',
-                               ' local       - Whether that repository is the local one or not.',
-                       ),
-               );
-       }
-
-       public function getDescription() {
-               return 'Return meta information about image repositories configured on the wiki.';
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=query&meta=filerepoinfo&friprop=apiurl|name|displayname',
+                       'action=query&meta=filerepoinfo&friprop=apiurl|name|displayname'
+                               => 'apihelp-query+filerepoinfo-example-simple',
                );
        }
 }
index f047d8d..6b92603 100644 (file)
@@ -193,7 +193,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
 
                                $pageCount = ArchivedFile::newFromRow( $row )->pageCount();
                                if ( $pageCount !== false ) {
-                                       $vals['pagecount'] = $pageCount;
+                                       $file['pagecount'] = $pageCount;
                                }
 
                                $file['height'] = $row->fa_height;
@@ -246,16 +246,8 @@ class ApiQueryFilearchive extends ApiQueryBase {
        public function getAllowedParams() {
                return array(
                        'from' => null,
-                       'continue' => null,
                        'to' => null,
                        'prefix' => null,
-                       'limit' => array(
-                               ApiBase::PARAM_DFLT => 10,
-                               ApiBase::PARAM_TYPE => 'limit',
-                               ApiBase::PARAM_MIN => 1,
-                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
-                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
-                       ),
                        'dir' => array(
                                ApiBase::PARAM_DFLT => 'ascending',
                                ApiBase::PARAM_TYPE => array(
@@ -283,48 +275,23 @@ class ApiQueryFilearchive extends ApiQueryBase {
                                        'archivename',
                                ),
                        ),
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'from' => 'The image title to start enumerating from',
-                       'continue' => 'When more results are available, use this to continue',
-                       'to' => 'The image title to stop enumerating at',
-                       'prefix' => 'Search for all image titles that begin with this value',
-                       'dir' => 'The direction in which to list',
-                       'limit' => 'How many images to return in total',
-                       'sha1' => "SHA1 hash of image. Overrides {$this->getModulePrefix()}sha1base36",
-                       'sha1base36' => 'SHA1 hash of image in base 36 (used in MediaWiki)',
-                       'prop' => array(
-                               'What image information to get:',
-                               ' sha1              - Adds SHA-1 hash for the image',
-                               ' timestamp         - Adds timestamp for the uploaded version',
-                               ' user              - Adds user who uploaded the image version',
-                               ' size              - Adds the size of the image in bytes and the height, ' .
-                                       'width and page count (if applicable)',
-                               ' dimensions        - Alias for size',
-                               ' description       - Adds description the image version',
-                               ' parseddescription - Parse the description on the version',
-                               ' mime              - Adds MIME of the image',
-                               ' mediatype         - Adds the media type of the image',
-                               ' metadata          - Lists Exif metadata for the version of the image',
-                               ' bitdepth          - Adds the bit depth of the version',
-                               ' archivename       - Adds the file name of the archive version for non-latest versions'
+                       'limit' => array(
+                               ApiBase::PARAM_DFLT => 10,
+                               ApiBase::PARAM_TYPE => 'limit',
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
+                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
+                       ),
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
                );
        }
 
-       public function getDescription() {
-               return 'Enumerate all deleted files sequentially.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=filearchive' => array(
-                               'Simple Use',
-                               'Show a list of all deleted files',
-                       ),
+                       'action=query&list=filearchive'
+                               => 'apihelp-query+filearchive-example-simple',
                );
        }
 
index b5aa45b..a2af124 100644 (file)
@@ -169,7 +169,9 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                return array(
                        'prefix' => null,
                        'title' => null,
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -195,33 +197,12 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'prefix' => 'Prefix for the interwiki',
-                       'title' => "Interwiki link to search for. Must be used with {$this->getModulePrefix()}prefix",
-                       'continue' => 'When more results are available, use this to continue',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' iwprefix       - Adds the prefix of the interwiki',
-                               ' iwtitle        - Adds the title of the interwiki',
-                       ),
-                       'limit' => 'How many total pages to return',
-                       'dir' => 'The direction in which to list',
-               );
-       }
-
-       public function getDescription() {
-               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".',
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=iwbacklinks&iwbltitle=Test&iwblprefix=wikibooks',
-                       'api.php?action=query&generator=iwbacklinks&giwbltitle=Test&giwblprefix=wikibooks&prop=info'
+                       'action=query&list=iwbacklinks&iwbltitle=Test&iwblprefix=wikibooks'
+                               => 'apihelp-query+iwbacklinks-example-simple',
+                       'action=query&generator=iwbacklinks&giwbltitle=Test&giwblprefix=wikibooks&prop=info'
+                               => 'apihelp-query+iwbacklinks-example-generator',
                );
        }
 
index a185ee2..c1208cb 100644 (file)
@@ -147,24 +147,12 @@ class ApiQueryIWLinks extends ApiQueryBase {
 
        public function getAllowedParams() {
                return array(
-                       'url' => array(
-                               ApiBase::PARAM_DFLT => false,
-                               ApiBase::PARAM_DEPRECATED => true,
-                       ),
                        'prop' => array(
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => array(
                                        'url',
                                )
                        ),
-                       'limit' => array(
-                               ApiBase::PARAM_DFLT => 10,
-                               ApiBase::PARAM_TYPE => 'limit',
-                               ApiBase::PARAM_MIN => 1,
-                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
-                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
-                       ),
-                       'continue' => null,
                        'prefix' => null,
                        'title' => null,
                        'dir' => array(
@@ -174,32 +162,27 @@ class ApiQueryIWLinks extends ApiQueryBase {
                                        'descending'
                                )
                        ),
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'prop' => array(
-                               'Which additional properties to get for each interlanguage link',
-                               ' url      - Adds the full URL',
+                       'limit' => array(
+                               ApiBase::PARAM_DFLT => 10,
+                               ApiBase::PARAM_TYPE => 'limit',
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
+                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
+                       ),
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
+                       'url' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_DEPRECATED => true,
                        ),
-                       'url' => "Whether to get the full URL (Cannot be used with {$this->getModulePrefix()}prop)",
-                       'limit' => 'How many interwiki links to return',
-                       'continue' => 'When more results are available, use this to continue',
-                       'prefix' => 'Prefix for the interwiki',
-                       'title' => "Interwiki link to search for. Must be used with {$this->getModulePrefix()}prefix",
-                       'dir' => 'The direction in which to list',
                );
        }
 
-       public function getDescription() {
-               return 'Returns all interwiki links from the given page(s).';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=iwlinks&titles=Main%20Page'
-                               => 'Get interwiki links from the [[Main Page]]',
+                       'action=query&prop=iwlinks&titles=Main%20Page'
+                               => 'apihelp-query+iwlinks-example-simple',
                );
        }
 
index ad5cdbd..cfd06f1 100644 (file)
@@ -649,7 +649,11 @@ class ApiQueryImageInfo extends ApiQueryBase {
                        ),
                        'urlwidth' => array(
                                ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_DFLT => -1
+                               ApiBase::PARAM_DFLT => -1,
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-query+imageinfo-param-urlwidth',
+                                       ApiQueryImageInfo::TRANSFORM_LIMIT,
+                               ),
                        ),
                        'urlheight' => array(
                                ApiBase::PARAM_TYPE => 'integer',
@@ -675,7 +679,9 @@ class ApiQueryImageInfo extends ApiQueryBase {
                                ApiBase::PARAM_DFLT => '',
                                ApiBase::PARAM_TYPE => 'string',
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'localonly' => false,
                );
        }
@@ -694,6 +700,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
        /**
         * Returns array key value pairs of properties and their descriptions
         *
+        * @deprecated since 1.25
         * @param string $modulePrefix
         * @return array
         */
@@ -730,6 +737,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
        /**
         * Returns the descriptions for the properties provided by getPropertyNames()
         *
+        * @deprecated since 1.25
         * @param array $filter List of properties to filter out
         * @param string $modulePrefix
         * @return array
@@ -741,55 +749,13 @@ class ApiQueryImageInfo extends ApiQueryBase {
                );
        }
 
-       /**
-        * Return the API documentation for the parameters.
-        * @return array Parameter documentation.
-        */
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'prop' => self::getPropertyDescriptions( array(), $p ),
-                       'urlwidth' => array(
-                               "If {$p}prop=url is set, a URL to an image scaled to this width will be returned.",
-                               'For performance reasons if this option is used, ' .
-                                       'no more than ' . self::TRANSFORM_LIMIT . ' scaled images will be returned.'
-                       ),
-                       'urlheight' => "Similar to {$p}urlwidth.",
-                       'urlparam' => array(
-                               "A handler specific parameter string. For example, pdf's ",
-                               "might use 'page15-100px'."
-                       ),
-                       'limit' => 'How many image revisions to return per image',
-                       'start' => 'Timestamp to start listing from',
-                       'end' => 'Timestamp to stop listing at',
-                       'metadataversion'
-                               => array( "Version of metadata to use. if 'latest' is specified, use latest version.",
-                               "Defaults to '1' for backwards compatibility" ),
-                       'extmetadatalanguage' => array(
-                               'What language to fetch extmetadata in. This affects both which',
-                               'translation to fetch, if multiple are available, as well as how things',
-                               'like numbers and various values are formatted.'
-                       ),
-                       'extmetadatamultilang'
-                               =>'If translations for extmetadata property are available, fetch all of them.',
-                       'extmetadatafilter'
-                               => "If specified and non-empty, only these keys will be returned for {$p}prop=extmetadata",
-                       'continue' => 'If the query response includes a continue value, ' .
-                               'use it here to get another page of results',
-                       'localonly' => 'Look only for files in the local repository',
-               );
-       }
-
-       public function getDescription() {
-               return 'Returns image information and upload history.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&titles=File:Albert%20Einstein%20Head.jpg&prop=imageinfo',
-                       'api.php?action=query&titles=File:Test.jpg&prop=imageinfo&iilimit=50&' .
-                               'iiend=20071231235959&iiprop=timestamp|user|url',
+                       'action=query&titles=File:Albert%20Einstein%20Head.jpg&prop=imageinfo'
+                               => 'apihelp-query+imageinfo-example-simple',
+                       'action=query&titles=File:Test.jpg&prop=imageinfo&iilimit=50&' .
+                               'iiend=2007-12-31T23:59:59Z&iiprop=timestamp|user|url'
+                               => 'apihelp-query+imageinfo-example-dated',
                );
        }
 
index 9bc3abe..029d945 100644 (file)
@@ -146,7 +146,9 @@ class ApiQueryImages extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'images' => array(
                                ApiBase::PARAM_ISMULTI => true,
                        ),
@@ -160,26 +162,12 @@ class ApiQueryImages extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'limit' => 'How many images to return',
-                       'continue' => 'When more results are available, use this to continue',
-                       'images' => 'Only list these images. Useful for checking whether a ' .
-                               'certain page has a certain Image.',
-                       'dir' => 'The direction in which to list',
-               );
-       }
-
-       public function getDescription() {
-               return 'Returns all images contained on the given page(s).';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=images&titles=Main%20Page'
-                               => 'Get a list of images used in the [[Main Page]]',
-                       'api.php?action=query&generator=images&titles=Main%20Page&prop=info'
-                               => 'Get information about all images used in the [[Main Page]]',
+                       'action=query&prop=images&titles=Main%20Page'
+                               => 'apihelp-query+images-example-simple',
+                       'action=query&generator=images&titles=Main%20Page&prop=info'
+                               => 'apihelp-query+images-example-generator',
                );
        }
 
index d7037e3..5e61ed1 100644 (file)
@@ -64,15 +64,15 @@ class ApiQueryInfo extends ApiQueryBase {
                }
                $pageSet->requestField( 'page_is_new' );
                $config = $this->getConfig();
-               if ( !$config->get( 'DisableCounters' ) ) {
-                       $pageSet->requestField( 'page_counter' );
-               }
                $pageSet->requestField( 'page_touched' );
                $pageSet->requestField( 'page_latest' );
                $pageSet->requestField( 'page_len' );
                if ( $config->get( 'ContentHandlerUseDB' ) ) {
                        $pageSet->requestField( 'page_content_model' );
                }
+               if ( $config->get( 'PageLanguageUseDB' ) ) {
+                       $pageSet->requestField( 'page_lang' );
+               }
        }
 
        /**
@@ -328,9 +328,6 @@ class ApiQueryInfo extends ApiQueryBase {
                        : array();
                $this->pageIsNew = $pageSet->getCustomField( 'page_is_new' );
 
-               if ( !$this->getConfig()->get( 'DisableCounters' ) ) {
-                       $this->pageCounter = $pageSet->getCustomField( 'page_counter' );
-               }
                $this->pageTouched = $pageSet->getCustomField( 'page_touched' );
                $this->pageLatest = $pageSet->getCustomField( 'page_latest' );
                $this->pageLength = $pageSet->getCustomField( 'page_len' );
@@ -392,9 +389,6 @@ class ApiQueryInfo extends ApiQueryBase {
                if ( $titleExists ) {
                        $pageInfo['touched'] = wfTimestamp( TS_ISO_8601, $this->pageTouched[$pageid] );
                        $pageInfo['lastrevid'] = intval( $this->pageLatest[$pageid] );
-                       $pageInfo['counter'] = $this->getConfig()->get( 'DisableCounters' )
-                               ? ''
-                               : intval( $this->pageCounter[$pageid] );
                        $pageInfo['length'] = intval( $this->pageLength[$pageid] );
 
                        if ( isset( $this->pageIsRedir[$pageid] ) && $this->pageIsRedir[$pageid] ) {
@@ -824,38 +818,18 @@ class ApiQueryInfo extends ApiQueryBase {
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => array_keys( $this->getTokenFunctions() )
                        ),
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'prop' => array(
-                               'Which additional properties to get:',
-                               ' protection            - List the protection level of each page',
-                               ' talkid                - The page ID of the talk page for each non-talk page',
-                               ' watched               - List the watched status of each page',
-                               ' watchers              - The number of watchers, if allowed',
-                               ' notificationtimestamp - The watchlist notification timestamp of each page',
-                               ' subjectid             - The page ID of the parent page for each talk page',
-                               ' url                   - Gives a full URL, an edit URL, and the canonical URL for each page',
-                               ' readable              - Whether the user can read this page',
-                               ' preload               - Gives the text returned by EditFormPreloadText',
-                               ' displaytitle          - Gives the way the page title is actually displayed',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'token' => 'Request a token to perform a data-modifying action on a page',
-                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
-       public function getDescription() {
-               return 'Get basic page information such as namespace, title, last touched date, ...';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=info&titles=Main%20Page',
-                       'api.php?action=query&prop=info&inprop=protection&titles=Main%20Page'
+                       'action=query&prop=info&titles=Main%20Page'
+                               => 'apihelp-query+info-example-simple',
+                       'action=query&prop=info&inprop=protection&titles=Main%20Page'
+                               => 'apihelp-query+info-example-protection',
                );
        }
 
index 34842c6..b41b4b7 100644 (file)
@@ -168,7 +168,9 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                return array(
                        'lang' => null,
                        'title' => null,
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -194,34 +196,12 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'lang' => 'Language for the language link',
-                       'title' => "Language link to search for. Must be used with {$this->getModulePrefix()}lang",
-                       'continue' => 'When more results are available, use this to continue',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' lllang         - Adds the language code of the language link',
-                               ' lltitle        - Adds the title of the language link',
-                       ),
-                       'limit' => 'How many total pages to return',
-                       'dir' => 'The direction in which to list',
-               );
-       }
-
-       public function getDescription() {
-               return array( 'Find all pages that link to the given language link.',
-                       'Can be used to find all links with a language code, or',
-                       'all links to a title (with a given language).',
-                       'Using neither parameter is effectively "All Language Links".',
-                       'Note that this may not consider language links added by extensions.',
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=langbacklinks&lbltitle=Test&lbllang=fr',
-                       'api.php?action=query&generator=langbacklinks&glbltitle=Test&glbllang=fr&prop=info'
+                       'action=query&list=langbacklinks&lbltitle=Test&lbllang=fr'
+                               => 'apihelp-query+langbacklinks-example-simple',
+                       'action=query&generator=langbacklinks&glbltitle=Test&glbllang=fr&prop=info'
+                               => 'apihelp-query+langbacklinks-example-generator',
                );
        }
 
index da05f27..2d03347 100644 (file)
@@ -140,18 +140,6 @@ class ApiQueryLangLinks extends ApiQueryBase {
        public function getAllowedParams() {
                global $wgContLang;
                return array(
-                       'limit' => array(
-                               ApiBase::PARAM_DFLT => 10,
-                               ApiBase::PARAM_TYPE => 'limit',
-                               ApiBase::PARAM_MIN => 1,
-                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
-                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
-                       ),
-                       'continue' => null,
-                       'url' => array(
-                               ApiBase::PARAM_DFLT => false,
-                               ApiBase::PARAM_DEPRECATED => true,
-                       ),
                        'prop' => array(
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => array(
@@ -170,36 +158,27 @@ class ApiQueryLangLinks extends ApiQueryBase {
                                )
                        ),
                        'inlanguagecode' => $wgContLang->getCode(),
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'limit' => 'How many langlinks to return',
-                       'continue' => 'When more results are available, use this to continue',
-                       'url' => "Whether to get the full URL (Cannot be used with {$this->getModulePrefix()}prop)",
-                       'prop' => array(
-                               'Which additional properties to get for each interlanguage link',
-                               ' url      - Adds the full URL',
-                               ' langname - Adds the localised language name (best effort, use CLDR extension)',
-                               "            Use {$this->getModulePrefix()}inlanguagecode to control the language",
-                               ' autonym  - Adds the native language name',
+                       'limit' => array(
+                               ApiBase::PARAM_DFLT => 10,
+                               ApiBase::PARAM_TYPE => 'limit',
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
+                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
+                       ),
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
+                       'url' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_DEPRECATED => true,
                        ),
-                       'lang' => 'Language code',
-                       'title' => "Link to search for. Must be used with {$this->getModulePrefix()}lang",
-                       'dir' => 'The direction in which to list',
-                       'inlanguagecode' => 'Language code for localised language names',
                );
        }
 
-       public function getDescription() {
-               return 'Returns all interlanguage links from the given page(s).';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=langlinks&titles=Main%20Page&redirects='
-                               => 'Get interlanguage links from the [[Main Page]]',
+                       'action=query&prop=langlinks&titles=Main%20Page&redirects='
+                               => 'apihelp-query+langlinks-example-simple',
                );
        }
 
index 71329c4..3bd3714 100644 (file)
@@ -34,26 +34,20 @@ class ApiQueryLinks extends ApiQueryGeneratorBase {
        const LINKS = 'links';
        const TEMPLATES = 'templates';
 
-       private $table, $prefix, $description, $helpUrl;
+       private $table, $prefix, $helpUrl;
 
        public function __construct( ApiQuery $query, $moduleName ) {
                switch ( $moduleName ) {
                        case self::LINKS:
                                $this->table = 'pagelinks';
                                $this->prefix = 'pl';
-                               $this->description = 'link';
                                $this->titlesParam = 'titles';
-                               $this->titlesParamDescription = 'Only list links to these titles. Useful ' .
-                                       'for checking whether a certain page links to a certain title.';
                                $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#links_.2F_pl';
                                break;
                        case self::TEMPLATES:
                                $this->table = 'templatelinks';
                                $this->prefix = 'tl';
-                               $this->description = 'template';
                                $this->titlesParam = 'templates';
-                               $this->titlesParamDescription = 'Only list these templates. Useful ' .
-                                       'for checking whether a certain page uses a certain template.';
                                $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#templates_.2F_tl';
                                break;
                        default:
@@ -197,7 +191,9 @@ class ApiQueryLinks extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        $this->titlesParam => array(
                                ApiBase::PARAM_ISMULTI => true,
                        ),
@@ -211,32 +207,17 @@ class ApiQueryLinks extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               $desc = $this->description;
-
-               return array(
-                       'namespace' => "Show {$desc}s in this namespace(s) only",
-                       'limit' => "How many {$desc}s to return",
-                       'continue' => 'When more results are available, use this to continue',
-                       $this->titlesParam => $this->titlesParamDescription,
-                       'dir' => 'The direction in which to list',
-               );
-       }
-
-       public function getDescription() {
-               return "Returns all {$this->description}s from the given page(s).";
-       }
-
-       public function getExamples() {
-               $desc = $this->description;
+       protected function getExamplesMessages() {
                $name = $this->getModuleName();
+               $path = $this->getModulePath();
 
                return array(
-                       "api.php?action=query&prop={$name}&titles=Main%20Page" => "Get {$desc}s from the [[Main Page]]",
-                       "api.php?action=query&generator={$name}&titles=Main%20Page&prop=info"
-                               => "Get information about the {$desc} pages in the [[Main Page]]",
-                       "api.php?action=query&prop={$name}&titles=Main%20Page&{$this->prefix}namespace=2|10"
-                               => "Get {$desc}s from the Main Page in the User and Template namespaces",
+                       "action=query&prop={$name}&titles=Main%20Page"
+                               => "apihelp-{$path}-example-simple",
+                       "action=query&generator={$name}&titles=Main%20Page&prop=info"
+                               => "apihelp-{$path}-example-generator",
+                       "action=query&prop={$name}&titles=Main%20Page&{$this->prefix}namespace=2|10"
+                               => "apihelp-{$path}-example-namespaces",
                );
        }
 
index d3607e1..917332b 100644 (file)
@@ -327,6 +327,17 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                        $params['img_timestamp'] = wfTimestamp( TS_ISO_8601, $params['img_timestamp'] );
                                }
                                break;
+                       case 'merge':
+                               // replace the named parameter with numbered for backward compatibility
+                               if ( isset( $params['4::dest'] ) ) {
+                                       $params[] = $params['4::dest'];
+                                       unset( $params['4::dest'] );
+                               }
+                               if ( isset( $params['5::mergepoint'] ) ) {
+                                       $params[] = $params['5::mergepoint'];
+                                       unset( $params['5::mergepoint'] );
+                               }
+                               break;
                }
                if ( !is_null( $params ) ) {
                        $logParams = array();
@@ -474,7 +485,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
 
        public function getAllowedParams( $flags = 0 ) {
                $config = $this->getConfig();
-               return array(
+               $ret = array(
                        'prop' => array(
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_DFLT => 'ids|title|type|user|timestamp|comment|details',
@@ -511,14 +522,15 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                        'user' => null,
                        'title' => null,
                        'namespace' => array(
                                ApiBase::PARAM_TYPE => 'namespace'
                        ),
-                       'prefix' => null,
+                       'prefix' => array(),
                        'tag' => null,
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
@@ -527,52 +539,22 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
                        ),
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'prop' => array(
-                               'Which properties to get',
-                               ' ids            - Adds the ID of the log event',
-                               ' title          - Adds the title of the page for the log event',
-                               ' type           - Adds the type of log event',
-                               ' user           - Adds the user responsible for the log event',
-                               ' userid         - Adds the user ID who was responsible for the log event',
-                               ' timestamp      - Adds the timestamp for the event',
-                               ' comment        - Adds the comment of the event',
-                               ' parsedcomment  - Adds the parsed comment of the event',
-                               ' details        - Lists additional details about the event',
-                               ' tags           - Lists tags for the event',
-                       ),
-                       'type' => 'Filter log entries to only this 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"
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'start' => 'The timestamp to start enumerating from',
-                       'end' => 'The timestamp to end enumerating',
-                       'dir' => $this->getDirectionDescription( $p ),
-                       'user' => 'Filter entries to those made by the given user',
-                       'title' => 'Filter entries to those related to a page',
-                       'namespace' => 'Filter entries to those in the given namespace',
-                       'prefix' => 'Filter entries that start with this prefix. Disabled in Miser Mode',
-                       'limit' => 'How many total event entries to return',
-                       'tag' => 'Only list event entries tagged with this tag',
-                       'continue' => 'When more results are available, use this to continue',
                );
-       }
 
-       public function getDescription() {
-               return 'Get events from logs.';
+               if ( $config->get( 'MiserMode' ) ) {
+                       $ret['prefix'][ApiBase::PARAM_HELP_MSG] = 'api-help-param-disabled-in-miser-mode';
+               }
+
+               return $ret;
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=logevents'
+                       'action=query&list=logevents'
+                               => 'apihelp-query+logevents-example-simple',
                );
        }
 
index 469b297..035f901 100644 (file)
@@ -233,15 +233,19 @@ abstract class ApiQueryORM extends ApiQueryBase {
                                ApiBase::PARAM_TYPE => $this->getTable()->getFieldNames(),
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_REQUIRED => true,
+                               ApiBase::PARAM_HELP_MSG => 'api-orm-param-props',
                        ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 20,
                                ApiBase::PARAM_TYPE => 'limit',
                                ApiBase::PARAM_MIN => 1,
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
-                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
+                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2,
+                               ApiBase::PARAM_HELP_MSG => 'api-orm-param-limit',
+                       ),
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'continue' => null,
                );
 
                return array_merge( $this->getTable()->getAPIParams(), $params );
@@ -249,6 +253,7 @@ abstract class ApiQueryORM extends ApiQueryBase {
 
        /**
         * @see ApiBase::getParamDescription()
+        * @deprecated since 1.25
         * @return array
         */
        public function getParamDescription() {
index 8cd9c6c..026f061 100644 (file)
@@ -83,7 +83,9 @@ class ApiQueryPagePropNames extends ApiQueryBase {
 
        public function getAllowedParams() {
                return array(
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_TYPE => 'limit',
                                ApiBase::PARAM_DFLT => 10,
@@ -94,20 +96,10 @@ class ApiQueryPagePropNames extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'continue' => 'When more results are available, use this to continue',
-                       'limit' => 'The maximum number of pages to return',
-               );
-       }
-
-       public function getDescription() {
-               return 'List all page prop names in use on the wiki.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=pagepropnames' => 'Get first 10 prop names',
+                       'action=query&list=pagepropnames'
+                               => 'apihelp-query+pagepropnames-example-simple',
                );
        }
 
index e370c39..269afb1 100644 (file)
@@ -125,28 +125,19 @@ class ApiQueryPageProps extends ApiQueryBase {
 
        public function getAllowedParams() {
                return array(
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'prop' => array(
                                ApiBase::PARAM_ISMULTI => true,
                        ),
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'continue' => 'When more results are available, use this to continue',
-                       'prop' => 'Only list these props. Useful for checking whether a ' .
-                               'certain page uses a certain page prop',
-               );
-       }
-
-       public function getDescription() {
-               return 'Get various properties defined in the page content.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=pageprops&titles=Category:Foo',
+                       'action=query&prop=pageprops&titles=Category:Foo'
+                               => 'apihelp-query+pageprops-example-simple',
                );
        }
 
index b6c8525..6ffe0ae 100644 (file)
@@ -140,7 +140,9 @@ class ApiQueryPagesWithProp extends ApiQueryGeneratorBase {
                                        'value',
                                )
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_TYPE => 'limit',
                                ApiBase::PARAM_DFLT => 10,
@@ -158,31 +160,12 @@ class ApiQueryPagesWithProp extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'propname' => 'Page prop for which to enumerate pages',
-                       'prop' => array(
-                               'What pieces of information to include',
-                               ' ids   - Adds the page ID',
-                               ' title - Adds the title and namespace ID of the page',
-                               ' value - Adds the value of the page prop',
-                       ),
-                       'dir' => 'In which direction to sort',
-                       'continue' => 'When more results are available, use this to continue',
-                       'limit' => 'The maximum number of pages to return',
-               );
-       }
-
-       public function getDescription() {
-               return 'List all pages using a given page prop.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=pageswithprop&pwppropname=displaytitle&pwpprop=ids|title|value'
-                               => 'Get first 10 pages using {{DISPLAYTITLE:}}',
-                       'api.php?action=query&generator=pageswithprop&gpwppropname=notoc&prop=info'
-                               => 'Get page info about first 10 pages using __NOTOC__',
+                       'action=query&list=pageswithprop&pwppropname=displaytitle&pwpprop=ids|title|value'
+                               => 'apihelp-query+pageswithprop-example-simple',
+                       'action=query&generator=pageswithprop&gpwppropname=notoc&prop=info'
+                               => 'apihelp-query+pageswithprop-example-generator',
                );
        }
 
index 4abd7f0..3c90acc 100644 (file)
@@ -100,21 +100,10 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                        );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'search' => 'Search string',
-                       'limit' => 'Maximum amount of results to return',
-                       'namespace' => 'Namespaces to search',
-               );
-       }
-
-       public function getDescription() {
-               return 'Perform a prefix search for page titles';
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=query&list=prefixsearch&pssearch=meaning',
+                       'action=query&list=prefixsearch&pssearch=meaning'
+                               => 'apihelp-query+prefixsearch-example-simple',
                );
        }
 
index 4c88be7..f1e6d01 100644 (file)
@@ -196,7 +196,8 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                        'start' => array(
                                ApiBase::PARAM_TYPE => 'timestamp'
@@ -217,39 +218,18 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                                        'level'
                                )
                        ),
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'namespace' => 'Only list titles in these namespaces',
-                       'start' => 'Start listing at this protection timestamp',
-                       'end' => 'Stop listing at this protection timestamp',
-                       'dir' => $this->getDirectionDescription( $this->getModulePrefix() ),
-                       'limit' => 'How many total pages to return',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' timestamp      - Adds the timestamp of when protection was added',
-                               ' user           - Adds the user that added the protection',
-                               ' userid         - Adds the user id that added the protection',
-                               ' comment        - Adds the comment for the protection',
-                               ' parsedcomment  - Adds the parsed comment for the protection',
-                               ' expiry         - Adds the timestamp of when the protection will be lifted',
-                               ' level          - Adds the protection level',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'level' => 'Only list titles with these protection levels',
-                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
-       public function getDescription() {
-               return 'List all titles protected from creation.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=protectedtitles',
+                       'action=query&list=protectedtitles'
+                               => 'apihelp-query+protectedtitles-example-simple',
+                       'action=query&generator=protectedtitles&gptnamespace=0&prop=linkshere'
+                               => 'apihelp-query+protectedtitles-example-generator',
                );
        }
 
index 5ddd945..74586bb 100644 (file)
@@ -144,7 +144,10 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_TYPE => array_keys( $this->qpMap ),
                                ApiBase::PARAM_REQUIRED => true
                        ),
-                       'offset' => 0,
+                       'offset' => array(
+                               ApiBase::PARAM_DFLT => 0,
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -155,21 +158,10 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'page' => 'The name of the special page. Note, this is case sensitive',
-                       'offset' => 'When more results are available, use this to continue',
-                       'limit' => 'Number of results to return',
-               );
-       }
-
-       public function getDescription() {
-               return 'Get a list provided by a QueryPage-based special page.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=querypage&qppage=Ancientpages'
+                       'action=query&list=querypage&qppage=Ancientpages'
+                               => 'apihelp-query+querypage-example-ancientpages',
                );
        }
 
index 530557e..282f498 100644 (file)
@@ -165,30 +165,15 @@ class ApiQueryRandom extends ApiQueryGeneratorBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'namespace' => 'Return pages in these namespaces only',
-                       'limit' => 'Limit how many random pages will be returned',
-                       'redirect' => 'Load a random redirect instead of a random page'
+                       'action=query&list=random&rnnamespace=0&rnlimit=2'
+                               => 'apihelp-query+random-example-simple',
+                       'action=query&generator=random&grnnamespace=0&grnlimit=2&prop=info'
+                               => 'apihelp-query+random-example-generator',
                );
        }
 
-       public function getDescription() {
-               return array(
-                       '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.',
-                       '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.'
-               );
-       }
-
-       public function getExamples() {
-               return 'api.php?action=query&list=random&rnnamespace=0&rnlimit=2';
-       }
-
        public function getHelpUrls() {
                return 'https://www.mediawiki.org/wiki/API:Random';
        }
index 6f0c5d3..e20380e 100644 (file)
@@ -625,7 +625,8 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                        'namespace' => array(
                                ApiBase::PARAM_ISMULTI => true,
@@ -696,57 +697,18 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                )
                        ),
                        'toponly' => false,
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'start' => 'The timestamp to start enumerating from',
-                       'end' => 'The timestamp to end enumerating',
-                       'dir' => $this->getDirectionDescription( $p ),
-                       'namespace' => 'Filter log entries to only this namespace(s)',
-                       'user' => 'Only list changes by this user',
-                       'excludeuser' => 'Don\'t list changes by this user',
-                       'prop' => array(
-                               'Include additional pieces of information',
-                               ' user           - Adds the user responsible for the edit and tags if they are an IP',
-                               ' userid         - Adds the user id responsible for the edit',
-                               ' comment        - Adds the comment for the edit',
-                               ' parsedcomment  - Adds the parsed comment for the edit',
-                               ' flags          - Adds flags for the edit',
-                               ' timestamp      - Adds timestamp of the edit',
-                               ' title          - Adds the page title of the edit',
-                               ' ids            - Adds the page ID, recent changes ID and the new and old revision ID',
-                               ' sizes          - Adds the new and old page length in bytes',
-                               ' redirect       - Tags edit if page is a redirect',
-                               ' patrolled      - Tags patrollable edits as being patrolled or unpatrolled',
-                               ' loginfo        - Adds log information (logid, logtype, etc) to log entries',
-                               ' tags           - Lists tags for the entry',
-                               ' sha1           - Adds the content checksum for entries associated with a revision',
-                       ),
-                       'token' => 'Which tokens to obtain for each change',
-                       'show' => array(
-                               'Show only items that meet this criteria.',
-                               "For example, to see only minor edits done by logged-in users, set {$p}show=minor|!anon"
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'type' => 'Which types of changes to show',
-                       'limit' => 'How many total changes to return',
-                       'tag' => 'Only list changes tagged with this tag',
-                       'toponly' => 'Only list changes which are the latest revision',
-                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
-       public function getDescription() {
-               return 'Enumerate recent changes.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=recentchanges'
+                       'action=query&list=recentchanges'
+                               => 'apihelp-query+recentchanges-example-simple',
+                       'action=query&generator=recentchanges&grcshow=!patrolled&prop=info'
+                               => 'apihelp-query+recentchanges-example-generator',
                );
        }
 
index da4ec19..2e980f3 100644 (file)
  *
  * @ingroup API
  */
-class ApiQueryRevisions extends ApiQueryBase {
+class ApiQueryRevisions extends ApiQueryRevisionsBase {
 
-       private $diffto, $difftotext, $expandTemplates, $generateXML, $section,
-               $token, $parseContent, $contentFormat;
+       private $token = null;
 
        public function __construct( ApiQuery $query, $moduleName ) {
                parent::__construct( $query, $moduleName, 'rv' );
        }
 
-       private $fld_ids = false, $fld_flags = false, $fld_timestamp = false,
-               $fld_size = false, $fld_sha1 = false, $fld_comment = false,
-               $fld_parsedcomment = false, $fld_user = false, $fld_userid = false,
-               $fld_content = false, $fld_tags = false, $fld_contentmodel = false;
-
        private $tokenFunctions;
 
        /** @deprecated since 1.24 */
@@ -89,7 +83,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                        array( $title->getPrefixedText(), $rev->getUserText() ) );
        }
 
-       public function execute() {
+       protected function run( ApiPageSet $resultPageSet = null ) {
                $params = $this->extractRequestParams( false );
 
                // If any of those parameters are used, work in 'enumeration' mode.
@@ -107,6 +101,11 @@ class ApiQueryRevisions extends ApiQueryBase {
 
                // Optimization -- nothing to do
                if ( $revCount === 0 && $pageCount === 0 ) {
+                       // Nothing to do
+                       return;
+               }
+               if ( $revCount > 0 && count( $pageSet->getLiveRevisionIDs() ) === 0 ) {
+                       // We're in revisions mode but all given revisions are deleted
                        return;
                }
 
@@ -127,75 +126,32 @@ class ApiQueryRevisions extends ApiQueryBase {
                        );
                }
 
-               if ( !is_null( $params['difftotext'] ) ) {
-                       $this->difftotext = $params['difftotext'];
-               } elseif ( !is_null( $params['diffto'] ) ) {
-                       if ( $params['diffto'] == 'cur' ) {
-                               $params['diffto'] = 0;
-                       }
-                       if ( ( !ctype_digit( $params['diffto'] ) || $params['diffto'] < 0 )
-                               && $params['diffto'] != 'prev' && $params['diffto'] != 'next'
-                       ) {
-                               $this->dieUsage(
-                                       'rvdiffto must be set to a non-negative number, "prev", "next" or "cur"',
-                                       'diffto'
-                               );
-                       }
-                       // Check whether the revision exists and is readable,
-                       // DifferenceEngine returns a rather ambiguous empty
-                       // string if that's not the case
-                       if ( $params['diffto'] != 0 ) {
-                               $difftoRev = Revision::newFromID( $params['diffto'] );
-                               if ( !$difftoRev ) {
-                                       $this->dieUsageMsg( array( 'nosuchrevid', $params['diffto'] ) );
-                               }
-                               if ( !$difftoRev->userCan( Revision::DELETED_TEXT, $this->getUser() ) ) {
-                                       $this->setWarning( "Couldn't diff to r{$difftoRev->getID()}: content is hidden" );
-                                       $params['diffto'] = null;
-                               }
-                       }
-                       $this->diffto = $params['diffto'];
+               // In non-enum mode, rvlimit can't be directly used. Use the maximum
+               // allowed value.
+               if ( !$enumRevMode ) {
+                       $this->setParsedLimit = false;
+                       $params['limit'] = 'max';
                }
 
                $db = $this->getDB();
-               $this->addTables( 'page' );
-               $this->addFields( Revision::selectFields() );
-               $this->addWhere( 'page_id = rev_page' );
-
-               $prop = array_flip( $params['prop'] );
-
-               // Optional fields
-               $this->fld_ids = isset( $prop['ids'] );
-               // $this->addFieldsIf('rev_text_id', $this->fld_ids); // should this be exposed?
-               $this->fld_flags = isset( $prop['flags'] );
-               $this->fld_timestamp = isset( $prop['timestamp'] );
-               $this->fld_comment = isset( $prop['comment'] );
-               $this->fld_parsedcomment = isset( $prop['parsedcomment'] );
-               $this->fld_size = isset( $prop['size'] );
-               $this->fld_sha1 = isset( $prop['sha1'] );
-               $this->fld_contentmodel = isset( $prop['contentmodel'] );
-               $this->fld_userid = isset( $prop['userid'] );
-               $this->fld_user = isset( $prop['user'] );
-               $this->token = $params['token'];
-
-               if ( !empty( $params['contentformat'] ) ) {
-                       $this->contentFormat = $params['contentformat'];
-               }
-
-               $userMax = ( $this->fld_content ? ApiBase::LIMIT_SML1 : ApiBase::LIMIT_BIG1 );
-               $botMax = ( $this->fld_content ? ApiBase::LIMIT_SML2 : ApiBase::LIMIT_BIG2 );
-               $limit = $params['limit'];
-               if ( $limit == 'max' ) {
-                       $limit = $this->getMain()->canApiHighLimits() ? $botMax : $userMax;
-                       $this->getResult()->setParsedLimit( $this->getModuleName(), $limit );
-               }
+               $this->addTables( array( 'revision', 'page' ) );
+               $this->addJoinConds(
+                       array( 'page' => array( 'INNER JOIN', array( 'page_id = rev_page' ) ) )
+               );
 
-               if ( !is_null( $this->token ) || $pageCount > 0 ) {
-                       $this->addFields( Revision::selectPageFields() );
+               if ( $resultPageSet === null ) {
+                       $this->parseParameters( $params );
+                       $this->token = $params['token'];
+                       $this->addFields( Revision::selectFields() );
+                       if ( $this->token !== null || $pageCount > 0 ) {
+                               $this->addFields( Revision::selectPageFields() );
+                       }
+               } else {
+                       $this->limit = $this->getParameter( 'limit' ) ?: 10;
+                       $this->addFields( array( 'rev_id', 'rev_page' ) );
                }
 
-               if ( isset( $prop['tags'] ) ) {
-                       $this->fld_tags = true;
+               if ( $this->fld_tags ) {
                        $this->addTables( 'tag_summary' );
                        $this->addJoinConds(
                                array( 'tag_summary' => array( 'LEFT JOIN', array( 'rev_id=ts_rev_id' ) ) )
@@ -211,7 +167,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                        $this->addWhereFld( 'ct_tag', $params['tag'] );
                }
 
-               if ( isset( $prop['content'] ) || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+               if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
                        // For each page we will request, the user must have read rights for that page
                        $user = $this->getUser();
                        /** @var $title Title */
@@ -224,28 +180,11 @@ class ApiQueryRevisions extends ApiQueryBase {
                        }
 
                        $this->addTables( 'text' );
-                       $this->addWhere( 'rev_text_id=old_id' );
+                       $this->addJoinConds(
+                               array( 'text' => array( 'INNER JOIN', array( 'rev_text_id=old_id' ) ) )
+                       );
                        $this->addFields( 'old_id' );
                        $this->addFields( Revision::selectTextFields() );
-
-                       $this->fld_content = isset( $prop['content'] );
-
-                       $this->expandTemplates = $params['expandtemplates'];
-                       $this->generateXML = $params['generatexml'];
-                       $this->parseContent = $params['parse'];
-                       if ( $this->parseContent ) {
-                               // Must manually initialize unset limit
-                               if ( is_null( $limit ) ) {
-                                       $limit = 1;
-                               }
-                               // We are only going to parse 1 revision per request
-                               $this->validateLimit( 'limit', $limit, 1, 1, 1 );
-                       }
-                       if ( isset( $params['section'] ) ) {
-                               $this->section = $params['section'];
-                       } else {
-                               $this->section = false;
-                       }
                }
 
                // add user name, if needed
@@ -255,9 +194,6 @@ class ApiQueryRevisions extends ApiQueryBase {
                        $this->addFields( Revision::selectUserFields() );
                }
 
-               // Bug 24166 - API error when using rvprop=tags
-               $this->addTables( 'revision' );
-
                if ( $enumRevMode ) {
                        // This is mostly to prevent parameter errors (and optimize SQL?)
                        if ( !is_null( $params['startid'] ) && !is_null( $params['start'] ) ) {
@@ -300,12 +236,6 @@ class ApiQueryRevisions extends ApiQueryBase {
                                        $params['start'], $params['end'], false );
                        }
 
-                       // must manually initialize unset limit
-                       if ( is_null( $limit ) ) {
-                               $limit = 10;
-                       }
-                       $this->validateLimit( 'limit', $limit, 1, $userMax, $botMax );
-
                        // There is only one ID, use it
                        $ids = array_keys( $pageSet->getGoodTitles() );
                        $this->addWhereFld( 'rev_page', reset( $ids ) );
@@ -330,11 +260,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                                }
                        }
                } elseif ( $revCount > 0 ) {
-                       $max = $this->getMain()->canApiHighLimits() ? $botMax : $userMax;
-                       $revs = $pageSet->getRevisionIDs();
-                       if ( self::truncateArray( $revs, $max ) ) {
-                               $this->setWarning( "Too many values supplied for parameter 'revids': the limit is $max" );
-                       }
+                       $revs = $pageSet->getLiveRevisionIDs();
 
                        // Get all revision IDs
                        $this->addWhereFld( 'rev_id', array_keys( $revs ) );
@@ -343,19 +269,11 @@ class ApiQueryRevisions extends ApiQueryBase {
                                $this->addWhere( 'rev_id >= ' . intval( $params['continue'] ) );
                        }
                        $this->addOption( 'ORDER BY', 'rev_id' );
-
-                       // assumption testing -- we should never get more then $revCount rows.
-                       $limit = $revCount;
                } elseif ( $pageCount > 0 ) {
-                       $max = $this->getMain()->canApiHighLimits() ? $botMax : $userMax;
                        $titles = $pageSet->getGoodTitles();
-                       if ( self::truncateArray( $titles, $max ) ) {
-                               $this->setWarning( "Too many values supplied for parameter 'titles': the limit is $max" );
-                       }
 
                        // When working in multi-page non-enumeration mode,
                        // limit to the latest revision only
-                       $this->addWhere( 'page_id=rev_page' );
                        $this->addWhere( 'page_latest=rev_id' );
 
                        // Get all page IDs
@@ -378,31 +296,20 @@ class ApiQueryRevisions extends ApiQueryBase {
                                'rev_page',
                                'rev_id'
                        ) );
-
-                       // assumption testing -- we should never get more then $pageCount rows.
-                       $limit = $pageCount;
                } else {
                        ApiBase::dieDebug( __METHOD__, 'param validation?' );
                }
 
-               $this->addOption( 'LIMIT', $limit + 1 );
+               $this->addOption( 'LIMIT', $this->limit + 1 );
 
                $count = 0;
+               $generated = array();
                $res = $this->select( __METHOD__ );
 
                foreach ( $res as $row ) {
-                       if ( ++$count > $limit ) {
+                       if ( ++$count > $this->limit ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               if ( !$enumRevMode ) {
-                                       ApiBase::dieDebug( __METHOD__, 'Got more rows then expected' ); // bug report
-                               }
-                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
-                               break;
-                       }
-
-                       $fit = $this->addPageSubItem( $row->rev_page, $this->extractRowInfo( $row ), 'rev' );
-                       if ( !$fit ) {
                                if ( $enumRevMode ) {
                                        $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                } elseif ( $revCount > 0 ) {
@@ -413,434 +320,124 @@ class ApiQueryRevisions extends ApiQueryBase {
                                }
                                break;
                        }
-               }
-       }
-
-       private function extractRowInfo( $row ) {
-               $revision = new Revision( $row );
-               $title = $revision->getTitle();
-               $user = $this->getUser();
-               $vals = array();
-               $anyHidden = false;
-
-               if ( $this->fld_ids ) {
-                       $vals['revid'] = intval( $revision->getId() );
-                       // $vals['oldid'] = intval( $row->rev_text_id ); // todo: should this be exposed?
-                       if ( !is_null( $revision->getParentId() ) ) {
-                               $vals['parentid'] = intval( $revision->getParentId() );
-                       }
-               }
-
-               if ( $this->fld_flags && $revision->isMinor() ) {
-                       $vals['minor'] = '';
-               }
-
-               if ( $this->fld_user || $this->fld_userid ) {
-                       if ( $revision->isDeleted( Revision::DELETED_USER ) ) {
-                               $vals['userhidden'] = '';
-                               $anyHidden = true;
-                       }
-                       if ( $revision->userCan( Revision::DELETED_USER, $user ) ) {
-                               if ( $this->fld_user ) {
-                                       $vals['user'] = $revision->getRawUserText();
-                               }
-                               $userid = $revision->getRawUser();
-                               if ( !$userid ) {
-                                       $vals['anon'] = '';
-                               }
-
-                               if ( $this->fld_userid ) {
-                                       $vals['userid'] = $userid;
-                               }
-                       }
-               }
-
-               if ( $this->fld_timestamp ) {
-                       $vals['timestamp'] = wfTimestamp( TS_ISO_8601, $revision->getTimestamp() );
-               }
-
-               if ( $this->fld_size ) {
-                       if ( !is_null( $revision->getSize() ) ) {
-                               $vals['size'] = intval( $revision->getSize() );
-                       } else {
-                               $vals['size'] = 0;
-                       }
-               }
-
-               if ( $this->fld_sha1 ) {
-                       if ( $revision->isDeleted( Revision::DELETED_TEXT ) ) {
-                               $vals['sha1hidden'] = '';
-                               $anyHidden = true;
-                       }
-                       if ( $revision->userCan( Revision::DELETED_TEXT, $user ) ) {
-                               if ( $revision->getSha1() != '' ) {
-                                       $vals['sha1'] = wfBaseConvert( $revision->getSha1(), 36, 16, 40 );
-                               } else {
-                                       $vals['sha1'] = '';
-                               }
-                       }
-               }
-
-               if ( $this->fld_contentmodel ) {
-                       $vals['contentmodel'] = $revision->getContentModel();
-               }
-
-               if ( $this->fld_comment || $this->fld_parsedcomment ) {
-                       if ( $revision->isDeleted( Revision::DELETED_COMMENT ) ) {
-                               $vals['commenthidden'] = '';
-                               $anyHidden = true;
-                       }
-                       if ( $revision->userCan( Revision::DELETED_COMMENT, $user ) ) {
-                               $comment = $revision->getRawComment();
-
-                               if ( $this->fld_comment ) {
-                                       $vals['comment'] = $comment;
-                               }
-
-                               if ( $this->fld_parsedcomment ) {
-                                       $vals['parsedcomment'] = Linker::formatComment( $comment, $title );
-                               }
-                       }
-               }
 
-               if ( $this->fld_tags ) {
-                       if ( $row->ts_tags ) {
-                               $tags = explode( ',', $row->ts_tags );
-                               $this->getResult()->setIndexedTagName( $tags, 'tag' );
-                               $vals['tags'] = $tags;
+                       if ( $resultPageSet !== null ) {
+                               $generated[] = $row->rev_id;
                        } else {
-                               $vals['tags'] = array();
-                       }
-               }
-
-               if ( !is_null( $this->token ) ) {
-                       $tokenFunctions = $this->getTokenFunctions();
-                       foreach ( $this->token as $t ) {
-                               $val = call_user_func( $tokenFunctions[$t], $title->getArticleID(), $title, $revision );
-                               if ( $val === false ) {
-                                       $this->setWarning( "Action '$t' is not allowed for the current user" );
-                               } else {
-                                       $vals[$t . 'token'] = $val;
-                               }
-                       }
-               }
-
-               $content = null;
-               global $wgParser;
-               if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
-                       $content = $revision->getContent( Revision::FOR_THIS_USER, $this->getUser() );
-                       // Expand templates after getting section content because
-                       // template-added sections don't count and Parser::preprocess()
-                       // will have less input
-                       if ( $content && $this->section !== false ) {
-                               $content = $content->getSection( $this->section, false );
-                               if ( !$content ) {
-                                       $this->dieUsage(
-                                               "There is no section {$this->section} in r" . $revision->getId(),
-                                               'nosuchsection'
-                                       );
-                               }
-                       }
-                       if ( $revision->isDeleted( Revision::DELETED_TEXT ) ) {
-                               $vals['texthidden'] = '';
-                               $anyHidden = true;
-                       } elseif ( !$content ) {
-                               $vals['textmissing'] = '';
-                       }
-               }
-               if ( $this->fld_content && $content ) {
-                       $text = null;
-
-                       if ( $this->generateXML ) {
-                               if ( $content->getModel() === CONTENT_MODEL_WIKITEXT ) {
-                                       $t = $content->getNativeData(); # note: don't set $text
-
-                                       $wgParser->startExternalParse(
-                                               $title,
-                                               ParserOptions::newFromContext( $this->getContext() ),
-                                               OT_PREPROCESS
-                                       );
-                                       $dom = $wgParser->preprocessToDom( $t );
-                                       if ( is_callable( array( $dom, 'saveXML' ) ) ) {
-                                               $xml = $dom->saveXML();
-                                       } else {
-                                               $xml = $dom->__toString();
+                               $revision = new Revision( $row );
+                               $rev = $this->extractRevisionInfo( $revision, $row );
+
+                               if ( $this->token !== null ) {
+                                       $title = $revision->getTitle();
+                                       $tokenFunctions = $this->getTokenFunctions();
+                                       foreach ( $this->token as $t ) {
+                                               $val = call_user_func( $tokenFunctions[$t], $title->getArticleID(), $title, $revision );
+                                               if ( $val === false ) {
+                                                       $this->setWarning( "Action '$t' is not allowed for the current user" );
+                                               } else {
+                                                       $rev[$t . 'token'] = $val;
+                                               }
                                        }
-                                       $vals['parsetree'] = $xml;
-                               } else {
-                                       $this->setWarning( "Conversion to XML is supported for wikitext only, " .
-                                               $title->getPrefixedDBkey() .
-                                               " uses content model " . $content->getModel() );
-                               }
-                       }
-
-                       if ( $this->expandTemplates && !$this->parseContent ) {
-                               #XXX: implement template expansion for all content types in ContentHandler?
-                               if ( $content->getModel() === CONTENT_MODEL_WIKITEXT ) {
-                                       $text = $content->getNativeData();
-
-                                       $text = $wgParser->preprocess(
-                                               $text,
-                                               $title,
-                                               ParserOptions::newFromContext( $this->getContext() )
-                                       );
-                               } else {
-                                       $this->setWarning( "Template expansion is supported for wikitext only, " .
-                                               $title->getPrefixedDBkey() .
-                                               " uses content model " . $content->getModel() );
-
-                                       $text = false;
                                }
-                       }
-                       if ( $this->parseContent ) {
-                               $po = $content->getParserOutput(
-                                       $title,
-                                       $revision->getId(),
-                                       ParserOptions::newFromContext( $this->getContext() )
-                               );
-                               $text = $po->getText();
-                       }
-
-                       if ( $text === null ) {
-                               $format = $this->contentFormat ? $this->contentFormat : $content->getDefaultFormat();
-                               $model = $content->getModel();
-
-                               if ( !$content->isSupportedFormat( $format ) ) {
-                                       $name = $title->getPrefixedDBkey();
-
-                                       $this->dieUsage( "The requested format {$this->contentFormat} is not supported " .
-                                               "for content model $model used by $name", 'badformat' );
-                               }
-
-                               $text = $content->serialize( $format );
 
-                               // always include format and model.
-                               // Format is needed to deserialize, model is needed to interpret.
-                               $vals['contentformat'] = $format;
-                               $vals['contentmodel'] = $model;
-                       }
-
-                       if ( $text !== false ) {
-                               ApiResult::setContent( $vals, $text );
-                       }
-               }
-
-               if ( $content && ( !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) ) {
-                       static $n = 0; // Number of uncached diffs we've had
-
-                       if ( $n < $this->getConfig()->get( 'APIMaxUncachedDiffs' ) ) {
-                               $vals['diff'] = array();
-                               $context = new DerivativeContext( $this->getContext() );
-                               $context->setTitle( $title );
-                               $handler = $revision->getContentHandler();
-
-                               if ( !is_null( $this->difftotext ) ) {
-                                       $model = $title->getContentModel();
-
-                                       if ( $this->contentFormat
-                                               && !ContentHandler::getForModelID( $model )->isSupportedFormat( $this->contentFormat )
-                                       ) {
-
-                                               $name = $title->getPrefixedDBkey();
-
-                                               $this->dieUsage( "The requested format {$this->contentFormat} is not supported for " .
-                                                       "content model $model used by $name", 'badformat' );
+                               $fit = $this->addPageSubItem( $row->rev_page, $rev, 'rev' );
+                               if ( !$fit ) {
+                                       if ( $enumRevMode ) {
+                                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
+                                       } elseif ( $revCount > 0 ) {
+                                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
+                                       } else {
+                                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_page ) .
+                                                       '|' . intval( $row->rev_id ) );
                                        }
-
-                                       $difftocontent = ContentHandler::makeContent(
-                                               $this->difftotext,
-                                               $title,
-                                               $model,
-                                               $this->contentFormat
-                                       );
-
-                                       $engine = $handler->createDifferenceEngine( $context );
-                                       $engine->setContent( $content, $difftocontent );
-                               } else {
-                                       $engine = $handler->createDifferenceEngine( $context, $revision->getID(), $this->diffto );
-                                       $vals['diff']['from'] = $engine->getOldid();
-                                       $vals['diff']['to'] = $engine->getNewid();
-                               }
-                               $difftext = $engine->getDiffBody();
-                               ApiResult::setContent( $vals['diff'], $difftext );
-                               if ( !$engine->wasCacheHit() ) {
-                                       $n++;
+                                       break;
                                }
-                       } else {
-                               $vals['diff']['notcached'] = '';
                        }
                }
 
-               if ( $anyHidden && $revision->isDeleted( Revision::DELETED_RESTRICTED ) ) {
-                       $vals['suppressed'] = '';
+               if ( $resultPageSet !== null ) {
+                       $resultPageSet->populateFromRevisionIDs( $generated );
                }
-
-               return $vals;
        }
 
        public function getCacheMode( $params ) {
                if ( isset( $params['token'] ) ) {
                        return 'private';
                }
-               if ( $this->userCanSeeRevDel() ) {
-                       return 'private';
-               }
-               if ( !is_null( $params['prop'] ) && in_array( 'parsedcomment', $params['prop'] ) ) {
-                       // formatComment() calls wfMessage() among other things
-                       return 'anon-public-user-private';
-               }
-
-               return 'public';
+               return parent::getCacheMode( $params );
        }
 
        public function getAllowedParams() {
-               return array(
-                       'prop' => array(
-                               ApiBase::PARAM_ISMULTI => true,
-                               ApiBase::PARAM_DFLT => 'ids|timestamp|flags|comment|user',
-                               ApiBase::PARAM_TYPE => array(
-                                       'ids',
-                                       'flags',
-                                       'timestamp',
-                                       'user',
-                                       'userid',
-                                       'size',
-                                       'sha1',
-                                       'contentmodel',
-                                       'comment',
-                                       'parsedcomment',
-                                       'content',
-                                       'tags'
-                               )
-                       ),
-                       'limit' => array(
-                               ApiBase::PARAM_TYPE => 'limit',
-                               ApiBase::PARAM_MIN => 1,
-                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
-                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
-                       ),
+               $ret = parent::getAllowedParams() + array(
                        'startid' => array(
-                               ApiBase::PARAM_TYPE => 'integer'
+                               ApiBase::PARAM_TYPE => 'integer',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'endid' => array(
-                               ApiBase::PARAM_TYPE => 'integer'
+                               ApiBase::PARAM_TYPE => 'integer',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'start' => array(
-                               ApiBase::PARAM_TYPE => 'timestamp'
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'end' => array(
-                               ApiBase::PARAM_TYPE => 'timestamp'
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'dir' => array(
                                ApiBase::PARAM_DFLT => 'older',
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'user' => array(
-                               ApiBase::PARAM_TYPE => 'user'
+                               ApiBase::PARAM_TYPE => 'user',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'excludeuser' => array(
-                               ApiBase::PARAM_TYPE => 'user'
+                               ApiBase::PARAM_TYPE => 'user',
+                               ApiBase::PARAM_HELP_MSG_INFO => array( array( 'singlepageonly' ) ),
                        ),
                        'tag' => null,
-                       'expandtemplates' => false,
-                       'generatexml' => false,
-                       'parse' => false,
-                       'section' => null,
                        'token' => array(
                                ApiBase::PARAM_DEPRECATED => true,
                                ApiBase::PARAM_TYPE => array_keys( $this->getTokenFunctions() ),
                                ApiBase::PARAM_ISMULTI => true
                        ),
-                       'continue' => null,
-                       'diffto' => null,
-                       'difftotext' => null,
-                       'contentformat' => array(
-                               ApiBase::PARAM_TYPE => ContentHandler::getAllContentFormats(),
-                               ApiBase::PARAM_DFLT => null
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
                );
-       }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
+               $ret['limit'][ApiBase::PARAM_HELP_MSG_INFO] = array( array( 'singlepageonly' ) );
 
-               return array(
-                       'prop' => array(
-                               'Which properties to get for each revision:',
-                               ' ids            - The ID of the revision',
-                               ' flags          - Revision flags (minor)',
-                               ' timestamp      - The timestamp of the revision',
-                               ' user           - User that made the revision',
-                               ' userid         - User id of revision creator',
-                               ' size           - Length (bytes) of the revision',
-                               ' sha1           - SHA-1 (base 16) of the revision',
-                               ' contentmodel   - Content model id',
-                               ' comment        - Comment by the user for revision',
-                               ' parsedcomment  - Parsed comment by the user for the revision',
-                               ' content        - Text of the revision',
-                               ' tags           - Tags for the revision',
-                       ),
-                       'limit' => 'Limit how many revisions will be returned (enum)',
-                       'startid' => 'From which revision id to start enumeration (enum)',
-                       'endid' => 'Stop revision enumeration on this revid (enum)',
-                       'start' => 'From which revision timestamp to start enumeration (enum)',
-                       'end' => 'Enumerate up to this timestamp (enum)',
-                       'dir' => $this->getDirectionDescription( $p, ' (enum)' ),
-                       'user' => 'Only include revisions made by user (enum)',
-                       'excludeuser' => 'Exclude revisions made by user (enum)',
-                       'expandtemplates' => "Expand templates in revision content (requires {$p}prop=content)",
-                       'generatexml' => "Generate XML parse tree for revision content (requires {$p}prop=content)",
-                       'parse' => array( "Parse revision content (requires {$p}prop=content).",
-                               'For performance reasons if this option is used, rvlimit is enforced to 1.' ),
-                       'section' => 'Only retrieve the content of this section number',
-                       'token' => 'Which tokens to obtain for each revision',
-                       'continue' => 'When more results are available, use this to continue',
-                       'diffto' => array( 'Revision ID to diff each revision to.',
-                               'Use "prev", "next" and "cur" for the previous, next and current revision respectively' ),
-                       'difftotext' => array(
-                               'Text to diff each revision to. Only diffs a limited number of revisions.',
-                               "Overrides {$p}diffto. If {$p}section is set, only that section will be",
-                               'diffed against this text',
-                       ),
-                       'tag' => 'Only list revisions tagged with this tag',
-                       'contentformat' => 'Serialization format used for difftotext and expected for output of content',
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       '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).'
-               );
+               return $ret;
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'Get data with content for the last revision of titles "API" and "Main Page"',
-                       '  api.php?action=query&prop=revisions&titles=API|Main%20Page&' .
-                               'rvprop=timestamp|user|comment|content',
-                       'Get last 5 revisions of the "Main Page"',
-                       '  api.php?action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
-                               'rvprop=timestamp|user|comment',
-                       'Get first 5 revisions of the "Main Page"',
-                       '  api.php?action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
-                               'rvprop=timestamp|user|comment&rvdir=newer',
-                       'Get first 5 revisions of the "Main Page" made after 2006-05-01',
-                       '  api.php?action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
-                               'rvprop=timestamp|user|comment&rvdir=newer&rvstart=20060501000000',
-                       'Get first 5 revisions of the "Main Page" that were not made made by anonymous user "127.0.0.1"',
-                       '  api.php?action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
-                               'rvprop=timestamp|user|comment&rvexcludeuser=127.0.0.1',
-                       'Get first 5 revisions of the "Main Page" that were made by the user "MediaWiki default"',
-                       '  api.php?action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
-                               'rvprop=timestamp|user|comment&rvuser=MediaWiki%20default',
+                       'action=query&prop=revisions&titles=API|Main%20Page&' .
+                               'rvprop=timestamp|user|comment|content'
+                               => 'apihelp-query+revisions-example-content',
+                       'action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
+                               'rvprop=timestamp|user|comment'
+                               => 'apihelp-query+revisions-example-last5',
+                       'action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
+                               'rvprop=timestamp|user|comment&rvdir=newer'
+                               => 'apihelp-query+revisions-example-first5',
+                       'action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
+                               'rvprop=timestamp|user|comment&rvdir=newer&rvstart=2006-05-01T00:00:00Z'
+                               => 'apihelp-query+revisions-example-first5-after',
+                       'action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
+                               'rvprop=timestamp|user|comment&rvexcludeuser=127.0.0.1'
+                               => 'apihelp-query+revisions-example-first5-not-localhost',
+                       'action=query&prop=revisions&titles=Main%20Page&rvlimit=5&' .
+                               'rvprop=timestamp|user|comment&rvuser=MediaWiki%20default'
+                               => 'apihelp-query+revisions-example-first5-user',
                );
        }
 
diff --git a/includes/api/ApiQueryRevisionsBase.php b/includes/api/ApiQueryRevisionsBase.php
new file mode 100644 (file)
index 0000000..3879d7b
--- /dev/null
@@ -0,0 +1,474 @@
+<?php
+/**
+ *
+ *
+ * Created on Oct 3, 2014 as a split from ApiQueryRevisions
+ *
+ * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * A base class for functions common to producing a list of revisions.
+ *
+ * @ingroup API
+ */
+abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
+
+       protected $limit, $diffto, $difftotext, $expandTemplates, $generateXML, $section,
+               $parseContent, $contentFormat, $setParsedLimit = true;
+
+       protected $fld_ids = false, $fld_flags = false, $fld_timestamp = false,
+               $fld_size = false, $fld_sha1 = false, $fld_comment = false,
+               $fld_parsedcomment = false, $fld_user = false, $fld_userid = false,
+               $fld_content = false, $fld_tags = false, $fld_contentmodel = false;
+
+       public function execute() {
+               $this->run();
+       }
+
+       public function executeGenerator( $resultPageSet ) {
+               $this->run( $resultPageSet );
+       }
+
+       /**
+        * @param ApiPageSet $resultPageSet
+        * @return void
+        */
+       abstract protected function run( ApiPageSet $resultPageSet = null );
+
+       /**
+        * Parse the parameters into the various instance fields.
+        *
+        * @param array $params
+        */
+       protected function parseParameters( $params ) {
+               if ( !is_null( $params['difftotext'] ) ) {
+                       $this->difftotext = $params['difftotext'];
+               } elseif ( !is_null( $params['diffto'] ) ) {
+                       if ( $params['diffto'] == 'cur' ) {
+                               $params['diffto'] = 0;
+                       }
+                       if ( ( !ctype_digit( $params['diffto'] ) || $params['diffto'] < 0 )
+                               && $params['diffto'] != 'prev' && $params['diffto'] != 'next'
+                       ) {
+                               $p = $this->getModulePrefix();
+                               $this->dieUsage(
+                                       "{$p}diffto must be set to a non-negative number, \"prev\", \"next\" or \"cur\"",
+                                       'diffto'
+                               );
+                       }
+                       // Check whether the revision exists and is readable,
+                       // DifferenceEngine returns a rather ambiguous empty
+                       // string if that's not the case
+                       if ( $params['diffto'] != 0 ) {
+                               $difftoRev = Revision::newFromID( $params['diffto'] );
+                               if ( !$difftoRev ) {
+                                       $this->dieUsageMsg( array( 'nosuchrevid', $params['diffto'] ) );
+                               }
+                               if ( !$difftoRev->userCan( Revision::DELETED_TEXT, $this->getUser() ) ) {
+                                       $this->setWarning( "Couldn't diff to r{$difftoRev->getID()}: content is hidden" );
+                                       $params['diffto'] = null;
+                               }
+                       }
+                       $this->diffto = $params['diffto'];
+               }
+
+               $prop = array_flip( $params['prop'] );
+
+               $this->fld_ids = isset( $prop['ids'] );
+               $this->fld_flags = isset( $prop['flags'] );
+               $this->fld_timestamp = isset( $prop['timestamp'] );
+               $this->fld_comment = isset( $prop['comment'] );
+               $this->fld_parsedcomment = isset( $prop['parsedcomment'] );
+               $this->fld_size = isset( $prop['size'] );
+               $this->fld_sha1 = isset( $prop['sha1'] );
+               $this->fld_content = isset( $prop['content'] );
+               $this->fld_contentmodel = isset( $prop['contentmodel'] );
+               $this->fld_userid = isset( $prop['userid'] );
+               $this->fld_user = isset( $prop['user'] );
+               $this->fld_tags = isset( $prop['tags'] );
+
+               if ( !empty( $params['contentformat'] ) ) {
+                       $this->contentFormat = $params['contentformat'];
+               }
+
+               $this->limit = $params['limit'];
+
+               $smallLimit = false;
+               if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+                       $smallLimit = true;
+                       $this->expandTemplates = $params['expandtemplates'];
+                       $this->generateXML = $params['generatexml'];
+                       $this->parseContent = $params['parse'];
+                       if ( $this->parseContent ) {
+                               // Must manually initialize unset limit
+                               if ( is_null( $this->limit ) ) {
+                                       $this->limit = 1;
+                               }
+                       }
+                       if ( isset( $params['section'] ) ) {
+                               $this->section = $params['section'];
+                       } else {
+                               $this->section = false;
+                       }
+               }
+
+               $userMax = $this->parseContent ? 1 : ( $smallLimit ? ApiBase::LIMIT_SML1 : ApiBase::LIMIT_BIG1 );
+               $botMax = $this->parseContent ? 1 : ( $smallLimit ? ApiBase::LIMIT_SML2 : ApiBase::LIMIT_BIG2 );
+               if ( $this->limit == 'max' ) {
+                       $this->limit = $this->getMain()->canApiHighLimits() ? $botMax : $userMax;
+                       if ( $this->setParsedLimit ) {
+                               $this->getResult()->setParsedLimit( $this->getModuleName(), $this->limit );
+                       }
+               }
+
+               if ( is_null( $this->limit ) ) {
+                       $this->limit = 10;
+               }
+               $this->validateLimit( 'limit', $this->limit, 1, $userMax, $botMax );
+       }
+
+       /**
+        * Extract information from the Revision
+        *
+        * @param Revision $revision
+        * @param object $row Should have a field 'ts_tags' if $this->fld_tags is set
+        * @return array
+        */
+       protected function extractRevisionInfo( Revision $revision, $row ) {
+               $title = $revision->getTitle();
+               $user = $this->getUser();
+               $vals = array();
+               $anyHidden = false;
+
+               if ( $this->fld_ids ) {
+                       $vals['revid'] = intval( $revision->getId() );
+                       if ( !is_null( $revision->getParentId() ) ) {
+                               $vals['parentid'] = intval( $revision->getParentId() );
+                       }
+               }
+
+               if ( $this->fld_flags && $revision->isMinor() ) {
+                       $vals['minor'] = '';
+               }
+
+               if ( $this->fld_user || $this->fld_userid ) {
+                       if ( $revision->isDeleted( Revision::DELETED_USER ) ) {
+                               $vals['userhidden'] = '';
+                               $anyHidden = true;
+                       }
+                       if ( $revision->userCan( Revision::DELETED_USER, $user ) ) {
+                               if ( $this->fld_user ) {
+                                       $vals['user'] = $revision->getRawUserText();
+                               }
+                               $userid = $revision->getRawUser();
+                               if ( !$userid ) {
+                                       $vals['anon'] = '';
+                               }
+
+                               if ( $this->fld_userid ) {
+                                       $vals['userid'] = $userid;
+                               }
+                       }
+               }
+
+               if ( $this->fld_timestamp ) {
+                       $vals['timestamp'] = wfTimestamp( TS_ISO_8601, $revision->getTimestamp() );
+               }
+
+               if ( $this->fld_size ) {
+                       if ( !is_null( $revision->getSize() ) ) {
+                               $vals['size'] = intval( $revision->getSize() );
+                       } else {
+                               $vals['size'] = 0;
+                       }
+               }
+
+               if ( $this->fld_sha1 ) {
+                       if ( $revision->isDeleted( Revision::DELETED_TEXT ) ) {
+                               $vals['sha1hidden'] = '';
+                               $anyHidden = true;
+                       }
+                       if ( $revision->userCan( Revision::DELETED_TEXT, $user ) ) {
+                               if ( $revision->getSha1() != '' ) {
+                                       $vals['sha1'] = wfBaseConvert( $revision->getSha1(), 36, 16, 40 );
+                               } else {
+                                       $vals['sha1'] = '';
+                               }
+                       }
+               }
+
+               if ( $this->fld_contentmodel ) {
+                       $vals['contentmodel'] = $revision->getContentModel();
+               }
+
+               if ( $this->fld_comment || $this->fld_parsedcomment ) {
+                       if ( $revision->isDeleted( Revision::DELETED_COMMENT ) ) {
+                               $vals['commenthidden'] = '';
+                               $anyHidden = true;
+                       }
+                       if ( $revision->userCan( Revision::DELETED_COMMENT, $user ) ) {
+                               $comment = $revision->getRawComment();
+
+                               if ( $this->fld_comment ) {
+                                       $vals['comment'] = $comment;
+                               }
+
+                               if ( $this->fld_parsedcomment ) {
+                                       $vals['parsedcomment'] = Linker::formatComment( $comment, $title );
+                               }
+                       }
+               }
+
+               if ( $this->fld_tags ) {
+                       if ( $row->ts_tags ) {
+                               $tags = explode( ',', $row->ts_tags );
+                               $this->getResult()->setIndexedTagName( $tags, 'tag' );
+                               $vals['tags'] = $tags;
+                       } else {
+                               $vals['tags'] = array();
+                       }
+               }
+
+               $content = null;
+               global $wgParser;
+               if ( $this->fld_content || !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) {
+                       $content = $revision->getContent( Revision::FOR_THIS_USER, $this->getUser() );
+                       // Expand templates after getting section content because
+                       // template-added sections don't count and Parser::preprocess()
+                       // will have less input
+                       if ( $content && $this->section !== false ) {
+                               $content = $content->getSection( $this->section, false );
+                               if ( !$content ) {
+                                       $this->dieUsage(
+                                               "There is no section {$this->section} in r" . $revision->getId(),
+                                               'nosuchsection'
+                                       );
+                               }
+                       }
+                       if ( $revision->isDeleted( Revision::DELETED_TEXT ) ) {
+                               $vals['texthidden'] = '';
+                               $anyHidden = true;
+                       } elseif ( !$content ) {
+                               $vals['textmissing'] = '';
+                       }
+               }
+               if ( $this->fld_content && $content ) {
+                       $text = null;
+
+                       if ( $this->generateXML ) {
+                               if ( $content->getModel() === CONTENT_MODEL_WIKITEXT ) {
+                                       $t = $content->getNativeData(); # note: don't set $text
+
+                                       $wgParser->startExternalParse(
+                                               $title,
+                                               ParserOptions::newFromContext( $this->getContext() ),
+                                               Parser::OT_PREPROCESS
+                                       );
+                                       $dom = $wgParser->preprocessToDom( $t );
+                                       if ( is_callable( array( $dom, 'saveXML' ) ) ) {
+                                               $xml = $dom->saveXML();
+                                       } else {
+                                               $xml = $dom->__toString();
+                                       }
+                                       $vals['parsetree'] = $xml;
+                               } else {
+                                       $vals['badcontentformatforparsetree'] = '';
+                                       $this->setWarning( "Conversion to XML is supported for wikitext only, " .
+                                               $title->getPrefixedDBkey() .
+                                               " uses content model " . $content->getModel() );
+                               }
+                       }
+
+                       if ( $this->expandTemplates && !$this->parseContent ) {
+                               #XXX: implement template expansion for all content types in ContentHandler?
+                               if ( $content->getModel() === CONTENT_MODEL_WIKITEXT ) {
+                                       $text = $content->getNativeData();
+
+                                       $text = $wgParser->preprocess(
+                                               $text,
+                                               $title,
+                                               ParserOptions::newFromContext( $this->getContext() )
+                                       );
+                               } else {
+                                       $this->setWarning( "Template expansion is supported for wikitext only, " .
+                                               $title->getPrefixedDBkey() .
+                                               " uses content model " . $content->getModel() );
+                                       $vals['badcontentformat'] = '';
+                                       $text = false;
+                               }
+                       }
+                       if ( $this->parseContent ) {
+                               $po = $content->getParserOutput(
+                                       $title,
+                                       $revision->getId(),
+                                       ParserOptions::newFromContext( $this->getContext() )
+                               );
+                               $text = $po->getText();
+                       }
+
+                       if ( $text === null ) {
+                               $format = $this->contentFormat ? $this->contentFormat : $content->getDefaultFormat();
+                               $model = $content->getModel();
+
+                               if ( !$content->isSupportedFormat( $format ) ) {
+                                       $name = $title->getPrefixedDBkey();
+                                       $this->setWarning( "The requested format {$this->contentFormat} is not " .
+                                               "supported for content model $model used by $name" );
+                                       $vals['badcontentformat'] = '';
+                                       $text = false;
+                               } else {
+                                       $text = $content->serialize( $format );
+                                       // always include format and model.
+                                       // Format is needed to deserialize, model is needed to interpret.
+                                       $vals['contentformat'] = $format;
+                                       $vals['contentmodel'] = $model;
+                               }
+                       }
+
+                       if ( $text !== false ) {
+                               ApiResult::setContent( $vals, $text );
+                       }
+               }
+
+               if ( $content && ( !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) ) {
+                       static $n = 0; // Number of uncached diffs we've had
+
+                       if ( $n < $this->getConfig()->get( 'APIMaxUncachedDiffs' ) ) {
+                               $vals['diff'] = array();
+                               $context = new DerivativeContext( $this->getContext() );
+                               $context->setTitle( $title );
+                               $handler = $revision->getContentHandler();
+
+                               if ( !is_null( $this->difftotext ) ) {
+                                       $model = $title->getContentModel();
+
+                                       if ( $this->contentFormat
+                                               && !ContentHandler::getForModelID( $model )->isSupportedFormat( $this->contentFormat )
+                                       ) {
+                                               $name = $title->getPrefixedDBkey();
+                                               $this->setWarning( "The requested format {$this->contentFormat} is not " .
+                                                       "supported for content model $model used by $name" );
+                                               $vals['diff']['badcontentformat'] = '';
+                                               $engine = null;
+                                       } else {
+                                               $difftocontent = ContentHandler::makeContent(
+                                                       $this->difftotext,
+                                                       $title,
+                                                       $model,
+                                                       $this->contentFormat
+                                               );
+
+                                               $engine = $handler->createDifferenceEngine( $context );
+                                               $engine->setContent( $content, $difftocontent );
+                                       }
+                               } else {
+                                       $engine = $handler->createDifferenceEngine( $context, $revision->getID(), $this->diffto );
+                                       $vals['diff']['from'] = $engine->getOldid();
+                                       $vals['diff']['to'] = $engine->getNewid();
+                               }
+                               if ( $engine ) {
+                                       $difftext = $engine->getDiffBody();
+                                       ApiResult::setContent( $vals['diff'], $difftext );
+                                       if ( !$engine->wasCacheHit() ) {
+                                               $n++;
+                                       }
+                               }
+                       } else {
+                               $vals['diff']['notcached'] = '';
+                       }
+               }
+
+               if ( $anyHidden && $revision->isDeleted( Revision::DELETED_RESTRICTED ) ) {
+                       $vals['suppressed'] = '';
+               }
+
+               return $vals;
+       }
+
+       public function getCacheMode( $params ) {
+               if ( $this->userCanSeeRevDel() ) {
+                       return 'private';
+               }
+
+               return 'public';
+       }
+
+       public function getAllowedParams() {
+               return array(
+                       'prop' => array(
+                               ApiBase::PARAM_ISMULTI => true,
+                               ApiBase::PARAM_DFLT => 'ids|timestamp|flags|comment|user',
+                               ApiBase::PARAM_TYPE => array(
+                                       'ids',
+                                       'flags',
+                                       'timestamp',
+                                       'user',
+                                       'userid',
+                                       'size',
+                                       'sha1',
+                                       'contentmodel',
+                                       'comment',
+                                       'parsedcomment',
+                                       'content',
+                                       'tags'
+                               ),
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-prop',
+                       ),
+                       'limit' => array(
+                               ApiBase::PARAM_TYPE => 'limit',
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
+                               ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-limit',
+                       ),
+                       'expandtemplates' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-expandtemplates',
+                       ),
+                       'generatexml' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-generatexml',
+                       ),
+                       'parse' => array(
+                               ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-parse',
+                       ),
+                       'section' => array(
+                               ApiBase::PARAM_DFLT => null,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-section',
+                       ),
+                       'diffto' => array(
+                               ApiBase::PARAM_DFLT => null,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-diffto',
+                       ),
+                       'difftotext' => array(
+                               ApiBase::PARAM_DFLT => null,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-difftotext',
+                       ),
+                       'contentformat' => array(
+                               ApiBase::PARAM_TYPE => ContentHandler::getAllContentFormats(),
+                               ApiBase::PARAM_DFLT => null,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-contentformat',
+                       ),
+               );
+       }
+
+}
index b7dcd0e..cc9f9aa 100644 (file)
@@ -168,14 +168,14 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                        $vals['timestamp'] = wfTimestamp( TS_ISO_8601, $result->getTimestamp() );
                                }
                                if ( isset( $prop['titlesnippet'] ) ) {
-                                       $vals['titlesnippet'] = $result->getTitleSnippet( $terms );
+                                       $vals['titlesnippet'] = $result->getTitleSnippet();
                                }
                                if ( !is_null( $result->getRedirectTitle() ) ) {
                                        if ( isset( $prop['redirecttitle'] ) ) {
                                                $vals['redirecttitle'] = $result->getRedirectTitle();
                                        }
                                        if ( isset( $prop['redirectsnippet'] ) ) {
-                                               $vals['redirectsnippet'] = $result->getRedirectSnippet( $terms );
+                                               $vals['redirectsnippet'] = $result->getRedirectSnippet();
                                        }
                                }
                                if ( !is_null( $result->getSectionTitle() ) ) {
@@ -303,7 +303,10 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                ),
                                ApiBase::PARAM_ISMULTI => true,
                        ),
-                       'offset' => 0,
+                       'offset' => array(
+                               ApiBase::PARAM_DFLT => 0,
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -328,47 +331,14 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                return $params;
        }
 
-       public function getParamDescription() {
-               $descriptions = array(
-                       'search' => 'Search for all page titles (or content) that has this value',
-                       'namespace' => 'The namespace(s) to enumerate',
-                       'what' => 'Search inside the text or titles',
-                       'info' => 'What metadata to return',
-                       'prop' => array(
-                               'What properties to return',
-                               ' size             - Adds the size of the page in bytes',
-                               ' wordcount        - Adds the word count of the page',
-                               ' timestamp        - Adds the timestamp of when the page was last edited',
-                               ' score            - DEPRECATED and IGNORED',
-                               ' snippet          - Adds a parsed snippet of the page',
-                               ' titlesnippet     - Adds a parsed snippet of the page title',
-                               ' redirectsnippet  - Adds a parsed snippet of the redirect title',
-                               ' redirecttitle    - Adds the title of the matching redirect',
-                               ' sectionsnippet   - Adds a parsed snippet of the matching section title',
-                               ' sectiontitle     - Adds the title of the matching section',
-                               ' hasrelated       - DEPRECATED and IGNORED',
-                       ),
-                       'offset' => 'Use this value to continue paging (return by query)',
-                       'limit' => 'How many total pages to return',
-                       'interwiki' => 'Include interwiki results in the search, if available'
-               );
-
-               if ( count( SearchEngine::getSearchTypes() ) > 1 ) {
-                       $descriptions['backend'] = 'Which search backend to use, if not the default';
-               }
-
-               return $descriptions;
-       }
-
-       public function getDescription() {
-               return 'Perform a full text search.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=search&srsearch=meaning',
-                       'api.php?action=query&list=search&srwhat=text&srsearch=meaning',
-                       'api.php?action=query&generator=search&gsrsearch=meaning&prop=info',
+                       'action=query&list=search&srsearch=meaning'
+                               => 'apihelp-query+search-example-simple',
+                       'action=query&list=search&srwhat=text&srsearch=meaning'
+                               => 'apihelp-query+search-example-text',
+                       'action=query&generator=search&gsrsearch=meaning&prop=info'
+                               => 'apihelp-query+search-example-generator',
                );
        }
 
index 311438f..18bbc5a 100644 (file)
@@ -481,9 +481,6 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data = array();
                $data['pages'] = intval( SiteStats::pages() );
                $data['articles'] = intval( SiteStats::articles() );
-               if ( !$this->getConfig()->get( 'DisableCounters' ) ) {
-                       $data['views'] = intval( SiteStats::views() );
-               }
                $data['edits'] = intval( SiteStats::edits() );
                $data['images'] = intval( SiteStats::images() );
                $data['users'] = intval( SiteStats::users() );
@@ -837,54 +834,14 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'prop' => array(
-                               'Which sysinfo properties to get:',
-                               ' general               - Overall system information',
-                               ' namespaces            - List of registered namespaces and their canonical names',
-                               ' namespacealiases      - List of registered namespace aliases',
-                               ' specialpagealiases    - List of special page aliases',
-                               ' magicwords            - List of magic words and their aliases',
-                               ' statistics            - Returns site statistics',
-                               ' interwikimap          - Returns interwiki map ' .
-                                       "(optionally filtered, (optionally localised by using {$p}inlanguagecode))",
-                               ' dbrepllag             - Returns database server with the highest replication lag',
-                               ' usergroups            - Returns user groups and the associated permissions',
-                               ' extensions            - Returns extensions installed on the wiki',
-                               ' fileextensions        - Returns list of file extensions allowed to be uploaded',
-                               ' rightsinfo            - Returns wiki rights (license) information if available',
-                               ' restrictions          - Returns information on available restriction (protection) types',
-                               ' languages             - Returns a list of languages MediaWiki supports ' .
-                                       "(optionally localised by using {$p}inlanguagecode)",
-                               ' skins                 - Returns a list of all enabled skins ' .
-                                       "(optionally localised by using {$p}inlanguagecode, otherwise in content language)",
-                               ' extensiontags         - Returns a list of parser extension tags',
-                               ' functionhooks         - Returns a list of parser function hooks',
-                               ' showhooks             - Returns a list of all subscribed hooks (contents of $wgHooks)',
-                               ' variables             - Returns a list of variable IDs',
-                               ' protocols             - Returns a list of protocols that are allowed in external links.',
-                               ' defaultoptions        - Returns the default values for user preferences.',
-                       ),
-                       'filteriw' => 'Return only local or only nonlocal entries of the interwiki map',
-                       'showalldb' => 'List all database servers, not just the one lagging the most',
-                       'numberingroup' => 'Lists the number of users in user groups',
-                       'inlanguagecode' => 'Language code for localised language names ' .
-                               '(best effort, use CLDR extension) and skin names',
-               );
-       }
-
-       public function getDescription() {
-               return 'Return general information about the site.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&meta=siteinfo&siprop=general|namespaces|namespacealiases|statistics',
-                       'api.php?action=query&meta=siteinfo&siprop=interwikimap&sifilteriw=local',
-                       'api.php?action=query&meta=siteinfo&siprop=dbrepllag&sishowalldb=',
+                       'action=query&meta=siteinfo&siprop=general|namespaces|namespacealiases|statistics'
+                               => 'apihelp-query+siteinfo-example-simple',
+                       'action=query&meta=siteinfo&siprop=interwikimap&sifilteriw=local'
+                               => 'apihelp-query+siteinfo-example-interwiki',
+                       'action=query&meta=siteinfo&siprop=dbrepllag&sishowalldb='
+                               => 'apihelp-query+siteinfo-example-replag',
                );
        }
 
index db92856..be6f669 100644 (file)
@@ -94,46 +94,32 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
                        ),
                        'urlwidth' => array(
                                ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_DFLT => -1
+                               ApiBase::PARAM_DFLT => -1,
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-query+imageinfo-param-urlwidth',
+                                       ApiQueryImageInfo::TRANSFORM_LIMIT,
+                               ),
                        ),
                        'urlheight' => array(
                                ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_DFLT => -1
+                               ApiBase::PARAM_DFLT => -1,
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+imageinfo-param-urlheight',
                        ),
                        'urlparam' => array(
                                ApiBase::PARAM_TYPE => 'string',
                                ApiBase::PARAM_DFLT => '',
+                               ApiBase::PARAM_HELP_MSG => 'apihelp-query+imageinfo-param-urlparam',
                        ),
                );
        }
 
-       /**
-        * Return the API documentation for the parameters.
-        * @return array Parameter documentation.
-        */
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'prop' => self::getPropertyDescriptions( $this->propertyFilter, $p ),
-                       'filekey' => 'Key that identifies a previous upload that was stashed temporarily.',
-                       'sessionkey' => 'Alias for filekey, for backward compatibility.',
-                       'urlwidth' => "If {$p}prop=url is set, a URL to an image scaled to this width will be returned.",
-                       'urlheight' => "Similar to {$p}urlwidth. Cannot be used without {$p}urlwidth",
-                       'urlparam' => array( "A handler specific parameter string. For example, pdf's ",
-                               "might use 'page15-100px'. {$p}urlwidth must be used and be consistent with {$p}urlparam" ),
-               );
-       }
-
-       public function getDescription() {
-               return 'Returns image information for stashed images.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&prop=stashimageinfo&siifilekey=124sd34rsdf567',
-                       'api.php?action=query&prop=stashimageinfo&siifilekey=b34edoe3|bceffd4&' .
-                               'siiurlwidth=120&siiprop=url',
+                       'action=query&prop=stashimageinfo&siifilekey=124sd34rsdf567'
+                               => 'apihelp-query+stashimageinfo-example-simple',
+                       'action=query&prop=stashimageinfo&siifilekey=b34edoe3|bceffd4&' .
+                               'siiurlwidth=120&siiprop=url'
+                               => 'apihelp-query+stashimageinfo-example-params',
                );
        }
 }
index 3184564..f3b2652 100644 (file)
@@ -135,7 +135,9 @@ class ApiQueryTags extends ApiQueryBase {
 
        public function getAllowedParams() {
                return array(
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
                                ApiBase::PARAM_TYPE => 'limit',
@@ -156,27 +158,10 @@ class ApiQueryTags extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'continue' => 'When more results are available, use this to continue',
-                       'limit' => 'The maximum number of tags to list',
-                       'prop' => array(
-                               'Which properties to get',
-                               ' name         - Adds name of tag',
-                               ' displayname  - Adds system message for the tag',
-                               ' description  - Adds description of the tag',
-                               ' hitcount     - Adds the amount of revisions that have this tag',
-                       ),
-               );
-       }
-
-       public function getDescription() {
-               return 'List change tags.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=tags&tgprop=displayname|description|hitcount'
+                       'action=query&list=tags&tgprop=displayname|description|hitcount'
+                               => 'apihelp-query+tags-example-simple',
                );
        }
 
index ba9c937..279e8e3 100644 (file)
@@ -81,20 +81,12 @@ class ApiQueryTokens extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'type' => 'Type of token(s) to request'
-               );
-       }
-
-       public function getDescription() {
-               return 'Gets tokens for data-modifying actions.';
-       }
-
-       protected function getExamples() {
-               return array(
-                       'api.php?action=query&meta=tokens' => 'Retrieve a csrf token (the default)',
-                       'api.php?action=query&meta=tokens&type=watch|patrol' => 'Retrieve a watch token and a patrol token'
+                       'action=query&meta=tokens'
+                               => 'apihelp-query+tokens-example-simple',
+                       'action=query&meta=tokens&type=watch|patrol'
+                               => 'apihelp-query+tokens-example-types',
                );
        }
 
index 4b167b8..41f7ee7 100644 (file)
@@ -464,7 +464,9 @@ class ApiQueryContributions extends ApiQueryBase {
                        'end' => array(
                                ApiBase::PARAM_TYPE => 'timestamp'
                        ),
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'user' => array(
                                ApiBase::PARAM_ISMULTI => true
                        ),
@@ -474,7 +476,8 @@ class ApiQueryContributions extends ApiQueryBase {
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                        'namespace' => array(
                                ApiBase::PARAM_ISMULTI => true,
@@ -507,7 +510,11 @@ class ApiQueryContributions extends ApiQueryBase {
                                        '!top',
                                        'new',
                                        '!new',
-                               )
+                               ),
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-query+usercontribs-param-show',
+                                       $this->getConfig()->get( 'RCMaxAge' )
+                               ),
                        ),
                        'tag' => null,
                        'toponly' => array(
@@ -517,53 +524,12 @@ class ApiQueryContributions extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-               $RCMaxAge = $this->getConfig()->get( 'RCMaxAge' );
-
-               return array(
-                       'limit' => 'The maximum number of contributions to return',
-                       'start' => 'The start timestamp to return from',
-                       'end' => 'The end timestamp to return to',
-                       'continue' => 'When more results are available, use this to continue',
-                       'user' => 'The users to retrieve contributions for',
-                       'userprefix' => array(
-                               "Retrieve contributions for all users whose names begin with this value.",
-                               "Overrides {$p}user",
-                       ),
-                       'dir' => $this->getDirectionDescription( $p ),
-                       'namespace' => 'Only list contributions in these namespaces',
-                       'prop' => array(
-                               'Include additional pieces of information',
-                               ' ids            - Adds the page ID and revision ID',
-                               ' title          - Adds the title and namespace ID of the page',
-                               ' timestamp      - Adds the timestamp of the edit',
-                               ' comment        - Adds the comment of the edit',
-                               ' parsedcomment  - Adds the parsed comment of the edit',
-                               ' size           - Adds the new size of the edit',
-                               ' sizediff       - Adds the size delta of the edit against its parent',
-                               ' flags          - Adds flags of the edit',
-                               ' patrolled      - Tags patrolled edits',
-                               ' tags           - Lists tags for the edit',
-                       ),
-                       'show' => array(
-                               "Show only items that meet thse criteria, e.g. non minor edits only: {$p}show=!minor",
-                               "NOTE: If {$p}show=patrolled or {$p}show=!patrolled is set, revisions older than",
-                               "\$wgRCMaxAge ($RCMaxAge) won't be shown",
-                       ),
-                       'tag' => 'Only list revisions tagged with this tag',
-                       'toponly' => 'Only list changes which are the latest revision',
-               );
-       }
-
-       public function getDescription() {
-               return 'Get all edits by a user.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=usercontribs&ucuser=YurikBot',
-                       'api.php?action=query&list=usercontribs&ucuserprefix=217.121.114.',
+                       'action=query&list=usercontribs&ucuser=Example'
+                               => 'apihelp-query+usercontribs-example-user',
+                       'action=query&list=usercontribs&ucuserprefix=192.0.2.'
+                               => 'apihelp-query+usercontribs-example-ipprefix',
                );
        }
 
index fd5f47b..fed5a33 100644 (file)
@@ -246,45 +246,22 @@ class ApiQueryUserInfo extends ApiQueryBase {
                                        'acceptlang',
                                        'registrationdate',
                                        'unreadcount',
-                               )
-                       )
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'prop' => array(
-                               'What pieces of information to include',
-                               '  blockinfo        - Tags if the current user is blocked, by whom, and for what reason',
-                               '  hasmsg           - Adds a tag "message" if the current user has pending messages',
-                               '  groups           - Lists all the groups the current user belongs to',
-                               '  implicitgroups   - Lists all the groups the current user is automatically a member of',
-                               '  rights           - Lists all the rights the current user has',
-                               '  changeablegroups - Lists the groups the current user can add to and remove from',
-                               '  options          - Lists all preferences the current user has set',
-                               '  preferencestoken - DEPRECATED! Get a token to change current user\'s preferences',
-                               '  editcount        - Adds the current user\'s edit count',
-                               '  ratelimits       - Lists all rate limits applying to the current user',
-                               '  realname         - Adds the user\'s real name',
-                               '  email            - Adds the user\'s email address and email authentication date',
-                               '  acceptlang       - Echoes the Accept-Language header sent by ' .
-                                       'the client in a structured format',
-                               '  registrationdate - Adds the user\'s registration date',
-                               '  unreadcount      - Adds the count of unread pages on the user\'s watchlist ' .
-                                       '(maximum ' . ( self::WL_UNREAD_LIMIT - 1 ) . '; returns "' .
-                                       self::WL_UNREAD_LIMIT . '+" if more)',
+                               ),
+                               ApiBase::PARAM_HELP_MSG => array(
+                                       'apihelp-query+userinfo-param-prop',
+                                       self::WL_UNREAD_LIMIT - 1,
+                                       self::WL_UNREAD_LIMIT . '+',
+                               ),
                        )
                );
        }
 
-       public function getDescription() {
-               return 'Get information about the current user.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&meta=userinfo',
-                       'api.php?action=query&meta=userinfo&uiprop=blockinfo|groups|rights|hasmsg',
+                       'action=query&meta=userinfo'
+                               => 'apihelp-query+userinfo-example-simple',
+                       'action=query&meta=userinfo&uiprop=blockinfo|groups|rights|hasmsg'
+                               => 'apihelp-query+userinfo-example-data',
                );
        }
 
index c147279..db8cc1c 100644 (file)
@@ -314,33 +314,13 @@ class ApiQueryUsers extends ApiQueryBase {
                );
        }
 
-       public function getParamDescription() {
+       protected function getExamplesMessages() {
                return array(
-                       'prop' => array(
-                               'What pieces of information to include',
-                               '  blockinfo      - Tags if the user is blocked, by whom, and for what reason',
-                               '  groups         - Lists all the groups the user(s) belongs to',
-                               '  implicitgroups - Lists all the groups a user is automatically a member of',
-                               '  rights         - Lists all the rights the user(s) has',
-                               '  editcount      - Adds the user\'s edit count',
-                               '  registration   - Adds the user\'s registration timestamp',
-                               '  emailable      - Tags if the user can and wants to receive ' .
-                                       'email through [[Special:Emailuser]]',
-                               '  gender         - Tags the gender of the user. Returns "male", "female", or "unknown"',
-                       ),
-                       'users' => 'A list of users to obtain the same information for',
-                       'token' => 'Which tokens to obtain for each user',
+                       'action=query&list=users&ususers=Example&usprop=groups|editcount|gender'
+                               => 'apihelp-query+users-example-simple',
                );
        }
 
-       public function getDescription() {
-               return 'Get information about a list of users.';
-       }
-
-       public function getExamples() {
-               return 'api.php?action=query&list=users&ususers=brion|TimStarling&usprop=groups|editcount|gender';
-       }
-
        public function getHelpUrls() {
                return 'https://www.mediawiki.org/wiki/API:Users';
        }
index efbe05e..4059ff8 100644 (file)
@@ -455,7 +455,8 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_TYPE => array(
                                        'newer',
                                        'older'
-                               )
+                               ),
+                               ApiHelp::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
@@ -512,67 +513,26 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        'token' => array(
                                ApiBase::PARAM_TYPE => 'string'
                        ),
-                       'continue' => null,
-               );
-       }
-
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'allrev' => 'Include multiple revisions of the same page within given timeframe',
-                       'start' => 'The timestamp to start enumerating from',
-                       'end' => 'The timestamp to end enumerating',
-                       'namespace' => 'Filter changes to only the given namespace(s)',
-                       'user' => 'Only list changes by this user',
-                       'excludeuser' => 'Don\'t list changes by this user',
-                       'dir' => $this->getDirectionDescription( $p ),
-                       'limit' => 'How many total results to return per request',
-                       'prop' => array(
-                               'Which additional items to get (non-generator mode only).',
-                               ' ids                    - Adds revision ids and page ids',
-                               ' title                  - Adds title of the page',
-                               ' flags                  - Adds flags for the edit',
-                               ' user                   - Adds the user who made the edit',
-                               ' userid                 - Adds user id of whom made the edit',
-                               ' comment                - Adds comment of the edit',
-                               ' parsedcomment          - Adds parsed comment of the edit',
-                               ' timestamp              - Adds timestamp of the edit',
-                               ' patrol                 - Tags edits that are patrolled',
-                               ' sizes                  - Adds the old and new lengths of the page',
-                               ' notificationtimestamp  - Adds timestamp of when the user was last notified about the edit',
-                               ' loginfo                - Adds log information where appropriate',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
                        ),
-                       'show' => array(
-                               'Show only items that meet this criteria.',
-                               "For example, to see only minor edits done by logged-in users, set {$p}show=minor|!anon"
-                       ),
-                       'type' => array(
-                               'Which types of changes to show',
-                               ' edit           - Regular page edits',
-                               ' external       - External changes',
-                               ' new            - Page creations',
-                               ' log            - Log entries',
-                       ),
-                       'owner' => 'The name of the user whose watchlist you\'d like to access',
-                       'token' => 'Give a security token (settable in preferences) to ' .
-                               'allow access to another user\'s watchlist',
-                       'continue' => 'When more results are available, use this to continue',
                );
        }
 
-       public function getDescription() {
-               return "Get all recent changes to pages in the logged in user's watchlist.";
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=watchlist',
-                       'api.php?action=query&list=watchlist&wlprop=ids|title|timestamp|user|comment',
-                       'api.php?action=query&list=watchlist&wlallrev=&wlprop=ids|title|timestamp|user|comment',
-                       'api.php?action=query&generator=watchlist&prop=info',
-                       'api.php?action=query&generator=watchlist&gwlallrev=&prop=revisions&rvprop=timestamp|user',
-                       'api.php?action=query&list=watchlist&wlowner=Bob_Smith&wltoken=123ABC'
+                       'action=query&list=watchlist'
+                               => 'apihelp-query+watchlist-example-simple',
+                       'action=query&list=watchlist&wlprop=ids|title|timestamp|user|comment'
+                               => 'apihelp-query+watchlist-example-props',
+                       'action=query&list=watchlist&wlallrev=&wlprop=ids|title|timestamp|user|comment'
+                               => 'apihelp-query+watchlist-example-allrev',
+                       'action=query&generator=watchlist&prop=info'
+                               => 'apihelp-query+watchlist-example-generator',
+                       'action=query&generator=watchlist&gwlallrev=&prop=revisions&rvprop=timestamp|user'
+                               => 'apihelp-query+watchlist-example-generator-rev',
+                       'action=query&list=watchlist&wlowner=Example&wltoken=123ABC'
+                               => 'apihelp-query+watchlist-example-wlowner',
                );
        }
 
index 6b2223a..ae3596d 100644 (file)
@@ -131,7 +131,9 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
 
        public function getAllowedParams() {
                return array(
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'namespace' => array(
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => 'namespace'
@@ -168,35 +170,17 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                                        'ascending',
                                        'descending'
                                ),
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ),
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'continue' => 'When more results are available, use this to continue',
-                       'namespace' => 'Only list pages in the given namespace(s)',
-                       'limit' => 'How many total results to return per request',
-                       'prop' => array(
-                               'Which additional properties to get (non-generator mode only)',
-                               ' changed  - Adds timestamp of when the user was last notified about the edit',
-                       ),
-                       'show' => 'Only list items that meet these criteria',
-                       'owner' => 'The name of the user whose watchlist you\'d like to access',
-                       'token' => 'Give a security token (settable in preferences) to allow ' .
-                               'access to another user\'s watchlist',
-                       'dir' => 'Direction to sort the titles and namespaces in',
-               );
-       }
-
-       public function getDescription() {
-               return "Get all pages on the logged in user's watchlist.";
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=query&list=watchlistraw',
-                       'api.php?action=query&generator=watchlistraw&gwrshow=changed&prop=revisions',
+                       'action=query&list=watchlistraw'
+                               => 'apihelp-query+watchlistraw-example-simple',
+                       'action=query&generator=watchlistraw&gwrshow=changed&prop=info'
+                               => 'apihelp-query+watchlistraw-example-generator',
                );
        }
 
index 2e80447..5bc2efb 100644 (file)
@@ -481,10 +481,14 @@ class ApiResult extends ApiBase {
                        $continue = explode( '||', $continue );
                        $this->dieContinueUsageIf( count( $continue ) !== 2 );
                        $this->generatorDone = ( $continue[0] === '-' );
+                       $skip = explode( '|', $continue[1] );
                        if ( !$this->generatorDone ) {
                                $this->generatorParams = explode( '|', $continue[0] );
+                       } else {
+                               // When the generator is complete, don't run any modules that
+                               // depend on it.
+                               $skip += $this->continueGeneratedModules;
                        }
-                       $skip = explode( '|', $continue[1] );
                }
 
                $this->continueAllModules = array();
@@ -569,6 +573,7 @@ class ApiResult extends ApiBase {
                } else {
                        $key = 'continue';
                        $data = array();
+                       $batchcomplete = false;
 
                        $finishedModules = array_diff(
                                array_keys( $this->continueAllModules ),
@@ -611,9 +616,11 @@ class ApiResult extends ApiBase {
                                $finishedModules = array_diff(
                                        $finishedModules, $this->continueGeneratedModules
                                );
+                               $batchcomplete = true;
                        } else {
                                // Generator and prop modules are all done. Mark it so.
                                $this->generatorDone = true;
+                               $batchcomplete = true;
                        }
 
                        // Set 'continue' if any continuation data is set or if the generator
@@ -623,6 +630,10 @@ class ApiResult extends ApiBase {
                                        ( $this->generatorDone ? '-' : join( '|', $this->generatorParams ) ) .
                                        '||' . join( '|', $finishedModules );
                        }
+
+                       if ( $batchcomplete ) {
+                               $this->addValue( null, 'batchcomplete', '', ApiResult::ADD_ON_TOP | ApiResult::NO_SIZE_CHECK );
+                       }
                }
                if ( $data ) {
                        $this->addValue( null, $key, $data, ApiResult::ADD_ON_TOP | ApiResult::NO_SIZE_CHECK );
index cbc3070..783a39b 100644 (file)
@@ -199,34 +199,18 @@ class ApiRevisionDelete extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'type' => 'Type of revision deletion being performed',
-                       'target' => 'Page title for the revision deletion, if required for the type',
-                       'ids' => 'Identifiers for the revisions to be deleted',
-                       'hide' => 'What to hide for each revision',
-                       'show' => 'What to unhide for each revision',
-                       'suppress' => 'Whether to suppress data from administrators as well as others',
-                       'reason' => 'Reason for the deletion/undeletion',
-               );
-       }
-
-       public function getDescription() {
-               return 'Delete/undelete revisions.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=revisiondelete&target=Main%20Page&type=revision&ids=12345&' .
+                       'action=revisiondelete&target=Main%20Page&type=revision&ids=12345&' .
                                'hide=content&token=123ABC'
-                               => 'Hide content for revision 12345 on the Main Page',
-                       'api.php?action=revisiondelete&type=logging&ids=67890&hide=content|comment|user&' .
+                               => 'apihelp-revisiondelete-example-revision',
+                       'action=revisiondelete&type=logging&ids=67890&hide=content|comment|user&' .
                                'reason=BLP%20violation&token=123ABC'
-                               => 'Hide all data on log entry 67890 with the reason "BLP violation"',
+                               => 'apihelp-revisiondelete-example-log',
                );
        }
 
index f4d3c54..02e62a0 100644 (file)
@@ -120,31 +120,10 @@ class ApiRollback extends ApiBase {
                                        'nochange'
                                ),
                        ),
-               );
-       }
-
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'title' => "Title of the page you want to roll back. Cannot be used together with {$p}pageid",
-                       'pageid' => "Page ID of the page you want to roll back. Cannot be used together with {$p}title",
-                       'user' => 'Name of the user whose edits are to be rolled back.',
                        'token' => array(
-                               /* Standard description automatically prepended */
-                               'For compatibility, the token used in the web UI is also accepted.'
+                               // Standard definition automatically inserted
+                               ApiBase::PARAM_HELP_MSG_APPEND => array( 'api-help-param-token-webui' ),
                        ),
-                       'summary' => 'Custom edit summary. If empty, default summary will be used',
-                       'markbot' => 'Mark the reverted edits and the revert as bot edits',
-                       'watchlist' => 'Unconditionally add or remove the page from your watchlist, ' .
-                               'use preferences or do not change watch',
-               );
-       }
-
-       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.'
                );
        }
 
@@ -211,12 +190,13 @@ class ApiRollback extends ApiBase {
                return $this->mTitleObj;
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=rollback&title=Main%20Page&user=Catrope&token=123ABC',
-                       'api.php?action=rollback&pageid=122&user=Catrope&token=123ABC',
-                       'api.php?action=rollback&title=Main%20Page&user=217.121.114.116&' .
-                               'token=123ABC&summary=Reverting%20vandalism&markbot=1'
+                       'action=rollback&title=Main%20Page&user=Example&token=123ABC' =>
+                               'apihelp-rollback-example-simple',
+                       'action=rollback&title=Main%20Page&user=192.0.2.5&' .
+                               'token=123ABC&summary=Reverting%20vandalism&markbot=1' =>
+                               'apihelp-rollback-example-summary',
                );
        }
 
index a2771a0..91f3266 100644 (file)
@@ -51,21 +51,10 @@ class ApiRsd extends ApiBase {
                return new ApiFormatXmlRsd( $this->getMain(), 'xml' );
        }
 
-       public function getAllowedParams() {
-               return array();
-       }
-
-       public function getParamDescription() {
-               return array();
-       }
-
-       public function getDescription() {
-               return 'Export an RSD (Really Simple Discovery) schema.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=rsd'
+                       'action=rsd'
+                               => 'apihelp-rsd-example-simple',
                );
        }
 
index 5d527fc..5d37e20 100644 (file)
@@ -219,7 +219,9 @@ class ApiSetNotificationTimestamp extends ApiBase {
                        'newerthanrevid' => array(
                                ApiBase::PARAM_TYPE => 'integer'
                        ),
-                       'continue' => '',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                );
                if ( $flags ) {
                        $result += $this->getPageSet()->getFinalParams( $flags );
@@ -228,34 +230,17 @@ class ApiSetNotificationTimestamp extends ApiBase {
                return $result;
        }
 
-       public function getParamDescription() {
-               return $this->getPageSet()->getFinalParamDescription() + array(
-                       'entirewatchlist' => 'Work on all watched pages',
-                       'timestamp' => 'Timestamp to which to set the notification timestamp',
-                       'torevid' => 'Revision to set the notification timestamp to (one page only)',
-                       'newerthanrevid' => 'Revision to set the notification timestamp newer than (one page only)',
-                       'continue' => 'When more results are available, use this to continue',
-               );
-       }
-
-       public function getDescription() {
-               return array( 'Update the notification timestamp for watched pages.',
-                       'This affects the highlighting of changed pages in the watchlist and history,',
-                       'and the sending of email when the "Email me when a page on my watchlist is',
-                       'changed" preference is enabled.'
-               );
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=setnotificationtimestamp&entirewatchlist=&token=123ABC'
-                               => 'Reset the notification status for the entire watchlist',
-                       'api.php?action=setnotificationtimestamp&titles=Main_page&token=123ABC'
-                               => 'Reset the notification status for "Main page"',
-                       'api.php?action=setnotificationtimestamp&titles=Main_page&' .
+                       'action=setnotificationtimestamp&entirewatchlist=&token=123ABC'
+                               => 'apihelp-setnotificationtimestamp-example-all',
+                       'action=setnotificationtimestamp&titles=Main_page&token=123ABC'
+                               => 'apihelp-setnotificationtimestamp-example-page',
+                       'action=setnotificationtimestamp&titles=Main_page&' .
                                'timestamp=2012-01-01T00:00:00Z&token=123ABC'
-                               => 'Set the notification timestamp for "Main page" so all edits ' .
-                                       'since 1 January 2012 are unviewed',
+                               => 'apihelp-setnotificationtimestamp-example-pagetimestamp',
+                       'action=setnotificationtimestamp&generator=allpages&gapnamespace=2&token=123ABC'
+                               => 'apihelp-setnotificationtimestamp-example-allpages',
                );
        }
 
index 9287fe6..2a60af9 100644 (file)
@@ -34,6 +34,7 @@ class ApiTokens extends ApiBase {
                $this->setWarning(
                        "action=tokens has been deprecated. Please use action=query&meta=tokens instead."
                );
+               $this->logFeatureUsage( "action=tokens" );
 
                $params = $this->extractRequestParams();
                $res = array();
@@ -76,6 +77,10 @@ class ApiTokens extends ApiBase {
                return $types;
        }
 
+       public function isDeprecated() {
+               return true;
+       }
+
        public function getAllowedParams() {
                return array(
                        'type' => array(
@@ -86,23 +91,12 @@ class ApiTokens extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'type' => 'Type of token(s) to request'
-               );
-       }
-
-       public function getDescription() {
-               return array(
-                       'This module is deprecated in favor of action=query&meta=tokens.',
-                       'Gets tokens for data-modifying actions.'
-               );
-       }
-
-       protected function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=tokens' => 'Retrieve an edit token (the default)',
-                       'api.php?action=tokens&type=email|move' => 'Retrieve an email token and a move token'
+                       'action=tokens'
+                               => 'apihelp-tokens-example-edit',
+                       'action=tokens&type=email|move'
+                               => 'apihelp-tokens-example-emailmove',
                );
        }
 }
index 2854a82..1af83ba 100644 (file)
@@ -93,30 +93,16 @@ class ApiUnblock extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               $p = $this->getModulePrefix();
-
-               return array(
-                       'id' => "ID of the block you want to unblock (obtained through list=blocks). " .
-                               "Cannot be used together with {$p}user",
-                       'user' => "Username, IP address or IP range you want to unblock. " .
-                               "Cannot be used together with {$p}id",
-                       'reason' => 'Reason for unblock',
-               );
-       }
-
-       public function getDescription() {
-               return 'Unblock a user.';
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=unblock&id=105',
-                       'api.php?action=unblock&user=Bob&reason=Sorry%20Bob'
+                       'action=unblock&id=105'
+                               => 'apihelp-unblock-example-id',
+                       'action=unblock&user=Bob&reason=Sorry%20Bob'
+                               => 'apihelp-unblock-example-user',
                );
        }
 
index 07aad9f..943ae8e 100644 (file)
@@ -117,39 +117,17 @@ class ApiUndelete extends ApiBase {
                );
        }
 
-       public function getParamDescription() {
-               return array(
-                       'title' => 'Title of the page you want to restore',
-                       'reason' => 'Reason for restoring',
-                       'timestamps' => array(
-                               'Timestamps of the revisions to restore.',
-                               'If both timestamps and fileids are empty, all will be restored.',
-                       ),
-                       'fileids' => array(
-                               'IDs of the file revisions to restore.',
-                               'If both timestamps and fileids are empty, all will be restored.',
-                       ),
-                       'watchlist' => 'Unconditionally add or remove the page from your ' .
-                               'watchlist, use preferences or do not change watch',
-               );
-       }
-
-       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, and a list',
-                       'of deleted file ids can be retrieved through list=filearchive.'
-               );
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=undelete&title=Main%20Page&token=123ABC&reason=Restoring%20main%20page',
-                       'api.php?action=undelete&title=Main%20Page&token=123ABC&timestamps=20070703220045|20070702194856'
+                       'action=undelete&title=Main%20Page&token=123ABC&reason=Restoring%20main%20page'
+                               => 'apihelp-undelete-example-page',
+                       'action=undelete&title=Main%20Page&token=123ABC' .
+                               '&timestamps=2007-07-03T22:00:45Z|2007-07-02T19:48:56Z'
+                               => 'apihelp-undelete-example-revisions',
                );
        }
 
index 2770bdc..9ddadcb 100644 (file)
@@ -64,7 +64,7 @@ class ApiUpload extends ApiBase {
                                $this->dieUsage( 'No upload module set', 'nomodule' );
                        }
                } catch ( UploadStashException $e ) { // XXX: don't spam exception log
-                       $this->dieUsage( get_class( $e ) . ": " . $e->getMessage(), 'stasherror' );
+                       $this->handleStashException( $e );
                }
 
                // First check permission to upload
@@ -112,7 +112,7 @@ class ApiUpload extends ApiBase {
                                $result['imageinfo'] = $this->mUpload->getImageInfo( $this->getResult() );
                        }
                } catch ( UploadStashException $e ) { // XXX: don't spam exception log
-                       $this->dieUsage( get_class( $e ) . ": " . $e->getMessage(), 'stasherror' );
+                       $this->handleStashException( $e );
                }
 
                $this->getResult()->addValue( null, $this->getModuleName(), $result );
@@ -159,6 +159,8 @@ class ApiUpload extends ApiBase {
                        if ( $warnings && count( $warnings ) > 0 ) {
                                $result['warnings'] = $warnings;
                        }
+               } catch ( UploadStashException $e ) {
+                       $this->handleStashException( $e );
                } catch ( MWException $e ) {
                        $this->dieUsage( $e->getMessage(), 'stashfailed' );
                }
@@ -180,6 +182,8 @@ class ApiUpload extends ApiBase {
                try {
                        $result['filekey'] = $this->performStash();
                        $result['sessionkey'] = $result['filekey']; // backwards compatibility
+               } catch ( UploadStashException $e ) {
+                       $this->handleStashException( $e );
                } catch ( MWException $e ) {
                        $result['warnings']['stashfailed'] = $e->getMessage();
                }
@@ -205,6 +209,8 @@ class ApiUpload extends ApiBase {
                if ( $this->mParams['offset'] == 0 ) {
                        try {
                                $filekey = $this->performStash();
+                       } catch ( UploadStashException $e ) {
+                               $this->handleStashException( $e );
                        } catch ( MWException $e ) {
                                // FIXME: Error handling here is wrong/different from rest of this
                                $this->dieUsage( $e->getMessage(), 'stashfailed' );
@@ -282,7 +288,8 @@ class ApiUpload extends ApiBase {
                } catch ( MWException $e ) {
                        $message = 'Stashing temporary file failed: ' . get_class( $e ) . ' ' . $e->getMessage();
                        wfDebug( __METHOD__ . ' ' . $message . "\n" );
-                       throw new MWException( $message );
+                       $className = get_class( $e );
+                       throw new $className( $message );
                }
 
                return $fileKey;
@@ -576,6 +583,41 @@ class ApiUpload extends ApiBase {
                return $warnings;
        }
 
+       /**
+        * Handles a stash exception, giving a useful error to the user.
+        * @param Exception $e The exception we encountered.
+        */
+       protected function handleStashException( $e ) {
+               $exceptionType = get_class( $e );
+
+               switch ( $exceptionType ) {
+                       case 'UploadStashFileNotFoundException':
+                               $this->dieUsage( 'Could not find the file in the stash: ' . $e->getMessage(), 'stashedfilenotfound' );
+                               break;
+                       case 'UploadStashBadPathException':
+                               $this->dieUsage( 'File key of improper format or otherwise invalid: ' . $e->getMessage(), 'stashpathinvalid' );
+                               break;
+                       case 'UploadStashFileException':
+                               $this->dieUsage( 'Could not store upload in the stash: ' . $e->getMessage(), 'stashfilestorage' );
+                               break;
+                       case 'UploadStashZeroLengthFileException':
+                               $this->dieUsage( 'File is of zero length, and could not be stored in the stash: ' . $e->getMessage(), 'stashzerolength' );
+                               break;
+                       case 'UploadStashNotLoggedInException':
+                               $this->dieUsage( 'Not logged in: ' . $e->getMessage(), 'stashnotloggedin' );
+                               break;
+                       case 'UploadStashWrongOwnerException':
+                               $this->dieUsage( 'Wrong owner: ' . $e->getMessage(), 'stashwrongowner' );
+                               break;
+                       case 'UploadStashNoSuchKeyException':
+                               $this->dieUsage( 'No such filekey: ' . $e->getMessage(), 'stashnosuchfilekey' );
+                               break;
+                       default:
+                               $this->dieUsage( $exceptionType . ": " . $e->getMessage(), 'stasherror' );
+                               break;
+               }
+       }
+
        /**
         * Perform the actual upload. Returns a suitable result array on success;
         * dies on failure.
@@ -732,59 +774,17 @@ class ApiUpload extends ApiBase {
                return $params;
        }
 
-       public function getParamDescription() {
-               $params = array(
-                       'filename' => 'Target filename',
-                       'comment' => 'Upload comment. Also used as the initial page text for new ' .
-                               'files if "text" is not specified',
-                       'text' => 'Initial page text for new files',
-                       'watch' => 'Watch the page',
-                       'watchlist' => 'Unconditionally add or remove the page from your watchlist, ' .
-                               'use preferences or do not change watch',
-                       'ignorewarnings' => 'Ignore any warnings',
-                       'file' => 'File contents',
-                       'url' => 'URL to fetch the file from',
-                       'filekey' => 'Key that identifies a previous upload that was stashed temporarily.',
-                       'sessionkey' => 'Same as filekey, maintained for backward compatibility.',
-                       'stash' => 'If set, the server will not add the file to the repository ' .
-                               'and stash it temporarily.',
-
-                       'chunk' => 'Chunk contents',
-                       'offset' => 'Offset of chunk in bytes',
-                       'filesize' => 'Filesize of entire upload',
-
-                       'async' => 'Make potentially large file operations asynchronous when possible',
-                       'asyncdownload' => 'Make fetching a URL asynchronous',
-                       'leavemessage' => 'If asyncdownload is used, leave a message on the user talk page if finished',
-                       'statuskey' => 'Fetch the upload status for this file key (upload by URL)',
-                       'checkstatus' => 'Only fetch the upload status for the given file key',
-               );
-
-               return $params;
-       }
-
-       public function getDescription() {
-               return array(
-                       'Upload a file, or get the status of pending uploads. Several methods are available:',
-                       ' * Upload file contents directly, using the "file" parameter',
-                       ' * 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".',
-               );
-       }
-
        public function needsToken() {
                return 'csrf';
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=upload&filename=Wiki.png' .
-                       '&url=http%3A//upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png&token=123ABC'
-                               => 'Upload from a URL',
-                       'api.php?action=upload&filename=Wiki.png&filekey=filekey&ignorewarnings=1&token=123ABC'
-                               => 'Complete an upload that failed due to warnings',
+                       'action=upload&filename=Wiki.png' .
+                               '&url=http%3A//upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png&token=123ABC'
+                               => 'apihelp-upload-example-url',
+                       'action=upload&filename=Wiki.png&filekey=filekey&ignorewarnings=1&token=123ABC'
+                               => 'apihelp-upload-example-filekey',
                );
        }
 
index 66af4c5..cf8ed5a 100644 (file)
@@ -119,28 +119,14 @@ class ApiUserrights extends ApiBase {
                        ),
                        'reason' => array(
                                ApiBase::PARAM_DFLT => ''
-                       )
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'user' => 'User name',
-                       'userid' => 'User id',
-                       'add' => 'Add the user to these groups',
-                       'remove' => 'Remove the user from these groups',
+                       ),
                        'token' => array(
-                               /* Standard description automatically prepended */
-                               'For compatibility, the token used in the web UI is also accepted.'
+                               // Standard definition automatically inserted
+                               ApiBase::PARAM_HELP_MSG_APPEND => array( 'api-help-param-token-webui' ),
                        ),
-                       'reason' => 'Reason for the change',
                );
        }
 
-       public function getDescription() {
-               return 'Add/remove a user to/from groups.';
-       }
-
        public function needsToken() {
                return 'userrights';
        }
@@ -149,10 +135,12 @@ class ApiUserrights extends ApiBase {
                return $this->getUrUser( $params )->getName();
        }
 
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=userrights&user=FooBot&add=bot&remove=sysop|bureaucrat&token=123ABC',
-                       'api.php?action=userrights&userid=123&add=bot&remove=sysop|bureaucrat&token=123ABC'
+                       'action=userrights&user=FooBot&add=bot&remove=sysop|bureaucrat&token=123ABC'
+                               => 'apihelp-userrights-example-user',
+                       'action=userrights&userid=123&add=bot&remove=sysop|bureaucrat&token=123ABC'
+                               => 'apihelp-userrights-example-userid',
                );
        }
 
index e6a660b..09638f3 100644 (file)
@@ -104,17 +104,6 @@ class ApiWatch extends ApiBase {
 
                $res = array( 'title' => $title->getPrefixedText() );
 
-               // Currently unnecessary, code to act as a safeguard against any change
-               // in current behavior of uselang.
-               // Copy from ApiParse
-               $oldLang = null;
-               if ( isset( $params['uselang'] ) &&
-                       $params['uselang'] != $this->getContext()->getLanguage()->getCode()
-               ) {
-                       $oldLang = $this->getContext()->getLanguage(); // Backup language
-                       $this->getContext()->setLanguage( Language::factory( $params['uselang'] ) );
-               }
-
                if ( $params['unwatch'] ) {
                        $status = UnwatchAction::doUnwatch( $title, $user );
                        if ( $status->isOK() ) {
@@ -131,10 +120,6 @@ class ApiWatch extends ApiBase {
                        }
                }
 
-               if ( !is_null( $oldLang ) ) {
-                       $this->getContext()->setLanguage( $oldLang ); // Reset language to $oldLang
-               }
-
                if ( !$status->isOK() ) {
                        if ( $compatibilityMode ) {
                                $this->dieStatus( $status );
@@ -176,8 +161,9 @@ class ApiWatch extends ApiBase {
                                ApiBase::PARAM_DEPRECATED => true
                        ),
                        'unwatch' => false,
-                       'uselang' => null,
-                       'continue' => '',
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                );
                if ( $flags ) {
                        $result += $this->getPageSet()->getFinalParams( $flags );
@@ -186,25 +172,14 @@ class ApiWatch extends ApiBase {
                return $result;
        }
 
-       public function getParamDescription() {
-               $psModule = $this->getPageSet();
-
-               return $psModule->getParamDescription() + array(
-                       'title' => 'The page to (un)watch. use titles instead',
-                       'unwatch' => 'If set the page will be unwatched rather than watched',
-                       'uselang' => 'Language to show the message in',
-                       'continue' => 'When more results are available, use this to continue',
-               );
-       }
-
-       public function getDescription() {
-               return 'Add or remove pages from/to the current user\'s watchlist.';
-       }
-
-       public function getExamples() {
+       protected function getExamplesMessages() {
                return array(
-                       'api.php?action=watch&titles=Main_Page' => 'Watch the page "Main Page"',
-                       'api.php?action=watch&titles=Main_Page&unwatch=' => 'Unwatch the page "Main Page"',
+                       'action=watch&titles=Main_Page&token=123ABC'
+                               => 'apihelp-watch-example-watch',
+                       'action=watch&titles=Main_Page&unwatch=&token=123ABC'
+                               => 'apihelp-watch-example-unwatch',
+                       'action=watch&generator=allpages&gapnamespace=0&token=123ABC'
+                               => 'apihelp-watch-example-generator',
                );
        }
 
diff --git a/includes/api/i18n/be-tarask.json b/includes/api/i18n/be-tarask.json
new file mode 100644 (file)
index 0000000..09d2086
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Red Winged Duck"
+               ]
+       },
+       "apihelp-main-param-action": "Дзеяньне для выкананьня."
+}
diff --git a/includes/api/i18n/ce.json b/includes/api/i18n/ce.json
new file mode 100644 (file)
index 0000000..1eb7109
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Умар"
+               ]
+       },
+       "apihelp-userrights-param-userid": "Декъашхочун ID."
+}
diff --git a/includes/api/i18n/cs.json b/includes/api/i18n/cs.json
new file mode 100644 (file)
index 0000000..f8fbdc1
--- /dev/null
@@ -0,0 +1,87 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mormegil"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page Dokumentace]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-mailová konference]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Oznámení k API]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Chyby a požadavky]\n</div>\n<strong>Stav:</strong> Všechny funkce uvedené na této stránce by měly fungovat, ale API se stále aktivně vyvíjí a může se kdykoli změnit. Upozornění na změny získáte přihlášením se k [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-mailové konferenci mediawiki-api-announce].\n\n<strong>Chybné požadavky:</strong> Pokud jsou do API zaslány chybné požadavky, bude vrácena HTTP hlavička s klíčem „MediaWiki-API-Error“ a hodnota této hlavičky a chybový kód budou nastaveny na stejnou hodnotu. Více informací najdete na stránce https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-param-action": "Jaká akce se má provést.",
+       "apihelp-main-param-format": "Formát výstupu.",
+       "apihelp-main-param-maxlag": "Maximální zpoždění lze použít, když je MediaWiki nainstalováno na cluster s replikovanou databází. Abyste se vyhnuli zhoršování už tak špatného replikačního zpoždění, můžete tímto parametrem nechat klienta čekat, dokud replikační zpoždění neklesne pod uvedenou hodnotu. V případě příliš vysokého zpoždění se vrátí chybový kód „maxlag“ s hlášením typu „Waiting for $host: $lag seconds lagged“.<br />Více informací najdete v [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Maxlag_parameter příručce].",
+       "apihelp-main-param-smaxage": "Nastaví hlavičku s-maxage na uvedený počet sekund. Chyby se nekešují nikdy.",
+       "apihelp-main-param-maxage": "Nastaví hlavičku max-age na uvedený počet sekund. Chyby se nekešují nikdy.",
+       "apihelp-main-param-assert": "Ověřit, že je uživatel přihlášen, pokud je nastaveno na „user“, nebo že má uživatelské oprávnění bot, pokud je nastaveno na „bot“.",
+       "apihelp-main-param-requestid": "Libovolná zde uvedená hodnota bude zahrnuta v odpovědi. Lze použít pro rozlišení požadavků.",
+       "apihelp-main-param-servedby": "Zahrnout do odpovědi název hostitele, který požadavek obsloužil.",
+       "apihelp-main-param-curtimestamp": "Zahrnout do odpovědi aktuální časové razítko.",
+       "apihelp-main-param-origin": "Pokud k API přistupujete pomocí mezidoménového AJAXového požadavku (CORS), nastavte tento parametr na doménu původu. Musí být součástí všech předběžných požadavků, takže musí být součástí URI požadavku (nikoli těla POSTu). Hodnota musí přesně odpovídat jednomu z původů v hlavičce Origin:, takže musí být nastavena na něco jako http://en.wikipedia.org nebo https://meta.wikimedia.org. Pokud parametr neodpovídá hlavičce Origin:, bude vrácena odpověď 403. Pokud parametr odpovídá hlavičce Origin: a tento původ je na bílé listině, bude nastavena hlavička Access-Control-Allow-Origin.",
+       "apihelp-main-param-uselang": "Jazyk, který se má použít pro překlad hlášení. Seznam kódů lze načíst z [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] se siprop=languages nebo uveďte „user“ pro použití předvoleného jazyka aktuálního uživatele či „content“ pro použití jazyka obsahu této wiki.",
+       "apihelp-help-description": "Zobrazuje nápovědu k uvedeným modulům.",
+       "apihelp-help-param-modules": "Moduly, pro které se má zobrazit nápověda (hodnoty parametrů action= a format= nebo „main“). Submoduly lze zadávat pomocí „+“.",
+       "apihelp-help-param-submodules": "Zahrnout nápovědu pro submoduly uvedeného modulu.",
+       "apihelp-help-param-recursivesubmodules": "Zahrnout nápovědu pro submoduly rekurzivně.",
+       "apihelp-help-param-helpformat": "Formát výstupu nápovědy.",
+       "apihelp-help-param-wrap": "Obalit výstup do standardní struktury API odpovědi.",
+       "apihelp-help-param-toc": "Zahrnout v HTML výstupu tabulku obsahu.",
+       "apihelp-help-example-main": "Nápověda k hlavnímu modulu",
+       "apihelp-help-example-recursive": "Veškerá nápověda na jedné stránce",
+       "apihelp-help-example-help": "Nápověda k samotnému modulu nápovědy",
+       "apihelp-help-example-query": "Nápověda pro dva submoduly query",
+       "apihelp-format-example-generic": "Výsledek dotazu vypsat ve formátu $1.",
+       "apihelp-dbg-description": "Vypisuje data ve formátu funkce var_export() z PHP.",
+       "apihelp-dbgfm-description": "Vypisuje data ve formátu funkce var_export() z PHP (v čitelné HTML podobě).",
+       "apihelp-dump-description": "Vypisuje data ve formátu funkce var_dump() z PHP.",
+       "apihelp-dumpfm-description": "Vypisuje data ve formátu funkce var_dump() z PHP (v čitelné HTML podobě).",
+       "apihelp-json-description": "Vypisuje data ve formátu JSON.",
+       "apihelp-json-param-callback": "Pokud je uvedeno, obalí výstup do zadaného volání funkce. Z bezpečnostních důvodů budou omezena všechna data specifická pro uživatele.",
+       "apihelp-json-param-utf8": "Pokud je uvedeno, bude většina ne-ASCII znaků (ale ne všechny) kódována v UTF-8 místo nahrazení hexadecimálními escape sekvencemi.",
+       "apihelp-jsonfm-description": "Vypisuje data ve formátu JSON (v čitelné HTML podobě).",
+       "apihelp-none-description": "Nevypisuje nic.",
+       "apihelp-php-description": "Vypisuje data v serializačním formátu PHP.",
+       "apihelp-phpfm-description": "Vypisuje data ve serializačním formátu PHP (v čitelné HTML podobě).",
+       "apihelp-rawfm-description": "Vypisuje data s ladicími prvky ve formátu JSON (v čitelné HTML podobě).",
+       "apihelp-txt-description": "Vypisuje data ve formátu funkce print_r() z PHP.",
+       "apihelp-txtfm-description": "Vypisuje data ve formátu funkce print_r() z PHP (v čitelné HTML podobě).",
+       "apihelp-wddx-description": "Vypisuje data ve formátu WDDX.",
+       "apihelp-wddxfm-description": "Vypisuje data ve formátu WDDX (v čitelné HTML podobě).",
+       "apihelp-xml-description": "Vypisuje data ve formátu XML.",
+       "apihelp-xml-param-xslt": "Pokud je uvedeno, přidá stylopis &lt;xslt&gt;. Měla by jím být wikistránka v jmenném prostoru MediaWiki, jejíž název končí na „.xsl“.",
+       "apihelp-xml-param-includexmlnamespace": "Pokud je uvedeno, přidá jmenný prostor XML.",
+       "apihelp-xmlfm-description": "Vypisuje data ve formátu XML (v čitelné HTML podobě).",
+       "apihelp-yaml-description": "Vypisuje data ve formátu YAML.",
+       "apihelp-yamlfm-description": "Vypisuje data ve formátu YAML (v čitelné HTML podobě).",
+       "api-format-title": "Odpověď z MediaWiki API",
+       "api-format-prettyprint-header": "Díváte se na HTML reprezentaci formátu $1. HTML se hodí pro ladění, ale pro aplikační použití je nevhodné.\n\nPro změnu výstupního formátu uveďte parametr format. Abyste viděli ne-HTML reprezentaci formátu $1, nastavte format=$2.\n\nVíce informací najdete v [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page úplné dokumentaci] nebo [[Special:ApiHelp/main|nápovědě k API]].",
+       "api-help-title": "Nápověda k MediaWiki API",
+       "api-help-lead": "Toto je automaticky generovaná dokumentační stránka k MediaWiki API.\n\nDokumentace a příklady: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "Hlavní modul",
+       "api-help-flag-deprecated": "Tento modul je zastaralý.",
+       "api-help-flag-internal": "<strong>Tento modul je interní nebo nestabilní.</strong> Jeho funkčnost se může bez předchozího upozornění změnit.",
+       "api-help-flag-readrights": "Tento modul vyžaduje oprávnění ke čtení.",
+       "api-help-flag-writerights": "Tento modul vyžaduje oprávnění k zápisu.",
+       "api-help-flag-mustbeposted": "Tento modul přijímá pouze požadavky POST.",
+       "api-help-flag-generator": "Tento modul lze využívat jako generátor.",
+       "api-help-parameters": "{{PLURAL:$1|Parametr|Parametry}}:",
+       "api-help-param-deprecated": "Zastaralý.",
+       "api-help-param-required": "Tento parametr je povinný.",
+       "api-help-param-list": "{{PLURAL:$1|1=Jedna hodnota|2=Hodnoty (oddělené „{{!}}“)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Musí být prázdné|Může být prázdné nebo $2}}",
+       "api-help-param-limit": "Není dovoleno více než $1.",
+       "api-help-param-limit2": "Není dovoleno více než $1 ($2 pro boty).",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=Hodnota nesmí|2=Hodnoty nesmějí}} být nižší než $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=Hodnota nesmí|2=Hodnoty nesmějí}} být vyšší než $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=Hodnota|2=Hodnoty}} musí ležet mezi $2 a $3.",
+       "api-help-param-upload": "Musí se odeslat POST požadavkem jako načítaný soubor pomocí multipart/form-data.",
+       "api-help-param-multi-separate": "Hodnoty oddělujte pomocí „|“.",
+       "api-help-param-multi-max": "Maximální počet hodnot je {{PLURAL:$1|$1}} (pro boty {{PLURAL:$2|$2}}).",
+       "api-help-param-default": "Implicitní hodnota: $1",
+       "api-help-param-default-empty": "Implicitní hodnota: <span class=\"apihelp-empty\">(prázdné)</span>",
+       "api-help-param-token": "Token typu „$1“ získaný pomocí [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(bez popisu)</span>",
+       "api-help-examples": "{{PLURAL:$1|Příklad|Příklady}}:",
+       "api-help-permissions": "{{PLURAL:$1|Oprávnění}}:",
+       "api-help-permissions-granted-to": "Uděleno {{PLURAL:$1|skupině|skupinám}}: $2",
+       "api-help-right-apihighlimits": "Používání vyšších limitů v API dotazech (pomalé dotazy: $1, rychlé dotazy: $2). Limity pro pomalé dotazy se vztahují i na vícehodnotové parametry.",
+       "api-credits-header": "Zásluhy",
+       "api-credits": "Vývojáři API:\n* Roan Kattouw (hlavní vývojář září 2007–2009)\n* Viktor Vasiljev\n* Bryan Tong Minh\n* Sam Reed\n* Jurij Astrachan (tvůrce, hlavní vývojář září 2006–září 2007)\n* Brad Jorsch (hlavní vývojář od 2013)\n\nSvé komentáře, návrhy či dotazy posílejte na mediawiki-api@lists.wikimedia.org\nnebo založte chybové hlášení na https://bugzilla.wikimedia.org/."
+}
diff --git a/includes/api/i18n/de.json b/includes/api/i18n/de.json
new file mode 100644 (file)
index 0000000..df676ff
--- /dev/null
@@ -0,0 +1,323 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Florian",
+                       "Kghbln",
+                       "Metalhead64"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page/de Dokumentation]\n* [https://www.mediawiki.org/wiki/API:FAQ/de Häufig gestellte Fragen]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailingliste]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-Ankündigungen]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Fehlerberichte und Anfragen]\n</div>\n<strong>Status:</strong> Alle auf dieser Seite gezeigten Funktionen sollten funktionieren, aber die API ist noch in aktiver Entwicklung und könnte sich zu jeder Zeit ändern. Abonniere die [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ MediaWiki-API-Ankündigungs-Mailingliste] für Mitteilungen über Aktualisierungen.\n\n<strong>Fehlerhafte Anfragen:</strong> Wenn fehlerhafte Anfragen an die API gesendet werden, wird ein HTTP-Header mit dem Schlüssel „MediaWiki-API-Error“ versandt. Die zurückgesandten Werte des Headers und des Fehlercodes werden auf den gleichen Wert gesetzt. Für weitere Informationen siehe https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-param-action": "Welche Aktion ausgeführt werden soll.",
+       "apihelp-main-param-format": "Das Format der Ausgabe.",
+       "apihelp-main-param-maxlag": "Maximale Verzögerung kann verwendet werden, wenn MediaWiki auf einem datenbankreplizierten Cluster installiert ist. Um Aktionen zu speichern, die Websitereplikationsverzögerungen verursachen, kann dieser Parameter den Client warten lassen, bis die Replikationsverzögerung weniger als dem angegebenen Wert entspricht. Im Fall einer übermäßigen Verzögerung wird der Fehlercode „maxlag“ zurückgegeben mit einer Nachricht wie „Waiting for $host: $lag seconds lagged“.<br />Siehe https://www.mediawiki.org/wiki/Manual:Maxlag_parameter für weitere Informationen.",
+       "apihelp-main-param-smaxage": "Den s-maxage-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
+       "apihelp-main-param-maxage": "Den max-age-Header auf diese Anzahl Sekunden festlegen. Fehler werden niemals gecacht.",
+       "apihelp-main-param-assert": "Den angemeldeten Benutzer verifizieren, falls auf „user“ festgelegt oder hat das Bot-Benutzerrecht, falls „bot“.",
+       "apihelp-main-param-requestid": "Jeder hier angegebene Wert wird in der Antwort eingeschlossen. Kann für unterschiedliche Anfragen verwendet werden.",
+       "apihelp-main-param-servedby": "Den von der Anfrage bereitgestellten Hostnamen in den Ergebnissen einschließen.",
+       "apihelp-main-param-curtimestamp": "Den aktuellen Zeitstempel im Ergebnis einschließen.",
+       "apihelp-main-param-origin": "Beim Zugriff auf die API mit einer Kreuz-Domain-AJAX-Anfrage (CORS) lege dies auf die entstehende Domain fest. Dies muss in einer beliebigen Vorfluganfrage eingeschlossen werden und deshalb ein Teil der Anfrage-URI sein (nicht der POST-Body). Dies muss genau einem der Ursprünge im Origin: header entsprechen, so muss es auf etwas festgelegt werden wie http://de.wikipedia.org oder https://meta.wikimedia.org. Falls dieser Parameter nicht dem Origin: header entspricht, wird eine 403-Antwort zurückgegeben. Falls dieser Parameter dem Origin: header entspricht und der Ursprung weißgelistet ist, wird ein Zugriffskontrolle-erlauben-Ursprung festgelegt.",
+       "apihelp-main-param-uselang": "Zu verwendende Sprache für Nachrichtenübersetzungen. Eine Liste der Codes kann von [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]] abgerufen werden oder gib „user“ an zum Verwenden der aktuellen Benutzerspracheinstellung.",
+       "apihelp-block-description": "Einen Benutzer sperren.",
+       "apihelp-block-param-user": "Benutzername, IP-Adresse oder IP-Bereich, den du sperren willst.",
+       "apihelp-block-param-expiry": "Ablaufzeit. Kann relativ (z.&nbsp;B. „5 Monate“ oder „2 Wochen“) oder absolut (z.&nbsp;B. „2014-09-18T12:34:56Z“) sein. Falls auf „unbeschränkt“ oder „niemals“ gesetzt, wird die Sperre nie ablaufen.",
+       "apihelp-block-param-reason": "Grund für die Sperre.",
+       "apihelp-block-param-anononly": "Nur anonyme Benutzer sperren (z.&nbsp;B. anonyme Bearbeitungen für diese IP deaktivieren).",
+       "apihelp-block-param-nocreate": "Benutzerkontenerstellung verhindern.",
+       "apihelp-block-param-autoblock": "Die zuletzt verwendete IP-Adresse automatisch sperren und alle darauffolgenden IP-Adressen, die versuchen sich anzumelden.",
+       "apihelp-block-param-noemail": "Benutzer davon abhalten, E-Mails auf dem Wiki zu versenden (erfordert das blockemail-Recht).",
+       "apihelp-block-param-hidename": "Den Benutzernamen im Sperr-Logbuch verstecken (erfordert das hideuser-Recht).",
+       "apihelp-block-param-allowusertalk": "Dem Benutzer erlauben, seine eigene Diskussionsseite zu bearbeiten (abhängig von $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-reblock": "Falls der Benutzer bereits gesperrt ist, die vorhandene Sperre überschreiben.",
+       "apihelp-block-param-watchuser": "Beobachtet die Benutzer- oder IP-Benutzer- und -diskussionsseiten.",
+       "apihelp-block-example-ip-simple": "Sperren der IP 192.0.2.5 für drei Tage mit der Begründung „erste Verwarnung“",
+       "apihelp-block-example-user-complex": "Benutzer unbeschränkt sperren mit der Begründung „Vandalismus“ und Erstellung neuer Benutzerkonten sowie Versand von E-Mails verhindern.",
+       "apihelp-clearhasmsg-description": "Löscht das hasmsg-Flag für den aktuellen Benutzer.",
+       "apihelp-clearhasmsg-example-1": "Löscht das hasmsg-Flag für den aktuellen Benutzer",
+       "apihelp-compare-description": "Ruft den Unterschied zwischen 2 Seiten ab.\n\nDu musst eine Versionsnummer, einen Seitentitel oder eine Seitenkennung für „von“ und „nach“ angeben.",
+       "apihelp-compare-param-fromtitle": "Erster zu vergleichender Titel.",
+       "apihelp-compare-param-fromid": "Erste zu vergleichende Seitenkennung.",
+       "apihelp-compare-param-fromrev": "Erste zu vergleichende Version.",
+       "apihelp-compare-param-totitle": "Zweiter zu vergleichender Titel.",
+       "apihelp-compare-param-toid": "Zweite zu vergleichende Seitenkennung.",
+       "apihelp-compare-param-torev": "Zweite zu vergleichende Version.",
+       "apihelp-compare-example-1": "Erstellt einen Unterschied zwischen Version 1 und 2",
+       "apihelp-createaccount-description": "Erstellt ein neues Benutzerkonto.",
+       "apihelp-createaccount-param-name": "Benutzername.",
+       "apihelp-createaccount-param-password": "Passwort (ignoriert, falls $1mailpassword festgelegt ist).",
+       "apihelp-createaccount-param-domain": "Domain für die externe Authentifizierung (optional).",
+       "apihelp-createaccount-param-token": "Der in der ersten Anfrage erhaltene Benutzerkontenerstellungs-Token.",
+       "apihelp-createaccount-param-email": "E-Mail-Adresse des Benutzers (optional).",
+       "apihelp-createaccount-param-realname": "Bürgerlicher Name des Benutzers (optional).",
+       "apihelp-createaccount-param-mailpassword": "Falls auf einen beliebigen Wert gesetzt, wird ein zufälliges Passwort per E-Mail an den Benutzer versandt.",
+       "apihelp-createaccount-param-reason": "Optionale Begründung für die Benutzerkontenerstellung, die in den Logbüchern vermerkt wird.",
+       "apihelp-createaccount-param-language": "Festzulegender standardmäßiger Sprachcode für den Benutzer (optional, Standard ist Inhaltssprache).",
+       "apihelp-createaccount-example-pass": "Erstellt den Benutzer „testuser“ mit dem Passwort „test123“",
+       "apihelp-createaccount-example-mail": "Benutzer „testmailuser“ erstellen und ein zufällig generiertes Passwort per E-Mail versenden",
+       "apihelp-delete-description": "Löscht eine Seite.",
+       "apihelp-delete-param-title": "Titel der Seite, die du löschen möchtest. Kann nicht zusammen mit $1pageid verwendet werden.",
+       "apihelp-delete-param-pageid": "Seitenkennung der Seite, die du löschen möchtest. Kann nicht zusammen mit $1title verwendet werden.",
+       "apihelp-delete-param-reason": "Grund für die Löschung. Falls nicht festgelegt, wird ein automatisch generierter Grund verwendet.",
+       "apihelp-delete-param-watch": "Fügt die Seite deiner Beobachtungsliste hinzu.",
+       "apihelp-delete-param-watchlist": "Die Seite bedingungslos zu deiner Beobachtungsliste hinzufügen oder von ihr entfernen, Einstellungen verwenden oder Beobachtung nicht ändern.",
+       "apihelp-delete-param-unwatch": "Die Seite von deiner Beobachtungsliste entfernen.",
+       "apihelp-delete-param-oldimage": "Der Name des alten zu löschenden Bildes, wie von [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]] angegeben.",
+       "apihelp-delete-example-simple": "Löscht die Hauptseite",
+       "apihelp-delete-example-reason": "Die Hauptseite löschen mit der Begründung „Vorbereitung für die Verschiebung“",
+       "apihelp-disabled-description": "Dieses Modul wurde deaktiviert.",
+       "apihelp-edit-description": "Erstellt und bearbeitet Seiten.",
+       "apihelp-edit-param-title": "Titel der Seite, die du bearbeiten möchtest. Kann nicht zusammen mit $1pageid verwendet werden.",
+       "apihelp-edit-param-pageid": "Seitenkennung der Seite, die du bearbeiten möchtest. Kann nicht zusammen mit $1title verwendet werden.",
+       "apihelp-edit-param-section": "Abschnittsnummer. 0 für die Einleitung, „new“ für einen neuen Abschnitt.",
+       "apihelp-edit-param-sectiontitle": "Der Titel für einen neuen Abschnitt.",
+       "apihelp-edit-param-text": "Seiteninhalt.",
+       "apihelp-edit-param-summary": "Bearbeitungszusammenfassung. Auch Abschnittstitel, wenn $1section=new und $1sectiontitle nicht festgelegt ist.",
+       "apihelp-edit-param-minor": "Kleine Bearbeitung.",
+       "apihelp-edit-param-notminor": "Nicht-kleine Bearbeitung.",
+       "apihelp-edit-param-bot": "Diese Bearbeitung als Bot-Bearbeitung markieren.",
+       "apihelp-edit-param-basetimestamp": "Zeitstempel der Basisversion, wird verwendet zum Aufspüren von Bearbeitungskonflikten. Kann abgerufen werden durch [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Zeitstempel, an dem du den Bearbeitungsprozess begonnen hast, wird verwendet zum Aufspüren von Bearbeitungskonflikten. Ein geeigneter Wert kann abgerufen werden mithilfe [[Special:ApiHelp/main|curtimestamp]] beim Beginn des Bearbeitungsprozesses (z.&nbsp;B. beim Laden des Seiteninhalts zum Bearbeiten).",
+       "apihelp-edit-param-recreate": "Fehler ignorieren, wenn der Artikel in der Zwischenzeit gelöscht wurde.",
+       "apihelp-edit-param-createonly": "Die Seite nicht bearbeiten, falls sie bereits vorhanden ist.",
+       "apihelp-edit-param-nocreate": "Einen Fehler zurückgeben, falls die Seite nicht vorhanden ist.",
+       "apihelp-edit-param-watch": "Fügt die Seite deiner Beobachtungsliste hinzu.",
+       "apihelp-edit-param-unwatch": "Entfernt die Seite von deiner Beobachtungsliste.",
+       "apihelp-edit-param-watchlist": "Die Seite bedingungslos zu deiner Beobachtungsliste hinzufügen oder von ihr entfernen, Einstellungen verwenden oder Beobachtung nicht ändern.",
+       "apihelp-edit-param-md5": "Der MD5-Hash des Parameters $1text oder die verbundenen Parameter $1prependtext und $1appendtext. Falls festgelegt, wird die Bearbeitung nicht ausgeführt, bis der Hash korrekt ist.",
+       "apihelp-edit-param-prependtext": "Ergänzt diesen Text am Anfang der Seite. Überschreibt $1text.",
+       "apihelp-edit-param-appendtext": "Fügt diesen Text an das Ende der Seite hinzu. Überschreibt $1text.\n\nVerwende $1section=new zum Anhängen eines neuen Abschnitts anstatt dieses Parameters.",
+       "apihelp-edit-param-undo": "Diese Version rückgängig machen. Überschreibt $1text, $1prependtext und $1appendtext.",
+       "apihelp-edit-param-undoafter": "Alle Versionen von $1undo auf diese rückgängig machen. Falls nicht angegeben, nur eine Version rückgängig machen.",
+       "apihelp-edit-param-redirect": "Weiterleitungen automatisch anpassen.",
+       "apihelp-edit-param-contentformat": "Für den Eingabetext verwendetes Inhaltsserialisierungsformat.",
+       "apihelp-edit-param-contentmodel": "Inhaltsmodell des neuen Inhalts.",
+       "apihelp-edit-param-token": "Der Token sollte immer als letzter Parameter gesendet werden, mindestens aber nach dem $1text-Parameter.",
+       "apihelp-edit-example-edit": "Eine Seite bearbeiten",
+       "apihelp-edit-example-prepend": "_&#95;NOTOC_&#95; bei einer Seite voranstellen",
+       "apihelp-edit-example-undo": "Versionen 13579 bis 13585 mit automatischer Zusammenfassung rückgängig machen",
+       "apihelp-emailuser-description": "E-Mail an einen Benutzer senden.",
+       "apihelp-emailuser-param-target": "Benutzer, an den die E-Mail gesendet werden soll.",
+       "apihelp-emailuser-param-subject": "Betreffzeile.",
+       "apihelp-emailuser-param-text": "Textkörper.",
+       "apihelp-emailuser-param-ccme": "Eine Kopie dieser E-Mail an mich senden.",
+       "apihelp-emailuser-example-email": "Eine E-Mail an den Benutzer „WikiSysop“ mit dem Text „Inhalt“ senden",
+       "apihelp-expandtemplates-description": "Alle Vorlagen im Wikitext expandieren.",
+       "apihelp-expandtemplates-param-title": "Titel der Seite.",
+       "apihelp-expandtemplates-param-text": "Zu konvertierender Wikitext.",
+       "apihelp-expandtemplates-param-includecomments": "Ob HTML-Kommentare in der Ausgabe eingeschlossen werden sollen.",
+       "apihelp-expandtemplates-param-generatexml": "XML-Parserbaum erzeugen (ersetzt durch $1prop=parsetree).",
+       "apihelp-expandtemplates-example-simple": "Expandiert den Wikitext „<nowiki>{{Project:Spielwiese}}</nowiki>“",
+       "apihelp-feedcontributions-description": "Gibt einen Benutzerbeiträge-Feed zurück.",
+       "apihelp-feedcontributions-param-feedformat": "Das Format des Feeds.",
+       "apihelp-feedcontributions-param-user": "Von welchen Benutzern die Beiträge abgerufen werden sollen.",
+       "apihelp-feedcontributions-param-namespace": "Auf welchen Namensraum die Beiträge gefiltert werden sollen.",
+       "apihelp-feedcontributions-param-year": "Von Jahr (und früher).",
+       "apihelp-feedcontributions-param-month": "Von Monat (und früher).",
+       "apihelp-feedcontributions-param-tagfilter": "Beiträge filtern, die diese Markierungen haben.",
+       "apihelp-feedcontributions-param-deletedonly": "Nur gelöschte Beiträge anzeigen.",
+       "apihelp-feedcontributions-param-toponly": "Nur aktuelle Versionen anzeigen.",
+       "apihelp-feedcontributions-param-newonly": "Nur Seitenerstellungen anzeigen.",
+       "apihelp-feedcontributions-param-showsizediff": "Zeigt den Größenunterschied zwischen Versionen an.",
+       "apihelp-feedcontributions-example-simple": "Beiträge für [[Benutzer:Beispiel]] zurückgeben",
+       "apihelp-feedrecentchanges-description": "Gibt einen Letzte-Änderungen-Feed zurück.",
+       "apihelp-feedrecentchanges-param-feedformat": "Das Format des Feeds.",
+       "apihelp-feedrecentchanges-param-namespace": "Namensraum, auf den die Ergebnisse beschränkt werden sollen.",
+       "apihelp-feedrecentchanges-param-invert": "Alle Namensräume außer dem ausgewählten.",
+       "apihelp-feedrecentchanges-param-associated": "Verbundene Namensräume (Diskussion oder Haupt) einschließen.",
+       "apihelp-feedrecentchanges-param-days": "Tage, auf die die Ergebnisse beschränkt werden sollen.",
+       "apihelp-feedrecentchanges-param-limit": "Maximale Anzahl zurückzugebender Ergebnisse.",
+       "apihelp-feedrecentchanges-param-from": "Änderungen seit jetzt anzeigen.",
+       "apihelp-feedrecentchanges-param-hideminor": "Kleine Änderungen ausblenden.",
+       "apihelp-feedrecentchanges-param-hidebots": "Änderungen von Bots ausblenden.",
+       "apihelp-feedrecentchanges-param-hideanons": "Änderungen von anonymen Benutzern ausblenden.",
+       "apihelp-feedrecentchanges-param-hideliu": "Änderungen von registrierten Benutzern ausblenden.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Kontrollierte Änderungen ausblenden.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Eigene Änderungen ausblenden.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Nach Markierung filtern.",
+       "apihelp-feedrecentchanges-param-target": "Nur Änderungen an Seiten anzeigen, die von dieser Seite verlinkt sind.",
+       "apihelp-feedrecentchanges-example-simple": "Letzte Änderungen anzeigen",
+       "apihelp-feedrecentchanges-example-30days": "Letzte Änderungen für 30 Tage anzeigen",
+       "apihelp-feedwatchlist-description": "Gibt einen Beobachtungslisten-Feed zurück.",
+       "apihelp-feedwatchlist-param-feedformat": "Das Format des Feeds.",
+       "apihelp-feedwatchlist-param-linktosections": "Verlinke direkt zum veränderten Abschnitt, wenn möglich.",
+       "apihelp-feedwatchlist-example-default": "Den Beobachtungslisten-Feed anzeigen",
+       "apihelp-feedwatchlist-example-all6hrs": "Zeige alle Änderungen an beobachteten Seiten der letzten 6 Stunden.",
+       "apihelp-filerevert-description": "Eine Datei auf eine alte Version zurücksetzen.",
+       "apihelp-filerevert-param-filename": "Ziel-Datei, ohne das Datei:-Präfix.",
+       "apihelp-filerevert-param-comment": "Hochladekommentar.",
+       "apihelp-filerevert-param-archivename": "Archivname der Version, auf die die Datei zurückgesetzt werden soll.",
+       "apihelp-filerevert-example-revert": "Wiki.png auf die Version vom 2011-03-05T15:27:40Z zurücksetzen",
+       "apihelp-help-description": "Hilfe für die angegebenen Module anzeigen.",
+       "apihelp-help-param-modules": "Module, zu denen eine Hilfe angezeigt werden soll (Werte der Parameter action= und format= oder „main“). Kann Submodule mit einem „+“ angeben.",
+       "apihelp-help-param-submodules": "Hilfe für Submodule des benannten Moduls einschließen.",
+       "apihelp-help-param-recursivesubmodules": "Hilfe für Submodule rekursiv einschließen.",
+       "apihelp-help-param-helpformat": "Format der Hilfe-Ausgabe.",
+       "apihelp-help-param-wrap": "Die Ausgabe in eine Standard-API-Antwort-Struktur einschließen.",
+       "apihelp-help-param-toc": "Ein Inhaltsverzeichnis in der HTML-Ausgabe einschließen.",
+       "apihelp-help-example-main": "Hilfe für das Hauptmodul",
+       "apihelp-help-example-recursive": "Alle Hilfen in einer Seite",
+       "apihelp-help-example-help": "Hilfe für das Hilfemodul selbst",
+       "apihelp-help-example-query": "Hilfe für zwei Abfrage-Submodule",
+       "apihelp-imagerotate-description": "Ein oder mehrere Bilder drehen.",
+       "apihelp-imagerotate-param-rotation": "Anzahl der Grad, um die das Bild im Uhrzeigersinn gedreht werden soll.",
+       "apihelp-imagerotate-example-simple": "[[:Datei:Example.png]] um 90 Grad drehen",
+       "apihelp-imagerotate-example-generator": "Alle Bilder in der [[:Kategorie:Flip]] um 180 Grad drehen",
+       "apihelp-import-param-summary": "Import-Zusammenfassung.",
+       "apihelp-import-param-xml": "Hochgeladene XML-Datei.",
+       "apihelp-import-param-interwikisource": "Für Interwiki-Importe: Wiki, von dem importiert werden soll.",
+       "apihelp-import-param-interwikipage": "Für Interwiki-Importe: zu importierende Seite.",
+       "apihelp-import-param-fullhistory": "Für Interwiki-Importe: importiere die komplette Versionsgeschichte, nicht nur die aktuelle Version.",
+       "apihelp-import-param-templates": "Für Interwiki-Importe: importiere auch alle eingebundenen Vorlagen.",
+       "apihelp-import-param-namespace": "Für Interwiki-Importe: importiere in diesen Namensraum.",
+       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren.",
+       "apihelp-import-example-import": "Importiere [[meta:Help:Parserfunctions]] mit der kompletten Versionsgeschichte in den Namensraum 100.",
+       "apihelp-login-param-name": "Benutzername.",
+       "apihelp-login-param-password": "Passwort.",
+       "apihelp-login-param-domain": "Domain (optional).",
+       "apihelp-login-param-token": "Anmeldetoken, den du in der ersten Anfrage erhalten hast.",
+       "apihelp-login-example-gettoken": "Ruft einen Anmelde-Token ab",
+       "apihelp-login-example-login": "Anmelden",
+       "apihelp-logout-description": "Abmelden und alle Sitzungsdaten löschen.",
+       "apihelp-logout-example-logout": "Meldet den aktuellen Benutzer ab",
+       "apihelp-move-description": "Eine Seite verschieben.",
+       "apihelp-move-param-from": "Titel der Seite, die du verschieben möchtest. Kann nicht zusammen mit $1fromid verwendet werden.",
+       "apihelp-move-param-to": "Titel, zu dem die Seite umbenannt werden soll.",
+       "apihelp-move-param-reason": "Grund für die Verschiebung.",
+       "apihelp-move-param-movetalk": "Verschiebt die Diskussionsseite, falls vorhanden.",
+       "apihelp-move-param-movesubpages": "Unterseiten verschieben, falls zutreffend.",
+       "apihelp-move-param-noredirect": "Keine Weiterleitung erstellen.",
+       "apihelp-move-param-ignorewarnings": "Alle Warnungen ignorieren.",
+       "apihelp-move-example-move": "„Schlechter Titel“ nach „Guter Titel“ verschieben, ohne eine Weiterleitung zu erstellen",
+       "apihelp-opensearch-description": "Das Wiki mithilfe des OpenSearch-Protokolls durchsuchen.",
+       "apihelp-opensearch-param-search": "Such-Zeichenfolge.",
+       "apihelp-opensearch-param-limit": "Maximale Anzahl zurückzugebender Ergebnisse.",
+       "apihelp-opensearch-param-namespace": "Zu durchsuchende Namensräume.",
+       "apihelp-opensearch-param-suggest": "Nichts unternehmen, falls [https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest] falsch ist.",
+       "apihelp-opensearch-param-format": "Das Format der Ausgabe.",
+       "apihelp-opensearch-example-te": "Seiten finden, die mit „Te“ beginnen",
+       "apihelp-options-param-reset": "Setzt die Einstellungen auf Websitestandards zurück.",
+       "apihelp-options-example-reset": "Alle Einstellungen zurücksetzen",
+       "apihelp-options-example-change": "Ändert die Einstellungen „skin“ und „hideminor“",
+       "apihelp-options-example-complex": "Setzt alle Einstellungen zurück, dann „skin“ und „nickname“ festlegen",
+       "apihelp-paraminfo-description": "Ruft Informationen über API-Module ab.",
+       "apihelp-paraminfo-param-helpformat": "Format der Hilfe-Zeichenfolgen.",
+       "apihelp-parse-example-page": "Eine Seite parsen.",
+       "apihelp-protect-example-protect": "Schützt eine Seite",
+       "apihelp-purge-param-forcelinkupdate": "Aktualisiert die Linktabellen.",
+       "apihelp-query+allcategories-description": "Alle Kategorien aufzählen.",
+       "apihelp-query+allcategories-param-limit": "Wie viele Kategorien zurückgegeben werden sollen.",
+       "apihelp-query+allfileusages-param-limit": "Wie viele Gesamtobjekte zurückgegeben werden sollen.",
+       "apihelp-query+allfileusages-example-unique": "Einheitliche Dateititel auflisten",
+       "apihelp-query+allfileusages-example-generator": "Seiten abrufen, die die Dateien enthalten",
+       "apihelp-query+allimages-description": "Alle Bilder nacheinander auflisten.",
+       "apihelp-query+allimages-param-sha1": "SHA1-Hash des Bildes. Überschreibt $1sha1base36.",
+       "apihelp-query+allimages-param-sha1base36": "SHA1-Hash des Bildes (Basis 36; verwendet in MediaWiki).",
+       "apihelp-query+allimages-param-limit": "Wie viele Gesamtbilder zurückgegeben werden sollen.",
+       "apihelp-query+alllinks-example-unique": "Einheitlich verlinkte Titel auflisten",
+       "apihelp-query+allredirects-example-unique": "Einheitliche Zielseiten auflisten",
+       "apihelp-query+allredirects-example-generator": "Seiten abrufen, die die Weiterleitungen enthalten",
+       "apihelp-query+alltransclusions-param-namespace": "Der aufzulistende Namensraum.",
+       "apihelp-query+alltransclusions-example-unique": "Einheitlich eingebundene Titel auflisten",
+       "apihelp-query+allusers-example-Y": "Benutzer ab Y auflisten",
+       "apihelp-query+backlinks-description": "Alle Seiten finden, die auf die angegebene Seite verlinken.",
+       "apihelp-query+backlinks-example-simple": "Links auf [[Hauptseite]] anzeigen",
+       "apihelp-query+blocks-example-simple": "Sperren auflisten",
+       "apihelp-query+categorymembers-param-startsortkey": "Stattdessen $1starthexsortkey verwenden.",
+       "apihelp-query+categorymembers-param-endsortkey": "Stattdessen $1endhexsortkey verwenden.",
+       "apihelp-query+deletedrevs-param-from": "Auflistung bei diesem Titel beginnen.",
+       "apihelp-query+deletedrevs-param-to": "Auflistung bei diesem Titel beenden.",
+       "apihelp-query+imageinfo-param-limit": "Wie viele Dateiversionen pro Datei zurückgegeben werden sollen.",
+       "apihelp-query+imageinfo-param-start": "Zeitstempel, von dem die Liste beginnen soll.",
+       "apihelp-query+imageinfo-param-end": "Zeitstempel, an dem die Liste enden soll.",
+       "apihelp-query+imageinfo-param-urlheight": "Ähnlich wie $1urlwidth.",
+       "apihelp-query+iwbacklinks-param-prefix": "Präfix für das Interwiki.",
+       "apihelp-query+langbacklinks-param-limit": "Wie viele Gesamtseiten zurückgegeben werden sollen.",
+       "apihelp-query+links-example-simple": "Links von der [[Hauptseite]] abrufen",
+       "apihelp-query+linkshere-description": "Alle Seiten finden, die auf die angegebenen Seiten verlinken.",
+       "apihelp-query+logevents-description": "Ereignisse von den Logbüchern abrufen.",
+       "apihelp-query+search-example-simple": "Nach „meaning“ suchen",
+       "apihelp-query+search-example-text": "Texte nach „meaning“ durchsuchen",
+       "apihelp-query+siteinfo-example-simple": "Websiteinformationen abrufen",
+       "apihelp-query+tags-description": "Änderungs-Tags auflisten.",
+       "apihelp-query+tags-example-simple": "Verfügbare Tags auflisten",
+       "apihelp-query+usercontribs-description": "Alle Bearbeitungen von einem Benutzer abrufen.",
+       "apihelp-query+userinfo-example-simple": "Informationen über den aktuellen Benutzer abrufen",
+       "apihelp-query+users-description": "Informationen über eine Liste von Benutzern abrufen.",
+       "apihelp-rsd-description": "Ein RSD-Schema (Really Simple Discovery) exportieren.",
+       "apihelp-rsd-example-simple": "Das RSD-Schema exportieren",
+       "apihelp-setnotificationtimestamp-param-entirewatchlist": "An allen beobachteten Seiten arbeiten.",
+       "apihelp-unblock-description": "Einen Benutzer freigeben.",
+       "apihelp-unblock-param-reason": "Grund für die Freigabe.",
+       "apihelp-unblock-example-id": "Sperrkennung #105 freigeben",
+       "apihelp-undelete-param-reason": "Grund für die Wiederherstellung.",
+       "apihelp-upload-param-filename": "Ziel-Dateiname.",
+       "apihelp-upload-param-watch": "Die Seite beobachten.",
+       "apihelp-upload-param-file": "Dateiinhalte.",
+       "apihelp-upload-param-url": "URL, von der die Datei abgerufen werden soll.",
+       "apihelp-upload-example-url": "Von einer URL hochladen",
+       "apihelp-userrights-param-user": "Benutzername.",
+       "apihelp-userrights-param-userid": "Benutzerkennung.",
+       "apihelp-watch-example-watch": "Die Seite „Hauptseite“ beobachten",
+       "apihelp-format-example-generic": "Das Abfrageergebnis im $1-Format formatieren",
+       "apihelp-dbg-description": "Daten im PHP-var_export()-Format ausgeben.",
+       "apihelp-dbgfm-description": "Daten im PHP-var_export()-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-dump-description": "Daten im PHP-var_dump()-Format ausgeben.",
+       "apihelp-dumpfm-description": "Daten im PHP-var_dump()-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-json-description": "Daten im JSON-Format ausgeben.",
+       "apihelp-json-param-callback": "Falls angegeben, wird die Ausgabe in einen angegebenen Funktionsaufruf eingeschlossen. Aus Sicherheitsgründen sind benutzerspezifische Daten beschränkt.",
+       "apihelp-json-param-utf8": "Falls angegeben, kodiert die meisten (aber nicht alle) Nicht-ASCII-Zeichen als UTF-8 anstatt sie mit hexadezimalen Escape-Sequenzen zu ersetzen.",
+       "apihelp-jsonfm-description": "Daten im JSON-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-none-description": "Nichts ausgeben.",
+       "apihelp-php-description": "Daten im serialisierten PHP-Format ausgeben.",
+       "apihelp-phpfm-description": "Daten im serialisierten PHP-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-rawfm-description": "Daten mit den Fehlerbehebungselementen im JSON-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-txt-description": "Daten im PHP-print_r()-Format ausgeben.",
+       "apihelp-txtfm-description": "Daten im PHP-print_r()-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-wddx-description": "Daten im WDDX-Format ausgeben.",
+       "apihelp-wddxfm-description": "Daten im WDDX-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-xml-description": "Daten im XML-Format ausgeben.",
+       "apihelp-xml-param-xslt": "Falls angegeben, ergänzt &lt;xslt&gt; als Stylesheet. Dies sollte eine Wikiseite im MediaWiki-Namensraum sein, dessen Seitenname mit „.xsl“ endet.",
+       "apihelp-xml-param-includexmlnamespace": "Falls angegeben, ergänzt einen XML-Namensraum.",
+       "apihelp-xmlfm-description": "Daten im XML-Format ausgeben (schöngedruckt in HTML).",
+       "apihelp-yaml-description": "Daten im YAML-Format ausgeben.",
+       "apihelp-yamlfm-description": "Daten im YAML-Format ausgeben (schöngedruckt in HTML).",
+       "api-format-title": "MediaWiki-API-Ergebnis",
+       "api-format-prettyprint-header": "Du suchst nach der HTML-Repräsentation des $1-Formats. HTML ist zur Fehlerbehebung gut, aber unpassend für den Anwendungsgebrauch.\n\nGib den Formatparameter an, um das Ausgabeformat zu ändern. Um die Nicht-HTML-Repräsentation des $1-Formats anzusehen, lege format=$2 fest.\n\nSiehe die [https://www.mediawiki.org/wiki/API/de vollständige Dokumentation] oder die [[Special:ApiHelp/main|API-Hilfe]] für weitere Informationen.",
+       "api-orm-param-props": "Felder an die Anfrage.",
+       "api-orm-param-limit": "Maximale Anzahl zurückgegebender Zeilen.",
+       "api-pageset-param-titles": "Eine Liste der Titel, an denen gearbeitet werden soll.",
+       "api-pageset-param-pageids": "Eine Liste der Seitenkennungen, an denen gearbeitet werden soll.",
+       "api-pageset-param-revids": "Eine Liste der Versionskennungen, an denen gearbeitet werden soll.",
+       "api-help-title": "MediaWiki-API-Hilfe",
+       "api-help-lead": "Dies ist eine automatisch generierte MediaWiki-API-Dokumentationsseite.\n\nDokumentation und Beispiele: https://www.mediawiki.org/wiki/API/de",
+       "api-help-main-header": "Hauptmodul",
+       "api-help-flag-deprecated": "Dieses Modul ist veraltet.",
+       "api-help-flag-internal": "<strong>Dieses Modul ist intern oder instabil.</strong> Seine Operationen werden ohne Kenntnisnahme geändert.",
+       "api-help-flag-readrights": "Dieses Modul erfordert Leserechte.",
+       "api-help-flag-writerights": "Dieses Modul erfordert Schreibrechte.",
+       "api-help-flag-mustbeposted": "Dieses Modul akzeptiert nur POST-Anfragen.",
+       "api-help-flag-generator": "Dieses Modul kann als Generator verwendet werden.",
+       "api-help-parameters": "{{PLURAL:$1|Parameter}}:",
+       "api-help-param-deprecated": "Veraltet.",
+       "api-help-param-required": "Dieser Parameter ist erforderlich.",
+       "api-help-param-list": "{{PLURAL:$1|1=Ein Wert|2=Werte (mit „{{!}}“ trennen)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Muss leer sein|Kann leer sein oder $2}}",
+       "api-help-param-limit": "Nicht mehr als $1 erlaubt.",
+       "api-help-param-limit2": "Nicht mehr als $1 ($2 für Bots) erlaubt.",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=Der Wert darf|2=Die Werte dürfen}} nicht kleiner sein als $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=Der Wert darf|2=Die Werte dürfen}} nicht größer sein als $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=Der Wert muss|2=Die Werte müssen}} zwischen $2 und $3 sein.",
+       "api-help-param-upload": "Muss als Dateiupload mithilfe Mehrteil-Formdaten bereitgestellt werden.",
+       "api-help-param-multi-separate": "Werte mit „|“ trennen.",
+       "api-help-param-multi-max": "Maximale Anzahl der Werte ist {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} für Bots).",
+       "api-help-param-default": "Standard: $1",
+       "api-help-param-default-empty": "Standard: <span class=\"apihelp-empty\">(leer)</span>",
+       "api-help-param-token": "Ein „$1“-Token wurde abgerufen von [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(keine Beschreibung)</span>",
+       "api-help-examples": "{{PLURAL:$1|Beispiel|Beispiele}}:",
+       "api-help-permissions": "{{PLURAL:$1|Berechtigung|Berechtigungen}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Gewährt an}}: $2",
+       "api-help-right-apihighlimits": "Höhere Beschränkungen in API-Anfragen verwenden (langsame Anfragen: $1; schnelle Anfragen: $2). Die Beschränkungen für langsame Anfragen werden auch auf Mehrwertparameter angewandt.",
+       "api-credits-header": "Danksagungen",
+       "api-credits": "API-Entwickler:\n* Roan Kattouw (Hauptentwickler von September 2007 bis 2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (Autor, Hauptentwickler von September 2006 bis September 2007)\n* Brad Jorsch (Hauptentwickler seit 2013)\n\nBitte sende deine Kommentare, Vorschläge und Fragen an mediawiki-api@lists.wikimedia.org\noder reiche einen Fehlerbericht auf https://bugzilla.wikimedia.org/ ein."
+}
diff --git a/includes/api/i18n/en-gb.json b/includes/api/i18n/en-gb.json
new file mode 100644 (file)
index 0000000..e2206f9
--- /dev/null
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Reedy"
+               ]
+       },
+       "apihelp-edit-param-contentformat": "Content serialisation format used for the input text.",
+       "apihelp-parse-param-contentformat": "Content serialisation format used for the input text. Only valid when used with $1text.",
+       "apihelp-query+revisions+base-param-contentformat": "Serialisation format used for $1difftotext and expected for output of content.",
+       "apihelp-php-description": "Output data in serialised PHP format.",
+       "apihelp-phpfm-description": "Output data in serialised PHP format (pretty-print in HTML)."
+}
diff --git a/includes/api/i18n/en.json b/includes/api/i18n/en.json
new file mode 100644 (file)
index 0000000..4fbfb40
--- /dev/null
@@ -0,0 +1,1106 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Anomie"
+               ]
+       },
+
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Documentation]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API Announcements]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Bugs & requests]\n</div>\n<strong>Status:</strong> All features shown on this page should be working, but the API is still in active development, and may change at any time. Subscribe to [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] for notice of updates.\n\n<strong>Erroneous requests:</strong> 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. For more information see https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-param-action": "Which action to perform.",
+       "apihelp-main-param-format": "The format of the output.",
+       "apihelp-main-param-maxlag": "Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code \"maxlag\" is returned with a message like \"Waiting for $host: $lag seconds lagged\".<br />See https://www.mediawiki.org/wiki/Manual:Maxlag_parameter for more information.",
+       "apihelp-main-param-smaxage": "Set the s-maxage header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-maxage": "Set the max-age header to this many seconds. Errors are never cached.",
+       "apihelp-main-param-assert": "Verify the user is logged in if set to \"user\", or has the bot userright if \"bot\".",
+       "apihelp-main-param-requestid": "Any value given here will be included in the response. May be used to distinguish requests.",
+       "apihelp-main-param-servedby": "Include the hostname that served the request in the results.",
+       "apihelp-main-param-curtimestamp": "Include the current timestamp in the result.",
+       "apihelp-main-param-origin": "When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain. This must be included in any pre-flight request, and therefore must be part of the request URI (not the POST body). This must match one of the origins in the Origin: header exactly, so it has to be set to something like http://en.wikipedia.org or https://meta.wikimedia.org. If this parameter does not match the Origin: header, a 403 response will be returned. If this parameter matches the Origin: header and the origin is whitelisted, an Access-Control-Allow-Origin header will be set.",
+       "apihelp-main-param-uselang": "Language to use for message translations. A list of codes may be fetched from [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] with siprop=languages, or specify \"user\" to use the current user's language preference, or specify \"content\" to use this wiki's content language.",
+
+       "apihelp-block-description": "Block a user.",
+       "apihelp-block-param-user": "Username, IP address or IP range you want to block.",
+       "apihelp-block-param-expiry": "Expiry time. May be relative (e.g. \"5 months\" or \"2 weeks\") or absolute (e.g. \"2014-09-18T12:34:56Z\"). If set to \"infinite\", \"indefinite\" or \"never\", the block will never expire.",
+       "apihelp-block-param-reason": "Reason for block.",
+       "apihelp-block-param-anononly": "Block anonymous users only (i.e. disable anonymous edits for this IP).",
+       "apihelp-block-param-nocreate": "Prevent account creation.",
+       "apihelp-block-param-autoblock": "Automatically block the last used IP address, and any subsequent IP addresses they try to login from.",
+       "apihelp-block-param-noemail": "Prevent user from sending email through the wiki. (Requires the \"blockemail\" right).",
+       "apihelp-block-param-hidename": "Hide the username from the block log. (Requires the \"hideuser\" right).",
+       "apihelp-block-param-allowusertalk": "Allow the user to edit their own talk page (depends on $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-reblock": "If the user is already blocked, overwrite the existing block.",
+       "apihelp-block-param-watchuser": "Watch the user's or IP's user and talk pages.",
+       "apihelp-block-example-ip-simple": "Block IP 192.0.2.5 for three days with reason \"First strike\"",
+       "apihelp-block-example-user-complex": "Block user Vandal indefinitely with reason \"Vandalism\", and prevent new account creation and email",
+
+       "apihelp-clearhasmsg-description": "Clears the hasmsg flag for current user.",
+       "apihelp-clearhasmsg-example-1": "Clear the hasmsg flag for current user",
+
+       "apihelp-compare-description": "Get the difference between 2 pages.\n\nYou must pass a revision number, a page title, or a page ID for both \"from\" and \"to\".",
+       "apihelp-compare-param-fromtitle": "First title to compare.",
+       "apihelp-compare-param-fromid": "First page ID to compare.",
+       "apihelp-compare-param-fromrev": "First revision to compare.",
+       "apihelp-compare-param-totitle": "Second title to compare.",
+       "apihelp-compare-param-toid": "Second page ID to compare.",
+       "apihelp-compare-param-torev": "Second revision to compare.",
+       "apihelp-compare-example-1": "Create a diff between revision 1 and 2",
+
+       "apihelp-createaccount-description": "Create a new user account.",
+       "apihelp-createaccount-param-name": "Username.",
+       "apihelp-createaccount-param-password": "Password (ignored if $1mailpassword is set).",
+       "apihelp-createaccount-param-domain": "Domain for external authentication (optional).",
+       "apihelp-createaccount-param-token": "Account creation token obtained in first request.",
+       "apihelp-createaccount-param-email": "Email address of user (optional).",
+       "apihelp-createaccount-param-realname": "Real name of user (optional).",
+       "apihelp-createaccount-param-mailpassword": "If set to any value, a random password will be emailed to the user.",
+       "apihelp-createaccount-param-reason": "Optional reason for creating the account to be put in the logs.",
+       "apihelp-createaccount-param-language": "Language code to set as default for the user (optional, defaults to content language).",
+       "apihelp-createaccount-example-pass": "Create user \"testuser\" with password \"test123\"",
+       "apihelp-createaccount-example-mail": "Create user \"testmailuser\" and email a randomly-generated password",
+
+       "apihelp-delete-description": "Delete a page.",
+       "apihelp-delete-param-title": "Title of the page you want to delete. Cannot be used together with $1pageid.",
+       "apihelp-delete-param-pageid": "Page ID of the page you want to delete. Cannot be used together with $1title.",
+       "apihelp-delete-param-reason": "Reason for the deletion. If not set, an automatically generated reason will be used.",
+       "apihelp-delete-param-watch": "Add the page to your watchlist.",
+       "apihelp-delete-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-delete-param-unwatch": "Remove the page from your watchlist.",
+       "apihelp-delete-param-oldimage": "The name of the old image to delete as provided by [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
+       "apihelp-delete-example-simple": "Delete the Main Page",
+       "apihelp-delete-example-reason": "Delete the Main Page with the reason \"Preparing for move\"",
+
+       "apihelp-disabled-description": "This module has been disabled.",
+
+       "apihelp-edit-description": "Create and edit pages.",
+       "apihelp-edit-param-title": "Title of the page you want to edit. Cannot be used together with $1pageid.",
+       "apihelp-edit-param-pageid": "Page ID of the page you want to edit. Cannot be used together with $1title.",
+       "apihelp-edit-param-section": "Section number. 0 for the top section, \"new\" for a new section.",
+       "apihelp-edit-param-sectiontitle": "The title for a new section.",
+       "apihelp-edit-param-text": "Page content.",
+       "apihelp-edit-param-summary": "Edit summary. Also section title when $1section=new and $1sectiontitle is not set.",
+       "apihelp-edit-param-minor": "Minor edit.",
+       "apihelp-edit-param-notminor": "Non-minor edit.",
+       "apihelp-edit-param-bot": "Mark this edit as bot.",
+       "apihelp-edit-param-basetimestamp": "Timestamp of the base revision, used to detect edit conflicts. May be obtained through [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Timestamp when you began the editing process, used to detect edit conflicts. An appropriate value may be obtained using [[Special:ApiHelp/main|curtimestamp]] when beginning the edit process (e.g. when loading the page content to edit).",
+       "apihelp-edit-param-recreate": "Override any errors about the article having been deleted in the meantime.",
+       "apihelp-edit-param-createonly": "Don't edit the page if it exists already.",
+       "apihelp-edit-param-nocreate": "Throw an error if the page doesn't exist.",
+       "apihelp-edit-param-watch": "Add the page to your watchlist.",
+       "apihelp-edit-param-unwatch": "Remove the page from your watchlist.",
+       "apihelp-edit-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-edit-param-md5": "The MD5 hash of the $1text parameter, or the $1prependtext and $1appendtext parameters concatenated. If set, the edit won't be done unless the hash is correct.",
+       "apihelp-edit-param-prependtext": "Add this text to the beginning of the page. Overrides $1text.",
+       "apihelp-edit-param-appendtext": "Add this text to the end of the page. Overrides $1text.\n\nUse $1section=new to append a new section, rather than this parameter.",
+       "apihelp-edit-param-undo": "Undo this revision. Overrides $1text, $1prependtext and $1appendtext.",
+       "apihelp-edit-param-undoafter": "Undo all revisions from $1undo to this one. If not set, just undo one revision.",
+       "apihelp-edit-param-redirect": "Automatically resolve redirects.",
+       "apihelp-edit-param-contentformat": "Content serialization format used for the input text.",
+       "apihelp-edit-param-contentmodel": "Content model of the new content.",
+       "apihelp-edit-param-token": "The token should always be sent as the last parameter, or at least after the $1text parameter.",
+       "apihelp-edit-example-edit": "Edit a page",
+       "apihelp-edit-example-prepend": "Prepend _&#95;NOTOC_&#95; to a page",
+       "apihelp-edit-example-undo": "Undo revisions 13579 through 13585 with autosummary",
+
+       "apihelp-emailuser-description": "Email a user.",
+       "apihelp-emailuser-param-target": "User to send email to.",
+       "apihelp-emailuser-param-subject": "Subject header.",
+       "apihelp-emailuser-param-text": "Mail body.",
+       "apihelp-emailuser-param-ccme": "Send a copy of this mail to me.",
+       "apihelp-emailuser-example-email": "Send an email to the User \"WikiSysop\" with the text \"Content\"",
+
+       "apihelp-expandtemplates-description": "Expands all templates in wikitext.",
+       "apihelp-expandtemplates-param-title": "Title of page.",
+       "apihelp-expandtemplates-param-text": "Wikitext to convert.",
+       "apihelp-expandtemplates-param-prop": "Which pieces of information to get:\n;wikitext:The expanded wikitext.\n;categories:Any categories present in the input that are not represented in the wikitext output.\n;volatile:Whether the output is volatile and should not be reused elsewhere within the page.\n;ttl:The maximum time after which caches of the result should be invalidated.\n;parsetree:The XML parse tree of the input.\nNote that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.",
+       "apihelp-expandtemplates-param-includecomments": "Whether to include HTML comments in the output.",
+       "apihelp-expandtemplates-param-generatexml": "Generate XML parse tree (replaced by $1prop=parsetree).",
+       "apihelp-expandtemplates-example-simple": "Expand the wikitext \"<nowiki>{{Project:Sandbox}}</nowiki>\"",
+
+       "apihelp-feedcontributions-description": "Returns a user contributions feed.",
+       "apihelp-feedcontributions-param-feedformat": "The format of the feed.",
+       "apihelp-feedcontributions-param-user": "What users to get the contributions for.",
+       "apihelp-feedcontributions-param-namespace": "Which namespace to filter the contributions by.",
+       "apihelp-feedcontributions-param-year": "From year (and earlier).",
+       "apihelp-feedcontributions-param-month": "From month (and earlier).",
+       "apihelp-feedcontributions-param-tagfilter": "Filter contributions that have these tags.",
+       "apihelp-feedcontributions-param-deletedonly": "Show only deleted contributions.",
+       "apihelp-feedcontributions-param-toponly": "Only show edits that are latest revisions.",
+       "apihelp-feedcontributions-param-newonly": "Only show edits that are page creations.",
+       "apihelp-feedcontributions-param-showsizediff": "Show the size difference between revisions.",
+       "apihelp-feedcontributions-example-simple": "Return contributions for [[User:Example]]",
+
+       "apihelp-feedrecentchanges-description": "Returns a recent changes feed.",
+       "apihelp-feedrecentchanges-param-feedformat": "The format of the feed.",
+       "apihelp-feedrecentchanges-param-namespace": "Namespace to limit the results to.",
+       "apihelp-feedrecentchanges-param-invert": "All namespaces but the selected one.",
+       "apihelp-feedrecentchanges-param-associated": "Include associated (talk or main) namespace.",
+       "apihelp-feedrecentchanges-param-days": "Days to limit the results to.",
+       "apihelp-feedrecentchanges-param-limit": "Maximum number of results to return.",
+       "apihelp-feedrecentchanges-param-from": "Show changes since then.",
+       "apihelp-feedrecentchanges-param-hideminor": "Hide minor changes.",
+       "apihelp-feedrecentchanges-param-hidebots": "Hide changes made by bots.",
+       "apihelp-feedrecentchanges-param-hideanons": "Hide changes made by anonymous users.",
+       "apihelp-feedrecentchanges-param-hideliu": "Hide changes made by registered users.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Hide patrolled changes.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Hide changes made by yourself.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filter by tag.",
+       "apihelp-feedrecentchanges-param-target": "Show only changes on pages linked from this page.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "Show changes on pages linked to the selected page instead.",
+       "apihelp-feedrecentchanges-example-simple": "Show recent changes",
+       "apihelp-feedrecentchanges-example-30days": "Show recent changes for 30 days",
+
+       "apihelp-feedwatchlist-description": "Returns a watchlist feed.",
+       "apihelp-feedwatchlist-param-feedformat": "The format of the feed.",
+       "apihelp-feedwatchlist-param-hours": "List pages modified within this many hours from now.",
+       "apihelp-feedwatchlist-param-linktosections": "Link directly to changed sections if possible.",
+       "apihelp-feedwatchlist-example-default": "Show the watchlist feed",
+       "apihelp-feedwatchlist-example-all6hrs": "Show all changes to watched pages in the past 6 hours",
+
+       "apihelp-filerevert-description": "Revert a file to an old version.",
+       "apihelp-filerevert-param-filename": "Target filename, without the File: prefix.",
+       "apihelp-filerevert-param-comment": "Upload comment.",
+       "apihelp-filerevert-param-archivename": "Archive name of the revision to revert to.",
+       "apihelp-filerevert-example-revert": "Revert Wiki.png to the version of 2011-03-05T15:27:40Z",
+
+       "apihelp-help-description": "Display help for the specified modules.",
+       "apihelp-help-param-modules": "Modules to display help for (values of the action= and format= parameters, or \"main\"). Can specify submodules with a \"+\".",
+       "apihelp-help-param-submodules": "Include help for submodules of the named module.",
+       "apihelp-help-param-recursivesubmodules": "Include help for submodules recursively.",
+       "apihelp-help-param-helpformat": "Format of the help output.",
+       "apihelp-help-param-wrap": "Wrap the output in a standard API response structure.",
+       "apihelp-help-param-toc": "Include a table of contents in the HTML output.",
+       "apihelp-help-example-main": "Help for the main module",
+       "apihelp-help-example-recursive": "All help in one page",
+       "apihelp-help-example-help": "Help for the help module itself",
+       "apihelp-help-example-query": "Help for two query submodules",
+
+       "apihelp-imagerotate-description": "Rotate one or more images.",
+       "apihelp-imagerotate-param-rotation": "Degrees to rotate image clockwise.",
+       "apihelp-imagerotate-example-simple": "Rotate [[:File:Example.png]] by 90 degrees",
+       "apihelp-imagerotate-example-generator": "Rotate all images in [[:Category:Flip]] by 180 degrees",
+
+       "apihelp-import-description": "Import a page from another wiki, or an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the \"xml\" parameter.",
+       "apihelp-import-param-summary": "Import summary.",
+       "apihelp-import-param-xml": "Uploaded XML file.",
+       "apihelp-import-param-interwikisource": "For interwiki imports: wiki to import from.",
+       "apihelp-import-param-interwikipage": "For interwiki imports: page to import.",
+       "apihelp-import-param-fullhistory": "For interwiki imports: import the full history, not just the current version.",
+       "apihelp-import-param-templates": "For interwiki imports: import all included templates as well.",
+       "apihelp-import-param-namespace": "For interwiki imports: import to this namespace.",
+       "apihelp-import-param-rootpage": "Import as subpage of this page.",
+       "apihelp-import-example-import": "Import [[meta:Help:Parserfunctions]] to namespace 100 with full history.",
+
+       "apihelp-login-description": "Log in and get authentication cookies.\n\nIn the event of a successful log-in, the needed cookies will be included in the HTTP response headers. In the event of a failed log-in, further attempts may be throttled to limit automated password guessing attacks.",
+       "apihelp-login-param-name": "User name.",
+       "apihelp-login-param-password": "Password.",
+       "apihelp-login-param-domain": "Domain (optional).",
+       "apihelp-login-param-token": "Login token obtained in first request.",
+       "apihelp-login-example-gettoken": "Retrieve a login token",
+       "apihelp-login-example-login": "Log in",
+
+       "apihelp-logout-description": "Log out and clear session data.",
+       "apihelp-logout-example-logout": "Log the current user out",
+
+       "apihelp-move-description": "Move a page.",
+       "apihelp-move-param-from": "Title of the page you want to move. Cannot be used together with $1fromid.",
+       "apihelp-move-param-fromid": "Page ID of the page you want to move. Cannot be used together with $1from.",
+       "apihelp-move-param-to": "Title you want to rename the page to.",
+       "apihelp-move-param-reason": "Reason for the move.",
+       "apihelp-move-param-movetalk": "Move the talk page, if it exists.",
+       "apihelp-move-param-movesubpages": "Move subpages, if applicable.",
+       "apihelp-move-param-noredirect": "Don't create a redirect.",
+       "apihelp-move-param-watch": "Add the page and the redirect to your watchlist.",
+       "apihelp-move-param-unwatch": "Remove the page and the redirect from your watchlist.",
+       "apihelp-move-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-move-param-ignorewarnings": "Ignore any warnings.",
+       "apihelp-move-example-move": "Move \"Badtitle\" to \"Goodtitle\" without leaving a redirect",
+
+       "apihelp-opensearch-description": "Search the wiki using the OpenSearch protocol.",
+       "apihelp-opensearch-param-search": "Search string.",
+       "apihelp-opensearch-param-limit": "Maximum number of results to return.",
+       "apihelp-opensearch-param-namespace": "Namespaces to search.",
+       "apihelp-opensearch-param-suggest": "Do nothing if [https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest] is false.",
+       "apihelp-opensearch-param-format": "The format of the output.",
+       "apihelp-opensearch-example-te": "Find pages beginning with \"Te\"",
+
+       "apihelp-options-description": "Change preferences of the current user.\n\nOnly options which are registered in core or in one of installed extensions, or options with keys prefixed with \"userjs-\" (intended to be used by user scripts), can be set.",
+       "apihelp-options-param-reset": "Resets preferences to the site defaults.",
+       "apihelp-options-param-resetkinds": "List of types of options to reset when the \"$1reset\" option is set.",
+       "apihelp-options-param-change": "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.",
+       "apihelp-options-param-optionname": "A name of a option which should be set to the value given by \"$1optionvalue\".",
+       "apihelp-options-param-optionvalue": "A value of the option specified by \"$1optionname\", can contain pipe characters.",
+       "apihelp-options-example-reset": "Reset all preferences",
+       "apihelp-options-example-change": "Change \"skin\" and \"hideminor\" preferences",
+       "apihelp-options-example-complex": "Reset all preferences, then set \"skin\" and \"nickname\"",
+
+       "apihelp-paraminfo-description": "Obtain information about API modules.",
+       "apihelp-paraminfo-param-modules": "List of module names (values of the action= and format= parameters, or \"main\"). Can specify submodules with a \"+\".",
+       "apihelp-paraminfo-param-helpformat": "Format of help strings.",
+       "apihelp-paraminfo-param-querymodules": "List of query module names (value of prop=, meta= or list= parameter). Use \"$1modules=query+foo\" instead of \"$1querymodules=foo\".",
+       "apihelp-paraminfo-param-mainmodule": "Get information about the main (top-level) module as well. Use \"$1modules=main\" instead.",
+       "apihelp-paraminfo-param-pagesetmodule": "Get information about the pageset module (providing titles= and friends) as well.",
+       "apihelp-paraminfo-param-formatmodules": "List of format module names (value of format= parameter). Use \"$1modules\" instead.",
+       "apihelp-paraminfo-example-1": "Show info for [[Special:ApiHelp/parse|action=parse]], [[Special:ApiHelp/jsonfm|format=jsonfm]], [[Special:ApiHelp/query+allpages|action=query&list=allpages]], and [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]",
+
+       "apihelp-parse-description": "Parses content and returns parser output.\n\nSee the various prop-modules of [[Special:ApiHelp/query|action=query]] to get information from the current version of a page.\n\nThere are several ways to specify the text to parse:\n# Specify a page or revision, using $1page, $1pageid, or $1oldid.\n# Specify content explicitly, using $1text, $1title, and $1contentmodel.\n# Specify only a summary to parse. $1prop should be given an empty value.",
+       "apihelp-parse-param-title": "Title of page the text belongs to. If omitted, $1contentmodel must be specified, and \"[[API]]\" will be used as the title.",
+       "apihelp-parse-param-text": "Text to parse. Use $1title or $1contentmodel to control the content model.",
+       "apihelp-parse-param-summary": "Summary to parse.",
+       "apihelp-parse-param-page": "Parse the content of this page. Cannot be used together with $1text and $1title.",
+       "apihelp-parse-param-pageid": "Parse the content of this page. Overrides $1page.",
+       "apihelp-parse-param-redirects": "If the $1page or the $1pageid parameter is set to a redirect, resolve it.",
+       "apihelp-parse-param-oldid": "Parse the content of this revision. Overrides $1page and $1pageid.",
+       "apihelp-parse-param-prop": "Which pieces of information to get:\n;text:Gives the parsed text of the wikitext.\n;langlinks:Gives the language links in the parsed wikitext.\n;categories:Gives the categories in the parsed wikitext.\n;categorieshtml:Gives the HTML version of the categories.\n;links:Gives the internal links in the parsed wikitext.\n;templates:Gives the templates in the parsed wikitext.\n;images:Gives the images in the parsed wikitext.\n;externallinks:Gives the external links in the parsed wikitext.\n;sections:Gives the sections in the parsed wikitext.\n;revid:Adds the revision ID of the parsed page.\n;displaytitle:Adds the title of the parsed wikitext.\n;headitems:Gives items to put in the &lt;head&gt; of the page.\n;headhtml:Gives parsed &lt;head&gt; of the page.\n;modules:Gives the ResourceLoader modules used on the page.\n;indicators:Gives the HTML of page status indicators used on the page.\n;iwlinks:Gives interwiki links in the parsed wikitext.\n;wikitext:Gives the original wikitext that was parsed.\n;properties:Gives various properties defined in the parsed wikitext.\n;limitreportdata:Gives the limit report in a structured way. Gives no data, when $1disablepp is set.\n;limitreporthtml:Gives the HTML version of the limit report. Gives no data, when $1disablepp is set.",
+       "apihelp-parse-param-pst": "Do a pre-save transform on the input before parsing it. Only valid when used with text.",
+       "apihelp-parse-param-onlypst": "Do a pre-save transform (PST) on the input, but don't parse it Returns the same wikitext, after a PST has been applied. Only valid when used with $1text.",
+       "apihelp-parse-param-effectivelanglinks": "Includes language links supplied by extensions (for use with $1prop=langlinks).",
+       "apihelp-parse-param-section": "Only retrieve the content of this section number.",
+       "apihelp-parse-param-disablepp": "Disable the PP Report from the parser output.",
+       "apihelp-parse-param-disableeditsection": "Disable edit section links from the parser output.",
+       "apihelp-parse-param-generatexml": "Generate XML parse tree (requires content model \"$1\").",
+       "apihelp-parse-param-preview": "Parse in preview mode.",
+       "apihelp-parse-param-sectionpreview": "Parse in section preview mode (enables preview mode too).",
+       "apihelp-parse-param-disabletoc": "Disable table of contents in output.",
+       "apihelp-parse-param-contentformat": "Content serialization format used for the input text. Only valid when used with $1text.",
+       "apihelp-parse-param-contentmodel": "Content model of the input text. If omitted, $1title must be specified, and default will be the model of the specified title. Only valid when used with $1text.",
+       "apihelp-parse-example-page": "Parse a page.",
+       "apihelp-parse-example-text": "Parse wikitext.",
+       "apihelp-parse-example-texttitle": "Parse wikitext, specifying the page title.",
+       "apihelp-parse-example-summary": "Parse a summary.",
+
+       "apihelp-patrol-description": "Patrol a page or revision.",
+       "apihelp-patrol-param-rcid": "Recentchanges ID to patrol.",
+       "apihelp-patrol-param-revid": "Revision ID to patrol.",
+       "apihelp-patrol-example-rcid": "Patrol a recent change",
+       "apihelp-patrol-example-revid": "Patrol a revision",
+
+       "apihelp-protect-description": "Change the protection level of a page.",
+       "apihelp-protect-param-title": "Title of the page to (un)protect. Cannot be used together with $1pageid.",
+       "apihelp-protect-param-pageid": "ID of the page to (un)protect. Cannot be used together with $1title.",
+       "apihelp-protect-param-protections": "List of protection levels, formatted action=level (e.g. edit=sysop).\n\n'''NOTE:''' Any actions not listed will have restrictions removed.",
+       "apihelp-protect-param-expiry": "Expiry timestamps. If only one timestamp is set, it'll be used for all protections. Use \"infinite\", \"indefinite\", \"infinity\" or \"never\", for a never-expiring protection.",
+       "apihelp-protect-param-reason": "Reason for (un)protecting.",
+       "apihelp-protect-param-cascade": "Enable cascading protection (i.e. protect pages included in this page). Ignored if all protection levels given do not support cascading.",
+       "apihelp-protect-param-watch": "If set, add the page being (un)protected to your watchlist.",
+       "apihelp-protect-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-protect-example-protect": "Protect a page",
+       "apihelp-protect-example-unprotect": "Unprotect a page by setting restrictions to \"all\"",
+       "apihelp-protect-example-unprotect2": "Unprotect a page by setting no restrictions",
+
+       "apihelp-purge-description": "Purge the cache for the given titles.\n\nRequires a POST request if the user is not logged in.",
+       "apihelp-purge-param-forcelinkupdate": "Update the links tables.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Update the links table, and update the links tables for any page that uses this page as a template.",
+       "apihelp-purge-example-simple": "Purge the \"Main Page\" and the \"API\" page",
+       "apihelp-purge-example-generator": "Purge the first 10 pages in the main namespace",
+
+       "apihelp-query-description": "Fetch data from and about MediaWiki.\n\nAll data modifications will first have to use query to acquire a token to prevent abuse from malicious sites.",
+       "apihelp-query-param-prop": "Which properties to get for the queried pages.",
+       "apihelp-query-param-list": "Which lists to get.",
+       "apihelp-query-param-meta": "Which metadata to get.",
+       "apihelp-query-param-indexpageids": "Include an additional pageids section listing all returned page IDs.",
+       "apihelp-query-param-export": "Export the current revisions of all given or generated pages.",
+       "apihelp-query-param-exportnowrap": "Return the export XML without wrapping it in an XML result (same format as [[Special:Export]]). Can only be used with $1export.",
+       "apihelp-query-param-iwurl": "Whether to get the full URL if the title is an interwiki link.",
+       "apihelp-query-param-continue": "When present, formats query-continue as key-value pairs that should simply be merged into the original request. This parameter must be set to an empty string in the initial query.\n\nThis parameter is recommended for all new development, and will be made default in the next API version.",
+       "apihelp-query-param-rawcontinue": "Currently ignored. In the future, \"$1continue=\" will become the default and this will be needed to receive the raw query-continue data.",
+       "apihelp-query-example-revisions": "Fetch [[Special:ApiHelp/query+siteinfo|site info]] and [[Special:ApiHelp/query+revisions|revisions]] of the Main Page",
+       "apihelp-query-example-allpages": "Fetch revisions of pages beginning with \"API/\"",
+
+       "apihelp-query+allcategories-description": "Enumerate all categories.",
+       "apihelp-query+allcategories-param-from": "The category to start enumerating from.",
+       "apihelp-query+allcategories-param-to": "The category to stop enumerating at.",
+       "apihelp-query+allcategories-param-prefix": "Search for all category titles that begin with this value.",
+       "apihelp-query+allcategories-param-dir": "Direction to sort in.",
+       "apihelp-query+allcategories-param-min": "Only return categories with at least this many members.",
+       "apihelp-query+allcategories-param-max": "Only return categories with at most this many members.",
+       "apihelp-query+allcategories-param-limit": "How many categories to return.",
+       "apihelp-query+allcategories-param-prop": "Which properties to get:\n;size:Adds number of pages in the category.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+allcategories-example-size": "List categories with information on the number of pages in each",
+       "apihelp-query+allcategories-example-generator": "Retrieve info about the category page itself for categories beginning \"List\"",
+
+       "apihelp-query+alldeletedrevisions-description": "List all deleted revisions by a user or in a namespace.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "May only be used with $3user.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Cannot be used with $3user.",
+       "apihelp-query+alldeletedrevisions-param-start": "The timestamp to start enumerating from.",
+       "apihelp-query+alldeletedrevisions-param-end": "The timestamp to stop enumerating at.",
+       "apihelp-query+alldeletedrevisions-param-from": "Start listing at this title.",
+       "apihelp-query+alldeletedrevisions-param-to": "Stop listing at this title.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "Search for all page titles that begin with this value.",
+       "apihelp-query+alldeletedrevisions-param-tag": "Only list revisions tagged with this tag.",
+       "apihelp-query+alldeletedrevisions-param-user": "Only list revisions by this user.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Don't list revisions by this user.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "Only list pages in this namespace.",
+       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "'''NOTE:''' Due to [https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser mode], using $1user and $1namespace together may result in fewer than \"$1limit\" results returned before continuing; in extreme cases, zero results may be returned.",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "When being used as a generator, generate titles rather than revision IDs.",
+       "apihelp-query+alldeletedrevisions-example-user": "List the last 50 deleted contributions by User:Example",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "List the first 50 deleted revisions in the main namespace",
+
+       "apihelp-query+allfileusages-description": "List all file usages, including non-existing.",
+       "apihelp-query+allfileusages-param-from": "The title of the file to start enumerating from.",
+       "apihelp-query+allfileusages-param-to": "The title of the file to stop enumerating at.",
+       "apihelp-query+allfileusages-param-prefix": "Search for all file titles that begin with this value.",
+       "apihelp-query+allfileusages-param-unique": "Only show distinct file titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.",
+       "apihelp-query+allfileusages-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the using page (cannot be used with $1unique).\n;title:Adds the title of the file.",
+       "apihelp-query+allfileusages-param-limit": "How many total items to return.",
+       "apihelp-query+allfileusages-param-dir": "The direction in which to list.",
+       "apihelp-query+allfileusages-example-B": "List file titles, including missing ones, with page IDs they are from, starting at B",
+       "apihelp-query+allfileusages-example-unique": "List unique file titles",
+       "apihelp-query+allfileusages-example-unique-generator": "Gets all file titles, marking the missing ones",
+       "apihelp-query+allfileusages-example-generator": "Gets pages containing the files",
+
+       "apihelp-query+allimages-description": "Enumerate all images sequentially.",
+       "apihelp-query+allimages-param-sort": "Property to sort by.",
+       "apihelp-query+allimages-param-dir": "The direction in which to list.",
+       "apihelp-query+allimages-param-from": "The image title to start enumerating from. Can only be used with $1sort=name.",
+       "apihelp-query+allimages-param-to": "The image title to stop enumerating at. Can only be used with $1sort=name.",
+       "apihelp-query+allimages-param-start": "The timestamp to start enumerating from. Can only be used with $1sort=timestamp.",
+       "apihelp-query+allimages-param-end": "The timestamp to end enumerating. Can only be used with $1sort=timestamp.",
+       "apihelp-query+allimages-param-prop": "Which image information to get:\n;timestamp:Adds timestamp for the uploaded version.\n;user:Adds the user who uploaded the image version.\n;userid:Add the user ID that uploaded the image version.\n;comment:Comment on the version.\n;parsedcomment:Parse the comment on the version.\n;canonicaltitle:Adds the canonical title of the image file.\n;url:Gives URL to the image and the description page.\n;size:Adds the size of the image in bytes and the height, width and page count (if applicable).\n;dimensions:Alias for size.\n;sha1:Adds SHA-1 hash for the image.\n;mime:Adds MIME type of the image.\n;mediatype:Adds the media type of the image.\n;metadata:Lists Exif metadata for the version of the image.\n;commonmetadata:Lists file format generic metadata for the version of the image.\n;extmetadata:Lists formatted metadata combined from multiple sources. Results are HTML formatted.\n;bitdepth:Adds the bit depth of the version.",
+       "apihelp-query+allimages-param-prefix": "Search for all image titles that begin with this value. Can only be used with $1sort=name.",
+       "apihelp-query+allimages-param-minsize": "Limit to images with at least this many bytes.",
+       "apihelp-query+allimages-param-maxsize": "Limit to images with at most this many bytes.",
+       "apihelp-query+allimages-param-sha1": "SHA1 hash of image. Overrides $1sha1base36.",
+       "apihelp-query+allimages-param-sha1base36": "SHA1 hash of image in base 36 (used in MediaWiki).",
+       "apihelp-query+allimages-param-user": "Only return files uploaded by this user. Can only be used with $1sort=timestamp. Cannot be used together with $1filterbots.",
+       "apihelp-query+allimages-param-filterbots": "How to filter files uploaded by bots. Can only be used with $1sort=timestamp. Cannot be used together with $1user.",
+       "apihelp-query+allimages-param-mime": "What MIME type to search for. e.g. image/jpeg.",
+       "apihelp-query+allimages-param-limit": "How many images in total to return.",
+       "apihelp-query+allimages-example-B": "Show a list of files starting at the letter \"B\"",
+       "apihelp-query+allimages-example-recent": "Show a list of recently uploaded files similar to [[Special:NewFiles]]",
+       "apihelp-query+allimages-example-generator": "Show info about 4 files starting at the letter \"T\"",
+
+       "apihelp-query+alllinks-description": "Enumerate all links that point to a given namespace.",
+       "apihelp-query+alllinks-param-from": "The title of the link to start enumerating from.",
+       "apihelp-query+alllinks-param-to": "The title of the link to stop enumerating at.",
+       "apihelp-query+alllinks-param-prefix": "Search for all linked titles that begin with this value.",
+       "apihelp-query+alllinks-param-unique": "Only show distinct linked titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.",
+       "apihelp-query+alllinks-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the linking page (cannot be used with $1unique).\n;title:Adds the title of the link.",
+       "apihelp-query+alllinks-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+alllinks-param-limit": "How many total items to return.",
+       "apihelp-query+alllinks-param-dir": "The direction in which to list.",
+       "apihelp-query+alllinks-example-B": "List linked titles, including missing ones, with page IDs they are from, starting at B",
+       "apihelp-query+alllinks-example-unique": "List unique linked titles",
+       "apihelp-query+alllinks-example-unique-generator": "Gets all linked titles, marking the missing ones",
+       "apihelp-query+alllinks-example-generator": "Gets pages containing the links",
+
+       "apihelp-query+allmessages-description": "Return messages from this site.",
+       "apihelp-query+allmessages-param-messages": "Which messages to output. \"*\" (default) means all messages.",
+       "apihelp-query+allmessages-param-prop": "Which properties to get.",
+       "apihelp-query+allmessages-param-enableparser": "Set to enable parser, will preprocess the wikitext of message (substitute magic words, handle templates, etc.).",
+       "apihelp-query+allmessages-param-nocontent": "If set, do not include the content of the messages in the output.",
+       "apihelp-query+allmessages-param-includelocal": "Also include local messages, i.e. messages that don't exist in the software but do exist as a MediaWiki: page.\nThis lists all MediaWiki: pages, so it will also list those that aren't really messages such as [[MediaWiki:Common.js|Common.js]].",
+       "apihelp-query+allmessages-param-args": "Arguments to be substituted into message.",
+       "apihelp-query+allmessages-param-filter": "Return only messages with names that contain this string.",
+       "apihelp-query+allmessages-param-customised": "Return only messages in this customisation state.",
+       "apihelp-query+allmessages-param-lang": "Return messages in this language.",
+       "apihelp-query+allmessages-param-from": "Return messages starting at this message.",
+       "apihelp-query+allmessages-param-to": "Return messages ending at this message.",
+       "apihelp-query+allmessages-param-title": "Page name to use as context when parsing message (for $1enableparser option).",
+       "apihelp-query+allmessages-param-prefix": "Return messages with this prefix.",
+       "apihelp-query+allmessages-example-ipb": "Show messages starting with \"ipb-\"",
+       "apihelp-query+allmessages-example-de": "Show messages \"august\" and \"mainpage\" in German",
+
+       "apihelp-query+allpages-description": "Enumerate all pages sequentially in a given namespace.",
+       "apihelp-query+allpages-param-from": "The page title to start enumerating from.",
+       "apihelp-query+allpages-param-to": "The page title to stop enumerating at.",
+       "apihelp-query+allpages-param-prefix": "Search for all page titles that begin with this value.",
+       "apihelp-query+allpages-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+allpages-param-filterredir": "Which pages to list.",
+       "apihelp-query+allpages-param-minsize": "Limit to pages with at least this many bytes.",
+       "apihelp-query+allpages-param-maxsize": "Limit to pages with at most this many bytes.",
+       "apihelp-query+allpages-param-prtype": "Limit to protected pages only.",
+       "apihelp-query+allpages-param-prlevel": "Filter protections based on protection level (must be used with $1prtype= parameter).",
+       "apihelp-query+allpages-param-prfiltercascade": "Filter protections based on cascadingness (ignored when $1prtype isn't set).",
+       "apihelp-query+allpages-param-limit": "How many total pages to return.",
+       "apihelp-query+allpages-param-dir": "The direction in which to list.",
+       "apihelp-query+allpages-param-filterlanglinks": "Filter based on whether a page has langlinks. Note that this may not consider langlinks added by extensions.",
+       "apihelp-query+allpages-param-prexpiry": "Which protection expiry to filter the page on:\n;indefinite:Get only pages with indefinite protection expiry.\n;definite:Get only pages with a definite (specific) protection expiry.\n;all:Get pages with any protections expiry.",
+       "apihelp-query+allpages-example-B": "Show a list of pages starting at the letter \"B\"",
+       "apihelp-query+allpages-example-generator": "Show info about 4 pages starting at the letter \"T\"",
+       "apihelp-query+allpages-example-generator-revisions": "Show content of first 2 non-redirect pages beginning at \"Re\"",
+
+       "apihelp-query+allredirects-description": "List all redirects to a namespace.",
+       "apihelp-query+allredirects-param-from": "The title of the redirect to start enumerating from.",
+       "apihelp-query+allredirects-param-to": "The title of the redirect to stop enumerating at.",
+       "apihelp-query+allredirects-param-prefix": "Search for all target pages that begin with this value.",
+       "apihelp-query+allredirects-param-unique": "Only show distinct target pages. Cannot be used with $1prop=ids|fragment|interwiki.\nWhen used as a generator, yields target pages instead of source pages.",
+       "apihelp-query+allredirects-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the redirecting page (cannot be used with $1unique).\n;title:Adds the title of the redirect.\n;fragment:Adds the fragment from the redirect, if any (cannot be used with $1unique).\n;interwiki:Adds the interwiki prefix from the redirect, if any (cannot be used with $1unique).",
+       "apihelp-query+allredirects-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+allredirects-param-limit": "How many total items to return.",
+       "apihelp-query+allredirects-param-dir": "The direction in which to list.",
+       "apihelp-query+allredirects-example-B": "List target pages, including missing ones, with page IDs they are from, starting at B",
+       "apihelp-query+allredirects-example-unique": "List unique target pages",
+       "apihelp-query+allredirects-example-unique-generator": "Gets all target pages, marking the missing ones",
+       "apihelp-query+allredirects-example-generator": "Gets pages containing the redirects",
+
+       "apihelp-query+alltransclusions-description": "List all transclusions (pages embedded using &#123;&#123;x&#125;&#125;), including non-existing.",
+       "apihelp-query+alltransclusions-param-from": "The title of the transclusion to start enumerating from.",
+       "apihelp-query+alltransclusions-param-to": "The title of the transclusion to stop enumerating at.",
+       "apihelp-query+alltransclusions-param-prefix": "Search for all transcluded titles that begin with this value.",
+       "apihelp-query+alltransclusions-param-unique": "Only show distinct transcluded titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.",
+       "apihelp-query+alltransclusions-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the transcluding page (cannot be used with $1unique).\n;title:Adds the title of the transclusion.",
+       "apihelp-query+alltransclusions-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+alltransclusions-param-limit": "How many total items to return.",
+       "apihelp-query+alltransclusions-param-dir": "The direction in which to list.",
+       "apihelp-query+alltransclusions-example-B": "List transcluded titles, including missing ones, with page IDs they are from, starting at B",
+       "apihelp-query+alltransclusions-example-unique": "List unique transcluded titles",
+       "apihelp-query+alltransclusions-example-unique-generator": "Gets all transcluded titles, marking the missing ones",
+       "apihelp-query+alltransclusions-example-generator": "Gets pages containing the transclusions",
+
+       "apihelp-query+allusers-description": "Enumerate all registered users.",
+       "apihelp-query+allusers-param-from": "The user name to start enumerating from.",
+       "apihelp-query+allusers-param-to": "The user name to stop enumerating at.",
+       "apihelp-query+allusers-param-prefix": "Search for all users that begin with this value.",
+       "apihelp-query+allusers-param-dir": "Direction to sort in.",
+       "apihelp-query+allusers-param-group": "Only include users in the given groups.",
+       "apihelp-query+allusers-param-excludegroup": "Exclude users in the given groups.",
+       "apihelp-query+allusers-param-rights": "Only include users with the given rights. Does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed.",
+       "apihelp-query+allusers-param-prop": "Which pieces of information to include:\n;blockinfo:Adds the information about a current block on the user.\n;groups:Lists groups that the user is in. This uses more server resources and may return fewer results than the limit.\n;implicitgroups:Lists all the groups the user is automatically in.\n;rights:Lists rights that the user has.\n;editcount:Adds the edit count of the user.\n;registration:Adds the timestamp of when the user registered if available (may be blank).",
+       "apihelp-query+allusers-param-limit": "How many total user names to return.",
+       "apihelp-query+allusers-param-witheditsonly": "Only list users who have made edits.",
+       "apihelp-query+allusers-param-activeusers": "Only list users active in the last $1 {{PLURAL:$1|day|days}}.",
+       "apihelp-query+allusers-example-Y": "List users starting at Y",
+
+       "apihelp-query+backlinks-description": "Find all pages that link to the given page.",
+       "apihelp-query+backlinks-param-title": "Title to search. Cannot be used together with $1pageid.",
+       "apihelp-query+backlinks-param-pageid": "Page ID to search. Cannot be used together with $1title.",
+       "apihelp-query+backlinks-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+backlinks-param-dir": "The direction in which to list.",
+       "apihelp-query+backlinks-param-filterredir": "How to filter for redirects. If set to nonredirects when $1redirect is enabled, this is only applied to the second level.",
+       "apihelp-query+backlinks-param-limit": "How many total pages to return. If $1redirect is enabled, limit applies to each level separately (which means you may get up to 2 * limit results).",
+       "apihelp-query+backlinks-param-redirect": "If linking page is a redirect, find all pages that link to that redirect as well. Maximum limit is halved.",
+       "apihelp-query+backlinks-example-simple": "Show links to [[Main page]]",
+       "apihelp-query+backlinks-example-generator": "Get information about pages linking to [[Main page]]",
+
+       "apihelp-query+blocks-description": "List all blocked users and IP addresses.",
+       "apihelp-query+blocks-param-start": "The timestamp to start enumerating from.",
+       "apihelp-query+blocks-param-end": "The timestamp to stop enumerating at.",
+       "apihelp-query+blocks-param-ids": "List of block IDs to list (optional).",
+       "apihelp-query+blocks-param-users": "List of users to search for (optional).",
+       "apihelp-query+blocks-param-ip": "Get all blocks applying to this IP or CIDR range, including range blocks.\nCannot be used together with $3users. CIDR ranges broader than IPv4/$1 or IPv6/$2 are not accepted.",
+       "apihelp-query+blocks-param-limit": "The maximum number of blocks to list.",
+       "apihelp-query+blocks-param-prop": "Which properties to get:\n;id:Adds the ID of the block.\n;user:Adds the username of the blocked user.\n;userid:Adds the user ID of the blocked user.\n;by:Adds the username of the blocking user.\n;byid:Adds the user ID of the blocking user.\n;timestamp:Adds the timestamp of when the block was given.\n;expiry:Adds the timestamp of when the block expires.\n;reason:Adds the reason given for the block.\n;range:Adds the range of IPs affected by the block.\n;flags:Tags the ban with (autoblock, anononly, etc.).",
+       "apihelp-query+blocks-param-show": "Show only items that meet these criteria.\nFor example, to see only indefinite blocks on IPs, set $1show=ip|!temp.",
+       "apihelp-query+blocks-example-simple": "List blocks",
+       "apihelp-query+blocks-example-users": "List blocks of users Alice and Bob",
+
+       "apihelp-query+categories-description": "List all categories the pages belong to.",
+       "apihelp-query+categories-param-prop": "Which additional properties to get for each category:\n;sortkey:Adds the sortkey (hexadecimal string) and sortkey prefix (human-readable part) for the category.\n;timestamp:Adds timestamp of when the category was added.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+categories-param-show": "Which kind of categories to show.",
+       "apihelp-query+categories-param-limit": "How many categories to return.",
+       "apihelp-query+categories-param-categories": "Only list these categories. Useful for checking whether a certain page is in a certain category.",
+       "apihelp-query+categories-param-dir": "The direction in which to list.",
+       "apihelp-query+categories-example-simple": "Get a list of categories [[Albert Einstein]] belongs to",
+       "apihelp-query+categories-example-generator": "Get information about all categories used in the [[Albert Einstein]]",
+
+       "apihelp-query+categoryinfo-description": "Returns information about the given categories.",
+       "apihelp-query+categoryinfo-example-simple": "Get information about [[:Category:Foo]] and [[:Category:Bar]]",
+
+       "apihelp-query+categorymembers-description": "List all pages in a given category.",
+       "apihelp-query+categorymembers-param-title": "Which category to enumerate (required). Must include the \"Category:\" prefix. Cannot be used together with $1pageid.",
+       "apihelp-query+categorymembers-param-pageid": "Page ID of the category to enumerate. Cannot be used together with $1title.",
+       "apihelp-query+categorymembers-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID.\n;title:Adds the title and namespace ID of the page.\n;sortkey:Adds the sortkey used for sorting in the category (hexadecimal string).\n;sortkeyprefix:Adds the sortkey prefix used for sorting in the category (human-readable part of the sortkey).\n;type:Adds the type that the page has been categorised as (page, subcat or file).\n;timestamp:Adds the timestamp of when the page was included.",
+       "apihelp-query+categorymembers-param-namespace": "Only include pages in these namespaces. Note that $1type=subcat or $1type=file may be used instead of $1namespace=14 or 6.",
+       "apihelp-query+categorymembers-param-type": "Which type of category members to include. Ignored when $1sort=timestamp is set.",
+       "apihelp-query+categorymembers-param-limit": "The maximum number of pages to return.",
+       "apihelp-query+categorymembers-param-sort": "Property to sort by.",
+       "apihelp-query+categorymembers-param-dir": "In which direction to sort.",
+       "apihelp-query+categorymembers-param-start": "Timestamp to start listing from. Can only be used with $1sort=timestamp.",
+       "apihelp-query+categorymembers-param-end": "Timestamp to end listing at. Can only be used with $1sort=timestamp.",
+       "apihelp-query+categorymembers-param-starthexsortkey": "Sortkey to start listing from, as returned by $1prop=sortkey. Can only be used with $1sort=sortkey.",
+       "apihelp-query+categorymembers-param-endhexsortkey": "Sortkey to end listing from, as returned by $1prop=sortkey. Can only be used with $1sort=sortkey.",
+       "apihelp-query+categorymembers-param-startsortkeyprefix": "Sortkey prefix to start listing from. Can only be used with $1sort=sortkey. Overrides $1starthexsortkey.",
+       "apihelp-query+categorymembers-param-endsortkeyprefix": "Sortkey prefix to end listing BEFORE (not at, if this value occurs it will not be included!). Can only be used with $1sort=sortkey. Overrides $1endhexsortkey.",
+       "apihelp-query+categorymembers-param-startsortkey": "Use $1starthexsortkey instead.",
+       "apihelp-query+categorymembers-param-endsortkey": "Use $1endhexsortkey instead.",
+       "apihelp-query+categorymembers-example-simple": "Get first 10 pages in [[:Category:Physics]]",
+       "apihelp-query+categorymembers-example-generator": "Get page info about first 10 pages in [[:Category:Physics]]",
+
+       "apihelp-query+contributors-description": "Get the list of logged-in contributors and the count of anonymous contributors to a page.",
+       "apihelp-query+contributors-param-group": "Only include users in the given groups. Does not include implicit or auto-promoted groups like *, user, or autoconfirmed.",
+       "apihelp-query+contributors-param-excludegroup": "Exclude users in the given groups. Does not include implicit or auto-promoted groups like *, user, or autoconfirmed.",
+       "apihelp-query+contributors-param-rights": "Only include users having the given rights. Does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed.",
+       "apihelp-query+contributors-param-excluderights": "Exclude users having the given rights. Does not include rights granted by implicit or auto-promoted groups like *, user, or autoconfirmed.",
+       "apihelp-query+contributors-param-limit": "How many contributors to return.",
+       "apihelp-query+contributors-example-simple": "Show contributors to the [[Main Page]]",
+
+       "apihelp-query+deletedrevisions-description": "Get deleted revision information.\n\nMay be used in several ways:\n# Get deleted revisions for a set of pages, by setting titles or pageids. Ordered by title and timestamp.\n# Get data about a set of deleted revisions by setting their IDs with revids. Ordered by revision ID.",
+       "apihelp-query+deletedrevisions-param-start": "The timestamp to start enumerating from. Ignored when processing a list of revision IDs.",
+       "apihelp-query+deletedrevisions-param-end": "The timestamp to stop enumerating at. Ignored when processing a list of revision IDs.",
+       "apihelp-query+deletedrevisions-param-tag": "Only list revisions tagged with this tag.",
+       "apihelp-query+deletedrevisions-param-user": "Only list revisions by this user.",
+       "apihelp-query+deletedrevisions-param-excludeuser": "Don't list revisions by this user.",
+       "apihelp-query+deletedrevisions-param-limit": "The maximum amount of revisions to list.",
+       "apihelp-query+deletedrevisions-param-prop": "Which properties to get:\n;revid:Adds the revision ID of the deleted revision.\n;parentid:Adds the revision ID of the previous revision to the page.\n;user:Adds the user who made the revision.\n;userid:Adds the user ID who made the revision.\n;comment:Adds the comment of the revision.\n;parsedcomment:Adds the parsed comment of the revision.\n;minor:Tags if the revision is minor.\n;len:Adds the length (bytes) of the revision.\n;sha1:Adds the SHA-1 (base 16) of the revision.\n;content:Adds the content of the revision.\n;tags:Tags for the revision.",
+       "apihelp-query+deletedrevisions-example-titles": "List the deleted revisions of [[Main Page]] and [[Talk:Main Page]], with content",
+       "apihelp-query+deletedrevisions-example-revids": "List the information for deleted revision 123456",
+
+       "apihelp-query+deletedrevs-description": "List deleted revisions.\n\nOperates in three modes:\n# List deleted revisions for the given titles, sorted by timestamp.\n# List deleted contributions for the given user, sorted by timestamp (no titles specified).\n# List all deleted revisions in the given namespace, sorted by title and timestamp (no titles specified, $1user not set).\n\nCertain parameters only apply to some modes and are ignored in others.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Mode|Modes}}: $2",
+       "apihelp-query+deletedrevs-param-start": "The timestamp to start enumerating from.",
+       "apihelp-query+deletedrevs-param-end": "The timestamp to stop enumerating at.",
+       "apihelp-query+deletedrevs-param-from": "Start listing at this title.",
+       "apihelp-query+deletedrevs-param-to": "Stop listing at this title.",
+       "apihelp-query+deletedrevs-param-prefix": "Search for all page titles that begin with this value.",
+       "apihelp-query+deletedrevs-param-unique": "List only one revision for each page.",
+       "apihelp-query+deletedrevs-param-tag": "Only list revisions tagged with this tag.",
+       "apihelp-query+deletedrevs-param-user": "Only list revisions by this user.",
+       "apihelp-query+deletedrevs-param-excludeuser": "Don't list revisions by this user.",
+       "apihelp-query+deletedrevs-param-namespace": "Only list pages in this namespace.",
+       "apihelp-query+deletedrevs-param-limit": "The maximum amount of revisions to list.",
+       "apihelp-query+deletedrevs-param-prop": "Which properties to get:\n;revid:Adds the revision ID of the deleted revision.\n;parentid:Adds the revision ID of the previous revision to the page.\n;user:Adds the user who made the revision.\n;userid:Adds the user ID whom made the revision.\n;comment:Adds the comment of the revision.\n;parsedcomment:Adds the parsed comment of the revision.\n;minor:Tags if the revision is minor.\n;len:Adds the length (bytes) of the revision.\n;sha1:Adds the SHA-1 (base 16) of the revision.\n;content:Adds the content of the revision.\n;token:<span class=\"apihelp-deprecated\">Deprecated.</span> Gives the edit token.\n;tags:Tags for the revision.",
+       "apihelp-query+deletedrevs-example-mode1": "List the last deleted revisions of Main Page and Talk:Main Page, with content (mode 1)",
+       "apihelp-query+deletedrevs-example-mode2": "List the last 50 deleted contributions by Bob (mode 2)",
+       "apihelp-query+deletedrevs-example-mode3-main": "List the first 50 deleted revisions in the main namespace (mode 3)",
+       "apihelp-query+deletedrevs-example-mode3-talk": "List the first 50 deleted pages in the Talk namespace (mode 3):",
+
+       "apihelp-query+disabled-description": "This query module has been disabled.",
+
+       "apihelp-query+duplicatefiles-description": "List all files that are duplicates of the given files based on hash values.",
+       "apihelp-query+duplicatefiles-param-limit": "How many duplicate files to return.",
+       "apihelp-query+duplicatefiles-param-dir": "The direction in which to list.",
+       "apihelp-query+duplicatefiles-param-localonly": "Look only for files in the local repository.",
+       "apihelp-query+duplicatefiles-example-simple": "Look for duplicates of [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+duplicatefiles-example-generated": "Look for duplicates of all files",
+
+       "apihelp-query+embeddedin-description": "Find all pages that embed (transclude) the given title.",
+       "apihelp-query+embeddedin-param-title": "Title to search. Cannot be used together with $1pageid.",
+       "apihelp-query+embeddedin-param-pageid": "Page ID to search. Cannot be used together with $1title.",
+       "apihelp-query+embeddedin-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+embeddedin-param-dir": "The direction in which to list.",
+       "apihelp-query+embeddedin-param-filterredir": "How to filter for redirects.",
+       "apihelp-query+embeddedin-param-limit": "How many total pages to return.",
+       "apihelp-query+embeddedin-example-simple": "Show pages transcluding [[Template:Stub]]",
+       "apihelp-query+embeddedin-example-generator": "Get information about pages transcluding [[Template:Stub]]",
+
+       "apihelp-query+extlinks-description": "Returns all external URLs (not interwikis) from the given pages.",
+       "apihelp-query+extlinks-param-limit": "How many links to return.",
+       "apihelp-query+extlinks-param-protocol": "Protocol of the URL. If empty and $1query is set, the protocol is \"http\". Leave both this and $1query empty to list all external links.",
+       "apihelp-query+extlinks-param-query": "Search string without protocol. Useful for checking whether a certain page contains a certain external url.",
+       "apihelp-query+extlinks-param-expandurl": "Expand protocol-relative URLs with the canonical protocol.",
+       "apihelp-query+extlinks-example-simple": "Get a list of external links on the [[Main Page]]",
+
+       "apihelp-query+exturlusage-description": "Enumerate pages that contain a given URL.",
+       "apihelp-query+exturlusage-param-prop": "Which pieces of information to include:\n;ids:Adds the ID of page.\n;title:Adds the title and namespace ID of the page.\n;url:Adds the URL used in the page.",
+       "apihelp-query+exturlusage-param-protocol": "Protocol of the URL. If empty and $1query set, the protocol is \"http\". Leave both this and $1query empty to list all external links.",
+       "apihelp-query+exturlusage-param-query": "Search string without protocol. See [[Special:LinkSearch]]. Leave empty to list all external links.",
+       "apihelp-query+exturlusage-param-namespace": "The page namespaces to enumerate.",
+       "apihelp-query+exturlusage-param-limit": "How many pages to return.",
+       "apihelp-query+exturlusage-param-expandurl": "Expand protocol-relative URLs with the canonical protocol.",
+       "apihelp-query+exturlusage-example-simple": "Show pages linking to http://www.mediawiki.org",
+
+       "apihelp-query+filearchive-description": "Enumerate all deleted files sequentially.",
+       "apihelp-query+filearchive-param-from": "The image title to start enumerating from.",
+       "apihelp-query+filearchive-param-to": "The image title to stop enumerating at.",
+       "apihelp-query+filearchive-param-prefix": "Search for all image titles that begin with this value.",
+       "apihelp-query+filearchive-param-limit": "How many images to return in total.",
+       "apihelp-query+filearchive-param-dir": "The direction in which to list.",
+       "apihelp-query+filearchive-param-sha1": "SHA1 hash of image. Overrides $1sha1base36.",
+       "apihelp-query+filearchive-param-sha1base36": "SHA1 hash of image in base 36 (used in MediaWiki).",
+       "apihelp-query+filearchive-param-prop": "Which image information to get:\n;sha1:Adds SHA-1 hash for the image.\n;timestamp:Adds timestamp for the uploaded version.\n;user:Adds user who uploaded the image version.\n;size:Adds the size of the image in bytes and the height, width and page count (if applicable).\n;dimensions:Alias for size.\n;description:Adds description the image version.\n;parseddescription:Parse the description on the version.\n;mime:Adds MIME of the image.\n;mediatype:Adds the media type of the image.\n;metadata:Lists Exif metadata for the version of the image.\n;bitdepth:Adds the bit depth of the version.\n;archivename:Adds the file name of the archive version for non-latest versions.",
+       "apihelp-query+filearchive-example-simple": "Show a list of all deleted files",
+
+       "apihelp-query+filerepoinfo-description": "Return meta information about image repositories configured on the wiki.",
+       "apihelp-query+filerepoinfo-param-prop": "Which repository properties to get (there may be more available on some wikis):\n;apiurl:URL to the repository API - helpful for getting image info from the host.\n;name:The key of the repository - used in e.g. $wgForeignFileRepos and imageinfo return values.\n;displayname:The human-readable name of the repository wiki.\n;rooturl:Root URL for image paths.\n;local:Whether that repository is the local one or not.",
+       "apihelp-query+filerepoinfo-example-simple": "Get information about file repositories",
+
+       "apihelp-query+fileusage-description": "Find all pages that use the given files.",
+       "apihelp-query+fileusage-param-prop": "Which properties to get:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
+       "apihelp-query+fileusage-param-namespace": "Only include pages in these namespaces.",
+       "apihelp-query+fileusage-param-limit": "How many to return.",
+       "apihelp-query+fileusage-param-show": "Show only items that meet these criteria:\n;redirect:Only show redirects.\n;!redirects:Only show non-redirects.",
+       "apihelp-query+fileusage-example-simple": "Get a list of pages using [[:File:Example.jpg]]",
+       "apihelp-query+fileusage-example-generator": "Get information about pages using [[:File:Example.jpg]]",
+
+       "apihelp-query+imageinfo-description": "Returns file information and upload history.",
+       "apihelp-query+imageinfo-param-prop": "Which file information to get:\n;timestamp:Adds timestamp for the uploaded version.\n;user:Adds the user who uploaded each file version.\n;userid:Add the user ID that uploaded each file version.\n;comment:Comment on the version.\n;parsedcomment:Parse the comment on the version.\n;canonicaltitle:Adds the canonical title of the file.\n;url:Gives URL to the file and the description page.\n;size:Adds the size of the file in bytes and the height, width and page count (if applicable).\n;dimensions:Alias for size.\n;sha1:Adds SHA-1 hash for the file.\n;mime:Adds MIME type of the file.\n;thumbmime:Adds MIME type of the image thumbnail (requires url and param $1urlwidth).\n;mediatype:Adds the media type of the file.\n;metadata:Lists Exif metadata for the version of the file.\n;commonmetadata:Lists file format generic metadata for the version of the file.\n;extmetadata:Lists formatted metadata combined from multiple sources. Results are HTML formatted.\n;archivename:Adds the file name of the archive version for non-latest versions.\n;bitdepth:Adds the bit depth of the version.\n;uploadwarning:Used by the Special:Upload page to get information about an existing file. Not intended for use outside MediaWiki core.",
+       "apihelp-query+imageinfo-param-limit": "How many file revisions to return per file.",
+       "apihelp-query+imageinfo-param-start": "Timestamp to start listing from.",
+       "apihelp-query+imageinfo-param-end": "Timestamp to stop listing at.",
+       "apihelp-query+imageinfo-param-urlwidth": "If $2prop=url is set, a URL to an image scaled to this width will be returned.\nFor performance reasons if this option is used, no more than $1 scaled images will be returned.",
+       "apihelp-query+imageinfo-param-urlheight": "Similar to $1urlwidth.",
+       "apihelp-query+imageinfo-param-metadataversion": "Version of metadata to use. if \"latest\" is specified, use latest version. Defaults to \"1\" for backwards compatibility.",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "What language to fetch extmetadata in. This affects both which translation to fetch, if multiple are available, as well as how things like numbers and various values are formatted.",
+       "apihelp-query+imageinfo-param-extmetadatamultilang": "If translations for extmetadata property are available, fetch all of them.",
+       "apihelp-query+imageinfo-param-extmetadatafilter": "If specified and non-empty, only these keys will be returned for $1prop=extmetadata.",
+       "apihelp-query+imageinfo-param-urlparam": "A handler specific parameter string. For example, pdfs might use \"page15-100px\". $1urlwidth must be used and be consistent with $1urlparam.",
+       "apihelp-query+imageinfo-param-localonly": "Look only for files in the local repository.",
+       "apihelp-query+imageinfo-example-simple": "Fetch information about the current version of [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+imageinfo-example-dated": "Fetch information about versions of [[:File:Test.jpg]] from 2008 and later",
+
+       "apihelp-query+images-description": "Returns all files contained on the given pages.",
+       "apihelp-query+images-param-limit": "How many files to return.",
+       "apihelp-query+images-param-images": "Only list these files. Useful for checking whether a certain page has a certain file.",
+       "apihelp-query+images-param-dir": "The direction in which to list.",
+       "apihelp-query+images-example-simple": "Get a list of files used in the [[Main Page]]",
+       "apihelp-query+images-example-generator": "Get information about all files used in the [[Main Page]]",
+
+       "apihelp-query+imageusage-description": "Find all pages that use the given image title.",
+       "apihelp-query+imageusage-param-title": "Title to search. Cannot be used together with $1pageid.",
+       "apihelp-query+imageusage-param-pageid": "Page ID to search. Cannot be used together with $1title.",
+       "apihelp-query+imageusage-param-namespace": "The namespace to enumerate.",
+       "apihelp-query+imageusage-param-dir": "The direction in which to list.",
+       "apihelp-query+imageusage-param-filterredir": "How to filter for redirects. If set to nonredirects when $1redirect is enabled, this is only applied to the second level.",
+       "apihelp-query+imageusage-param-limit": "How many total pages to return. If $1redirect is enabled, limit applies to each level separately (which means you may get up to 2 * limit results).",
+       "apihelp-query+imageusage-param-redirect": "If linking page is a redirect, find all pages that link to that redirect as well. Maximum limit is halved.",
+       "apihelp-query+imageusage-example-simple": "Show pages using [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+imageusage-example-generator": "Get information about pages using [[:File:Albert Einstein Head.jpg]]",
+
+       "apihelp-query+info-description": "Get basic page information.",
+       "apihelp-query+info-param-prop": "Which additional properties to get:\n;protection:List the protection level of each page.\n;talkid:The page ID of the talk page for each non-talk page.\n;watched:List the watched status of each page.\n;watchers:The number of watchers, if allowed.\n;notificationtimestamp:The watchlist notification timestamp of each page.\n;subjectid:The page ID of the parent page for each talk page.\n;url:Gives a full URL, an edit URL, and the canonical URL for each page.\n;readable:Whether the user can read this page.\n;preload:Gives the text returned by EditFormPreloadText.\n;displaytitle:Gives the way the page title is actually displayed.",
+       "apihelp-query+info-param-token": "Use [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] instead.",
+       "apihelp-query+info-example-simple": "Get information about the [[Main Page]]",
+       "apihelp-query+info-example-protection": "Get general and protection information about the [[Main Page]]",
+
+       "apihelp-query+iwbacklinks-description": "Find all pages that link to the given interwiki link.\n\nCan 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 interwiki links\".",
+       "apihelp-query+iwbacklinks-param-prefix": "Prefix for the interwiki.",
+       "apihelp-query+iwbacklinks-param-title": "Interwiki link to search for. Must be used with $1blprefix.",
+       "apihelp-query+iwbacklinks-param-limit": "How many total pages to return.",
+       "apihelp-query+iwbacklinks-param-prop": "Which properties to get:\n;iwprefix:Adds the prefix of the interwiki.\n;iwtitle:Adds the title of the interwiki.",
+       "apihelp-query+iwbacklinks-param-dir": "The direction in which to list.",
+       "apihelp-query+iwbacklinks-example-simple": "Get pages linking to [[wikibooks:Test]]",
+       "apihelp-query+iwbacklinks-example-generator": "Get information about pages linking to [[wikibooks:Test]]",
+
+       "apihelp-query+iwlinks-description": "Returns all interwiki links from the given pages.",
+       "apihelp-query+iwlinks-param-url": "Whether to get the full URL (cannot be used with $1prop).",
+       "apihelp-query+iwlinks-param-prop": "Which additional properties to get for each interlanguage link:\n;url:Adds the full URL.",
+       "apihelp-query+iwlinks-param-limit": "How many interwiki links to return.",
+       "apihelp-query+iwlinks-param-prefix": "Only return interwiki links with this prefix.",
+       "apihelp-query+iwlinks-param-title": "Interwiki link to search for. Must be used with $1prefix.",
+       "apihelp-query+iwlinks-param-dir": "The direction in which to list.",
+       "apihelp-query+iwlinks-example-simple": "Get interwiki links from the [[Main Page]]",
+
+       "apihelp-query+langbacklinks-description": "Find all pages that link to the given language link.\n\nCan be used to find all links with a language code, or all links to a title (with a given language). Using neither parameter is effectively \"all language links\".\n\nNote that this may not consider language links added by extensions.",
+       "apihelp-query+langbacklinks-param-lang": "Language for the language link.",
+       "apihelp-query+langbacklinks-param-title": "Language link to search for. Must be used with $1lang.",
+       "apihelp-query+langbacklinks-param-limit": "How many total pages to return.",
+       "apihelp-query+langbacklinks-param-prop": "Which properties to get:\n;lllang:Adds the language code of the language link.\n;lltitle:Adds the title of the language link.",
+       "apihelp-query+langbacklinks-param-dir": "The direction in which to list.",
+       "apihelp-query+langbacklinks-example-simple": "Get pages linking to [[:fr:Test]]",
+       "apihelp-query+langbacklinks-example-generator": "Get information about pages linking to [[:fr:Test]]",
+
+       "apihelp-query+langlinks-description": "Returns all interlanguage links from the given pages.",
+       "apihelp-query+langlinks-param-limit": "How many langlinks to return.",
+       "apihelp-query+langlinks-param-url": "Whether to get the full URL (cannot be used with $1prop).",
+       "apihelp-query+langlinks-param-prop": "Which additional properties to get for each interlanguage link:\n;url:Adds the full URL.\n;langname:Adds the localised language name (best effort). Use $1inlanguagecode to control the language.\n;autonym:Adds the native language name.",
+       "apihelp-query+langlinks-param-lang": "Only return language links with this language code.",
+       "apihelp-query+langlinks-param-title": "Link to search for. Must be used with $1lang.",
+       "apihelp-query+langlinks-param-dir": "The direction in which to list.",
+       "apihelp-query+langlinks-param-inlanguagecode": "Language code for localised language names.",
+       "apihelp-query+langlinks-example-simple": "Get interlanguage links from the [[Main Page]]",
+
+       "apihelp-query+links-description": "Returns all links from the given pages.",
+       "apihelp-query+links-param-namespace": "Show links in these namespaces only.",
+       "apihelp-query+links-param-limit": "How many links to return.",
+       "apihelp-query+links-param-titles": "Only list links to these titles. Useful for checking whether a certain page links to a certain title.",
+       "apihelp-query+links-param-dir": "The direction in which to list.",
+       "apihelp-query+links-example-simple": "Get links from the [[Main Page]]",
+       "apihelp-query+links-example-generator": "Get information about the link pages in the [[Main Page]]",
+       "apihelp-query+links-example-namespaces": "Get links from the [[Main Page]] in the User and Template namespaces",
+
+       "apihelp-query+linkshere-description": "Find all pages that link to the given pages.",
+       "apihelp-query+linkshere-param-prop": "Which properties to get:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
+       "apihelp-query+linkshere-param-namespace": "Only include pages in these namespaces.",
+       "apihelp-query+linkshere-param-limit": "How many to return.",
+       "apihelp-query+linkshere-param-show": "Show only items that meet these criteria:\n;redirect:Only show redirects.\n;!redirects:Only show non-redirects.",
+       "apihelp-query+linkshere-example-simple": "Get a list of pages linking to the [[Main Page]]",
+       "apihelp-query+linkshere-example-generator": "Get information about pages linking to the [[Main Page]]",
+
+       "apihelp-query+logevents-description": "Get events from logs.",
+       "apihelp-query+logevents-param-prop": "Which properties to get:\n;ids:Adds the ID of the log event.\n;title:Adds the title of the page for the log event.\n;type:Adds the type of log event.\n;user:Adds the user responsible for the log event.\n;userid:Adds the user ID who was responsible for the log event.\n;timestamp:Adds the timestamp for the event.\n;comment:Adds the comment of the event.\n;parsedcomment:Adds the parsed comment of the event.\n;details:Lists additional details about the event.\n;tags:Lists tags for the event.",
+       "apihelp-query+logevents-param-type": "Filter log entries to only this type.",
+       "apihelp-query+logevents-param-action": "Filter log actions to only this action. Overrides $1type. Wildcard actions like \"action/*\" allows to specify any string for the asterisk.",
+       "apihelp-query+logevents-param-start": "The timestamp to start enumerating from.",
+       "apihelp-query+logevents-param-end": "The timestamp to end enumerating.",
+       "apihelp-query+logevents-param-user": "Filter entries to those made by the given user.",
+       "apihelp-query+logevents-param-title": "Filter entries to those related to a page.",
+       "apihelp-query+logevents-param-namespace": "Filter entries to those in the given namespace.",
+       "apihelp-query+logevents-param-prefix": "Filter entries that start with this prefix.",
+       "apihelp-query+logevents-param-tag": "Only list event entries tagged with this tag.",
+       "apihelp-query+logevents-param-limit": "How many total event entries to return.",
+       "apihelp-query+logevents-example-simple": "List recent log events",
+
+       "apihelp-query+pagepropnames-description": "List all page prop names in use on the wiki.",
+       "apihelp-query+pagepropnames-param-limit": "The maximum number of names to return.",
+       "apihelp-query+pagepropnames-example-simple": "Get first 10 prop names",
+
+       "apihelp-query+pageprops-description": "Get various properties defined in the page content.",
+       "apihelp-query+pageprops-param-prop": "Only list these props. Useful for checking whether a certain page uses a certain page prop.",
+       "apihelp-query+pageprops-example-simple": "Get properties for [[:Category:Foo]]",
+
+       "apihelp-query+pageswithprop-description": "List all pages using a given page prop.",
+       "apihelp-query+pageswithprop-param-propname": "Page prop for which to enumerate pages.",
+       "apihelp-query+pageswithprop-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID.\n;title:Adds the title and namespace ID of the page.\n;value:Adds the value of the page prop.",
+       "apihelp-query+pageswithprop-param-limit": "The maximum number of pages to return.",
+       "apihelp-query+pageswithprop-param-dir": "In which direction to sort.",
+       "apihelp-query+pageswithprop-example-simple": "List the first 10 pages using &#123;&#123;DISPLAYTITLE:&#125;&#125;",
+       "apihelp-query+pageswithprop-example-generator": "Get page info about first 10 pages using _&#95;NOTOC_&#95;",
+
+       "apihelp-query+prefixsearch-description": "Perform a prefix search for page titles.",
+       "apihelp-query+prefixsearch-param-search": "Search string.",
+       "apihelp-query+prefixsearch-param-namespace": "Namespaces to search.",
+       "apihelp-query+prefixsearch-param-limit": "Maximum number of results to return.",
+       "apihelp-query+prefixsearch-example-simple": "Search for page titles beginning with \"meaning\"",
+
+       "apihelp-query+protectedtitles-description": "List all titles protected from creation.",
+       "apihelp-query+protectedtitles-param-namespace": "Only list titles in these namespaces.",
+       "apihelp-query+protectedtitles-param-level": "Only list titles with these protection levels.",
+       "apihelp-query+protectedtitles-param-limit": "How many total pages to return.",
+       "apihelp-query+protectedtitles-param-start": "Start listing at this protection timestamp.",
+       "apihelp-query+protectedtitles-param-end": "Stop listing at this protection timestamp.",
+       "apihelp-query+protectedtitles-param-prop": "Which properties to get:\n;timestamp:Adds the timestamp of when protection was added.\n;user:Adds the user that added the protection.\n;userid:Adds the user ID that added the protection.\n;comment:Adds the comment for the protection.\n;parsedcomment:Adds the parsed comment for the protection.\n;expiry:Adds the timestamp of when the protection will be lifted.\n;level:Adds the protection level.",
+       "apihelp-query+protectedtitles-example-simple": "List protected titles",
+       "apihelp-query+protectedtitles-example-generator": "Find links to protected titles in the main namespace",
+
+       "apihelp-query+querypage-description": "Get a list provided by a QueryPage-based special page.",
+       "apihelp-query+querypage-param-page": "The name of the special page. Note, this is case sensitive.",
+       "apihelp-query+querypage-param-limit": "Number of results to return.",
+       "apihelp-query+querypage-example-ancientpages": "Return results from [[Special:Ancientpages]].",
+
+       "apihelp-query+random-description": "Get a set of random pages.\n\nPages 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.\n\nIf the number of pages in the namespace is lower than $1limit, you will get fewer pages. You will not get the same page twice.",
+       "apihelp-query+random-param-namespace": "Return pages in these namespaces only.",
+       "apihelp-query+random-param-limit": "Limit how many random pages will be returned.",
+       "apihelp-query+random-param-redirect": "Load a random redirect instead of a random page.",
+       "apihelp-query+random-example-simple": "Return two random pages from the main namespace",
+       "apihelp-query+random-example-generator": "Return page info about two random pages from the main namespace",
+
+       "apihelp-query+recentchanges-description": "Enumerate recent changes.",
+       "apihelp-query+recentchanges-param-start": "The timestamp to start enumerating from.",
+       "apihelp-query+recentchanges-param-end": "The timestamp to end enumerating.",
+       "apihelp-query+recentchanges-param-namespace": "Filter changes to only these namespaces.",
+       "apihelp-query+recentchanges-param-user": "Only list changes by this user.",
+       "apihelp-query+recentchanges-param-excludeuser": "Don't list changes by this user.",
+       "apihelp-query+recentchanges-param-tag": "Only list changes tagged with this tag.",
+       "apihelp-query+recentchanges-param-prop": "Include additional pieces of information:\n;user:Adds the user responsible for the edit and tags if they are an IP.\n;userid:Adds the user ID responsible for the edit.\n;comment:Adds the comment for the edit.\n;parsedcomment:Adds the parsed comment for the edit.\n;flags:Adds flags for the edit.\n;timestamp:Adds timestamp of the edit.\n;title:Adds the page title of the edit.\n;ids:Adds the page ID, recent changes ID and the new and old revision ID.\n;sizes:Adds the new and old page length in bytes.\n;redirect:Tags edit if page is a redirect.\n;patrolled:Tags patrollable edits as being patrolled or unpatrolled.\n;loginfo:Adds log information (log ID, log type, etc) to log entries.\n;tags:Lists tags for the entry.\n;sha1:Adds the content checksum for entries associated with a revision.",
+       "apihelp-query+recentchanges-param-token": "Use [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] instead.",
+       "apihelp-query+recentchanges-param-show": "Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set $1show=minor|!anon.",
+       "apihelp-query+recentchanges-param-limit": "How many total changes to return.",
+       "apihelp-query+recentchanges-param-type": "Which types of changes to show.",
+       "apihelp-query+recentchanges-param-toponly": "Only list changes which are the latest revision.",
+       "apihelp-query+recentchanges-example-simple": "List recent changes",
+       "apihelp-query+recentchanges-example-generator": "Get page info about recent unpatrolled changes",
+
+       "apihelp-query+redirects-description": "Returns all redirects to the given pages.",
+       "apihelp-query+redirects-param-prop": "Which properties to get:\n;pageid:Page ID of each redirect.\n;title:Title of each redirect.\n;fragment:Fragment of each redirect, if any.",
+       "apihelp-query+redirects-param-namespace": "Only include pages in these namespaces.",
+       "apihelp-query+redirects-param-limit": "How many redirects to return.",
+       "apihelp-query+redirects-param-show": "Show only items that meet these criteria:\n;fragment:Only show redirects with a fragment.\n;!fragment:Only show redirects without a fragment.",
+       "apihelp-query+redirects-example-simple": "Get a list of redirects to the [[Main Page]]",
+       "apihelp-query+redirects-example-generator": "Get information about all redirects to the [[Main Page]]",
+
+       "apihelp-query+revisions-description": "Get revision information.\n\nMay be used in several ways:\n# Get data about a set of pages (last revision), by setting titles or pageids.\n# Get revisions for one given page, by using titles or pageids with start, end, or limit.\n# Get data about a set of revisions by setting their IDs with revids.",
+       "apihelp-query+revisions-paraminfo-singlepageonly": "May only be used with a single page (mode #2).",
+       "apihelp-query+revisions-param-startid": "From which revision ID to start enumeration.",
+       "apihelp-query+revisions-param-endid": "Stop revision enumeration on this revision ID.",
+       "apihelp-query+revisions-param-start": "From which revision timestamp to start enumeration.",
+       "apihelp-query+revisions-param-end": "Enumerate up to this timestamp.",
+       "apihelp-query+revisions-param-user": "Only include revisions made by user.",
+       "apihelp-query+revisions-param-excludeuser": "Exclude revisions made by user.",
+       "apihelp-query+revisions-param-tag": "Only list revisions tagged with this tag.",
+       "apihelp-query+revisions-param-token": "Which tokens to obtain for each revision.",
+       "apihelp-query+revisions-example-content": "Get data with content for the last revision of titles \"API\" and \"Main Page\"",
+       "apihelp-query+revisions-example-last5": "Get last 5 revisions of the \"Main Page\"",
+       "apihelp-query+revisions-example-first5": "Get first 5 revisions of the \"Main Page\"",
+       "apihelp-query+revisions-example-first5-after": "Get first 5 revisions of the \"Main Page\" made after 2006-05-01",
+       "apihelp-query+revisions-example-first5-not-localhost": "Get first 5 revisions of the \"Main Page\" that were not made made by anonymous user \"127.0.0.1\"",
+       "apihelp-query+revisions-example-first5-user": "Get first 5 revisions of the \"Main Page\" that were made by the user \"MediaWiki default\"",
+
+       "apihelp-query+revisions+base-param-prop": "Which properties to get for each revision:\n;ids:The ID of the revision.\n;flags:Revision flags (minor).\n;timestamp:The timestamp of the revision.\n;user:User that made the revision.\n;userid:User ID of the revision creator.\n;size:Length (bytes) of the revision.\n;sha1:SHA-1 (base 16) of the revision.\n;contentmodel:Content model ID of the revision.\n;comment:Comment by the user for the revision.\n;parsedcomment:Parsed comment by the user for the revision.\n;content:Text of the revision.\n;tags:Tags for the revision.",
+       "apihelp-query+revisions+base-param-limit": "Limit how many revisions will be returned.",
+       "apihelp-query+revisions+base-param-expandtemplates": "Expand templates in revision content (requires $1prop=content).",
+       "apihelp-query+revisions+base-param-generatexml": "Generate XML parse tree for revision content (requires $1prop=content).",
+       "apihelp-query+revisions+base-param-parse": "Parse revision content (requires $1prop=content). For performance reasons, if this option is used, $1limit is enforced to 1.",
+       "apihelp-query+revisions+base-param-section": "Only retrieve the content of this section number.",
+       "apihelp-query+revisions+base-param-diffto": "Revision ID to diff each revision to. Use \"prev\", \"next\" and \"cur\" for the previous, next and current revision respectively.",
+       "apihelp-query+revisions+base-param-difftotext": "Text to diff each revision to. Only diffs a limited number of revisions. Overrides $1diffto. If $1section is set, only that section will be diffed against this text",
+       "apihelp-query+revisions+base-param-contentformat": "Serialization format used for $1difftotext and expected for output of content.",
+
+       "apihelp-query+search-description": "Perform a full text search.",
+       "apihelp-query+search-param-search": "Search for all page titles (or content) that have this value.",
+       "apihelp-query+search-param-namespace": "Search only within these namespaces.",
+       "apihelp-query+search-param-what": "Which type of search to perform.",
+       "apihelp-query+search-param-info": "Which metadata to return.",
+       "apihelp-query+search-param-prop": "Which properties to return:\n;size:Adds the size of the page in bytes.\n;wordcount:Adds the word count of the page.\n;timestamp:Adds the timestamp of when the page was last edited.\n;snippet:Adds a parsed snippet of the page.\n;titlesnippet:Adds a parsed snippet of the page title.\n;redirectsnippet:Adds a parsed snippet of the redirect title.\n;redirecttitle:Adds the title of the matching redirect.\n;sectionsnippet:Adds a parsed snippet of the matching section title.\n;sectiontitle:Adds the title of the matching section.\n;score:<span class=\"apihelp-deprecated\">Deprecated and ignored.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Deprecated and ignored.</span>",
+       "apihelp-query+search-param-limit": "How many total pages to return.",
+       "apihelp-query+search-param-interwiki": "Include interwiki results in the search, if available.",
+       "apihelp-query+search-param-backend": "Which search backend to use, if not the default.",
+       "apihelp-query+search-example-simple": "Search for \"meaning\"",
+       "apihelp-query+search-example-text": "Search texts for \"meaning\"",
+       "apihelp-query+search-example-generator": "Ger page info about the pages returned for a search for \"meaning\"",
+
+       "apihelp-query+siteinfo-description": "Return general information about the site.",
+       "apihelp-query+siteinfo-param-prop": "Which information to get:\n;general:Overall system information.\n;namespaces:List of registered namespaces and their canonical names.\n;namespacealiases:List of registered namespace aliases.\n;specialpagealiases:List of special page aliases.\n;magicwords:List of magic words and their aliases.\n;statistics:Returns site statistics.\n;interwikimap:Returns interwiki map (optionally filtered, (optionally localised by using $1inlanguagecode)).\n;dbrepllag:Returns database server with the highest replication lag.\n;usergroups:Returns user groups and the associated permissions.\n;extensions:Returns extensions installed on the wiki.\n;fileextensions:Returns list of file extensions allowed to be uploaded.\n;rightsinfo:Returns wiki rights (license) information if available.\n;restrictions:Returns information on available restriction (protection) types.\n;languages:Returns a list of languages MediaWiki supports (optionally localised by using $1inlanguagecode).\n;skins:Returns a list of all enabled skins (optionally localised by using $1inlanguagecode, otherwise in content language).\n;extensiontags:Returns a list of parser extension tags.\n;functionhooks:Returns a list of parser function hooks.\n;showhooks:Returns a list of all subscribed hooks (contents of $wgHooks).\n;variables:Returns a list of variable IDs.\n;protocols:Returns a list of protocols that are allowed in external links.\n;defaultoptions:Returns the default values for user preferences.",
+       "apihelp-query+siteinfo-param-filteriw": "Return only local or only nonlocal entries of the interwiki map.",
+       "apihelp-query+siteinfo-param-showalldb": "List all database servers, not just the one lagging the most.",
+       "apihelp-query+siteinfo-param-numberingroup": "Lists the number of users in user groups.",
+       "apihelp-query+siteinfo-param-inlanguagecode": "Language code for localised language names (best effort) and skin names.",
+       "apihelp-query+siteinfo-example-simple": "Fetch site information",
+       "apihelp-query+siteinfo-example-interwiki": "Fetch a list of local interwiki prefixes",
+       "apihelp-query+siteinfo-example-replag": "Check the current replication lag",
+
+       "apihelp-query+stashimageinfo-description": "Returns file information for stashed files.",
+       "apihelp-query+stashimageinfo-param-filekey": "Key that identifies a previous upload that was stashed temporarily.",
+       "apihelp-query+stashimageinfo-param-sessionkey": "Alias for $1filekey, for backward compatibility.",
+       "apihelp-query+stashimageinfo-param-prop": "Which image information to get:\n;timestamp:Adds timestamp for the uploaded version.\n;canonicaltitle:Adds the canonical title of the image file.\n;url:Gives URL to the image and the description page.\n;size:Adds the size of the image in bytes and the height, width and page count (if applicable).\n;dimensions:Alias for size.\n;sha1:Adds SHA-1 hash for the image.\n;mime:Adds MIME type of the image.\n;thumbmime:Adds MIME type of the image thumbnail (requires url and param $1urlwidth).\n;metadata:Lists Exif metadata for the version of the image.\n;commonmetadata:Lists file format generic metadata for the version of the image.\n;extmetadata:Lists formatted metadata combined from multiple sources. Results are HTML formatted.\n;bitdepth:Adds the bit depth of the version.",
+       "apihelp-query+stashimageinfo-example-simple": "Returns information for a stashed file",
+       "apihelp-query+stashimageinfo-example-params": "Returns thumbnails for two stashed files",
+
+       "apihelp-query+tags-description": "List change tags.",
+       "apihelp-query+tags-param-limit": "The maximum number of tags to list.",
+       "apihelp-query+tags-param-prop": "Which properties to get:\n;name:Adds name of tag.\n;displayname:Adds system message for the tag.\n;description:Adds description of the tag.\n;hitcount:Adds the amount of revisions that have this tag.",
+       "apihelp-query+tags-example-simple": "List available tags",
+
+       "apihelp-query+templates-description": "Returns all pages transcluded on the given pages.",
+       "apihelp-query+templates-param-namespace": "Show templates in this namespaces only.",
+       "apihelp-query+templates-param-limit": "How many templates to return.",
+       "apihelp-query+templates-param-templates": "Only list these templates. Useful for checking whether a certain page uses a certain template.",
+       "apihelp-query+templates-param-dir": "The direction in which to list.",
+       "apihelp-query+templates-example-simple": "Get templates from the [[Main Page]]",
+       "apihelp-query+templates-example-generator": "Get information about the template pages in the [[Main Page]]",
+       "apihelp-query+templates-example-namespaces": "Get templates from the [[Main Page]] in the User and Template namespaces",
+
+       "apihelp-query+tokens-description": "Gets tokens for data-modifying actions.",
+       "apihelp-query+tokens-param-type": "Types of token to request.",
+       "apihelp-query+tokens-example-simple": "Retrieve a csrf token (the default)",
+       "apihelp-query+tokens-example-types": "Retrieve a watch token and a patrol token",
+
+       "apihelp-query+transcludedin-description": "Find all pages that transclude the given pages.",
+       "apihelp-query+transcludedin-param-prop": "Which properties to get:\n;pageid:Page ID of each page.\n;title:Title of each page.\n;redirect:Flag if the page is a redirect.",
+       "apihelp-query+transcludedin-param-namespace": "Only include pages in these namespaces.",
+       "apihelp-query+transcludedin-param-limit": "How many to return.",
+       "apihelp-query+transcludedin-param-show": "Show only items that meet these criteria:\n;redirect:Only show redirects.\n;!redirects:Only show non-redirects.",
+       "apihelp-query+transcludedin-example-simple": "Get a list of pages transcluding the [[Main Page]]",
+       "apihelp-query+transcludedin-example-generator": "Get information about pages transcluding the [[Main Page]]",
+
+       "apihelp-query+usercontribs-description": "Get all edits by a user.",
+       "apihelp-query+usercontribs-param-limit": "The maximum number of contributions to return.",
+       "apihelp-query+usercontribs-param-start": "The start timestamp to return from.",
+       "apihelp-query+usercontribs-param-end": "The end timestamp to return to.",
+       "apihelp-query+usercontribs-param-user": "The users to retrieve contributions for.",
+       "apihelp-query+usercontribs-param-userprefix": "Retrieve contributions for all users whose names begin with this value. Overrides $1user.",
+       "apihelp-query+usercontribs-param-namespace": "Only list contributions in these namespaces.",
+       "apihelp-query+usercontribs-param-prop": "Include additional pieces of information:\n;ids:Adds the page ID and revision ID.\n;title:Adds the title and namespace ID of the page.\n;timestamp:Adds the timestamp of the edit.\n;comment:Adds the comment of the edit.\n;parsedcomment:Adds the parsed comment of the edit.\n;size:Adds the new size of the edit.\n;sizediff:Adds the size delta of the edit against its parent.\n;flags:Adds flags of the edit.\n;patrolled:Tags patrolled edits.\n;tags:Lists tags for the edit.",
+       "apihelp-query+usercontribs-param-show": "Show only items that meet thse criteria, e.g. non minor edits only: $2show=!minor.\n\nIf $2show=patrolled or $2show=!patrolled is set, revisions older than [https://www.mediawiki.org/wiki/Manual:$wgRCMaxAge $wgRCMaxAge] ($1 {{PLURAL:$1|second|seconds}}) won't be shown.",
+       "apihelp-query+usercontribs-param-tag": "Only list revisions tagged with this tag.",
+       "apihelp-query+usercontribs-param-toponly": "Only list changes which are the latest revision.",
+       "apihelp-query+usercontribs-example-user": "Show contributions of [[User:Example]]",
+       "apihelp-query+usercontribs-example-ipprefix": "Show contributions from all IPs with prefix \"192.0.2.\"",
+
+       "apihelp-query+userinfo-description": "Get information about the current user.",
+       "apihelp-query+userinfo-param-prop": "Which pieces of information to include:\n;blockinfo:Tags if the current user is blocked, by whom, and for what reason.\n;hasmsg:Adds a tag \"message\" if the current user has pending messages.\n;groups:Lists all the groups the current user belongs to.\n;implicitgroups:Lists all the groups the current user is automatically a member of.\n;rights:Lists all the rights the current user has.\n;changeablegroups:Lists the groups the current user can add to and remove from.\n;options:Lists all preferences the current user has set.\n;preferencestoken:DEPRECATED! Get a token to change current user's preferences.\n;editcount:Adds the current user's edit count.\n;ratelimits:Lists all rate limits applying to the current user.\n;realname:Adds the user's real name.\n;email:Adds the user's email address and email authentication date.\n;acceptlang:Echoes the Accept-Language header sent by the client in a structured format.\n;registrationdate:Adds the user's registration date.\n;unreadcount:Adds the count of unread pages on the user's watchlist (maximum $1; returns \"$2\" if more).",
+       "apihelp-query+userinfo-example-simple": "Get information about the current user",
+       "apihelp-query+userinfo-example-data": "Get additional information about the current user",
+
+       "apihelp-query+users-description": "Get information about a list of users.",
+       "apihelp-query+users-param-prop": "Which pieces of information to include:\n;blockinfo:Tags if the user is blocked, by whom, and for what reason.\n;groups:Lists all the groups each user belongs to.\n;implicitgroups:Lists all the groups a user is automatically a member of.\n;rights:Lists all the rights each user has.\n;editcount:Adds the user's edit count.\n;registration:Adds the user's registration timestamp.\n;emailable:Tags if the user can and wants to receive email through [[Special:Emailuser]].\n;gender:Tags the gender of the user. Returns \"male\", \"female\", or \"unknown\".",
+       "apihelp-query+users-param-users": "A list of users to obtain information for.",
+       "apihelp-query+users-param-token": "Use [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] instead.",
+       "apihelp-query+users-example-simple": "Return information for [[User:Example]]",
+
+       "apihelp-query+watchlist-description": "Get recent changes to pages in the logged in user's watchlist.",
+       "apihelp-query+watchlist-param-allrev": "Include multiple revisions of the same page within given timeframe.",
+       "apihelp-query+watchlist-param-start": "The timestamp to start enumerating from.",
+       "apihelp-query+watchlist-param-end": "The timestamp to end enumerating.",
+       "apihelp-query+watchlist-param-namespace": "Filter changes to only the given namespaces.",
+       "apihelp-query+watchlist-param-user": "Only list changes by this user.",
+       "apihelp-query+watchlist-param-excludeuser": "Don't list changes by this user.",
+       "apihelp-query+watchlist-param-limit": "How many total results to return per request.",
+       "apihelp-query+watchlist-param-prop": "Which additional items to get:\n;ids:Adds revision IDs and page IDs.\n;title:Adds title of the page.\n;flags:Adds flags for the edit.\n;user:Adds the user who made the edit.\n;userid:Adds user ID of whom made the edit.\n;comment:Adds comment of the edit.\n;parsedcomment:Adds parsed comment of the edit.\n;timestamp:Adds timestamp of the edit.\n;patrol:Tags edits that are patrolled.\n;sizes:Adds the old and new lengths of the page.\n;notificationtimestamp:Adds timestamp of when the user was last notified about the edit.\n;loginfo:Adds log information where appropriate.",
+       "apihelp-query+watchlist-param-show": "Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set $1show=minor|!anon.",
+       "apihelp-query+watchlist-param-type": "Which types of changes to show:\n;edit:Regular page edits.\n;external:External changes.\n;new:Page creations.\n;log:Log entries.",
+       "apihelp-query+watchlist-param-owner": "Used along with $1token to access a different user's watchlist.",
+       "apihelp-query+watchlist-param-token": "A security token (available in the user's [[Special:Preferences#mw-prefsection-watchlist|preferences]]) to allow access to another user's watchlist.",
+       "apihelp-query+watchlist-example-simple": "List the top revision for recently changed pages on the current user's watchlist",
+       "apihelp-query+watchlist-example-props": "Fetch additional information about the top revision for recently changed pages on the current user's watchlist",
+       "apihelp-query+watchlist-example-allrev": "Fetch information about all recent changes to pages on the current user's watchlist",
+       "apihelp-query+watchlist-example-generator": "Fetch page info for recently changed pages on the current user's watchlist",
+       "apihelp-query+watchlist-example-generator-rev": "Fetch revision info for recent changes to pages on the current user's watchlist",
+       "apihelp-query+watchlist-example-wlowner": "List the top revision for recently changed pages on [[User:Example]]'s watchlist",
+
+       "apihelp-query+watchlistraw-description": "Get all pages on the logged in user's watchlist.",
+       "apihelp-query+watchlistraw-param-namespace": "Only list pages in the given namespaces.",
+       "apihelp-query+watchlistraw-param-limit": "How many total results to return per request.",
+       "apihelp-query+watchlistraw-param-prop": "Which additional properties to get:\n;changed:Adds timestamp of when the user was last notified about the edit.",
+       "apihelp-query+watchlistraw-param-show": "Only list items that meet these criteria.",
+       "apihelp-query+watchlistraw-param-owner": "Used along with $1token to access a different user's watchlist.",
+       "apihelp-query+watchlistraw-param-token": "A security token (available in the user's [[Special:Preferences#mw-prefsection-watchlist|preferences]]) to allow access to another user's watchlist.",
+       "apihelp-query+watchlistraw-example-simple": "List pages on the current user's watchlist",
+       "apihelp-query+watchlistraw-example-generator": "Fetch page info for pages on the current user's watchlist",
+
+       "apihelp-revisiondelete-description": "Delete and undelete revisions.",
+       "apihelp-revisiondelete-param-type": "Type of revision deletion being performed.",
+       "apihelp-revisiondelete-param-target": "Page title for the revision deletion, if required for the type.",
+       "apihelp-revisiondelete-param-ids": "Identifiers for the revisions to be deleted.",
+       "apihelp-revisiondelete-param-hide": "What to hide for each revision.",
+       "apihelp-revisiondelete-param-show": "What to unhide for each revision.",
+       "apihelp-revisiondelete-param-suppress": "Whether to suppress data from administrators as well as others.",
+       "apihelp-revisiondelete-param-reason": "Reason for the deletion or undeletion.",
+       "apihelp-revisiondelete-example-revision": "Hide content for revision 12345 on the Main Page",
+       "apihelp-revisiondelete-example-log": "Hide all data on log entry 67890 with the reason \"BLP violation\"",
+
+       "apihelp-rollback-description": "Undo the last edit to the page.\n\nIf the last user who edited the page made multiple edits in a row, they will all be rolled back.",
+       "apihelp-rollback-param-title": "Title of the page you want to roll back. Cannot be used together with $1pageid.",
+       "apihelp-rollback-param-pageid": "Page ID of the page you want to roll back. Cannot be used together with $1title.",
+       "apihelp-rollback-param-user": "Name of the user whose edits are to be rolled back.",
+       "apihelp-rollback-param-summary": "Custom edit summary. If empty, default summary will be used.",
+       "apihelp-rollback-param-markbot": "Mark the reverted edits and the revert as bot edits.",
+       "apihelp-rollback-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-rollback-example-simple": "Roll back the last edits to [[Main Page]] by user Example",
+       "apihelp-rollback-example-summary": "Roll back the last edits to [[Main Page]] by IP user 192.0.2.5 with summary \"Reverting vandalism\", and mark those edits and the revert as \"bot\"",
+
+       "apihelp-rsd-description": "Export an RSD (Really Simple Discovery) schema.",
+       "apihelp-rsd-example-simple": "Export the RSD schema",
+
+       "apihelp-setnotificationtimestamp-description": "Update the notification timestamp for watched pages.\n\nThis affects the highlighting of changed pages in the watchlist and history, and the sending of email when the \"Email me when a page on my watchlist is changed\" preference is enabled.",
+       "apihelp-setnotificationtimestamp-param-entirewatchlist": "Work on all watched pages.",
+       "apihelp-setnotificationtimestamp-param-timestamp": "Timestamp to which to set the notification timestamp.",
+       "apihelp-setnotificationtimestamp-param-torevid": "Revision to set the notification timestamp to (one page only).",
+       "apihelp-setnotificationtimestamp-param-newerthanrevid": "Revision to set the notification timestamp newer than (one page only).",
+       "apihelp-setnotificationtimestamp-example-all": "Reset the notification status for the entire watchlist",
+       "apihelp-setnotificationtimestamp-example-page": "Reset the notification status for \"Main page\"",
+       "apihelp-setnotificationtimestamp-example-pagetimestamp": "Set the notification timestamp for \"Main page\" so all edits since 1 January 2012 are unviewed",
+       "apihelp-setnotificationtimestamp-example-allpages": "Reset the notification status for pages in the User namespace",
+
+       "apihelp-tokens-description": "Get tokens for data-modifying actions.\n\nThis module is deprecated in favor of [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
+       "apihelp-tokens-param-type": "Types of token to request.",
+       "apihelp-tokens-example-edit": "Retrieve an edit token (the default).",
+       "apihelp-tokens-example-emailmove": "Retrieve an email token and a move token.",
+
+       "apihelp-unblock-description": "Unblock a user.",
+       "apihelp-unblock-param-id": "ID of the block to unblock (obtained through list=blocks). Cannot be used together with $1user.",
+       "apihelp-unblock-param-user": "Username, IP address or IP range to unblock. Cannot be used together with $1id.",
+       "apihelp-unblock-param-reason": "Reason for unblock.",
+       "apihelp-unblock-example-id": "Unblock block ID #105",
+       "apihelp-unblock-example-user": "Unblock user Bob with reason \"Sorry Bob\"",
+
+       "apihelp-undelete-description": "Restore revisions of a deleted page.\n\nA list of deleted revisions (including timestamps) can be retrieved through [[Special:ApiHelp/query+deletedrevs|list=deletedrevs]], and a list of deleted file IDs can be retrieved through [[Special:ApiHelp/query+filearchive|list=filearchive]].",
+       "apihelp-undelete-param-title": "Title of the page to restore.",
+       "apihelp-undelete-param-reason": "Reason for restoring.",
+       "apihelp-undelete-param-timestamps": "Timestamps of the revisions to restore. If both $1timestamps and $1fileids are empty, all will be restored.",
+       "apihelp-undelete-param-fileids": "IDs of the file revisions to restore. If both $1timestamps and $1fileids are empty, all will be restored.",
+       "apihelp-undelete-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-undelete-example-page": "Undelete [[Main Page]]",
+       "apihelp-undelete-example-revisions": "Undelete two revisions of [[Main Page]]",
+
+       "apihelp-upload-description": "Upload a file, or get the status of pending uploads.\n\nSeveral methods are available:\n* Upload file contents directly, using the \"$1file\" parameter.\n* Upload the file in pieces, using the \"$1filesize\", \"$1chunk\" and \"$1offset\" parameters.* Have the MediaWiki server fetch a file from a URL, using the \"$1url\" parameter.\n* Complete an earlier upload that failed due to warnings, using the \"$1filekey\" parameter.\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending the \"$1file\".",
+       "apihelp-upload-param-filename": "Target filename.",
+       "apihelp-upload-param-comment": "Upload comment. Also used as the initial page text for new files if \"$1text\" is not specified.",
+       "apihelp-upload-param-text": "Initial page text for new files.",
+       "apihelp-upload-param-watch": "Watch the page.",
+       "apihelp-upload-param-watchlist": "Unconditionally add or remove the page from your watchlist, use preferences or do not change watch.",
+       "apihelp-upload-param-ignorewarnings": "Ignore any warnings.",
+       "apihelp-upload-param-file": "File contents.",
+       "apihelp-upload-param-url": "URL to fetch the file from.",
+       "apihelp-upload-param-filekey": "Key that identifies a previous upload that was stashed temporarily.",
+       "apihelp-upload-param-sessionkey": "Same as $1filekey, maintained for backward compatibility.",
+       "apihelp-upload-param-stash": "If set, the server will not add the file to the repository and stash it temporarily.",
+       "apihelp-upload-param-filesize": "Filesize of entire upload.",
+       "apihelp-upload-param-offset": "Offset of chunk in bytes.",
+       "apihelp-upload-param-chunk": "Chunk contents.",
+       "apihelp-upload-param-async": "Make potentially large file operations asynchronous when possible.",
+       "apihelp-upload-param-asyncdownload": "Make fetching a URL asynchronous.",
+       "apihelp-upload-param-leavemessage": "If asyncdownload is used, leave a message on the user talk page if finished.",
+       "apihelp-upload-param-statuskey": "Fetch the upload status for this file key (upload by URL).",
+       "apihelp-upload-param-checkstatus": "Only fetch the upload status for the given file key.",
+       "apihelp-upload-example-url": "Upload from a URL",
+       "apihelp-upload-example-filekey": "Complete an upload that failed due to warnings",
+
+       "apihelp-userrights-description": "Change a user's group membership.",
+       "apihelp-userrights-param-user": "User name.",
+       "apihelp-userrights-param-userid": "User ID.",
+       "apihelp-userrights-param-add": "Add the user to these groups.",
+       "apihelp-userrights-param-remove": "Remove the user from these groups.",
+       "apihelp-userrights-param-reason": "Reason for the change.",
+       "apihelp-userrights-example-user": "Add user FooBot to group \"bot\", and remove from groups \"sysop\" and \"bureaucrat\"",
+       "apihelp-userrights-example-userid": "Add the user with ID 123 to group \"bot\", and remove from groups \"sysop\" and \"bureaucrat\"",
+
+       "apihelp-watch-description": "Add or remove pages from the current user's watchlist.",
+       "apihelp-watch-param-title": "The page to (un)watch. Use $1titles instead.",
+       "apihelp-watch-param-unwatch": "If set the page will be unwatched rather than watched.",
+       "apihelp-watch-example-watch": "Watch the page \"Main Page\"",
+       "apihelp-watch-example-unwatch": "Unwatch the page \"Main Page\"",
+       "apihelp-watch-example-generator": "Watch the first few pages in the main namespace",
+
+       "apihelp-format-example-generic": "Format the query result in the $1 format",
+       "apihelp-dbg-description": "Output data in PHP's var_export() format.",
+       "apihelp-dbgfm-description": "Output data in PHP's var_export() format (pretty-print in HTML).",
+       "apihelp-dump-description": "Output data in PHP's var_dump() format.",
+       "apihelp-dumpfm-description": "Output data in PHP's var_dump() format (pretty-print in HTML).",
+       "apihelp-json-description": "Output data in JSON format.",
+       "apihelp-json-param-callback": "If specified, wraps the output into a given function call. For safety, all user-specific data will be restricted.",
+       "apihelp-json-param-utf8": "If specified, encodes most (but not all) non-ASCII characters as UTF-8 instead of replacing them with hexadecimal escape sequences.",
+       "apihelp-jsonfm-description": "Output data in JSON format (pretty-print in HTML).",
+       "apihelp-none-description": "Output nothing.",
+       "apihelp-php-description": "Output data in serialized PHP format.",
+       "apihelp-phpfm-description": "Output data in serialized PHP format (pretty-print in HTML).",
+       "apihelp-rawfm-description": "Output data with the debugging elements in JSON format (pretty-print in HTML).",
+       "apihelp-txt-description": "Output data in PHP's print_r() format.",
+       "apihelp-txtfm-description": "Output data in PHP's print_r() format (pretty-print in HTML).",
+       "apihelp-wddx-description": "Output data in WDDX format.",
+       "apihelp-wddxfm-description": "Output data in WDDX format (pretty-print in HTML).",
+       "apihelp-xml-description": "Output data in XML format.",
+       "apihelp-xml-param-xslt": "If specified, adds &lt;xslt&gt; as stylesheet. This should be a wiki page in the MediaWiki namespace whose page name ends with \".xsl\".",
+       "apihelp-xml-param-includexmlnamespace": "If specified, adds an XML namespace.",
+       "apihelp-xmlfm-description": "Output data in XML format (pretty-print in HTML).",
+       "apihelp-yaml-description": "Output data in YAML format.",
+       "apihelp-yamlfm-description": "Output data in YAML format (pretty-print in HTML).",
+
+       "api-format-title": "MediaWiki API result",
+       "api-format-prettyprint-header": "You are looking at the HTML representation of the $1 format. HTML is good for debugging, but is unsuitable for application use.\n\nSpecify the format parameter to change the output format. To see the non-HTML representation of the $1 format, set format=$2.\n\nSee the [https://www.mediawiki.org/wiki/API complete documentation], or [[Special:ApiHelp/main|API help]] for more information.",
+
+       "api-orm-param-props": "Fields to query.",
+       "api-orm-param-limit": "Max amount of rows to return.",
+
+       "api-pageset-param-titles": "A list of titles to work on.",
+       "api-pageset-param-pageids": "A list of page IDs to work on.",
+       "api-pageset-param-revids": "A list of revision IDs to work on.",
+       "api-pageset-param-generator": "Get the list of pages to work on by executing the specified query module.\n\n'''NOTE:''' generator parameter names must be prefixed with a \"g\", see examples.",
+       "api-pageset-param-redirects-generator": "Automatically resolve redirects in $1titles, $1pageids, and $1revids, and in pages returned by $1generator.",
+       "api-pageset-param-redirects-nogenerator": "Automatically resolve redirects in $1titles, $1pageids, and $1revids.",
+       "api-pageset-param-converttitles": "Convert titles to other variants if necessary. Only works if the wiki's content language supports variant conversion. Languages that support variant conversion include $1.",
+
+       "api-help-title": "MediaWiki API help",
+       "api-help-lead": "This is an auto-generated MediaWiki API documentation page.\n\nDocumentation and examples: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "Main module",
+       "api-help-fallback-description": "$1",
+       "api-help-fallback-parameter": "$1",
+       "api-help-fallback-example": "$1",
+       "api-help-flags": "",
+       "api-help-flag-deprecated": "This module is deprecated.",
+       "api-help-flag-internal": "<strong>This module is internal or unstable.</strong> Its operation may change without notice.",
+       "api-help-flag-readrights": "This module requires read rights.",
+       "api-help-flag-writerights": "This module requires write rights.",
+       "api-help-flag-mustbeposted": "This module only accepts POST requests.",
+       "api-help-flag-generator": "This module can be used as a generator.",
+       "api-help-help-urls": "",
+       "api-help-parameters": "{{PLURAL:$1|Parameter|Parameters}}:",
+       "api-help-param-deprecated": "Deprecated.",
+       "api-help-param-required": "This parameter is required.",
+       "api-help-param-list": "{{PLURAL:$1|1=One value|2=Values (separate with \"{{!}}\")}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Must be empty|Can be empty, or $2}}",
+       "api-help-param-limit": "No more than $1 allowed.",
+       "api-help-param-limit2": "No more than $1 ($2 for bots) allowed.",
+       "api-help-param-integer-min": "The {{PLURAL:$1|1=value|2=values}} must be no less than $2.",
+       "api-help-param-integer-max": "The {{PLURAL:$1|1=value|2=values}} must be no greater than $3.",
+       "api-help-param-integer-minmax": "The {{PLURAL:$1|1=value|2=values}} must be between $2 and $3.",
+       "api-help-param-upload": "Must be posted as a file upload using multipart/form-data.",
+       "api-help-param-multi-separate": "Separate values with \"|\".",
+       "api-help-param-multi-max": "Maximum number of values is {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} for bots).",
+       "api-help-param-default": "Default: $1",
+       "api-help-param-default-empty": "Default: <span class=\"apihelp-empty\">(empty)</span>",
+       "api-help-param-token": "A \"$1\" token retrieved from [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
+       "api-help-param-token-webui": "For compatibility, the token used in the web UI is also accepted.",
+       "api-help-param-disabled-in-miser-mode": "Disabled due to [https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser mode].",
+       "api-help-param-limited-in-miser-mode": "'''NOTE:''' Due to [https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser mode], using this may result in fewer than \"$1limit\" results returned before continuing; in extreme cases, zero results may be returned.",
+       "api-help-param-direction": "In which direction to enumerate:\n;newer:List oldest first. Note: $1start has to be before $1end.\n;older:List newest first (default). Note: $1start has to be later than $1end.",
+       "api-help-param-continue": "When more results are available, use this to continue.",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(no description)</span>",
+       "api-help-examples": "{{PLURAL:$1|Example|Examples}}:",
+       "api-help-permissions": "{{PLURAL:$1|Permission|Permissions}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Granted to}}: $2",
+       "api-help-right-apihighlimits": "Use higher limits in API queries (slow queries: $1; fast queries: $2). The limits for slow queries also apply to multivalue parameters.",
+
+       "api-credits-header": "Credits",
+       "api-credits": "API developers:\n* Roan Kattouw (lead developer Sep 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (creator, lead developer Sep 2006–Sep 2007)\n* Brad Jorsch (lead developer 2013–present)\n\nPlease send your comments, suggestions and questions to mediawiki-api@lists.wikimedia.org\nor file a bug report at https://bugzilla.wikimedia.org/."
+}
diff --git a/includes/api/i18n/es.json b/includes/api/i18n/es.json
new file mode 100644 (file)
index 0000000..8e5ba53
--- /dev/null
@@ -0,0 +1,17 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Macofe",
+                       "Effy"
+               ]
+       },
+       "apihelp-createaccount-param-name": "Nombre de usuario.",
+       "apihelp-expandtemplates-param-title": "Título de la página.",
+       "apihelp-feedrecentchanges-param-hideminor": "Ocultar cambios menores.",
+       "apihelp-query+allusers-param-activeusers": "Solo listar usuarios activos en {{PLURAL:$1|el último día|los $1 últimos días}}.",
+       "apihelp-query+images-description": "Devuelve todos los archivos contenidos en las páginas dadas.",
+       "apihelp-query+search-param-info": "Qué metadatos devolver.",
+       "apihelp-query+userinfo-description": "Obtener información sobre el usuario actual.",
+       "apihelp-query+watchlist-param-excludeuser": "No listar cambios de este usuario.",
+       "apihelp-query+watchlistraw-param-show": "Sólo listar los elementos que cumplen estos criterios."
+}
diff --git a/includes/api/i18n/fa.json b/includes/api/i18n/fa.json
new file mode 100644 (file)
index 0000000..0243135
--- /dev/null
@@ -0,0 +1,213 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Alirezaaa",
+                       "Arash.pt",
+                       "Fatemi127",
+                       "Reza1615",
+                       "KhabarNegar"
+               ]
+       },
+       "apihelp-main-param-action": "کدام عملیات را انجام دهد.",
+       "apihelp-main-param-format": "فرمت خروجی.",
+       "apihelp-main-param-curtimestamp": "برچسب زمان کنونی را در نتیجه قرار دهید.",
+       "apihelp-block-description": "بستن کاربر",
+       "apihelp-block-param-user": "نام کاربری، آدرس آی پی یا محدوده آی پی موردنظر شما برای بستن.",
+       "apihelp-block-param-reason": "دلیل بسته‌شدن",
+       "apihelp-block-param-anononly": "بستن فقط کاربران ناشناس (مانند غیرفعال‌کردن ویرایش‌های ناشناس این آی‌پی).",
+       "apihelp-block-param-nocreate": "جلوگیری از ایجاد حساب.",
+       "apihelp-block-param-autoblock": "به طور خودکار آخرین نشانی آی‌پی استفاده‌شده، و هر نشانی پس از آن که سعی می‌کند از آن داخل شود را ببند.",
+       "apihelp-block-param-noemail": "از کاربر در برابر ارسال پست الکترونیکی از طریق ویکی جلوگیری شود. (نیازمند دسترسی «blockemail» است).",
+       "apihelp-block-param-hidename": "نام کاربری را از سیاههٔ بستن پنهان کن. (نیازمند دسترسی «hideuser» است).",
+       "apihelp-block-param-allowusertalk": "به کاربر برای ویرایش صفحه بحث‌شان اجازه دهید (بسته به $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-reblock": "اگر کاربر پیش از این مسدود شده‌است، مسدود موجود را بازنویسی کن.",
+       "apihelp-block-param-watchuser": "صفحه‌های کاربر و بحث کاربر نشانی آی‌پی یا کاربر را پی‌گیری کنید.",
+       "apihelp-block-example-ip-simple": "آی‌پی ۱۹۲.۰.۲.۵ را برای سه روز همراه دلیل «نخستین برخورد» ببندید",
+       "apihelp-clearhasmsg-description": "پرچم hasmsg را برای کاربر جاری پاک کن.",
+       "apihelp-clearhasmsg-example-1": "پاک‌کردن پرچم hasmsg برای کاربر جاری",
+       "apihelp-compare-description": "تفاوت بین ۲ صفحه را بیابید.\n\nشما باید یک شماره بازبینی، یک عنوان صفحه، یا یک شناسه صفحه برای هر دو «از» و «به» مشخص کنید.",
+       "apihelp-compare-param-fromtitle": "عنوان اول برای مقایسه.",
+       "apihelp-compare-param-fromid": "شناسه صفحه اول برای مقایسه.",
+       "apihelp-compare-param-fromrev": "نسخه اول برای مقایسه.",
+       "apihelp-compare-param-totitle": "عنوان دوم برای مقایسه.",
+       "apihelp-compare-param-toid": "شناسه صفحه دوم برای مقایسه.",
+       "apihelp-compare-param-torev": "نسخه دوم برای مقایسه.",
+       "apihelp-compare-example-1": "ایجاد تفاوت بین نسخه 1 و 2",
+       "apihelp-createaccount-description": "ایجاد حساب کاربری",
+       "apihelp-createaccount-param-name": "نام کاربری.",
+       "apihelp-createaccount-param-password": "رمز عبور (نادیده گرفته می‌شود اگر $1mailpassword تنظیم شده‌باشد).",
+       "apihelp-createaccount-param-domain": "دامنه برای احراز هویت خارجی (اختیاری).",
+       "apihelp-createaccount-param-email": "رایانامه کاربر (اختیاری)",
+       "apihelp-createaccount-param-realname": "نام واقعی کاربر (اختیاری).",
+       "apihelp-createaccount-param-mailpassword": "اگر به هر مقداری تنظیم شود، یک رمز عبور تصادفی به کاربر ایمیل خواهد شد.",
+       "apihelp-createaccount-param-reason": "دلیل اختیاری برای ایجاد حساب کاربری جهت قرارگرفتن در سیاهه‌ها.",
+       "apihelp-createaccount-example-pass": "ایجاد کاربر «testuser» همراه رمز عبور «test123»",
+       "apihelp-createaccount-example-mail": "ایجاد کاربر «testmailuser» و ایمیل‌کردن یک رمز عبور تصادفی ساخته‌شده",
+       "apihelp-delete-description": "حذف صفحه",
+       "apihelp-delete-param-title": "عنوان صفحه‌ای که قصد حذفش را دارید. نمی‌تواند در کنار $1pageid استفاده شود.",
+       "apihelp-delete-param-pageid": "شناسه صفحه‌ای که قصد حذفش را دارید. نمی‌تواند در کنار $1title استفاده شود.",
+       "apihelp-delete-param-reason": "دلیل برای حذف. اگر تنظیم نشود، یک دلیل خودکار ساخته‌شده استفاده می‌شود.",
+       "apihelp-delete-param-watch": "افزودن صفحه به فهرست پی‌گیری شما",
+       "apihelp-delete-param-unwatch": "صفحه را از پی‌گیری‌تان حذف کنید.",
+       "apihelp-delete-example-simple": "حذف صفحه اصلی",
+       "apihelp-delete-example-reason": "حذف صفحهٔ اصلی همراه دلیل «آماده برای انتقال»",
+       "apihelp-disabled-description": "این پودمان غیرفعال شده است.",
+       "apihelp-edit-description": "ایجاد و ویرایش صفحه",
+       "apihelp-edit-param-title": "عنوان صفحه‌ای که قصد ویرایشش را دارید. نمی‌تواند در کنار $1pageid استفاده شود.",
+       "apihelp-edit-param-pageid": "شناسه صفحهٔ صفحه‌ای که می‌خواهید ویرایشش کنید. نمی‌تواند در کنار $1title استفاده شود.",
+       "apihelp-edit-param-section": "شماره بخش. ۰ برای بخش بالا، «تازه» برای یک بخش تازه.",
+       "apihelp-edit-param-sectiontitle": "عنوان برای بخش جدید.",
+       "apihelp-edit-param-text": "محتوای صفحه.",
+       "apihelp-edit-param-summary": "خلاصه را ویرایش کنید. همچنین عنوان بخش را زمانی که $1section=تازه و $1sectiontitle تنظیم نشده‌است.",
+       "apihelp-edit-param-minor": "ویرایش جزئی.",
+       "apihelp-edit-param-notminor": "ویرایش غیر جزئی.",
+       "apihelp-edit-param-bot": "علامت زدن این ویرایش به عنوان ویرایش ربات.",
+       "apihelp-edit-param-createonly": "اگر صفحه موجود بود، ویرایش نکن.",
+       "apihelp-edit-param-nocreate": "رها کردن خطا در صورتی که صفحه وجود ندارد.",
+       "apihelp-edit-param-watch": "افزودن صفحه به فهرست پی‌گیری شما",
+       "apihelp-edit-param-unwatch": "حذف صفحه از فهرست پی‌گیری شما",
+       "apihelp-edit-param-prependtext": "این متن را به ابتدای صفحه اضافه کنید. $1text را لغو می‌کند.",
+       "apihelp-edit-param-undo": "این بازبینی را برگردانید. $1text، $1prependtext و $1appendtext را باطل می‌کند.",
+       "apihelp-edit-param-undoafter": "همه بازبینی‌ها را از $1undo تا این یکی برگردانید. اگر تنظیم نشد، فقط یک بازبینی را برگردانید.",
+       "apihelp-edit-param-redirect": "اصلاح خودکار تغییرمسیرها.",
+       "apihelp-edit-example-edit": "ویرایش صفحه",
+       "apihelp-emailuser-description": "ایمیل به کاربر",
+       "apihelp-emailuser-param-target": "کاربر برای ارسال رایانامه.",
+       "apihelp-emailuser-param-subject": "موضوع هدر.",
+       "apihelp-emailuser-param-text": "متن رایانه.",
+       "apihelp-emailuser-param-ccme": "ارسال یک نسخه از رایانه به شما.",
+       "apihelp-expandtemplates-param-title": "عنوان صفحه",
+       "apihelp-expandtemplates-param-text": "تبدیل برای ویکی‌متن.",
+       "apihelp-feedcontributions-description": "خوراک مشارکت‌های یک کاربر را برمی‌گرداند.",
+       "apihelp-feedcontributions-param-feedformat": "فرمت خوراک.",
+       "apihelp-feedcontributions-param-namespace": "فیلتر شدن مشارکتها براساس فضای نام.",
+       "apihelp-feedcontributions-param-year": "از سال (و پیش از آن).",
+       "apihelp-feedcontributions-param-month": "از ماه (و پیش از آن).",
+       "apihelp-feedcontributions-param-tagfilter": "فیلتر کردن مشارکتها براساس این برچسب‌ها.",
+       "apihelp-feedcontributions-param-deletedonly": "فقط مشارکت‌های حذف شده نمایش داده شود.",
+       "apihelp-feedcontributions-param-toponly": "فقط ویرایش‌هایی که آخرین نسخه‌اند نمایش داده شود.",
+       "apihelp-feedcontributions-param-newonly": "فقط نمایش ویرایش‌هایی که تولید‌های صفحه هستند.",
+       "apihelp-feedcontributions-param-showsizediff": "نمایش تفاوت حجم تغییرات بین نسخه‌ها.",
+       "apihelp-feedcontributions-example-simple": "مشارکت‌های [[کاربر:نمونه]] را برگردان",
+       "apihelp-feedrecentchanges-description": "خوراک تغییرات اخیر را برمی‌گرداند.",
+       "apihelp-feedrecentchanges-param-feedformat": "فرمت خوراک.",
+       "apihelp-feedrecentchanges-param-namespace": "فضای نام برای محدودکردن نتایج به.",
+       "apihelp-feedrecentchanges-param-invert": "همهٔ فضاهای نام به جز انتخاب‌شده‌ها.",
+       "apihelp-feedrecentchanges-param-associated": "فضای نام مرتبط (بحث یا اصلی) را شامل می‌شود.",
+       "apihelp-feedrecentchanges-param-days": "روز برای محدود کردن نتایج.",
+       "apihelp-feedrecentchanges-param-limit": "حداکثر تعداد نتایج خروجی.",
+       "apihelp-feedrecentchanges-param-from": "نمایش تغییرات پس از آن.",
+       "apihelp-feedrecentchanges-param-hideminor": "پنهان کردن تغییرات جزئی.",
+       "apihelp-feedrecentchanges-param-hidebots": "پنهان کردن تغییرات انجام شده توسط ربات‌ها.",
+       "apihelp-feedrecentchanges-param-hideanons": "پنهان کردن ویرایش‌های کاربران ناشناس.",
+       "apihelp-feedrecentchanges-param-hideliu": "پنهان کردن ویرایش‌های کاربران ثبت‌نام کرده.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "پنهان کردن ویرایش گشت‌زن‌ها.",
+       "apihelp-feedrecentchanges-param-hidemyself": "پنهان کردن ویرایش‌های خودتان.",
+       "apihelp-feedrecentchanges-param-tagfilter": "فیلتر کردن براساس برچسب",
+       "apihelp-feedrecentchanges-param-target": "فقط نمایش ویرایش‌هایی که پیوند دارند به این صفحه.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "نمایش ویرایش‌ها بر روی صفحات پیوند داده شده به صفحات انتخاب شده.",
+       "apihelp-feedrecentchanges-example-simple": "نمایش تغییرات اخیر",
+       "apihelp-feedrecentchanges-example-30days": "نمایش تغییرات اخیر در 30 روز اخیر",
+       "apihelp-feedwatchlist-description": "برگرداندن فهرست پیگیری‌های خوراک.",
+       "apihelp-feedwatchlist-param-feedformat": "فرمت خوراک.",
+       "apihelp-feedwatchlist-param-linktosections": "اگر ممکن است به طور مستقیم به بخش‌های تغییریافته پیوند دهید.",
+       "apihelp-feedwatchlist-example-default": "نمایش خوراک فهرست پی‌گیری",
+       "apihelp-feedwatchlist-example-all6hrs": "همهٔ تغییرات ۶ ساعت گذشته در صفحه‌های پی‌گیری را نمایش دهید",
+       "apihelp-filerevert-description": "واگردانی فایل به یک نسخه قدیمی",
+       "apihelp-filerevert-param-filename": "نام پروندهٔ مقصد، بدون پیشوند پرونده:.",
+       "apihelp-filerevert-param-comment": "ارسال دیدگاه.",
+       "apihelp-filerevert-param-archivename": "نام بایگانی بازبینی برای برگرداندن.",
+       "apihelp-filerevert-example-revert": "برگرداندن Wiki.png به نسخهٔ 2011-03-05T15:27:40Z",
+       "apihelp-help-description": "راهنما برای پودمان‌های مشخص‌شده را نمایش دهید.",
+       "apihelp-help-param-helpformat": "قالب‌بندی خروجی راهنما.",
+       "apihelp-help-example-main": "راهنما برای پودمان اصلی",
+       "apihelp-help-example-recursive": "همهٔ راهنما در یک صفحه",
+       "apihelp-help-example-help": "راهنما برای خود ماژول راهنما",
+       "apihelp-help-example-query": "راهنما برای دو زیر پودمان کوئری",
+       "apihelp-imagerotate-description": "چرخاندن یک یا چند تصویر",
+       "apihelp-imagerotate-param-rotation": "درجه برای چرخاندن تصویر در جهت ساعت‌گرد.",
+       "apihelp-imagerotate-example-simple": "چرخاندن ۹۰ درجه برای [[:File:Example.png]]",
+       "apihelp-imagerotate-example-generator": "چرخاندن ۱۸۰ درجه برای همهٔ تصاویر موجود در [[:Category:Flip]]",
+       "apihelp-import-param-summary": "خلاصه درون‌ریزی.",
+       "apihelp-import-param-xml": "پرونده XML بارگذاری شد.",
+       "apihelp-import-param-interwikisource": "برای درون‌ریز میان‌ویکی: ویکی برای درون‌ریزی از.",
+       "apihelp-import-param-interwikipage": "برای درون‌ریز میان‌ویکی: صفحه برای درون‌ریزی.",
+       "apihelp-import-param-fullhistory": "برای درون‌ریزی میان‌ویکی: درون‌ریزی تاریخچهٔ کامل، نه فقط نسخهٔ موجود.",
+       "apihelp-import-param-templates": "برای درون ریزی میان‌ویکی: همچنین درون‌ریزی الگوهای مورد استفاده.",
+       "apihelp-import-param-namespace": "برای درون‌ریزی میان‌ویکی: درون‌ریزی به این فضای نام.",
+       "apihelp-import-param-rootpage": "درون‌ریزی به عنوان زیر صفحهٔ این صفحه.",
+       "apihelp-login-param-name": "نام کاربری.",
+       "apihelp-login-param-password": "گذرواژه.",
+       "apihelp-login-param-domain": "دامنه (اختیاری)",
+       "apihelp-login-example-gettoken": "دریافت توکن ورود",
+       "apihelp-login-example-login": "ورود",
+       "apihelp-logout-description": "خروج به همراه پاک نمودن اطلاعات این نشست",
+       "apihelp-logout-example-logout": "خروج کاربر فعلی",
+       "apihelp-move-description": "انتقال صفحه",
+       "apihelp-move-param-to": "عنوانی که شما قصد دارید صفحه را به آن نام تغییر دهید.",
+       "apihelp-move-param-reason": "دلیل انتقال",
+       "apihelp-move-param-movetalk": "انتقال صفحهٔ بحث اگر وجود دارد.",
+       "apihelp-move-param-movesubpages": "انتقال زیر صفحه‌ها اگر امکان‌پذیر است.",
+       "apihelp-move-param-noredirect": "عدم ساخت تغییرمسیر.",
+       "apihelp-move-param-ignorewarnings": "چشم‌پوشی از همهٔ هشدارها.",
+       "apihelp-opensearch-param-search": "جستجوی رشته.",
+       "apihelp-opensearch-param-limit": "حداکثر تعداد نتایج برای بازگرداندن.",
+       "apihelp-opensearch-param-namespace": "فضاهای نامی برای جستجو",
+       "apihelp-opensearch-param-format": "فرمت خروجی.",
+       "apihelp-opensearch-example-te": "یافتن صفحه‌هایی که با «ته» آغاز می‌شوند",
+       "apihelp-options-example-reset": "بازنشانی همه تنظیمات.",
+       "apihelp-parse-example-page": "تجزیه یک صفحه.",
+       "apihelp-parse-example-text": "تجزیه متن ویکی.",
+       "apihelp-parse-example-summary": "تجزیه خلاصه.",
+       "apihelp-patrol-description": "گشت‌زنی یک صفحه یا نسخهٔ ویرایشی.",
+       "apihelp-patrol-example-rcid": "گشت‌زنی یک تغییر اخیر",
+       "apihelp-patrol-example-revid": "گشت‌زدن یک نسخه",
+       "apihelp-protect-description": "تغییر سطح محافظت صفحه",
+       "apihelp-protect-param-reason": "دلیل برای (عدم) حفاظت.",
+       "apihelp-protect-example-protect": "محافظت از صفحه",
+       "apihelp-protect-example-unprotect": "خارج ساختن صفحه از حفاظت با تغییر سطح حفاظتی به \"همگان\"",
+       "apihelp-protect-example-unprotect2": "خارج ساختن صفحه از حفاظت با قراردادن هیچ‌گونه محدودیت‌حفاظتی",
+       "apihelp-purge-param-forcelinkupdate": "به‌روزرسانی جداول پیوندها.",
+       "apihelp-query+allfileusages-param-limit": "تعداد آیتم‌ها برای بازگرداندن.",
+       "apihelp-query+allfileusages-param-dir": "جهتی که باید فهرست شود.",
+       "apihelp-query+allfileusages-example-unique": "فهرست پرونده‌های با عنوان یکتا",
+       "apihelp-query+allfileusages-example-unique-generator": "گرفتن عنوان همهٔ پرونده‌ها، برچسب زدن موارد گم شده",
+       "apihelp-query+allfileusages-example-generator": "گرفتن صفحاتی که دارای پرونده هستند",
+       "apihelp-query+allimages-description": "متوالی شمردن همهٔ تصاویر.",
+       "apihelp-query+allimages-param-sort": "خصوصیت برای مرتب‌سازی بر پایه آن",
+       "apihelp-query+allimages-param-dir": "جهتی که باید فهرست شود.",
+       "apihelp-query+allimages-param-minsize": "محدودکردن به صفحه‌هایی که دست کم این تعداد بایت دارند.",
+       "apihelp-query+allimages-param-maxsize": "محدودکردن به صفحه‌هایی که حداکثر این تعداد بایت دارند.",
+       "apihelp-query+alllinks-param-namespace": "فضای نامی که باید شمرده شود.",
+       "apihelp-query+alllinks-param-limit": "تعداد آیتم‌ها برای بازگرداندن.",
+       "apihelp-query+alllinks-param-dir": "جهتی که باید فهرست شود.",
+       "apihelp-query+allpages-param-filterredir": "صفحه‌هایی که باید فهرست شوند.",
+       "apihelp-query+allpages-param-minsize": "محدودکردن به صفحه‌هایی که همراه دست کم این تعداد بایت است.",
+       "apihelp-query+allredirects-param-limit": "تعداد آیتم‌ها برای بازگرداندن.",
+       "apihelp-query+categorymembers-description": "فهرست‌کردن همهٔ صفحه‌ها در یک ردهٔ مشخص‌شده.",
+       "apihelp-query+categorymembers-param-startsortkey": "جایش از $1starthexsortkey استفاده کنید.",
+       "apihelp-query+imageinfo-param-urlheight": "مشابه $1urlwidth.",
+       "apihelp-query+info-description": "دریافت اطلاعات سادهٔ صفحه.",
+       "apihelp-query+iwbacklinks-param-prefix": "پیشوند میان‌ویکی.",
+       "apihelp-query+iwbacklinks-param-title": "پیوند میان‌ویکی برای جستجو. باید همراه $1blprefix استفاده شود.",
+       "apihelp-query+iwbacklinks-param-limit": "تعداد صفحه‌ها برای بازگرداندن.",
+       "apihelp-query+linkshere-param-limit": "تعداد برای بازگرداندن.",
+       "apihelp-query+logevents-description": "دریافت رویدادها از سیاهه‌ها.",
+       "apihelp-query+protectedtitles-param-namespace": "فقط عنوان‌ها در این فضاهای نام را فهرست کنید.",
+       "apihelp-query+protectedtitles-param-level": "فقط عنوان‌ها در این سطح‌های حفاظت را فهرست کنید.",
+       "apihelp-query+protectedtitles-param-limit": "تعداد صفحه‌ها برای بازگرداندن.",
+       "apihelp-query+protectedtitles-param-start": "آغاز فهرست‌کردن از این برچسب زمانی حفاظت.",
+       "apihelp-query+protectedtitles-param-end": "متوقف‌کردن فهرست‌کردن در این برچسب زمانی حفاظت.",
+       "apihelp-query+random-param-namespace": "بازگرداندن صفحه‌های فقط در این فضاهای نام.",
+       "apihelp-query+random-param-limit": "محدود کنید چه تعداد صفحه بازگردانده خواهد شد.",
+       "apihelp-query+random-param-redirect": "یک تغییرمسیر تصادفی جای یک صفحه تصادفی بارگیری کنید.",
+       "apihelp-query+random-example-simple": "بازگرداندن تو صفحهٔ تصادفی از فضای نام اصلی",
+       "apihelp-query+random-example-generator": "بازگرداندن اطلاعات صفحه دربارهٔ دو صفحهٔ تصادفی از فضای نام اصلی",
+       "apihelp-query+recentchanges-param-start": "برچسب زمانی برای آغاز شمارش از.",
+       "apihelp-query+recentchanges-param-end": "برچسب زمانی برای پایان شمارش.",
+       "apihelp-query+redirects-param-limit": "تعداد تغییرمسیرها برای بازگرداندن.",
+       "apihelp-upload-param-ignorewarnings": "چشم‌پوشی از همهٔ هشدارها.",
+       "apihelp-userrights-param-user": "نام کاربری.",
+       "api-help-param-deprecated": "توصیه.",
+       "api-credits-header": "اعتبار"
+}
diff --git a/includes/api/i18n/fr.json b/includes/api/i18n/fr.json
new file mode 100644 (file)
index 0000000..729b946
--- /dev/null
@@ -0,0 +1,600 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gomoko",
+                       "Windes"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Documentation]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Bogues et demandes]\n</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en  cours de développement, et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Demandes erronées :</strong> Qaund des demandes erronés sont envoyées à l’API, un entête HTTP sera renvoyé avec la clé « MediaWiki-API-Error » et à la fois la valeur de l’entête et le code d’erreur retourné prendront la même valeur. Pour plus d’information, voyez https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-param-action": "Quelle action effectuer.",
+       "apihelp-main-param-format": "Le format de sortie.",
+       "apihelp-main-param-maxlag": "La latence maximale peut être utilisée quand MédiaWiki est installé sur un cluster de base de données répliqué. Pour éviter des actions provoquant un supplément de latence de réplication de site, ce paramètre peut faire attendre le client jusqu’à ce que la latence de réplication soit inférieure à une valeur spécifiée. En cas de latence excessive, le code d’erreur « maxlag » est renvoyé avec un message tel que « Attente de $host : $lag secondes de délai ».<br />Voyez https://www.mediawiki.org/wiki/Manual:Maxlag_parameter pour plus d’information.",
+       "apihelp-main-param-smaxage": "Fixer l’entête s-maxage à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
+       "apihelp-main-param-maxage": "Fixer l’entête max-age à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
+       "apihelp-main-param-assert": "Vérifier si l’utilisateur est connecté si positionné à « user », ou a le droit utilisateur robot si positionné à « bot ».",
+       "apihelp-main-param-requestid": "Toute valeur fournie ici sera incluse dans la réponse. Peut être utilisé pour distinguer des demandes.",
+       "apihelp-main-param-servedby": "Inclure le nom d’hôte qui a renvoyé la requête dans les résultats.",
+       "apihelp-main-param-curtimestamp": "Inclure l’horodatage actuel dans le résultat.",
+       "apihelp-main-param-origin": "En accédant à l’API en utilisant une requête AJAX inter-domaines (CORS), mettre le domaine d’origine dans ce paramètre. Il doit être inclus dans toute requête de pre-flight, et ne doit donc pas faire partie de l’URI de la requête (ni du corps du POST). Il doit correspondre exactement à une des origines dans l’entête Origin: header, donc il doit être fixé avec quelque chose comme http://en.wikipedia.org or https://meta.wikimedia.org. Si ce paramètre ne correspond pas à l’entête Origin:, une réponse 403 sera renvoyée. Si ce paramètre correspond à l’entête Origin: et que l’origine est en liste blanche, un entête Access-Control-Allow-Origin sera positionné.",
+       "apihelp-main-param-uselang": "Langue à utiliser pour les traductions de message. Une liste de codes peut être analysée depuis [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]], ou en spécifiant « user » pour utiliser la préférence de langue de l’utilisateur actuel.",
+       "apihelp-block-description": "Bloquer un utilisateur.",
+       "apihelp-block-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP que vous voulez bloquer.",
+       "apihelp-block-param-expiry": "Durée d’expiration. Peut être relative (par ex. « 5 mois » ou « 2 semaines ») ou absolue (par ex. « 2014-09-18T12:34:56Z »). Si elle est mise à « infinite », « indefinite » ou « never », le blocage n’expirera jamais.",
+       "apihelp-block-param-reason": "Motif du blocage.",
+       "apihelp-block-param-anononly": "Bloquer uniquement les utilisateurs anonymes (c’est-à-dire désactiver les modifications anonymes pour cette adresse IP).",
+       "apihelp-block-param-nocreate": "Empêcher la création de compte.",
+       "apihelp-block-param-autoblock": "Bloquer automatiquement la dernière adresse IP utilisée, et toute les adresses IP subséquentes depuis lesquelles ils ont essayé de se connecter.",
+       "apihelp-block-param-noemail": "Empêcher l’utilisateur d’envoyer des courriels via le wiki (nécessite le doit « blockemail »).",
+       "apihelp-block-param-hidename": "Masque le nom de l’utilisateur dans le journal des blocages (nécessite le droit « hideuser »).",
+       "apihelp-block-param-allowusertalk": "Autoriser les utilisateurs à modifier leur propre page de discussion (dépend de $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-reblock": "Si l’utilisateur est déjà bloqué, écraser le blocage existant.",
+       "apihelp-block-param-watchuser": "Surveiller les pages utilisateur et de discussion de l’utilisateur ou de l’adresse IP.",
+       "apihelp-block-example-ip-simple": "Bloquer l’adresse IP 192.0.2.5 pour trois jours avec le motif « Premier avertissement ».",
+       "apihelp-block-example-user-complex": "Bloquer indéfiniment l’utilisateur Vandale avec le motif « Vandalisme », et empêcher la création de nouveau compte et de courriel",
+       "apihelp-clearhasmsg-description": "Efface le drapeau hasmsg pour l’utilisateur courant.",
+       "apihelp-clearhasmsg-example-1": "Effacer le drapeau hasmsg pour l’utilisateur courant",
+       "apihelp-compare-description": "Obtenir la différence entre 2 pages.\n\nVous devez passer un numéro de révision, un titre de page, ou un ID de page, à la fois pour « from » et « to ».",
+       "apihelp-compare-param-fromtitle": "Premier titre à comparer.",
+       "apihelp-compare-param-fromid": "ID de la première page à comparer.",
+       "apihelp-compare-param-fromrev": "Première révision à comparer.",
+       "apihelp-compare-param-totitle": "Second titre à comparer.",
+       "apihelp-compare-param-toid": "ID de la seconde page à comparer.",
+       "apihelp-compare-param-torev": "Seconde révision à comparer.",
+       "apihelp-compare-example-1": "Créer une différence entre les révisions 1 et 2",
+       "apihelp-createaccount-description": "Créer un nouveau compte utilisateur.",
+       "apihelp-createaccount-param-name": "Nom d’utilisateur.",
+       "apihelp-createaccount-param-password": "Mot de passe (ignoré si $1mailpassword est défini).",
+       "apihelp-createaccount-param-domain": "Domaine pour l’authentification externe (facultatif).",
+       "apihelp-createaccount-param-token": "Jeton de création de compte obtenu à la première requête.",
+       "apihelp-createaccount-param-email": "Adresse de courriel de l’utilisateur (facultatif).",
+       "apihelp-createaccount-param-realname": "Vrai nom de l’utilisateur (facultatif).",
+       "apihelp-createaccount-param-mailpassword": "S’il est fixé à une valeur quelconque, un mot de passe aléatoire sera envoyé par courriel à l’utilisateur.",
+       "apihelp-createaccount-param-reason": "Motif facultatif de création du compte à mettre dans les journaux.",
+       "apihelp-createaccount-param-language": "Code de langue à mettre par défaut pour l’utilisateur (facultatif, par défaut langue du contenu).",
+       "apihelp-createaccount-example-pass": "Créer l’utilisateur « testuser » avec le mot de passe « test123 »",
+       "apihelp-createaccount-example-mail": "Créer l’utilisateur « testmailuser » et envoyer par courriel un mot de passe généré aléatoirement",
+       "apihelp-delete-description": "Supprimer une page.",
+       "apihelp-delete-param-title": "Titre de la page que vous voulez supprimer. Impossible de l’utiliser avec $1pageid.",
+       "apihelp-delete-param-pageid": "ID de la page que vous voulez supprimer. Impossible à utiliser avec $1title.",
+       "apihelp-delete-param-reason": "Motif de suppression. Si non défini, un motif généré automatiquement sera utilisé.",
+       "apihelp-delete-param-watch": "Ajouter la page à votre liste de suivi.",
+       "apihelp-delete-param-watchlist": "Ajouter ou supprimer sans condition la page de votre liste de suivi, utiliser les préférences ou ne pas modifier le suivi.",
+       "apihelp-delete-param-unwatch": "Supprimer la page de votre liste de suivi.",
+       "apihelp-delete-param-oldimage": "Le nom de l’ancienne image à supprimer tel que fourni par [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
+       "apihelp-delete-example-simple": "Supprimer la Page principale",
+       "apihelp-delete-example-reason": "Supprimer la Page principale avec le motif « Préparation au déplacement »",
+       "apihelp-disabled-description": "Ce module a été désactivé.",
+       "apihelp-edit-description": "Créer et modifier les pages.",
+       "apihelp-edit-param-title": "Titre de la page que vous voulez modifier. Impossible de l’utiliser avec $1pageid.",
+       "apihelp-edit-param-pageid": "ID de la page que vous voulez modifier. Impossible à utiliser avec $1title.",
+       "apihelp-edit-param-section": "Numéro de section. 0 pour la section de tête, « new » pour une nouvelle section.",
+       "apihelp-edit-param-sectiontitle": "Le titre pour une nouvelle section.",
+       "apihelp-edit-param-text": "Contenu de la page.",
+       "apihelp-edit-param-summary": "Modifier le résumé. Également le titre de la section quand $1section=new et $1sectiontitle n’est pas défini.",
+       "apihelp-edit-param-minor": "Modification mineure.",
+       "apihelp-edit-param-notminor": "Modification non mineure.",
+       "apihelp-edit-param-bot": "Marquer cette modification comme robot.",
+       "apihelp-edit-param-basetimestamp": "Horodatage de la révision de base, utilisé pour détecter les conflits de modification. Peut être obtenu via [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Horodatage quand vous avez commencé le processus de modification, utilisé pour détecter les conflits de modification. Une valeur appropriée peut être obtenue en utilisant [[Special:ApiHelp/main|curtimestamp]] lors du démarrage du processus de modification (par ex. en chargeant le contenu de la page à modifier).",
+       "apihelp-edit-param-recreate": "Écraser toutes les erreurs sur l’article ayant été supprimé pendant ce temps.",
+       "apihelp-edit-param-createonly": "Ne pas modifier la page si elle existe déjà.",
+       "apihelp-edit-param-nocreate": "Lever une erreur si la page n’existe pas.",
+       "apihelp-edit-param-watch": "Ajouter la page à votre liste de suivi.",
+       "apihelp-edit-param-unwatch": "Supprimer la page de votre liste de suivi.",
+       "apihelp-edit-param-watchlist": "Ajouter ou supprimer sans condition la page de votre liste de suivi, utiliser les préférences ou ne pas changer le suivi.",
+       "apihelp-edit-param-md5": "Le hachage MD5 du paramètre $1text, ou les paramètres $1prependtext et $1appendtext concaténés. Si défini, la modification ne sera pas effectuée à moins que le hachage ne soit correct.",
+       "apihelp-edit-param-prependtext": "Ajouter ce texte au début de la page. Écrase $1text.",
+       "apihelp-edit-param-appendtext": "Ajouter ce texte à la fin de la page. Écrase $1text.\n\nUtiliser $1section=new pour ajouter une nouvelle section, plutôt que ce paramètre.",
+       "apihelp-edit-param-undo": "Annuler cette révision. Écrase $1text, $1prependtext et $1appendtext.",
+       "apihelp-edit-param-undoafter": "Annuler toutes les révisions depuis $1undo jusqu’à celle-ci. Si non défini, annuler uniquement une révision.",
+       "apihelp-edit-param-redirect": "Résoudre automatiquement les redirections.",
+       "apihelp-edit-param-contentformat": "Format de sérialisation du contenu utilisé pour le texte d’entrée.",
+       "apihelp-edit-param-contentmodel": "Modèle de contenu du nouveau contenu.",
+       "apihelp-edit-param-token": "Le jeton doit toujours être envoyé en tant que dernier paramètre, ou au moins après le paramètre $1text.",
+       "apihelp-edit-example-edit": "Modifier une page",
+       "apihelp-edit-example-prepend": "Préfixer une page par _&#95;NOTOC_&#95;",
+       "apihelp-edit-example-undo": "Annuler les révisions 13579 à 13585 avec résumé automatique",
+       "apihelp-emailuser-description": "Envoyer un courriel à un utilisateur.",
+       "apihelp-emailuser-param-target": "Utilisateur à qui envoyer le courriel.",
+       "apihelp-emailuser-param-subject": "Entête du sujet.",
+       "apihelp-emailuser-param-text": "Corps du courriel.",
+       "apihelp-emailuser-param-ccme": "M’envoyer une copie de ce courriel.",
+       "apihelp-emailuser-example-email": "Envoyer un courriel à l’utilisateur « WikiSysop » avec le texte « Contenu »",
+       "apihelp-expandtemplates-description": "Développe tous les modèles en wikitexte.",
+       "apihelp-expandtemplates-param-title": "Titre de la page.",
+       "apihelp-expandtemplates-param-text": "Wikitexte à convertir.",
+       "apihelp-expandtemplates-param-prop": "Quelles informations récupérer :\n;wikitext:Le wikitexte développé.\n;categories:Toutes les catégories présentes dans l’entrée qui ne sont pas représentées dans le wikitexte de sortie.\n;volatile:Si la sortie est volatile et ne devrait pas être réutilisée ailleurs dans la page.\n;ttl:Le délai maximal après lequel les caches du résultat devraient être invalidés.\n;parsetree:L’arbre d’analyse XML de l’entrée.\nNoter que si aucune valeur n’est sélectionnée, le résultat contiendra le wikitexte, mais la sortie sera dans un format obsolète.",
+       "apihelp-expandtemplates-param-includecomments": "S’il faut inclure les commentaires HTML dans la sortie.",
+       "apihelp-expandtemplates-param-generatexml": "Générer l’arbre d’analyse XML (remplacé par $1prop=parsetree).",
+       "apihelp-expandtemplates-example-simple": "Développe le wikitexte « <nowiki>{{Project:Sandbox}}</nowiki> »",
+       "apihelp-feedcontributions-description": "Renvoie le fil des contributions d’un utilisateur.",
+       "apihelp-feedcontributions-param-feedformat": "Le format du flux.",
+       "apihelp-feedcontributions-param-user": "Pour quels utilisateurs récupérer les contributions.",
+       "apihelp-feedcontributions-param-namespace": "Par quels espaces de nom filtrer les contributions.",
+       "apihelp-feedcontributions-param-year": "Depuis l’année (et plus récent).",
+       "apihelp-feedcontributions-param-month": "Depuis le mois (et plus récent).",
+       "apihelp-feedcontributions-param-tagfilter": "Filtrer les contributions qui ont ces balises.",
+       "apihelp-feedcontributions-param-deletedonly": "Afficher uniquement les contributions supprimées.",
+       "apihelp-feedcontributions-param-toponly": "Afficher uniquement les modifications qui sont les dernières révisions.",
+       "apihelp-feedcontributions-param-newonly": "Afficher uniquement les modifications qui sont des créations de page.",
+       "apihelp-feedcontributions-param-showsizediff": "Afficher la différence de taille entre les révisions.",
+       "apihelp-feedcontributions-example-simple": "Renvoyer les contributions de [[User:Example]]",
+       "apihelp-feedrecentchanges-description": "Renvoie un fil de modifications récentes.",
+       "apihelp-feedrecentchanges-param-feedformat": "Le format du flux.",
+       "apihelp-feedrecentchanges-param-namespace": "Espace de noms auquel limiter les résultats.",
+       "apihelp-feedrecentchanges-param-invert": "Tous les espaces de nom sauf le sélectionné.",
+       "apihelp-feedrecentchanges-param-associated": "Inclure l’espace de noms associé (discussion ou principal).",
+       "apihelp-feedrecentchanges-param-days": "Jours auxquels limiter le résultat.",
+       "apihelp-feedrecentchanges-param-limit": "Nombre maximal de résultats à renvoyer.",
+       "apihelp-feedrecentchanges-param-from": "Afficher les modifications depuis lors.",
+       "apihelp-feedrecentchanges-param-hideminor": "Masquer les modifications mineures.",
+       "apihelp-feedrecentchanges-param-hidebots": "Masquer les modifications faites par des robots.",
+       "apihelp-feedrecentchanges-param-hideanons": "Masquer les modifications faites par des utilisateurs anonymes.",
+       "apihelp-feedrecentchanges-param-hideliu": "Masquer les modifications faites par des utilisateurs enregistrés.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Masquer les modifications contrôlées.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Masquer les modifications que vous avez faites.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtrer par balise.",
+       "apihelp-feedrecentchanges-param-target": "Afficher uniquement les modifications sur les pages liées depuis cette page.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "Afficher les modifications plutôt sur les pages liées vers la page sélectionnée.",
+       "apihelp-feedrecentchanges-example-simple": "Afficher les modifications récentes",
+       "apihelp-feedrecentchanges-example-30days": "Afficher les modifications récentes sur 30 jours",
+       "apihelp-feedwatchlist-description": "Renvoie un flux de liste de suivi.",
+       "apihelp-feedwatchlist-param-feedformat": "Le format du flux.",
+       "apihelp-feedwatchlist-param-hours": "Lister les pages modifiées lors de ce nombre d’heures depuis maintenant.",
+       "apihelp-feedwatchlist-param-linktosections": "Lier directement pour modifier les sections si possible.",
+       "apihelp-feedwatchlist-example-default": "Afficher le flux de la liste de suivi",
+       "apihelp-feedwatchlist-example-all6hrs": "Afficher toutes les modifications sur les pages suivies dans les dernières 6 heures",
+       "apihelp-filerevert-description": "Rétablir un fichier dans une ancienne version.",
+       "apihelp-filerevert-param-filename": "Nom de fichier cible, sans le préfixe File:.",
+       "apihelp-filerevert-param-comment": "Télécharger le commentaire.",
+       "apihelp-filerevert-param-archivename": "Nom d’archive de la révision à rétablir.",
+       "apihelp-filerevert-example-revert": "Rétablir Wiki.png dans la version du 2011-03-05T15:27:40Z",
+       "apihelp-help-description": "Afficher l’aide pour les modules spécifiés.",
+       "apihelp-help-param-modules": "Modules pour lesquels afficher l’aide (valeurs des paramètres action= et format=, ou « main »). Les sous-modules peuvent être spécifiés avec un « + ».",
+       "apihelp-help-param-submodules": "Inclure l’aide pour les sous-modules du module nommé.",
+       "apihelp-help-param-recursivesubmodules": "Inclure l’aide pour les sous-modules de façon récursive.",
+       "apihelp-help-param-helpformat": "Format de sortie de l’aide.",
+       "apihelp-help-param-wrap": "Inclut la sortie dans une structure de réponse API standard.",
+       "apihelp-help-param-toc": "Inclure une table des matières dans la sortir HTML.",
+       "apihelp-help-example-main": "Aide pour le module principal",
+       "apihelp-help-example-recursive": "Toute l’aide sur une page",
+       "apihelp-help-example-help": "Aide pour le module d’aide lui-même",
+       "apihelp-help-example-query": "Aide pour deux sous-modules de recherche",
+       "apihelp-imagerotate-description": "Faire pivoter une ou plusieurs images.",
+       "apihelp-imagerotate-param-rotation": "Degrés de rotation de l’image dans le sens des aiguilles d’une montre.",
+       "apihelp-imagerotate-example-simple": "Faire pivoter [[:File:Example.png]] de 90 degrés",
+       "apihelp-imagerotate-example-generator": "Faire pivoter toutes les images de [[:Category:Flip]] de 180 degrés",
+       "apihelp-import-description": "Importer une page depuis un autre wiki, ou un fichier XML.\n\nNoter que le POST HTTP doit être effectué comme un import de fichier (c’est-à-dire en utilisant multipart/form-data) lors de l’envoi d’un fichier pour le paramètre « xml ».",
+       "apihelp-import-param-summary": "Importer le résumé.",
+       "apihelp-import-param-xml": "Fichier XML téléchargé.",
+       "apihelp-import-param-interwikisource": "Pour les importations interwiki : wiki depuis lequel importer.",
+       "apihelp-import-param-interwikipage": "Pour les importations interwiki : page à importer.",
+       "apihelp-import-param-fullhistory": "Pour les importations interwiki : importer tout l’historique, et pas seulement la version courante.",
+       "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
+       "apihelp-import-param-namespace": "Pour les importations interwiki : importer vers cet espace de noms.",
+       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page.",
+       "apihelp-import-example-import": "Importer [[meta:Help:Parserfunctions]] vers l’espace de noms 100 avec tout l’historique.",
+       "apihelp-login-description": "Se connecter et obtenir les cookies d’authentification.\n\nDans le cas d’une connexion réussie, les cookies nécessaires seront inclus dans les entêtes de la réponse HTTP. Dans le cas d’une connexion en échec, les essais ultérieurs pourront être réduits afin de limiter les attaques automatisées de découverte du mot de passe.",
+       "apihelp-login-param-name": "Nom d’utilisateur.",
+       "apihelp-login-param-password": "Mot de passe.",
+       "apihelp-login-param-domain": "Domaine (facultatif).",
+       "apihelp-login-param-token": "Jeton de connexion obtenu à la première requête.",
+       "apihelp-login-example-gettoken": "Récupérer un jeton de connexion",
+       "apihelp-login-example-login": "Se connecter",
+       "apihelp-logout-description": "Se déconnecter et effacer les données de session.",
+       "apihelp-logout-example-logout": "Déconnecter l’utilisateur actuel.",
+       "apihelp-move-description": "Déplacer une page.",
+       "apihelp-move-param-from": "Titre de la page que vous voulez déplacer. Impossible de l’utiliser avec $1fromid.",
+       "apihelp-move-param-fromid": "ID de la page que vous voulez déplacer. Impossible à utiliser avec $1from.",
+       "apihelp-move-param-to": "Titre de la page renommée.",
+       "apihelp-move-param-reason": "Motif du déplacement.",
+       "apihelp-move-param-movetalk": "Déplacer la page de discussion, si elle existe.",
+       "apihelp-move-param-movesubpages": "Déplacer les sous-pages, le cas échéant.",
+       "apihelp-move-param-noredirect": "Ne pas créer une redirection.",
+       "apihelp-move-param-watch": "Ajouter une page et la redirection à votre liste de suivi.",
+       "apihelp-move-param-unwatch": "Supprimer la page et la redirection de votre liste de suivi.",
+       "apihelp-move-param-watchlist": "Ajouter ou supprimer sans condition la page de votre liste de suivi, utiliser les préférences ou ne pas changer le suivi.",
+       "apihelp-move-param-ignorewarnings": "Ignorer tous les avertissements.",
+       "apihelp-move-example-move": "Déplacer « Mauvais titre » en « Bon titre » sans garder de redirection",
+       "apihelp-opensearch-description": "Rechercher dans le wiki en utilisant le protocole OpenSearch.",
+       "apihelp-opensearch-param-search": "Chaîne de recherche.",
+       "apihelp-opensearch-param-limit": "Nombre maximal de résultats à renvoyer.",
+       "apihelp-opensearch-param-namespace": "Espaces de nom à rechercher.",
+       "apihelp-opensearch-param-suggest": "Ne rien faire si [https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest] vaut faux.",
+       "apihelp-opensearch-param-format": "Le format de sortie.",
+       "apihelp-opensearch-example-te": "Trouver les pages commençant par « Te »",
+       "apihelp-options-description": "Modifier les préférences de l’utilisateur courant.\n\nSeules les options enregistrées dans le cœur ou dans l’une des extensions installées, ou les options avec une clé préfixée par « userjs- » (devant être utilisées dans les scripts utilisateur), peuvent être définies.",
+       "apihelp-options-param-reset": "Réinitialise les préférences aux valeurs par défaut du site.",
+       "apihelp-options-param-resetkinds": "Liste des types d’option à réinitialiser quand l’option « $1reset » est définie.",
+       "apihelp-options-param-change": "Liste des modifications, au format nom=valeur (par ex. skin=vector). La valeur ne peut pas contenir de caractère barre verticale. Si aucune valeur n’est fournie (pas même un signe égal), par ex., nomoption|autreoption|…, l’option sera réinitialisée à sa valeur par défaut.",
+       "apihelp-options-param-optionname": "Un nom d’option qui doit être fixé à la valeur fournie par « $1optionvalue ».",
+       "apihelp-options-param-optionvalue": "La valeur d’une option spécifiée par « $1optionname » peut contenir des caractères barre verticale.",
+       "apihelp-options-example-reset": "Réinitialiser toutes les préférences",
+       "apihelp-options-example-change": "Modifier les préférences « skin » et « hideminor »",
+       "apihelp-options-example-complex": "Réinitialiser toutes les préférences, puis définir « skin » et « nickname »",
+       "apihelp-paraminfo-description": "Obtenir des informations sur les modules de l’API.",
+       "apihelp-paraminfo-param-modules": "Liste des noms de module (valeurs des paramètres action= et format=, ou « main »). Peut spécifier des sous-modules avec un « + ».",
+       "apihelp-paraminfo-param-helpformat": "Format des chaînes d’aide.",
+       "apihelp-paraminfo-param-querymodules": "Liste des noms de module de requêtage (valeur des paramètres prop=, meta= ou list=). Utiliser « $1modules=query+foo » au lieu de « $1querymodules=foo ».",
+       "apihelp-paraminfo-param-mainmodule": "Obtenir aussi des informations sur le module principal (niveau supérieur). Utiliser plutôt « $1modules=main ».",
+       "apihelp-paraminfo-param-pagesetmodule": "Obtenir aussi des informations sur le module pageset (en fournissant titles= et ses amis).",
+       "apihelp-paraminfo-param-formatmodules": "Liste des noms de module de mise en forme (valeur du paramètre format=). Utiliser plutôt « $1modules ».",
+       "apihelp-paraminfo-example-1": "Afficher les informations pour [[Special:ApiHelp/parse|action=parse]], [[Special:ApiHelp/jsonfm|format=jsonfm]], [[Special:ApiHelp/query+allpages|action=query&list=allpages]], et [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]",
+       "apihelp-parse-description": "Analyse le contenu et renvoie le résultat de l’analyseur.\n\nVoyez les différents modules prop de [[Special:ApiHelp/query|action=query]] pour avoir de l’information sur la version actuelle d’une page.\n\nIl y a plusieurs moyens de spécifier le texte à analyser :\n# Spécifier une page ou une révision, en utilisant $1page, $1pageid, ou $1oldid.\n# Spécifier explicitement un contenu, en utilisant $1text, $1title, et $1contentmodel.\n# Spécifier uniquement un résumé à analyser. $1prop doit recevoir une valeur vide.",
+       "apihelp-parse-param-title": "Titre de la page à laquelle appartient le texte. Si omis, $1contentmodel doit être spécifié, et « [[API]] » sera utilisé comme titre.",
+       "apihelp-parse-param-text": "Texte à analyser. utiliser $1title ou $1contentmodel pour contrôler le modèle de contenu.",
+       "apihelp-parse-param-summary": "Résumé à analyser.",
+       "apihelp-parse-param-page": "Analyser le contenu de cette page. Impossible à utiliser avec $1text et $1title.",
+       "apihelp-parse-param-pageid": "Analyser le contenu de cette page. Écrase $1page.",
+       "apihelp-parse-param-redirects": "Si le paramètre $1page ou $1pageid est positionné sur une redirection, la résoudre.",
+       "apihelp-parse-param-oldid": "Analyser le contenu de cette révision. Écrase $1page et $1pageid.",
+       "apihelp-parse-param-prop": "Quelles informations obtenir :\n;text:Fournit le texte analysé du wikitexte.\n;langlinks:Fournit les liens de langue dans le wikitexte analysé.\n;categories:Fournit les catégories dans le wikitexte analysé.\n;categorieshtml:Fournit la version HTML des catégories.\n;links:Fournit les liens internes dans le wikitexte analysé.\n;templates:Fournit les modèles dans le wikitexte analysé.\n;images:Fournit les images dans le wikitexte analysé.\n;externallinks:Fournit les liens externes dans le wikitexte analysé.\n;sections:Fournit les sections dans le wikitexte analysé.\n;revid:Ajoute l’ID de révision de la page analysée.\n;displaytitle:Ajoute le titre du wikitexte analysé.\n;headitems:Fournit les éléments à mettre dans le &lt;head&gt; de la page.\n;headhtml:Fournit le &lt;head&gt; analysé de la page.\n;modules:Fournit les modules ResourceLoader utilisés sur la page.\n;indicators:Fournit le HTML des indicateurs d’état de la page utilisés dans la page.\n;iwlinks:Fournit les liens interwiki dans le wikitexte analysé.\n;wikitext:Fournit le wikitexte d’origine qui a été analysé.\n;properties:Fournit différentes propriétés définies dans le wikitexte analysé.\n;limitreportdata:Fournit le rapport de limite de façon structurée. Ne fournit aucune donnée, quand $1disablepp est activé.\n;limitreporthtml:Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, quand $1disablepp est activé.",
+       "apihelp-parse-param-pst": "Faire une transformation avant enregistrement de l’entrée avant de l’analyser. Valide uniquement quand utilisé avec du texte.",
+       "apihelp-parse-param-onlypst": "Faire une transformation avant enregistrement (PST) de l’entrée, mais ne pas l’analyser. Renvoie le même wikitexte, après que la PST a été appliquée. Valide uniquement quand utilisé avec $1text.",
+       "apihelp-parse-param-effectivelanglinks": "Inclut les liens de langue fournis par les extensions (à utiliser avec $1prop=langlinks).",
+       "apihelp-parse-param-section": "Récupérer uniquement le contenu de ce numéro de section.",
+       "apihelp-parse-param-disablepp": "Désactiver le rapport PP de la sortie de l’analyseur.",
+       "apihelp-parse-param-disableeditsection": "Désactiver les liens de modification de section de la sortie de l’analyseur.",
+       "apihelp-parse-param-generatexml": "Générer un arbre d’analyse XML (nécessite le modèle de contenu « $1 »).",
+       "apihelp-parse-param-preview": "Analyser en mode aperçu.",
+       "apihelp-parse-param-sectionpreview": "Analyser en mode aperçu de section (active aussi le mode aperçu).",
+       "apihelp-parse-param-disabletoc": "Désactiver la table des matières dans la sortie.",
+       "apihelp-parse-param-contentformat": "Format de sérialisation du contenu utilisé pour le texte d’entrée. Valide uniquement si utilisé avec $1text.",
+       "apihelp-parse-param-contentmodel": "Modèle de contenu du texte d’entrée. Si omis, $1title doit être spécifié, et la valeur par défaut sera le modèle du titre spécifié. Valide uniquement quand utilisé avec $1text.",
+       "apihelp-parse-example-page": "Analyser une page.",
+       "apihelp-parse-example-text": "Analyser le wikitexte.",
+       "apihelp-parse-example-texttitle": "Analyser du wikitexte, en spécifiant le titre de la page.",
+       "apihelp-parse-example-summary": "Analyser un résumé.",
+       "apihelp-patrol-description": "Patrouiller une page ou une révision.",
+       "apihelp-patrol-param-rcid": "ID de modification récente à patrouiller.",
+       "apihelp-patrol-param-revid": "ID de révision à patrouiller.",
+       "apihelp-patrol-example-rcid": "Patrouiller une modification récente",
+       "apihelp-patrol-example-revid": "Patrouiller une révision",
+       "apihelp-protect-description": "Modifier le niveau de protection d’une page.",
+       "apihelp-protect-param-title": "Titre de la page à (dé)protéger. Impossible à utiliser avec $1pageid.",
+       "apihelp-protect-param-pageid": "ID de la page à (dé)protéger. Impossible à utiliser avec $1title.",
+       "apihelp-protect-param-protections": "Liste des niveaux de protection, au format action=niveau (par ex. edit=sysop).\n\n'''NOTE :''' Toutes les actions non listées auront leur restrictions supprimées.",
+       "apihelp-protect-param-expiry": "Horodatages d’expiration. Si un seul horodatage est fourni, il sera utilisé pour toutes les protections. Utiliser « infinite », « indefinite », « infinity » ou « never » pour une protection sans expiration.",
+       "apihelp-protect-param-reason": "Motif de (dé)protection.",
+       "apihelp-protect-param-cascade": "Activer la protection en cascade (c’est-à-dire protéger les pages incluses dans cette page). Ignoré si tous les niveaux de protection fournis ne supportent pas la mise en cascade.",
+       "apihelp-protect-param-watch": "Si activé, ajouter la page (dé)protégée à votre liste de suivi.",
+       "apihelp-protect-param-watchlist": "Ajouter ou supprimer sans condition la page de votre liste de suivi, utiliser les préférences ou ne pas modifier le suivi.",
+       "apihelp-protect-example-protect": "Protéger une page",
+       "apihelp-protect-example-unprotect": "Enlever la protection d’une page en mettant les restrictions à « all »",
+       "apihelp-protect-example-unprotect2": "Enlever la protection de la page en ne mettant aucune restriction",
+       "apihelp-purge-description": "Vider le cache des titres fournis.\n\nNécessite une requête POST si l’utilisateur n’est pas connecté.",
+       "apihelp-purge-param-forcelinkupdate": "Mettre à jour les tables de liens.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Mettre à jour la table des liens, et mettre à jour les tables de liens pour toute page qui utilise cette page comme modèle",
+       "apihelp-purge-example-simple": "Purger les pages « Page principale » et « API »",
+       "apihelp-purge-example-generator": "Purger les 10 premières pages de l’espace de noms principal",
+       "apihelp-query-description": "Extraire des données de et sur MédiaWiki.\n\nToutes les modifications de données devront d’abord utiliser une requête pour obtenir un jeton, afin d’éviter les abus de la part de sites malveillants.",
+       "apihelp-query-param-prop": "Quelles propriétés obtenir des pages demandées.",
+       "apihelp-query-param-list": "Quelles listes obtenir.",
+       "apihelp-query-param-meta": "Quelles métadonnées obtenir.",
+       "apihelp-query-param-indexpageids": "Inclure une section pageids supplémentaire listant tous les IDs de page renvoyés.",
+       "apihelp-query-param-export": "Exporter les révisions actuelles de toutes les pages fournies ou générées.",
+       "apihelp-query-param-exportnowrap": "Renvoyer le XML exporté sans l’inclure dans un résultat XML (même format que [[Special:Export]]). Utilisable uniquement avec $1export.",
+       "apihelp-query-param-iwurl": "S’il faut obtenir l’URL complète si le titre est un lien interwiki.",
+       "apihelp-query-param-continue": "Quand il est présent, met en forme query-continue sous forme de paires clé-valeur qui devrait simplement être fusionné dans la requête d’origine. Ce paramètre doit être fixé à une chaîne vide dans la requête initiale.\n\nCe paramètre est recommandé pour tout nouveau développement, et sera mis par défaut dans la prochaine version de l’API.",
+       "apihelp-query-param-rawcontinue": "Actuellement ignoré. Plus tard, « $1continue= » deviendra la valeur par défaut et sera nécessaire pour recevoir les données brutes de query-continue.",
+       "apihelp-query-example-revisions": "Récupérer [[Special:ApiHelp/query+siteinfo|l’info du site]] et [[Special:ApiHelp/query+revisions|les révisions]] de la Page principale",
+       "apihelp-query-example-allpages": "Récupérer les révisions des pages commençant par « API/ »",
+       "apihelp-query+allcategories-description": "Énumérer toutes les catégories.",
+       "apihelp-query+allcategories-param-from": "La catégorie depuis laquelle démarrer l’énumération.",
+       "apihelp-query+allcategories-param-to": "La catégorie à laquelle terminer l’énumération.",
+       "apihelp-query+allcategories-param-prefix": "Rechercher tous les titres de catégorie qui commencent avec cette valeur.",
+       "apihelp-query+allcategories-param-dir": "Direction dans laquelle trier.",
+       "apihelp-query+allcategories-param-min": "Renvoyer uniquement les catégories avec au moins ce nombre de membres.",
+       "apihelp-query+allcategories-param-max": "Renvoyer uniquement les catégories avec au plus ce nombre de membres.",
+       "apihelp-query+allcategories-param-limit": "Combien de catégories renvoyer.",
+       "apihelp-query+allcategories-param-prop": "Quelles propriétés récupérer :\n;size:Ajoute le nombre de pages dans la catégorie.\n;hidden:Marque les catégories qui sont cachées avec _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+allcategories-example-size": "Lister les catégories avec l’information sur le nombre de pages dans chacune",
+       "apihelp-query+allcategories-example-generator": "Récupérer l’information sur la page de catégorie elle-même pour les catégories commençant par « List »",
+       "apihelp-query+allfileusages-description": "Lister toutes les utilisations de fichier, y compris ceux n’existant pas.",
+       "apihelp-query+allfileusages-param-from": "Le titre du fichier depuis lequel commencer l’énumération.",
+       "apihelp-query+allfileusages-param-to": "Le titre du fichier auquel arrêter l’énumération.",
+       "apihelp-query+allfileusages-param-prefix": "Rechercher tous les fichiers dont le titre commence par cette valeur.",
+       "apihelp-query+allfileusages-param-unique": "Afficher uniquement les titres de fichier distincts. Impossible à utiliser avec $1prop=ids.\nQuand utilisé comme générateur, produit les pages cibles au lieu des sources.",
+       "apihelp-query+allfileusages-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page utilisatrice (impossible à utiliser avec $1unique).\n;title:Ajoute le titre du fichier.",
+       "apihelp-query+allfileusages-param-limit": "Combien d’éléments renvoyer au total.",
+       "apihelp-query+allfileusages-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+allfileusages-example-B": "Lister les titres de fichier, y compris les manquants, avec les ids de page d’où ils proviennent, en commençant à B",
+       "apihelp-query+allfileusages-example-unique": "Lister les titres de fichier uniques",
+       "apihelp-query+allfileusages-example-unique-generator": "Obtient tous les titres de fichier, en marquant les manquants",
+       "apihelp-query+allfileusages-example-generator": "Obtient les pages contenant les fichiers",
+       "apihelp-query+allimages-description": "Énumérer toutes les images séquentiellement.",
+       "apihelp-query+allimages-param-sort": "Propriété par laquelle trier.",
+       "apihelp-query+allimages-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+allimages-param-from": "Le titre de l’image depuis laquelle démarrer l’énumération. Ne peut être utilisé qu’avec $1sort=name.",
+       "apihelp-query+allimages-param-to": "Le titre de l’image auquel arrêter l’énumération. Ne peut être utilisé qu’avec $1sort=name.",
+       "apihelp-query+allimages-param-start": "L’horodatage depuis lequel énumérer. Ne peut être utilisé qu’avec $1sort=timestamp.",
+       "apihelp-query+allimages-param-end": "L’horodatage de fin de l’énumération. Ne peut être utilisé qu’avec $1sort=timestamp.",
+       "apihelp-query+allimages-param-prop": "Quelle information obtenir sur l’image :\n;timestamp:Ajoute l’horodatage de la version téléchargée.\n;user:Ajoute l’utilisateur qui a téléchargé la version de l’image.\n;userid:Ajoute l’ID de l’utilisateur qui a téléchargé la version de l’image.\n;comment:Commentaire sur la version.\n;parsedcomment:Analyser le commentaire de la version.\n;canonicaltitle:Ajoute le titre canonique du fichier image.\n;url:Fournit l’URL vers l’image et la page de description.\n;size:Ajoute la taille de l’image en octets et sa hauteur et largeur, et le numéro de page (si applicable).\n;dimensions:Alias de la taille.\n;sha1:Ajoute le hachage SHA-1 de l’image.\n;mime:Ajoute le type MIME de l’image.\n;mediatype:Ajoute le type de média de l’image.\n;metadata:Liste les métadonnées Exif de la version de l’image.\n;commonmetadata:Liste les métadonnées génériques du format de fichier pour la version de l’image.\n;extmetadata:Liste les métadonnées mises en forme regroupées depuis différentes sources. Les résultats sont au format HTML.\n;bitdepth:Ajoute la profondeur de couleur de la version.",
+       "apihelp-query+allimages-param-prefix": "Rechercher toutes les images dont le titre commence par cette valeur. Utilisable uniquement avec $1sort=name.",
+       "apihelp-query+allimages-param-minsize": "Restreindre aux images avec au moins ce nombre d’octets.",
+       "apihelp-query+allimages-param-maxsize": "Restreindre aux images avec au plus ce nombre d’octets.",
+       "apihelp-query+allimages-param-sha1": "Hachage SHA1 de l’image. Écrase $1sha1base36.",
+       "apihelp-query+allimages-param-sha1base36": "Hachage SHA1 de l’image en base 36 (utilisé dans MédiaWiki).",
+       "apihelp-query+allimages-param-user": "Renvoyer seulement les fichiers téléchargés par cet utilisateur. Utilisable uniquement avec $1sort=timestamp. Impossible à utiliser avec $1filterbots.",
+       "apihelp-query+allimages-param-filterbots": "Comment filtrer les fichiers téléchargés par des robots. Peut être utilisé uniquement avec $1sort=timestamp. Impossible à utiliser avec $1user.",
+       "apihelp-query+allimages-param-mime": "Quel type MIME rechercher, par ex. image/jpeg.",
+       "apihelp-query+allimages-param-limit": "Combien d’images renvoyer au total.",
+       "apihelp-query+allimages-example-B": "Afficher une liste des fichiers commençant par la lettre « B »",
+       "apihelp-query+allimages-example-recent": "Afficher une liste des fichiers récemment téléchargés semblable à [[Special:NewFiles]]",
+       "apihelp-query+allimages-example-generator": "Afficher l’information sur 4 fichiers commençant par la lettre « T »",
+       "apihelp-query+alllinks-description": "Énumérer tous les liens pointant vers un espace de noms donné.",
+       "apihelp-query+alllinks-param-from": "Le titre du lien auquel démarrer l’énumération.",
+       "apihelp-query+alllinks-param-to": "Le titre du lien auquel arrêter l’énumération.",
+       "apihelp-query+alllinks-param-prefix": "Rechercher tous les titres liés commençant par cette valeur.",
+       "apihelp-query+alllinks-param-unique": "Afficher uniquement les titres liés distincts. Impossible à utiliser avec $1prop=ids.\nUtilisé avec un générateur, produit les pages cible au lieu des pages source.",
+       "apihelp-query+alllinks-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page de liaison (impossible à utiliser avec $1unique).\n;title:Ajoute le titre du lien.",
+       "apihelp-query+alllinks-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+alllinks-param-limit": "Combien d’éléments renvoyer au total.",
+       "apihelp-query+alllinks-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+alllinks-example-B": "Lister les titres liés, y compris les manquants, avec les ids des pages d’où ils proviennent, en démarrant à B",
+       "apihelp-query+alllinks-example-unique": "Lister les titres liés uniques",
+       "apihelp-query+alllinks-example-unique-generator": "Obtient tous les titres liés, en marquant les manquants",
+       "apihelp-query+alllinks-example-generator": "Obtient les pages contenant les liens",
+       "apihelp-query+allmessages-description": "Renvoyer les messages depuis ce site.",
+       "apihelp-query+allmessages-param-messages": "Quels messages sortir. « * » (par défaut) signifie tous les messages.",
+       "apihelp-query+allmessages-param-prop": "Quelles propriétés obtenir.",
+       "apihelp-query+allmessages-param-enableparser": "Si positionné pour activer l’analyseur, traitera en avance le wikitexte du message (substitution des mots magiques, gestion des modèles, etc.).",
+       "apihelp-query+allmessages-param-nocontent": "Si positionné, ne pas inclure le contenu des messages dans la sortie.",
+       "apihelp-query+allmessages-param-includelocal": "Inclure aussi les messages locaux, c’est-à-dire les messages qui n’existent pas dans le logiciel mais sous forme d’une page MediaWiki:.\nCela liste toutes les pages MediaWiki:, donc aussi celles qui ne sont pas vraiment des messages, telles que [[MediaWiki:Common.js|Common.js]].",
+       "apihelp-query+allmessages-param-args": "Arguments à substituer dans le message.",
+       "apihelp-query+allmessages-param-filter": "Renvoyer uniquement les messages avec des noms contenant cette chaîne.",
+       "apihelp-query+allmessages-param-customised": "Renvoyer uniquement les messages dans cet état de personnalisation.",
+       "apihelp-query+allmessages-param-lang": "Renvoyer les messages dans cette langue.",
+       "apihelp-query+allmessages-param-from": "Renvoyer les messages commençant à ce message.",
+       "apihelp-query+allmessages-param-to": "Renvoyer les messages en terminant à ce message.",
+       "apihelp-query+allmessages-param-title": "Nom de page à utiliser comme contexte en analysant le message (pour l’option $1enableparser).",
+       "apihelp-query+allmessages-param-prefix": "Renvoyer les messages avec ce préfixe.",
+       "apihelp-query+allmessages-example-ipb": "Afficher les messages commençant par « ipb- »",
+       "apihelp-query+allmessages-example-de": "Afficher les messages « august » et «mainpage » en allemand",
+       "apihelp-query+allpages-description": "Énumérer toutes les pages séquentiellement dans un espace de noms donné.",
+       "apihelp-query+allpages-param-from": "Le titre de la page depuis lequel commencer l’énumération.",
+       "apihelp-query+allpages-param-to": "Le titre de la page auquel stopper l’énumération.",
+       "apihelp-query+allpages-param-prefix": "Rechercher tous les titres de page qui commencent par cette valeur.",
+       "apihelp-query+allpages-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+allpages-param-filterredir": "Quelles pages lister.",
+       "apihelp-query+allpages-param-minsize": "Limiter aux pages avec au moins ce nombre d’octets.",
+       "apihelp-query+allpages-param-maxsize": "Limiter aux pages avec au plus ce nombre d’octets.",
+       "apihelp-query+allpages-param-prtype": "Limiter aux pages protégées uniquement.",
+       "apihelp-query+allpages-param-prlevel": "Filtrer les protections basées sur le niveau de protection (doit être utilisé avec le paramètre $1prtype=).",
+       "apihelp-query+allpages-param-prfiltercascade": "Filtrer les protections d’après leur cascade (ignoré si $1prtype n’est pas positionné).",
+       "apihelp-query+allpages-param-limit": "Combien de pages renvoyer au total.",
+       "apihelp-query+allpages-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+allpages-param-filterlanglinks": "Filtrer si une page a des liens de langue. Noter que cela ne prend pas en compte les liens de langue ajoutés par des extensions.",
+       "apihelp-query+allpages-param-prexpiry": "Quelle expiration de protection sur laquelle filtrer la page :\n;indefinite:N’obtenir que les pages avec une expiration de protection infinie.\n;definite:N’obtenir que les pages avec une expiration de protection définie (spécifique).\n;all:Obtenir toutes les pages avec une expiration de protection.",
+       "apihelp-query+allpages-example-B": "Afficher une liste des pages commençant par la lettre « B »",
+       "apihelp-query+allpages-example-generator": "Afficher l’information sur 4 pages commençant par la lettre « T »",
+       "apihelp-query+allpages-example-generator-revisions": "Afficher le contenu des 2 premières pages hors redirections commençant par « Re »",
+       "apihelp-query+allredirects-description": "Lister toutes les redirections vers un espace de noms.",
+       "apihelp-query+allredirects-param-from": "Le titre de la redirection auquel démarrer l’énumération.",
+       "apihelp-query+allredirects-param-to": "Le titre de la redirection auquel arrêter l’énumération.",
+       "apihelp-query+allredirects-param-prefix": "Rechercher toutes les pages cible commençant par cette valeur.",
+       "apihelp-query+allredirects-param-unique": "Afficher uniquement les pages cibles distinctes. Impossible à utiliser avec $1prop=ids|fragment|interwiki.\nUtilisé avec un générateur, produit les pages cible au lieu des pages source.",
+       "apihelp-query+allredirects-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page de redirection (impossible à utiliser avec $1unique).\n;title:Ajoute le titre de la redirection.\n;fragment:Ajoute le fragment de la redirection, s’il y en a un (impossible à utiliser avec $1unique).\n;interwiki:Ajoute le préfixe interwiki de la redirection, s’il y en a un (impossible à utiliser avec $1unique).",
+       "apihelp-query+allredirects-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+allredirects-param-limit": "Combien d’éléments renvoyer au total.",
+       "apihelp-query+allredirects-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+allredirects-example-B": "Lister les pages cible, y compris les manquantes, avec les IDs de page d’où ils proviennent, en commençant à B",
+       "apihelp-query+allredirects-example-unique": "Lister les pages cible unique",
+       "apihelp-query+allredirects-example-unique-generator": "Obtient toutes les pages cible, en marquant les manquantes",
+       "apihelp-query+allredirects-example-generator": "Obtient les pages contenant les redirections",
+       "apihelp-query+alltransclusions-description": "Lister toutes les transclusions (pages intégrées en utilisant &#123;&#123;x&#125;&#125;), y compris les inexistantes.",
+       "apihelp-query+alltransclusions-param-from": "Le titre de la transclusion depuis lequel commencer l’énumération.",
+       "apihelp-query+alltransclusions-param-to": "Le titre de la transclusion auquel arrêter l’énumération.",
+       "apihelp-query+alltransclusions-param-prefix": "Rechercher tous les titres inclus qui commencent par cette valeur.",
+       "apihelp-query+alltransclusions-param-unique": "Afficher uniquement les titres inclus. Impossible à utiliser avec $1prop=ids.\nUtilisé avec un générateur, produit les pages cible plutôt que les pages source.",
+       "apihelp-query+alltransclusions-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page incluse (impossible à utiliser avec $1unique).\n;title:Ajoute le titre de la transclusion.",
+       "apihelp-query+alltransclusions-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+alltransclusions-param-limit": "Combien d’éléments renvoyer au total.",
+       "apihelp-query+alltransclusions-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+alltransclusions-example-B": "Lister les titres inclus, y compris les manquants, avec les IDs des pages d’où ils viennent, en commençant à B",
+       "apihelp-query+alltransclusions-example-unique": "Lister les titres inclus uniques",
+       "apihelp-query+alltransclusions-example-unique-generator": "Obtient tous les titres inclus, en marquant les manquants",
+       "apihelp-query+alltransclusions-example-generator": "Obtient les pages contenant des transclusions",
+       "apihelp-query+allusers-description": "Énumérer tous les utilisateurs enregistrés.",
+       "apihelp-query+allusers-param-from": "Le nom d’utilisateur auquel démarrer l’énumération.",
+       "apihelp-query+allusers-param-to": "Le nom d’utilisateur auquel stopper l’énumération.",
+       "apihelp-query+allusers-param-prefix": "Rechercher tous les utilisateurs commençant par cette valeur.",
+       "apihelp-query+allusers-param-dir": "Direction du tri.",
+       "apihelp-query+allusers-param-group": "Inclure uniquement les utilisateurs dans les groupes donnés.",
+       "apihelp-query+allusers-param-excludegroup": "Exclure les utilisateurs dans les groupes donnés.",
+       "apihelp-query+allusers-param-rights": "Inclure uniquement les utilisateurs avec les droits indiqués. Ne comprend pas les droits accordés par des groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
+       "apihelp-query+allusers-param-prop": "Quelles informations inclure :\n;blockinfo:Ajoute l’information sur le bloc actuel d’un utilisateur.\n;groups:Liste des groupes auxquels appartient l’utilisateur. Cela utilise beaucoup de ressources du serveur et peut renvoyer moins de résultats que la limite.\n;implicitgroups:Liste tous les groupes auxquels l’utilisateur est affecté automatiquement.\n;rights:Liste les droits qu’à l’utilisateur.\n;editcount:Ajoute le compteur de modifications de l’utilisateur.\n;registration:Ajoute l’horodatage de l’inscription de l’utilisateur, s’il est disponible (peut être vide).",
+       "apihelp-query+allusers-param-limit": "Combien de noms d’utilisateur renvoyer au total.",
+       "apihelp-query+allusers-param-witheditsonly": "Ne lister que les utilisateurs qui ont fait des modifications.",
+       "apihelp-query+allusers-param-activeusers": "Lister uniquement les utilisateurs actifs durant {{PLURAL:$1|le dernier jour|les $1 derniers jours}}.",
+       "apihelp-query+allusers-example-Y": "Lister les utilisateurs en commençant à Y",
+       "apihelp-query+backlinks-description": "Trouver toutes les pages qui ont un lien vers la page donnée.",
+       "apihelp-query+backlinks-param-title": "Titre à rechercher. Impossible à utiliser avec $1pageid.",
+       "apihelp-query+backlinks-param-pageid": "ID de la page à chercher. Impossible à utiliser avec $1title.",
+       "apihelp-query+backlinks-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+backlinks-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+backlinks-param-filterredir": "Comment filtrer les redirections. Si positionné à nonredirects quand $1redirect est activé, cela ne s’applique qu’au second niveau.",
+       "apihelp-query+backlinks-param-limit": "Combien de pages renvoyer au total. Si $1redirect est activé, la limite s’applique à chaque niveau séparément (ce qui signifie que vous pouvez obtenir jusqu’à 2 * limite résultats).",
+       "apihelp-query+backlinks-param-redirect": "Si le lien vers une page est une redirection, trouver toutes les pages qui ont un lien vers cette redirection aussi. La limite maximale est divisée par deux.",
+       "apihelp-query+backlinks-example-simple": "Afficher les liens vers [[Main page]]",
+       "apihelp-query+backlinks-example-generator": "Obtenir des informations sur les pages ayant un lien vers [[Main page]]",
+       "apihelp-query+blocks-description": "Lister tous les utilisateurs et les adresses IP bloqués.",
+       "apihelp-query+blocks-param-start": "L’horodatage auquel démarrer l’énumération.",
+       "apihelp-query+blocks-param-end": "L’horodatage auquel arrêter l’énumération.",
+       "apihelp-query+blocks-param-ids": "Liste des IDs de bloc à lister (facultatif).",
+       "apihelp-query+blocks-param-users": "Liste des utilisateurs à rechercher (facultatif).",
+       "apihelp-query+blocks-param-ip": "Obtenir tous les blocs s’appliquant à cette adresse IP ou à cette plage CIDR, y compris les blocs de plage.\nImpossible à utiliser avec $3users. Les plages CIDR plus larges que IPv4/$1 ou IPv6/$2 ne sont pas acceptées.",
+       "apihelp-query+blocks-param-limit": "Le nombre maximal de blocs à lister.",
+       "apihelp-query+blocks-param-prop": "Quelles propriétés obtenir :\n;id:Ajoute l’ID du blocage.\n;user:Ajoute le nom de l’utilisateur bloqué.\n;userid:Ajoute l’ID de l’utilisateur bloqué.\n;by:Ajoute le nom de l’utilisateur ayant bloqué.\n;byid:Ajoute l’ID de l’utilisateur ayant bloqué.\n;timestamp:Ajoute l’horodatage du blocage.\n;expiry:Ajoute l’horodatage d’expiration du blocage.\n;reason:Ajoute le motif du blocage.\n;range:Ajoute la plage d&adresses IP affectée par le blocage.\n;flags:Marque le bannissement avec (autoblock, anononly, etc.).",
+       "apihelp-query+blocks-param-show": "Afficher uniquement les éléments correspondant à ces critères.\nPar exemple, pour voir uniquement les blocages infinis sur les adresses IP, mettre $1show=ip|!temp.",
+       "apihelp-query+blocks-example-simple": "Lister les blocages",
+       "apihelp-query+blocks-example-users": "Lister les blocages des utilisateurs Alice et Bob",
+       "apihelp-query+categories-description": "Lister toutes les catégories auxquelles les pages appartiennent.",
+       "apihelp-query+categories-param-prop": "Quelles propriétés supplémentaires obtenir de chaque catégorie :\n;sortkey:Ajoute la clé de tri (chaîne hexadécimale) et son préfixe (partie lisible) de la catégorie.\n;timestamp:Ajoute l’horodatage de l’ajout de la catégorie.\n;hidden:Marque els catégories cachées avec _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+categories-param-show": "Quelle sorte de catégories afficher.",
+       "apihelp-query+categories-param-limit": "Combien de catégories renvoyer.",
+       "apihelp-query+categories-param-categories": "Lister uniquement ces catégories. Utile pour vérifier si une certaine page est dans une certaine catégorie.",
+       "apihelp-query+categories-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+categories-example-simple": "Obtenir une liste des catégories auxquelles appartient [[Albert Einstein]]",
+       "apihelp-query+categories-example-generator": "Obtenir des informations sur toutes les catégories utilisées dans [[Albert Einstein]]",
+       "apihelp-query+categoryinfo-description": "Renvoie les informations sur les catégories données.",
+       "apihelp-query+categoryinfo-example-simple": "Obtenir des informations sur [[:Category:Foo]] et [[:Category:Bar]]",
+       "apihelp-query+categorymembers-description": "Lister toutes les pages d’une catégorie donnée.",
+       "apihelp-query+categorymembers-param-title": "Quelle catégorie énumérer (obligatoire). Doit comprendre le préfixe « Category: ». Impossible à utiliser avec $1pageid.",
+       "apihelp-query+categorymembers-param-pageid": "ID de la page de la catégorie à énumérer. Impossible à utiliser avec $1title.",
+       "apihelp-query+categorymembers-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page.\n;title:Ajoute le titre et l’ID de l’espace de noms de la page.\n;sortkey:Ajoute la clé de tri utilisée pour trier dans la catégorie (chaîne hexadécimale).\n;sortkeyprefix:Ajoute le préfixe de la clé de tri utilisé pour trier dans la catégorie (partie lisible de la clé de tri).\n;type:Ajoute le type dans lequel a été catégorisée la page (page, sous-catégorie ou fichier).\n;timestamp:Ajoute l’horodatage de l’inclusion de la page.",
+       "apihelp-query+categorymembers-param-namespace": "Inclure uniquement les pages dans ces espaces de nom. Remarquez que $1type=subcat ou $1type=file peuvent  être utilisés à la place de $1namespace=14 or 6.",
+       "apihelp-query+categorymembers-param-type": "Quel type de membres de la catégorie inclure. Ignoré quand $1sort=timestamp est positionné.",
+       "apihelp-query+categorymembers-param-limit": "Le nombre maximal de pages à renvoyer.",
+       "apihelp-query+categorymembers-param-sort": "Propriété par laquelle trier.",
+       "apihelp-query+categorymembers-param-dir": "Dans quelle direction trier.",
+       "apihelp-query+categorymembers-param-start": "Horodatage auquel démarrer la liste. Peut être utilisé uniquement avec $1sort=timestamp.",
+       "apihelp-query+categorymembers-param-end": "Horodatage auquel terminer la liste. Peut être utilisé uniquement avec $1sort=timestamp.",
+       "apihelp-query+categorymembers-param-starthexsortkey": "Clé de tri à laquelle démarrer le listage, telle que renvoyée par $1prop=sortkey. Utilisable uniquement avec $1sort=sortkey.",
+       "apihelp-query+categorymembers-param-endhexsortkey": "Clé de tri à laquelle arrêter le listage, telle que renvoyée par $1prop=sortkey. Utilisable uniquement avec $1sort=sortkey.",
+       "apihelp-query+categorymembers-param-startsortkeyprefix": "Préfixe de la clé de tri à laquelle démarrer le listage. Utilisable uniquement avec $1sort=sortkey. Écrase $1starthexsortkey.",
+       "apihelp-query+categorymembers-param-endsortkeyprefix": "Préfixe de la clé de tri AVANT laquelle se termine le listage (et non pas à, si cette valeur existe elle ne sera pas incluse !). Utilisable uniquement avec $1sort=sortkey. Écrase $1endhexsortkey.",
+       "apihelp-query+categorymembers-param-startsortkey": "Utiliser plutôt $1starthexsortkey.",
+       "apihelp-query+categorymembers-param-endsortkey": "Utiliser plutôt $1endhexsortkey.",
+       "apihelp-query+categorymembers-example-simple": "Obtenir les 10 premières pages de [[:Category:Physics]]",
+       "apihelp-query+categorymembers-example-generator": "Obtenir l’information sur les 10 premières pages de [[:Category:Physics]]",
+       "apihelp-query+contributors-description": "Obtenir la liste des contributeurs connectés et le nombre de contributeurs anonymes d’une page.",
+       "apihelp-query+contributors-param-group": "Inclure uniquement les utilisateurs dans les groupes donnés. Ne pas inclure les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
+       "apihelp-query+contributors-param-excludegroup": "Exclure les utilisateurs des groupes donnés. Ne pas inclure les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
+       "apihelp-query+contributors-param-rights": "Inclure uniquement les utilisateurs ayant les droits donnés. Ne pas inclure les droits accordés par les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
+       "apihelp-query+contributors-param-excluderights": "Exclure les utilisateurs ayant les droits donnés. Ne pas inclure les droits accordés par les groupes implicites ou auto-promus comme *, user ou autoconfirmed.",
+       "apihelp-query+contributors-param-limit": "Combien de contributeurs renvoyer.",
+       "apihelp-query+contributors-example-simple": "Afficher les contributeurs dans la [[Main Page]]",
+       "apihelp-query+deletedrevs-description": "Lister les révisions supprimées.\n\nOpère selon trois modes :\n# Lister les révisions supprimées pour les titres donnés, triées par horodatage.\n# Lister les contributions supprimées pour l’utilisateur donné, triées par horodatage (pas de titres spécifiés).\n# Lister toutes les révisions supprimées dans l’espace de noms donné, triées par titre et horodatage (aucun titre spécifié, $1user non positionné).\n\nCertains paramètres ne s’appliquent qu’à certains modes et sont ignorés dans les autres.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Mode|Modes}} : $2",
+       "apihelp-query+deletedrevs-param-start": "L’horodatage auquel démarrer l’énumération.",
+       "apihelp-query+deletedrevs-param-end": "L’horodatage auquel arrêter l’énumération.",
+       "apihelp-query+deletedrevs-param-from": "Démarrer la liste à ce titre.",
+       "apihelp-query+deletedrevs-param-to": "Arrêter la liste à ce titre.",
+       "apihelp-query+deletedrevs-param-prefix": "Rechercher tous les titres de page commençant par cette valeur.",
+       "apihelp-query+deletedrevs-param-unique": "Lister uniquement une révision pour chaque page.",
+       "apihelp-query+deletedrevs-param-tag": "Lister uniquement les révisions marquées par cette balise.",
+       "apihelp-query+deletedrevs-param-user": "Lister uniquement les révisions par cet utilisateur.",
+       "apihelp-query+deletedrevs-param-excludeuser": "Ne pas lister les révisions par cet utilisateur.",
+       "apihelp-query+deletedrevs-param-namespace": "Lister uniquement les pages dans cet espace de noms.",
+       "apihelp-query+deletedrevs-param-limit": "Le nombre maximal de révisions à lister.",
+       "apihelp-query+deletedrevs-param-prop": "Quelles propriétés obtenir :\n;revid:Ajoute l’ID de la révision supprimée.\n;parentid:Ajoute l’ID de la révision précédente de la page.\n;user:Ajoute l’utilisateur ayant fait la révision.\n;userid:Ajoute l’ID de l’utilisateur qui a fait la révision.\n;comment:Ajoute le commentaire de la révision.\n;parsedcomment:Ajoute le commentaire analysé de la révision.\n;minor:Marque si la révision est mineure.\n;len:Ajoute la longueur (en octets) de la révision.\n;sha1:Ajoute le SHA-1 (base 16) de la révision.\n;content:Ajoute le contenu de la révision.\n;token:<span class=\"apihelp-deprecated\">Obsolète.</span> Fournit le jeton de modification.\n;tags:Balises pour la révision.",
+       "apihelp-query+deletedrevs-example-mode1": "Lister les dernières révisions supprimées de Main Page et Talk:Main Page, avec le contenu (mode 1)",
+       "apihelp-query+deletedrevs-example-mode2": "Lister les 50 dernières contributions de Bob supprimées (mode 2)",
+       "apihelp-query+deletedrevs-example-mode3-main": "Lister les 50 premières révisions supprimées dans l’espace de noms principal (mode 3)",
+       "apihelp-query+deletedrevs-example-mode3-talk": "Lister les 50 premières pages supprimées dans l’espace de noms Talk (mode 3) :",
+       "apihelp-query+disabled-description": "Ce module de requête a été désactivé.",
+       "apihelp-query+duplicatefiles-description": "Lister tous les fichiers qui sont des doublons des fichiers donnés d’après leurs valeurs de hachage.",
+       "apihelp-query+duplicatefiles-param-limit": "Combien de fichiers dupliqués à renvoyer.",
+       "apihelp-query+duplicatefiles-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+duplicatefiles-param-localonly": "Rechercher les fichiers uniquement dans le référentiel local.",
+       "apihelp-query+duplicatefiles-example-simple": "Rechercher les doublons de [[:File:Albert Einstein Head.jpg]]",
+       "apihelp-query+duplicatefiles-example-generated": "Rechercher les doublons de tous les fichiers",
+       "apihelp-query+embeddedin-description": "Trouver toutes les pages qui incluent (par transclusion) le titre donné.",
+       "apihelp-query+embeddedin-param-title": "Titre à rechercher. Impossible à utiliser avec $1pageid.",
+       "apihelp-query+embeddedin-param-pageid": "ID de la page à rechercher. Impossible à utiliser avec $1title.",
+       "apihelp-query+embeddedin-param-namespace": "L’espace de noms à énumérer.",
+       "apihelp-query+embeddedin-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+embeddedin-param-filterredir": "Comment filtrer les redirections.",
+       "apihelp-query+embeddedin-param-limit": "Combien de pages renvoyer au total.",
+       "apihelp-query+embeddedin-example-simple": "Afficher les pages incluant [[Template:Stub]]",
+       "apihelp-query+embeddedin-example-generator": "Obteir des informations sur les pages incluant [[Template:Stub]]",
+       "apihelp-query+extlinks-description": "Renvoyer toutes les URLs externes (non interwikis) des pages données.",
+       "apihelp-query+extlinks-param-limit": "Combien de liens renvoyer.",
+       "apihelp-query+extlinks-param-protocol": "Protocole de l’URL. Si vide et $1query est positionné, le protocole est « http ». Laisser à la fois ceci et $1query vide pour lister tous les liens externes.",
+       "apihelp-query+extlinks-param-query": "Rechercher une chaîne sans protocole. Utile pour vérifier si une certaine page contient une certaine URL externe.",
+       "apihelp-query+extlinks-param-expandurl": "Étendre les URLs relatives au protocole avec le protocole canonique.",
+       "apihelp-query+extlinks-example-simple": "Obtenir une liste des liens externes de [[Main Page]]",
+       "apihelp-query+exturlusage-description": "Énumérer les pages contenant une URL donnée.",
+       "apihelp-query+exturlusage-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page.\n;title:Ajoute le titre et l’ID de l’espace de noms de la page.\n;url:Ajoute l’URL utilisée dans la page.",
+       "apihelp-query+exturlusage-param-protocol": "Protocole de l’URL. Si vide et que $1query est rempli, le protocole est « http ». Le laisser avec $1query vide pour lister tous les liens externes.",
+       "apihelp-query+exturlusage-param-query": "Rechercher une chaîne sans protocole. Voyez [[Special:LinkSearch]]. Le laisser vide liste tous les liens externes.",
+       "apihelp-query+exturlusage-param-namespace": "Les espaces de nom à énumérer.",
+       "apihelp-query+exturlusage-param-limit": "Combien de pages renvoyer.",
+       "apihelp-query+exturlusage-param-expandurl": "Étendre les URLs relatives au protocole avec le protocole canonique.",
+       "apihelp-query+exturlusage-example-simple": "Afficher les pages avec un lien vers http://www.mediawiki.org",
+       "apihelp-query+filearchive-description": "Énumérer séquentiellement tous les fichiers supprimés.",
+       "apihelp-query+filearchive-param-from": "Le titre de l’image auquel démarrer l’énumération.",
+       "apihelp-query+filearchive-param-to": "Le titre de l’image auquel arrêter l’énumération.",
+       "apihelp-query+filearchive-param-prefix": "Rechercher tous les titres d’image qui commencent par cette valeur.",
+       "apihelp-query+filearchive-param-limit": "Combien d’images renvoyer au total.",
+       "apihelp-query+filearchive-param-dir": "La direction dans laquelle lister.",
+       "apihelp-query+filearchive-param-sha1": "Hachage SHA1 de l’image. Écrase $1sha1base36.",
+       "apihelp-query+filearchive-param-sha1base36": "Hachage SHA1 de l’image en base 36 (utilisé dans MédiaWiki).",
+       "apihelp-query+filearchive-param-prop": "Quelle information obtenir sur l’image :\n;sha1:Ajoute le hachage SHA-1 pour l’image.\n;timestamp:Ajoute l÷’horodatage pour la version téléchargée.\n;user:Ajoute l’utilisateur qui a téléchargé la version de l’image.\n;size:Ajoute la taille de l’image en octets et la hauteur, la largeur et le nombre de page (si c’est applicable).\n;dimensions:Alias pour la taille.\n;description:Ajoute la description de la version de l’image.\n;parseddescription:Analyser la description de la version.\n;mime:Ajoute le MIME de l’image.\n;mediatype:Ajoute le type de média de l’image.\n;metadata:Liste les métadonnées Exif pour la version de l’image.\n;bitdepth:Ajoute la profondeur de bit de la version.\n;archivename:Ajoute le nom de fichier de la version d’archive pour les versions autres que la dernière.",
+       "apihelp-query+filearchive-example-simple": "Afficher une liste de tous les fichiers supprimés",
+       "apihelp-query+filerepoinfo-description": "Renvoyer les méta-informations sur les référentiels d’image configurés dans le wiki.",
+       "apihelp-query+filerepoinfo-param-prop": "Quelles propriétés du référentiel récupérer (il peut y en avoir plus de disponibles sur certains wikis) :\n;apiurl:URL de l’API du référentiel - utile pour obtenir les infos de l’image depuis l’hôte.\n;name:La clé du référentiel - utilisé par ex. dans $wgForeignFileRepos et les valeurs de retour de imageinfo.\n;displayname:Le nom lisible du wiki référentiel.\n;rooturl:URL racine des chemins d’image.\n;local:Si ce référentiel est le référentiel local ou non.",
+       "apihelp-query+filerepoinfo-example-simple": "Obtenir l’information sur les référentiels de fichier",
+       "apihelp-query+fileusage-description": "Trouver toutes les pages qui utilisent les fichiers donnés.",
+       "apihelp-query+fileusage-param-prop": "Quelles propriétés obtenir :\n;pageid:ID de chaque page.\n;title:Titre de chaque page.\n;redirect:Marque si la page est une redirection.",
+       "apihelp-query+fileusage-param-namespace": "Inclure uniquement les pages dans ces espaces de nom.",
+       "apihelp-query+fileusage-param-limit": "Combien renvoyer.",
+       "apihelp-query+fileusage-param-show": "Afficher uniquement les éléments qui correspondent à ces critères :\n;redirect:Afficher uniquement les redirections.\n;!redirects:Afficher uniquement les non-redirections.",
+       "apihelp-query+fileusage-example-simple": "Obtenir une liste des pages utilisant [[:File:Example.jpg]]",
+       "apihelp-query+fileusage-example-generator": "Obtenir l’information sur les pages utilisant [[:File:Example.jpg]]",
+       "apihelp-query+imageinfo-description": "Renvoyer l’information de fichier et l’historique de téléchargement.",
+       "apihelp-query+imageinfo-param-prop": "Quelles informations obtenir du fichier :\n;timestamp:Ajoute l’horodatage de la version téléchargée.\n;user:Ajoute l’utilisateur qui a téléchargé chaque version du fichier.\n;userid:Ajoute l’ID de l’utilisateur qui a téléchargé chaque version du fichier.\n;comment:Commentaire sur la version.\n;parsedcomment:Analyser le commentaire sur cette version.\n;canonicaltitle:Ajoute le titre canonique du fichier.\n;url:Fournit l’URL du fichier et la page de description.\n;size:Ajoute la taille du fichier en octets et la hauteur, la largeur et le nombre de pages (si applicable).\n;dimensions:Alias pour la taille.\n;sha1:Ajoute le hachage SHA-1 pour le fichier.\n;mime:Ajoute le type MIME du fichier.\n;thumbmime:Ajoute le type MIME de la vignette de l’image (nécessite l’URL et le paramètre $1urlwidth).\n;mediatype:Ajoute le type de média du fichier.\n;metadata:Liste les métadonnées Exif de la version du fichier.\n;commonmetadata:Liste les métadonnées génériques du format du fichier pour la version du fichier.\n;extmetadata:Liste les métadonnées mises en forme combinées depuis différentes sources. Les résultats sont au format HTML.\n;archivename:Ajoute le nom de fichier de la version d’archive pour les versions autres que la dernière.\n;bitdepth:Ajoute la profondeur de bit de la version.\n;uploadwarning:Utilisé par la page Special:Upload pour obtenir de l’information sur un fichier existant. Non prévu pour être utilisé en dehors du cœur de MédiaWiki.",
+       "apihelp-query+imageinfo-param-limit": "Combien de révision de fichier renvoyer par fichier.",
+       "apihelp-query+imageinfo-param-start": "Horodatage auquel démarrer la liste.",
+       "apihelp-query+imageinfo-param-end": "Horodatage auquel arrêter la liste.",
+       "apihelp-query+imageinfo-param-urlwidth": "Si $2prop=url est défini, une URL vers une image à l’échelle de cette largeur sera renvoyée.\nPour des raisons de performance si cette option est utilisée, pas plus de $1 images mises à l’échelle seront renvoyées.",
+       "apihelp-query+imageinfo-param-urlheight": "Similaire à $1urlwidth.",
+       "apihelp-format-example-generic": "Mettre en forme le résultat de la requête dans le format $1",
+       "apihelp-dbg-description": "Extraire les données au format de var_export() de PHP.",
+       "apihelp-dbgfm-description": "Extraire les données au format de var_export() de PHP (affiché proprement en HTML).",
+       "apihelp-dump-description": "Extraire les données au format de var_dump() de PHP.",
+       "apihelp-dumpfm-description": "Extraire les données au format de var_dump() de PHP (affiché proprement en HTML).",
+       "apihelp-json-description": "Extraire les données au format JSON.",
+       "apihelp-json-param-callback": "Si spécifié, inclut la sortie dans l’appel d’une fonction fournie. Pour plus de sûreté, toutes les données spécifiques à l’utilisateur seront restreintes.",
+       "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale.",
+       "apihelp-jsonfm-description": "Extraire les données au format JSON (affiché proprement en HTML).",
+       "apihelp-none-description": "Ne rien extraire.",
+       "apihelp-php-description": "Extraire les données au format sérialisé de PHP.",
+       "apihelp-phpfm-description": "Extraire les données au format sérialisé de PHP (affiché proprement en HTML).",
+       "apihelp-rawfm-description": "Extraire les données avec les éléments de débogage au format JSON (affiché proprement en HTML).",
+       "apihelp-txt-description": "Extraire les données au format de print_r() de PHP.",
+       "apihelp-txtfm-description": "Extraire les données au format de print_r() de PHP (affiché proprement en HTML).",
+       "apihelp-wddx-description": "Extraire les données au format WDDX.",
+       "apihelp-wddxfm-description": "Extraire les données au format WDDX (affiché proprement en HTML).",
+       "apihelp-xml-description": "Extraire les données au format XML.",
+       "apihelp-xml-param-xslt": "Si spécifié, ajoute &lt;xslt&gt; comme feuille de style. Ce devrait être une page du wiki dans l’espace de noms MediaWiki dont le nom de page se termine par « .xsl ».",
+       "apihelp-xml-param-includexmlnamespace": "Si spécifié, ajoute un espace de noms XML.",
+       "apihelp-xmlfm-description": "Extraire les données au format XML (affiché proprement en HTML).",
+       "apihelp-yaml-description": "Extraire les données au format YAML.",
+       "apihelp-yamlfm-description": "Extraire les données YAML (affiché proprement en HTML).",
+       "api-format-title": "Résultat de l’API de MédiaWiki",
+       "api-format-prettyprint-header": "Vous regardez la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre format pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez format=$2.\n\nVoyez la [https://www.mediawiki.org/wiki/API documentation complète], ou l’ [[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
+       "api-help-title": "Aide de l’API de MédiaWiki",
+       "api-help-lead": "Ceci est une page d’aide de l’API de MédiaWiki générée automatiquement.\n\nDocumentation et exemples : https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "Module principal",
+       "api-help-flag-deprecated": "Ce module est obsolète.",
+       "api-help-flag-internal": "<strong>Ce module est interne ou instable.</strong> Son fonctionnement peut être modifié sans préavis.",
+       "api-help-flag-readrights": "Ce module nécessite des droits de lecture.",
+       "api-help-flag-writerights": "Ce module nécessite des droits d’écriture.",
+       "api-help-flag-mustbeposted": "Ce module n’accepte que les requêtes POST.",
+       "api-help-flag-generator": "Ce module peut être utilisé comme générateur.",
+       "api-help-parameters": "{{PLURAL:$1|Paramètre|Paramètres}} :",
+       "api-help-param-deprecated": "Obsolète.",
+       "api-help-param-required": "Ce paramètre est obligatoire.",
+       "api-help-param-list": "{{PLURAL:$1|1=Une valeur|2=Valeurs (séparées par « {{!}} »)}} : $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}",
+       "api-help-param-limit": "Pas plus de $1 autorisé.",
+       "api-help-param-limit2": "Pas plus de $1 autorisé ($2 pour les robots).",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=La valeur doit être inférieure|2=Les valeurs doivent être inférieures}} à $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=La valeur ne doit pas être supérieure|2=Les valeurs ne doivent pas être supérieures}} à $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=La valeur doit|2=Les valeurs doivent}} être entre $2 et $3.",
+       "api-help-param-upload": "Doit être envoyé comme un fichier importé utilisant multipart/form-data.",
+       "api-help-param-multi-separate": "Valeurs séparées par « | ».",
+       "api-help-param-multi-max": "Le nombre maximal de valeurs est {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} pour les robots).",
+       "api-help-param-default": "Par défaut : $1",
+       "api-help-param-default-empty": "Par défaut : <span class=\"apihelp-empty\">(vide)</span>",
+       "api-help-param-token": "Un jeton « $1 » récupéré par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(aucune description)</span>",
+       "api-help-examples": "{{PLURAL:$1|Exemple|Exemples}} :",
+       "api-help-permissions": "{{PLURAL:$1|Droit|Droits}} :",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Accordé à}} : $2",
+       "api-help-right-apihighlimits": "Utiliser des valeurs plus hautes dans les requêtes de l’API (requêtes lentes : $1 ; requêtes rapides : $2). Les limites pour les requêtes lentes s’appliquent aussi aux paramètres multivalués.",
+       "api-credits-header": "Remerciements",
+       "api-credits": "Développeurs de l’API :\n* Roan Kattouw (développeur en chef Sept. 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (créateur, développeur en chef Sept. 2006–Sept. 2007)\n* Brad Jorsch (développeur en chef depuis 2013)\n\nVeuillez envoyer vos commentaires, suggestions et questions à mediawiki-api@lists.wikimedia.org\nou remplir un rapport de bogue sur https://bugzilla.wikimedia.org/."
+}
diff --git a/includes/api/i18n/fy.json b/includes/api/i18n/fy.json
new file mode 100644 (file)
index 0000000..8013687
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Robin0van0der0vliet"
+               ]
+       },
+       "apihelp-login-param-name": "Brûkersnamme.",
+       "apihelp-login-param-password": "Wachtwurd.",
+       "apihelp-userrights-param-user": "Brûkersnamme."
+}
diff --git a/includes/api/i18n/he.json b/includes/api/i18n/he.json
new file mode 100644 (file)
index 0000000..8363d0d
--- /dev/null
@@ -0,0 +1,40 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Guycn2",
+                       "Amire80"
+               ]
+       },
+       "apihelp-main-param-action": "איזו פעולה לבצע.",
+       "apihelp-main-param-format": "התבנית של הפלט.",
+       "apihelp-help-description": "הצגת עזרה עבור היחידות שצוינו.",
+       "apihelp-help-param-toc": "לכלול תוכן עניינים בפלט HTML.",
+       "apihelp-query+categories-param-limit": "כמה קטגוריות להחזיר.",
+       "apihelp-query+tokens-example-types": "אחזור אסימון של רשימת המעקב ואסימון של ניטור",
+       "apihelp-xml-param-xslt": "אם צוין, מוסיף &lt;xslt&gt; כגליון סגנונות. זה צריך להיות דף ויקי במרחב השם מדיה ויקי ששמו מסתיים ב\".xsl\".",
+       "api-help-title": "עזרה של MediaWiki API",
+       "api-help-lead": "זהו דף תיעוד של API שנוצר באופן אוטומטי.\n\nתיעוד ודוגמאות: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "יחידה ראשית",
+       "api-help-flag-deprecated": "יחידה זו אינה מומלצת לשימוש.",
+       "api-help-flag-internal": "<strong>יחידה זו היא פנימית או לא יציבה.</strong>\nהפעולה שלה עשויה להשתנות ללא הודעה מוקדמת.",
+       "api-help-flag-readrights": "יחידה זו דורשת הרשאות קריאה.",
+       "api-help-flag-writerights": "יחידה זו דורשת הרשאות כתיבה.",
+       "api-help-flag-mustbeposted": "יחידה זו מקבלת רק בקשות POST.",
+       "api-help-parameters": "{{PLURAL:$1|פרמטר|פרמטרים}}:",
+       "api-help-param-required": "פרמטר זה נדרש.",
+       "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"{{!}}\")}}: $2",
+       "api-help-param-limit": "מספר הפרמטרים לא יכול להיות גדול מ־$1.",
+       "api-help-param-limit2": "המספר המרבי המותר הוא $1 (עבור בוטים – $2).",
+       "api-help-param-integer-min": "ה{{PLURAL:$1|1=ערך|2=ערכים}} לא יכולים להיות קטנים מ־$2.",
+       "api-help-param-integer-max": "ה{{PLURAL:$1|1=ערך לא יכול להיות גדול|2=ערכים לא יכולים להיות גדולים}} מ־$3.",
+       "api-help-param-integer-minmax": "ה{{PLURAL:$1|1=ערך חייב|2=ערכים חייבים}} להיות בין $2 ל־$3.",
+       "api-help-param-multi-separate": "הפרדה בין ערכים נעשית באמצעות \"|\".",
+       "api-help-param-multi-max": "מספר הערכים המרבי הוא {{PLURAL:$1|$1}} (עבור בוטים – {{PLURAL:$2|$2}}).",
+       "api-help-param-default": "ברירת מחדל: $1",
+       "api-help-param-default-empty": "ברירת מחדל: <span class=\"apihelp-empty\">(ריק)</span>",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(ללא תיאור)</span>",
+       "api-help-examples": "{{PLURAL:$1|דוגמה|דוגמאות}}:",
+       "api-help-permissions": "{{PLURAL:$1|הרשאה|הרשאות}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|הוענק ל|הוענקו ל}}: $2",
+       "api-credits-header": "קרדיטים"
+}
diff --git a/includes/api/i18n/hu.json b/includes/api/i18n/hu.json
new file mode 100644 (file)
index 0000000..cdf9057
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Csega"
+               ]
+       },
+       "apihelp-userrights-param-userid": "Felhasználói azonosító."
+}
diff --git a/includes/api/i18n/ia.json b/includes/api/i18n/ia.json
new file mode 100644 (file)
index 0000000..e16e368
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "McDutchie"
+               ]
+       },
+       "apihelp-main-param-action": "Qual action exequer.",
+       "apihelp-main-param-format": "Le formato del resultato."
+}
diff --git a/includes/api/i18n/it.json b/includes/api/i18n/it.json
new file mode 100644 (file)
index 0000000..884eb21
--- /dev/null
@@ -0,0 +1,15 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Beta16"
+               ]
+       },
+       "api-help-parameters": "{{PLURAL:$1|Parametro|Parametri}}:",
+       "api-help-param-deprecated": "Deprecato.",
+       "api-help-param-required": "Questo parametro è obbligatorio.",
+       "api-help-param-default": "Predefinito: $1",
+       "api-help-param-default-empty": "Predefinito: <span class=\"apihelp-empty\">(vuoto)</span>",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(nessuna descrizione)</span>",
+       "api-help-examples": "{{PLURAL:$1|Esempio|Esempi}}:",
+       "api-credits-header": "Crediti"
+}
diff --git a/includes/api/i18n/ja.json b/includes/api/i18n/ja.json
new file mode 100644 (file)
index 0000000..46da945
--- /dev/null
@@ -0,0 +1,80 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Shirayuki"
+               ]
+       },
+       "apihelp-main-param-action": "実行する操作です。",
+       "apihelp-main-param-format": "出力する形式です。",
+       "apihelp-main-param-smaxage": "s-maxage ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
+       "apihelp-main-param-maxage": "max-age ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
+       "apihelp-main-param-assert": "\"user\" を設定した場合は利用者がログイン済みかどうかを、\"bot\" を指定した場合はボット権限があるかどうかを、それぞれ検証します。",
+       "apihelp-main-param-requestid": "任意の値を指定でき、その値が結果に含められます。リクエストを識別するために使用できます。",
+       "apihelp-main-param-servedby": "リクエストを処理したホスト名を結果に含めます。",
+       "apihelp-main-param-curtimestamp": "現在のタイムスタンプを結果に含めます。",
+       "apihelp-main-param-uselang": "メッセージの翻訳に使用する言語です。コードの一覧は [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] に siprop=languages を付けることで取得できます。\"user\" を指定することで現在の利用者の個人設定の言語を、\"content\" を指定することでこのウィキの本文の言語を使用することもできます。",
+       "apihelp-help-description": "指定したモジュールのヘルプを表示します。",
+       "apihelp-help-param-modules": "ヘルプを表示するモジュールです (action= パラメーターおよび format= パラメーターの値、または \"main\")。\"+\" を使用して下位モジュールを指定できます。",
+       "apihelp-help-param-submodules": "指定したモジュールの下位モジュールのヘルプを含めます。",
+       "apihelp-help-param-recursivesubmodules": "下位モジュールのヘルプを再帰的に含めます。",
+       "apihelp-help-param-helpformat": "ヘルプの出力形式です。",
+       "apihelp-help-param-toc": "HTML 出力に目次を含めます。",
+       "apihelp-help-example-main": "メイン モジュールのヘルプ",
+       "apihelp-help-example-recursive": "すべてのヘルプを1つのページに",
+       "apihelp-help-example-help": "ヘルプ モジュール自身のヘルプ",
+       "apihelp-help-example-query": "2つの下位モジュールのヘルプ",
+       "apihelp-format-example-generic": "クエリの結果を $1 形式に整形します",
+       "apihelp-dbg-description": "データを PHP の var_export() 形式で出力します。",
+       "apihelp-dbgfm-description": "データを PHP の var_export() 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-dump-description": "データを PHP の var_dump() 形式で出力します。",
+       "apihelp-dumpfm-description": "データを PHP の var_dump() 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-json-description": "データを JSON 形式で出力します。",
+       "apihelp-json-param-callback": "指定すると、指定した関数呼び出しで出力をラップします。安全のため、利用者固有のデータはすべて制限されます。",
+       "apihelp-json-param-utf8": "指定すると、大部分の非 ASCII 文字 (すべてではありません) を、16 進のエスケープ シーケンスに置換する代わりに UTF-8 として符号化します。",
+       "apihelp-jsonfm-description": "データを JSON 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-none-description": "何も出力しません。",
+       "apihelp-php-description": "データを PHP のシリアル化した形式で出力します。",
+       "apihelp-phpfm-description": "データを PHP のシリアル化した形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-rawfm-description": "データをデバッグ要素付きで JSON 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-txt-description": "データを PHP の print_r() 形式で出力します。",
+       "apihelp-txtfm-description": "データを PHP の print_r() 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-wddx-description": "データを WDDX 形式で出力します。",
+       "apihelp-wddxfm-description": "データを WDDX 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-xml-description": "データを XML 形式で出力します。",
+       "apihelp-xml-param-xslt": "指定すると、スタイルシートとして &lt;xslt&gt; を追加します。MediaWiki 名前空間の、ページ名の末尾が \".xsl\" のウィキページに対して使用すべきです。",
+       "apihelp-xml-param-includexmlnamespace": "指定すると、XML 名前空間を追加します。",
+       "apihelp-xmlfm-description": "データを XML 形式 (HTML に埋め込んだ形式) で出力します。",
+       "apihelp-yaml-description": "データを YAML 形式で出力します。",
+       "apihelp-yamlfm-description": "データを YAML 形式 (HTML に埋め込んだ形式) で出力します。",
+       "api-format-title": "MediaWiki API の結果",
+       "api-format-prettyprint-header": "このページは $1 形式を HTML で表現したものです。HTML はデバッグに役立ちますが、アプリケーションでの使用には適していません。\n\n出力形式を変更するには format パラメーターを指定します。$1 形式の非 HTML 版を閲覧するには、format=$2 を設定します。\n\n詳細情報については [https://www.mediawiki.org/wiki/API の完全な説明文書]または [[Special:ApiHelp/main|API のヘルプ]]を参照してください。",
+       "api-help-title": "MediaWiki API ヘルプ",
+       "api-help-lead": "このページは自動生成された MediaWiki API の説明文書ページです。\n\n説明文書と例: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "メイン モジュール",
+       "api-help-flag-deprecated": "このモジュールは廃止予定です。",
+       "api-help-flag-internal": "<strong>このモジュールは内部的または不安定です。</strong>動作が予告なく変更される場合があります。",
+       "api-help-flag-readrights": "このモジュールは読み取りの権限を必要とします。",
+       "api-help-flag-writerights": "このモジュールは書き込みの権限を必要とします。",
+       "api-help-flag-mustbeposted": "このモジュールは POST リクエストのみを受け付けます。",
+       "api-help-flag-generator": "このモジュールはジェネレーターとして使用できます。",
+       "api-help-parameters": "{{PLURAL:$1|パラメーター}}:",
+       "api-help-param-deprecated": "廃止予定です。",
+       "api-help-param-required": "このパラメーターは必須です。",
+       "api-help-param-list": "{{PLURAL:$1|1=値 (いずれか1つ)|2=値 (「{{!}}」で区切る)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=空欄にしてください|空欄にするか、または $2}}",
+       "api-help-param-integer-min": "{{PLURAL:$1|値}}は $2 以上にしてください。",
+       "api-help-param-integer-max": "{{PLURAL:$1|値}}は $3 以下にしてください。",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|値}}は $2 以上 $3 以下にしてください。",
+       "api-help-param-upload": "multipart/form-data 形式でファイルをアップロードしてください。",
+       "api-help-param-multi-separate": "複数の値は「|」で区切ってください。",
+       "api-help-param-multi-max": "値の最大値は {{PLURAL:$1|$1}} (ボットの場合は {{PLURAL:$2|$2}}) です。",
+       "api-help-param-default": "既定値: $1",
+       "api-help-param-default-empty": "既定値: <span class=\"apihelp-empty\">(空)</span>",
+       "api-help-param-token": "[[Special:ApiHelp/query+tokens|action=query&meta=tokens]] から取得した「$1」トークン",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(説明なし)</span>",
+       "api-help-examples": "{{PLURAL:$1|例}}:",
+       "api-help-permissions": "{{PLURAL:$1|権限}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|権限を持つグループ}}: $2",
+       "api-credits-header": "クレジット",
+       "api-credits": "API の開発者:\n* Roan Kattouw (2007年9月-2009年の主任開発者)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (作成者、2006年9月-2007年9月の主任開発者)\n* Brad Jorsch (2013年-現在の主任開発者)\n\nコメント、提案、質問は mediawiki-api@lists.wikimedia.org にお送りください。\nバグはこちらへご報告ください: https://bugzilla.wikimedia.org/"
+}
diff --git a/includes/api/i18n/jam.json b/includes/api/i18n/jam.json
new file mode 100644 (file)
index 0000000..3c44fd2
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chabi1"
+               ]
+       },
+       "api-help-main-header": "Mien madyuul"
+}
diff --git a/includes/api/i18n/lb.json b/includes/api/i18n/lb.json
new file mode 100644 (file)
index 0000000..4040c1f
--- /dev/null
@@ -0,0 +1,80 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Robby"
+               ]
+       },
+       "apihelp-block-description": "E Benotzer spären.",
+       "apihelp-block-param-user": "Benotzernumm, IP-Adress oder IP-Beräich deen Dir späre wëllt.",
+       "apihelp-block-param-reason": "Grond fir ze spären.",
+       "apihelp-block-param-anononly": "Nëmmen anonym Benotzer spären (z. Bsp. anonym Ännerunge vun dëser IP ausschalten)",
+       "apihelp-block-param-nocreate": "Opmaache vun engem Benotzerkont verhënneren.",
+       "apihelp-block-param-reblock": "Wann de Benotzer scho gespaart ass, déi aktuell Spär iwwerschreiwen.",
+       "apihelp-block-param-watchuser": "Dem Benotzer oder der IP hier Benotzer- an Diskussiouns-Säiten iwwerwaachen.",
+       "apihelp-createaccount-description": "En neie Benotzerkont uleeën.",
+       "apihelp-createaccount-param-name": "Benotzernumm.",
+       "apihelp-createaccount-param-email": "E-Mail-Adress vum Benotzer (fakultativ).",
+       "apihelp-createaccount-param-realname": "Richtegen Numm vum Benotzer (fakultativ).",
+       "apihelp-delete-description": "Eng Säit läschen.",
+       "apihelp-delete-param-watch": "D'Säit op Är Iwwerwaachungslëscht derbäisetzen.",
+       "apihelp-delete-example-simple": "D'Haaptsäit läschen",
+       "apihelp-disabled-description": "Dëse Modul gouf ausgeschalt.",
+       "apihelp-edit-param-sectiontitle": "Den Titel fir en neien Abschnitt.",
+       "apihelp-edit-param-minor": "Kleng Ännerung.",
+       "apihelp-edit-param-bot": "Dës Ännerung als Bot-Ännerung markéieren.",
+       "apihelp-edit-param-watch": "D'Säit op Är Iwwerwaachungslëscht derbäisetzen.",
+       "apihelp-edit-example-edit": "Eng Säit änneren",
+       "apihelp-expandtemplates-param-title": "Titel vun der Säit.",
+       "apihelp-feedrecentchanges-param-hideminor": "Kleng Ännerunge verstoppen.",
+       "apihelp-feedrecentchanges-param-hideanons": "Ännerunge vun anonyme Benotzer verstoppen.",
+       "apihelp-feedrecentchanges-param-hideliu": "Ännerunge vu registréierte Benotzer verstoppen.",
+       "apihelp-feedrecentchanges-example-simple": "Rezent Ännerunge weisen",
+       "apihelp-help-example-recursive": "All Hëllef op enger Säit",
+       "apihelp-imagerotate-description": "Eent oder méi Biller dréinen.",
+       "apihelp-imagerotate-example-generator": "All Biller an der [[:Category:Flip]] ëm 180 Grad dréinen",
+       "apihelp-import-param-summary": "Resumé importéieren.",
+       "apihelp-login-param-name": "Benotzernumm.",
+       "apihelp-login-param-password": "Passwuert.",
+       "apihelp-move-description": "Eng Säit réckelen.",
+       "apihelp-move-param-ignorewarnings": "All Warnungen ignoréieren.",
+       "apihelp-options-example-reset": "All Astellungen zrécksetzen",
+       "apihelp-protect-example-protect": "Eng Säit spären",
+       "apihelp-query+allcategories-description": "All Kategorien opzielen.",
+       "apihelp-query+allusers-description": "All registréiert Benotzer opzielen.",
+       "apihelp-query+allusers-param-activeusers": "Nëmme Benotzer opzielen déi an de leschten $1 {{PLURAL:$1|Dag|Deeg}} aktiv waren.",
+       "apihelp-query+blocks-description": "Lëscht vun de gespaarte Benotzer an IP-Adressen.",
+       "apihelp-query+blocks-example-simple": "Lëscht vun de Spären",
+       "apihelp-query+categories-description": "All Kategorien opzielen zu deenen dës Säit gehéiert.",
+       "apihelp-query+categorymembers-description": "All Säiten aus enger bestëmmter Kategorie opzielen.",
+       "apihelp-query+categorymembers-example-simple": "Déi éischt 10 Säiten aus der [[:Category:Physics]] kréien",
+       "apihelp-query+deletedrevs-param-unique": "Nëmmen eng Versioun fir all Säit weisen.",
+       "apihelp-query+filearchive-example-simple": "Eng Lëscht vun alle geläschte Fichiere weisen",
+       "apihelp-query+imageinfo-param-urlheight": "Ähnlech wéi $1urlwidth.",
+       "apihelp-query+images-example-simple": "Eng Lëscht vun de Fichiere kréien déi op der [[Main Page|Haaptsäit]] benotzt ginn",
+       "apihelp-query+imageusage-example-simple": "Säite weisen déi [[:File:Albert Einstein Head.jpg]] benotzen",
+       "apihelp-query+langlinks-param-lang": "Nëmme Sproochlinke mat dësem Sproochcode zréckginn.",
+       "apihelp-query+protectedtitles-param-namespace": "Nëmmen Titelen aus dësen Nummraim opzielen.",
+       "apihelp-query+recentchanges-param-user": "Nëmmen Ännerunge vun dësem Benotzer opzielen.",
+       "apihelp-query+recentchanges-example-simple": "Rezent Ännerunge weisen",
+       "apihelp-query+revisions-example-last5": "Déi lescht 5 Versioune vun der \"Haaptsäit\" kréien",
+       "apihelp-query+usercontribs-description": "All Ännerunge vun engem Benotzer kréien.",
+       "apihelp-query+watchlist-param-user": "Nëmmen Ännerunge vun dësem Benotzer opzielen.",
+       "apihelp-query+watchlist-param-excludeuser": "Ännerunge vun dësem Benotzer net opzielen.",
+       "apihelp-query+watchlistraw-param-show": "Nëmmen Elementer opzielen déi dëse Critèren entspriechen.",
+       "apihelp-query+watchlistraw-example-simple": "Säite vum aktuelle Benotzer senger Iwwerwaachungslëscht opzielen",
+       "apihelp-revisiondelete-description": "Versioune läschen a restauréieren.",
+       "apihelp-revisiondelete-param-reason": "Grond fir ze Läschen oder ze Restauréieren.",
+       "apihelp-rsd-example-simple": "Den RSD-Schema exportéieren",
+       "apihelp-unblock-description": "D'Spär vun engem Benotzer ophiewen.",
+       "apihelp-unblock-param-reason": "Grond fir d'Spär opzehiewen",
+       "apihelp-undelete-param-reason": "Grond fir ze restauréieren.",
+       "apihelp-undelete-example-page": "[[Main Page]] restauréieren",
+       "apihelp-upload-param-watch": "D'Säit iwwerwaachen.",
+       "apihelp-userrights-param-user": "Benotzernumm.",
+       "apihelp-userrights-param-userid": "Benotzer Id.",
+       "apihelp-userrights-param-reason": "Grond fir d'Ännerung.",
+       "apihelp-watch-example-watch": "D'Säit \"Haaptsäit\" iwwerwaachen",
+       "api-help-param-deprecated": "Vereelst.",
+       "api-help-param-required": "Dëse Parameter ass obligatoresch.",
+       "api-help-examples": "{{PLURAL:$1|Beispill|Beispiler}}:"
+}
diff --git a/includes/api/i18n/lv.json b/includes/api/i18n/lv.json
new file mode 100644 (file)
index 0000000..b24e5f6
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Papuass"
+               ]
+       },
+       "apihelp-userrights-param-userid": "Lietotāja ID:"
+}
diff --git a/includes/api/i18n/mk.json b/includes/api/i18n/mk.json
new file mode 100644 (file)
index 0000000..ffd7079
--- /dev/null
@@ -0,0 +1,354 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Bjankuloski06"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Документација]\n* [https://www.mediawiki.org/wiki/API:FAQ ЧПП]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Поштенски список]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Соопштенија за Прилогот]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Грешки и барања]\n</div>\n<strong>Статус:</strong> Сите ставки на страницава би требало да работат, но Прилогот сепак е во активна разработка, што значи дека може да се смени во секое време. Објавите за измени можете да ги дознавате ако се пријавите на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ поштенскиот список „the mediawiki-api-announce“].\n\n<strong>Погрешни барања:</strong> Кога Прилогот ќе добие погрешни барања, ќе се испрати HTTP-заглавие со клучот „MediaWiki-API-Error“ и потоа на вредностите на заглавието и шифрата на грешката што ќе се појават ќе им биде зададена истата вредност. ПОвеќе информации ќе најдете на https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-param-action": "Кое дејство да се изврши.",
+       "apihelp-main-param-format": "Формат на изводот.",
+       "apihelp-main-param-maxlag": "Максималниот заостаток може да се користи кога МедијаВики е воспоставен на грозд умножен од базата. За да спречите дополнителни заостатоци од дејства, овој параметар му наложува на клиентот да почека додека заостатокот не се намали под укажаната вредност. Во случај на преголем заостаток, системт ја дава грешката со код „maxlag“ со порака од обликот „Го чекам $host: има заостаток од $lag секунди“.<br />Погл. https://www.mediawiki.org/wiki/Manual:Maxlag_parameter за повеќе информации.",
+       "apihelp-main-param-smaxage": "Задајте му олку секунди на заглавитето s-maxage. Грешките никогаш не се чуваат во меѓускладот.",
+       "apihelp-main-param-maxage": "Задајте му олку секунди на заглавитето max-age. Грешките никогаш не се чуваат во меѓускладот.",
+       "apihelp-main-param-assert": "Провери дали корисникот е најавен ако е зададено „user“ или дали го има корисничкото право на бот, ако е зададено „bot“.",
+       "apihelp-main-param-requestid": "Тука внесената вредност ќе биде вклучена во извештајот. Може да се користи за разликување на барањата.",
+       "apihelp-main-param-servedby": "Вклучи го домаќинското име што го услужило барањето во резултатите.",
+       "apihelp-main-param-curtimestamp": "Бклучи тековно време и време и датум во резултатот.",
+       "apihelp-main-param-origin": "Кога му пристапувате на Пирлогот користејќи повеќедоменско AJAX-барање (CORS), задајте му го на ова изворниот домен. Ова мора да се вклучи во секое подготвително барање и затоа мора да биде дел од URI на барањето (не главната содржина во POST). Ова мора точно да се совпаѓа со еден од изворниците на заглавието Origin:, така што мора да е зададен на нешто како http://en.wikipedia.org or https://meta.wikimedia.org. Ако овој параметар не се совпаѓа со заглавието Origin:, ќе се појави одговор 403. Ако се совпаѓа, а изворникот е на бел список (на допуштени), тогаш ќе се зададе ззаглавието Контрола на пристап-Изворник.",
+       "apihelp-main-param-uselang": "Јазик за преведување на пораките. Список на јазични кодови ќе најдете на [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]], или пак укажете „user“ за да го користите тековно зададениот јазик корисникот.",
+       "apihelp-block-description": "Блокирај корисник.",
+       "apihelp-block-param-user": "Корисничко име, IP-адреса или IP-опсег ако сакате да блокирате.",
+       "apihelp-block-param-expiry": "Време на истек. Може да биде релативно (на пр. „5 месеци“ или „2 недели“) или пак апсолутно (на пр. „2014-09-18T12:34:56Z“). Ако го зададете „бесконечно“, „неодредено“ или „никогаш“, блокот ќе трае засекогаш.",
+       "apihelp-block-param-reason": "Причина за блокирање.",
+       "apihelp-block-param-anononly": "Блокирај само анонимни корисници (т.е. оневозможи анонимно уредување од оваа IP-адреса).",
+       "apihelp-block-param-nocreate": "Оневозможи создавање кориснички сметки.",
+       "apihelp-block-param-autoblock": "Автоматски блокирај ја последно употребената IP-адреса и сите понатамошни IP-адреси од кои лицето ќе се обиде да се најави.",
+       "apihelp-block-param-noemail": "Оневозможи му на корисникот да испаќа е-пошта преку викито. (Го бара правото „блокирање е-пошта“).",
+       "apihelp-block-param-hidename": "Скриј го корисничкото име од дневникот на блокирања. (Го бара правото „скривање корисник“)",
+       "apihelp-block-param-allowusertalk": "Овозможи му на корисникот да си ја уредува сопствената страница за разговор (зависи од $wgBlockAllowsUTEdit).",
+       "apihelp-block-param-reblock": "Ако корисникот е веќе блокиран, наметни врз постоечкиот блок.",
+       "apihelp-block-param-watchuser": "Набљудувај ја корисничката страница и страницата за разговор на овој корисник или IP-адреса",
+       "apihelp-block-example-ip-simple": "Блокирај ја IP-адресата 192.0.2.5 три дена со причината „Прва опомена“",
+       "apihelp-block-example-user-complex": "Блокирај го корисникот Вандал (Vandal) бесконечно со причината „Вандализам“ и оневозможи создавање на нови сметки и праќање е-пошта",
+       "apihelp-clearhasmsg-description": "Ја отстранува ознаката „hasmsg“ од тековниот корисник.",
+       "apihelp-clearhasmsg-example-1": "Отстрани ја ознаката „hasmsg“ од тековниот корисник",
+       "apihelp-compare-description": "Добивање на разлика помеѓу две страници.\n\nМора да се добие број на преработката, наслов на странивата или пак нејзина назнака. Важи и за „од“ и за „на“.",
+       "apihelp-compare-param-fromtitle": "Прв наслов за споредба.",
+       "apihelp-compare-param-fromid": "Прва назнака на страница за споредба.",
+       "apihelp-compare-param-fromrev": "Прва преработка за споредба.",
+       "apihelp-compare-param-totitle": "Втор наслов за споредба.",
+       "apihelp-compare-param-toid": "Втора назнака на страница за споредба.",
+       "apihelp-compare-param-torev": "Бтора преработка за споредба.",
+       "apihelp-compare-example-1": "Дај разлика помеѓу преработките 1 и 2",
+       "apihelp-createaccount-description": "Создај нова корисничка сметка.",
+       "apihelp-createaccount-param-name": "Корисничко име.",
+       "apihelp-createaccount-param-password": "Лозинка (се занемарува ако е зададено $1mailpassword).",
+       "apihelp-createaccount-param-domain": "Домен за надворешна заверка (незадолжително).",
+       "apihelp-createaccount-param-token": "Шифра за создавање сметка добиена во првото барање.",
+       "apihelp-createaccount-param-email": "Е-пошта на корисникот (незадолжително).",
+       "apihelp-createaccount-param-realname": "Вистинско име на корисникот (незадолжително).",
+       "apihelp-createaccount-param-mailpassword": "Ако му се зададе било каква вредност, тогаш на корисникот ќе му биде испратена случајна лозинка.",
+       "apihelp-createaccount-param-reason": "Незадолжителна прочина за создавање на сметката која ќе стои во дневниците.",
+       "apihelp-createaccount-param-language": "Јазичен код кој ќе биде стандарден за корисникот (незадолжително, по основно: јазикот на самото вики).",
+       "apihelp-createaccount-example-pass": "Создај го корисникот „testuser“ со лозинката „test123“",
+       "apihelp-createaccount-example-mail": "Создај го корисникот „testmailuser“ и испрати случајно-создадена лозинка по е-пошта",
+       "apihelp-delete-description": "Избриши страница.",
+       "apihelp-delete-param-title": "Наслов на страницата што сакате да ја избришете. Не може да се користи заедно со $1pageid.",
+       "apihelp-delete-param-pageid": "Назнака на страницата што сакате да ја избришете. Не може да се користи заедно со $1title.",
+       "apihelp-delete-param-reason": "Причина за бришење. Ако не се зададе, ќе се наведе автоматска причина.",
+       "apihelp-delete-param-watch": "Додај ја страницата во набљудуваните.",
+       "apihelp-delete-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-delete-param-unwatch": "Отстрани ја страницата од набљудуваните.",
+       "apihelp-delete-param-oldimage": "Името на страта слика за бришење според добиеното од [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
+       "apihelp-delete-example-simple": "Избриши ја Главната страница",
+       "apihelp-delete-example-reason": "Избриши ја Главната страница со причината „Подготовка за преместување“",
+       "apihelp-disabled-description": "Модулот е деактивиран.",
+       "apihelp-edit-description": "Создај или уреди страници.",
+       "apihelp-edit-param-title": "Наслов на страницата што сакате да ја уредите. Не може да се користи заедно со $1pageid.",
+       "apihelp-edit-param-pageid": "Назнака на страницата што сакате да ја уредите. Не може да се користи заедно со $1title.",
+       "apihelp-edit-param-section": "Број на поднасловот. 0 за првиот, „new“ за нов.",
+       "apihelp-edit-param-sectiontitle": "Назив на новиот поднаслов",
+       "apihelp-edit-param-text": "Содржина на страницата.",
+       "apihelp-edit-param-summary": "Опис на уредувањето. Ова е и назив на поднасловот кога не се зададени $1section=new и $1sectiontitle.",
+       "apihelp-edit-param-minor": "Ситно уредување.",
+       "apihelp-edit-param-notminor": "Неситно уредување.",
+       "apihelp-edit-param-bot": "Означи го уредувањево како ботско.",
+       "apihelp-edit-param-basetimestamp": "Датум и време на преработката на базата, кои се користат за утврдување на спротиставености во уредувањето. Може да се добие преку [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Датум и време кога сте го почнале уредувањето, кои се користат за утврдување на спротиставености во уредувањата. Соодветната вредност се добива користејќи [[Special:ApiHelp/main|curtimestamp]] кога ќе почнете со уредување (на пр. кога ќе се вчита содржината што ќе ја уредувате).",
+       "apihelp-edit-param-recreate": "Занемари ги грешките што се појавуваат во врска со статијата што е избришана во меѓувреме.",
+       "apihelp-edit-param-createonly": "Не ја уредувај страницата ако веќе постои.",
+       "apihelp-edit-param-nocreate": "Дај грешка ако страницата не постои.",
+       "apihelp-edit-param-watch": "Додај ја страницата во набљудуваните.",
+       "apihelp-edit-param-unwatch": "Отстрани ја страницата од набљудуваните.",
+       "apihelp-edit-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-edit-param-md5": "MD5-тарабата на параметарот $1text, или параметрите $1prependtext и $1appendtext поврзани. Ако е зададено, уредувањето нема да се изврши без тарабата да биде исправна.",
+       "apihelp-edit-param-prependtext": "Ставете го текстов на почетокот од страницата. Го заменува  $1text.",
+       "apihelp-edit-param-appendtext": "Ставете го текстов на крајот од страницата. Го заменува $1text.\n\nКористете $1section=new наместо овој параметар за да приложите кон новиот поднаслов.",
+       "apihelp-edit-param-undo": "Отповикај ја преработкава. Ги заменува $1text, $1prependtext и $1appendtext.",
+       "apihelp-edit-param-undoafter": "Отповикај ги преработките од $1undo до оваа. Ако не е зададено, отповикај само една.",
+       "apihelp-edit-param-redirect": "Автоматски решавај пренасочувања.",
+       "apihelp-edit-param-contentformat": "Форматот за серијализација на содржината што се користи во вносниот текст.",
+       "apihelp-edit-param-contentmodel": "Содржински модел на новата содржина.",
+       "apihelp-edit-param-token": "Шифрата треба секогаш да се испраќа како последниот параметар, или барем по параметарот $1text.",
+       "apihelp-edit-example-edit": "Уреди страница",
+       "apihelp-edit-example-prepend": "Стави _&#95;NOTOC_&#95; пред страницата",
+       "apihelp-edit-example-undo": "Отповикај ги преработките од 13579 до 13585 со автоматски опис",
+       "apihelp-emailuser-description": "Испрати е-пошта на корисник.",
+       "apihelp-emailuser-param-target": "На кој корисник да му се испрати е-поштата.",
+       "apihelp-emailuser-param-subject": "Наслов.",
+       "apihelp-emailuser-param-text": "Содржина.",
+       "apihelp-emailuser-param-ccme": "Прати ми примерок и мене.",
+       "apihelp-emailuser-example-email": "Испрати е-пошта на корисникот „WikiSysop“ со текстот „Содржина“",
+       "apihelp-expandtemplates-description": "Ги проширува сите шаблони во викитекст.",
+       "apihelp-expandtemplates-param-title": "Наслов на страница.",
+       "apihelp-expandtemplates-param-text": "Викитекст за претворање.",
+       "apihelp-expandtemplates-param-prop": "Кои информации треба да ги добиете:\n;wikitext:The expanded wikitext.\n;categories: Категориите присутно во вносот кои не се претставени во викитекстуалниот извод.\n;volatile: Дали изводот е месно врзан и не треба да се преупотребува на други места во страницата.\n;ttl: Максималното време по кое треба да се поништи меѓускладираниот резултат.\n;parsetree: XML-дрвото на расчленување за изводот.\nИмајте на ум дека ако не изберете никаква вредност, резултатот ќе го содржи викитекстот, но изводот ќе биде во застарен формат.",
+       "apihelp-expandtemplates-param-includecomments": "Дали во изводот да се вклучени HTML-коментари.",
+       "apihelp-expandtemplates-param-generatexml": "Создај XML-дрво на расчленување (заменето со $1prop=parsetree).",
+       "apihelp-expandtemplates-example-simple": "Прошири го викитекстот „<nowiki>{{Project:Sandbox}}</nowiki>“",
+       "apihelp-feedcontributions-description": "Дава канал со придонеси на корисник.",
+       "apihelp-feedcontributions-param-feedformat": "Формат на каналот.",
+       "apihelp-feedcontributions-param-user": "За кои корисници да се прикажуваат придонесите.",
+       "apihelp-feedcontributions-param-namespace": "По кој именски простор да се филтрираат придонесите:",
+       "apihelp-feedcontributions-param-year": "Од година (и порано):",
+       "apihelp-feedcontributions-param-month": "Од месец (и порано):",
+       "apihelp-feedcontributions-param-tagfilter": "Филтрирај придонеси што имаат ознаки.",
+       "apihelp-feedcontributions-param-deletedonly": "Прикажувај само избришани придонеси.",
+       "apihelp-feedcontributions-param-toponly": "Прикажувај само последни преработки.",
+       "apihelp-feedcontributions-param-newonly": "Прикажувај само новосоздадени страници",
+       "apihelp-feedcontributions-param-showsizediff": "Покажувај ја големинската разлика меѓу преработките.",
+       "apihelp-feedcontributions-example-simple": "Покажувај придонеси на [[Корисник:Пример]]",
+       "apihelp-feedrecentchanges-description": "Дава канал со скорешни промени.",
+       "apihelp-feedrecentchanges-param-feedformat": "Форматот на каналот.",
+       "apihelp-feedrecentchanges-param-namespace": "На кој именски простор да се ограничат резултатите.",
+       "apihelp-feedrecentchanges-param-invert": "Сите именски простори освен избраниот.",
+       "apihelp-feedrecentchanges-param-associated": "Вклучи придружни именски простори (разговор или главен).",
+       "apihelp-feedrecentchanges-param-days": "На кои денови да се ограничат резултатите.",
+       "apihelp-feedrecentchanges-param-limit": "Максималниот број на резултати за прикажување.",
+       "apihelp-feedrecentchanges-param-from": "Прикажи ги промените оттогаш.",
+       "apihelp-feedrecentchanges-param-hideminor": "Скриј ги ситните промени.",
+       "apihelp-feedrecentchanges-param-hidebots": "Скриј ги промените напарвени од ботови.",
+       "apihelp-feedrecentchanges-param-hideanons": "Скриј ги промените направени од анонимни корисници.",
+       "apihelp-feedrecentchanges-param-hideliu": "Скриј ги промените направени од регистрирани корисници.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Скриј ги испатролираните промени.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Скриј ги моите промени.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Филтрирање по ознака.",
+       "apihelp-feedrecentchanges-param-target": "Прикажи само промени на страници што водат од оваа.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "Наместо тоа, прикажи ги промените на страниците поврзани со избраната страница.",
+       "apihelp-feedrecentchanges-example-simple": "Прикажи скорешни промени",
+       "apihelp-feedrecentchanges-example-30days": "Прикажувај скорешни промени 30 дена",
+       "apihelp-feedwatchlist-description": "Дава канал од набљудуваните.",
+       "apihelp-feedwatchlist-param-feedformat": "Форматот на каналот.",
+       "apihelp-feedwatchlist-param-hours": "Испиши страници изменети во рок од олку часови отсега.",
+       "apihelp-feedwatchlist-param-linktosections": "Давај ме право на изменетите делови, ако е можно.",
+       "apihelp-feedwatchlist-example-default": "Прикажи го каналот од набљудуваните.",
+       "apihelp-feedwatchlist-example-all6hrs": "Прикажи ги сите промени во набљудуваните во последните 6 часа",
+       "apihelp-filerevert-description": "Врати податотека на претходна верзија.",
+       "apihelp-filerevert-param-filename": "Име на целната податотека, без претставката „Податотека:“.",
+       "apihelp-filerevert-param-comment": "Коментар за подигањето.",
+       "apihelp-filerevert-param-archivename": "Архивски назив на преработката што ја повраќате.",
+       "apihelp-filerevert-example-revert": "Врати ја Wiki.png на верзијата од 2011-03-05T15:27:40Z",
+       "apihelp-help-description": "Прикажувај помош за укажаните модули.",
+       "apihelp-help-param-modules": "Модули за приказ на помош за (вредности на параметрите action= и format=, или пак „main“). Може да се укажат подмодули со „+“.",
+       "apihelp-help-param-submodules": "Прикажувај и помош за подмодули на именуваниот модул.",
+       "apihelp-help-param-recursivesubmodules": "Прикажувај и помош за подмодули рекурзивно.",
+       "apihelp-help-param-helpformat": "Формат на изводот на помошта.",
+       "apihelp-help-param-wrap": "Обвиткај го изводот како станрадна одѕивна структура од прилотот.",
+       "apihelp-help-param-toc": "Вклучи табела со содржина во HTML-изводот.",
+       "apihelp-help-example-main": "Помош за главниот модул",
+       "apihelp-help-example-recursive": "Сета помош на една страница",
+       "apihelp-help-example-help": "Помош за самиот помошен модул",
+       "apihelp-help-example-query": "Помош за два подмодула за барања",
+       "apihelp-imagerotate-description": "Сврти една или повеќе слики.",
+       "apihelp-imagerotate-param-rotation": "За колку степени да се сврти надесно.",
+       "apihelp-imagerotate-example-simple": "Сврти ја [[:Податотека:Пример.png]] за 90 степени",
+       "apihelp-imagerotate-example-generator": "Сврти ги сите слики во [[:Категорија:Некоја]] за 180 степени",
+       "apihelp-import-description": "Увези страница од друго вики или XML-податотека.\n\nИмајте на ум дека POST на HTTP мора да се изведе како подигање на податотеката (т.е. користејќи повеќеделни податоци/податоци од образец) кога ја испраќате податотеката за параметарот „xml“.",
+       "apihelp-import-param-summary": "Увези опис.",
+       "apihelp-import-param-xml": "Подигната XML-податотека.",
+       "apihelp-import-param-interwikisource": "За меѓујазични увози: од кое вики да се увезе.",
+       "apihelp-import-param-interwikipage": "За меѓујазични увози: страница за увоз.",
+       "apihelp-import-param-fullhistory": "За меѓујазични увози:: увези ја целата историја, а не само тековната верзија.",
+       "apihelp-import-param-templates": "За меѓујазични увози: увези ги и сите вклучени шаблони.",
+       "apihelp-import-param-namespace": "За меѓујазични увози: увези во овој именски простор.",
+       "apihelp-import-param-rootpage": "Увези како потстраница на страницава.",
+       "apihelp-import-example-import": "Увези [[meta:Help:Parserfunctions]] во именскиот простор 100 со целата историја.",
+       "apihelp-login-description": "Најавете се и добијте колачиња за заверка.\n\nВо случај кога ќе се најавите успешно, потребните колачиња ќе се придодадат кон заглавијата на HTTP-одѕивот. Во случај да не успеете да се најавите, понатамошните обиди може да се ограничат за да се ограничат нападите со автоматизирано погодување на лозинката.",
+       "apihelp-login-param-name": "Корисничко име.",
+       "apihelp-login-param-password": "Лозинка.",
+       "apihelp-login-param-domain": "Домен (незадолжително).",
+       "apihelp-login-param-token": "Најавна шифра добиена со првото барање.",
+       "apihelp-login-example-gettoken": "Набави најавна шифра.",
+       "apihelp-login-example-login": "Најава",
+       "apihelp-logout-description": "Одјави се и исчисти ги податоците на седницата.",
+       "apihelp-logout-example-logout": "Одјави го тековниот корисник",
+       "apihelp-move-description": "Премести страница.",
+       "apihelp-move-param-from": "Наслов на страницата што сакате да ја преместите. Не може да се користи заедно со $1fromid.",
+       "apihelp-move-param-fromid": "Назнака на страницата што сакате да ја преместите. Не може да се користи заедно со $1from.",
+       "apihelp-move-param-to": "Како сакате да гласи новиот наслов на страницата.",
+       "apihelp-move-param-reason": "Причина за преместувањето.",
+       "apihelp-move-param-movetalk": "Премести ја и страницата за разговор, ако ја има.",
+       "apihelp-move-param-movesubpages": "Премести потстраници, ако има",
+       "apihelp-move-param-noredirect": "Не прави пренасочување.",
+       "apihelp-move-param-watch": "Додај ги страницата и пренасочувањето во набљудуваните.",
+       "apihelp-move-param-unwatch": "Отстрани ги страницата и пренасочувањето од набљудуваните.",
+       "apihelp-move-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-move-param-ignorewarnings": "Занемари предупредувања.",
+       "apihelp-move-example-move": "Премести го „Лош наслов“ на „Добар наслов“, неоставајќи пренасочување",
+       "apihelp-opensearch-description": "Пребарување на викито со протоколот OpenSearch.",
+       "apihelp-opensearch-param-search": "Низа за пребарување.",
+       "apihelp-opensearch-param-limit": "Максималниот број на резултати за прикажување.",
+       "apihelp-opensearch-param-namespace": "Именски простори за пребарување.",
+       "apihelp-opensearch-param-suggest": "Не прави ништо ако [https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest] е неточно.",
+       "apihelp-opensearch-param-format": "Формат на изводот.",
+       "apihelp-opensearch-example-te": "Најди страници што почнуваат со „Те“",
+       "apihelp-options-param-reset": "Ги враќа поставките по основно.",
+       "apihelp-options-param-resetkinds": "Писок на типови можности за повраток кога е зададена можноста „$1reset“.",
+       "apihelp-options-param-change": "Список на промени во форматот name=value (на пр. skin=vector). Вредностите не треба да содржат исправени црти. Ако не зададете вредност (дури ни знак за равенство), на пр., можност|другаможност|..., ќе биде зададена вредноста на можноста по основно.",
+       "apihelp-options-param-optionname": "Назив на можноста што треба да ѝ се зададе на вредноста дадена од „$1optionvalue“.",
+       "apihelp-options-param-optionvalue": "Вредноста на можноста укажана од „$1optionnam“. Може да содржи исправени црти.",
+       "apihelp-options-example-reset": "Врати ги сите поставки по основно",
+       "apihelp-options-example-change": "Смени ги поставките „skinЗ“ и „hideminor“",
+       "apihelp-options-example-complex": "Врати ги сите нагодувања по основно, а потоа задај ги „skin“ и „nickname“",
+       "apihelp-paraminfo-description": "Набави информации за прилошки (API) модули.",
+       "apihelp-paraminfo-param-modules": "Список на називи на модули (вредности на параметрите action= и format=, или пак „main“). Може да се укажат подмодули со „+“.",
+       "apihelp-paraminfo-param-helpformat": "Формат на помошните низи.",
+       "apihelp-paraminfo-param-querymodules": "Список на називи на модули за барања (вредност на параметарот prop=, meta= или list=). Користете го „$1modules=query+foo“ наместо „$1querymodules=foo“.",
+       "apihelp-paraminfo-param-mainmodule": "Добави информации и за главниот (врховен) модул. Користете го „$1modules=main“ наместо тоа.",
+       "apihelp-parse-param-summary": "Опис за расчленување.",
+       "apihelp-parse-param-preview": "Расчлени во прегледен режим.",
+       "apihelp-parse-param-sectionpreview": "Расчлени во прегледен режим на поднасловот (го овозможува и прегледниот режим).",
+       "apihelp-parse-param-disabletoc": "Изземи го преглед на содржината во изводеот.",
+       "apihelp-parse-param-contentformat": "Формат на серијализацијата на содржината во вносниот текст. Важи само кога се користи со $1text.",
+       "apihelp-parse-example-page": "Расчлени страница.",
+       "apihelp-parse-example-text": "Расчлени викитекст.",
+       "apihelp-parse-example-texttitle": "Расчлени страница, укажувајќи го насловот на страницата.",
+       "apihelp-parse-example-summary": "Расчлени опис.",
+       "apihelp-patrol-description": "Испатролирај страница или ревизија.",
+       "apihelp-patrol-param-rcid": "Назнака на спорешните промени за патролирање.",
+       "apihelp-patrol-param-revid": "Назнака на преработката за патролирање.",
+       "apihelp-patrol-example-rcid": "Испатролирај скорешна промена",
+       "apihelp-patrol-example-revid": "Патролирај праработка",
+       "apihelp-protect-description": "Смени го степенот на заштита на страница.",
+       "apihelp-protect-param-title": "Наслов на страница што се (од)заштитува. Не може да се користи заедно со $1pageid.",
+       "apihelp-protect-param-pageid": "Назнака на страница што се (од)заштитува. Не може да се користи заедно со $1title.",
+       "apihelp-protect-param-reason": "Причиина за (од)заштитување",
+       "apihelp-protect-example-protect": "Заштити страница",
+       "apihelp-purge-param-forcelinkupdate": "Поднови ги табелите со врски.",
+       "apihelp-purge-example-simple": "Превчитај ги „Главна страница“ и „Прилог“",
+       "apihelp-query-param-list": "Кои списоци да се набават.",
+       "apihelp-query-param-meta": "Кои метаподатоци да се набават.",
+       "apihelp-query+allcategories-description": "Наброј ги сите категории.",
+       "apihelp-query+allcategories-param-from": "Од која категорија да почне набројувањето.",
+       "apihelp-query+allcategories-param-to": "На која категорија да запре набројувањето.",
+       "apihelp-query+allcategories-param-dir": "Насока на подредувањето.",
+       "apihelp-query+backlinks-example-simple": "Прикажи врски до [[Главна страница|Главната страница]]",
+       "apihelp-query+backlinks-example-generator": "Дава информации за страниците што водат до [[Главна страница|Главната страница]]",
+       "apihelp-query+blocks-description": "Список на сите блокирани корисници и IP-адреси",
+       "apihelp-query+blocks-param-start": "Од кој датум и време да почне набројувањето.",
+       "apihelp-query+blocks-param-end": "На кој датум и време да запре набројувањето.",
+       "apihelp-query+blocks-param-ids": "Список на назнаки на блоковите за испис (незадолжително)",
+       "apihelp-query+blocks-param-users": "Список на корисници што ќе се пребаруваат (незадолжително)",
+       "apihelp-query+imageinfo-param-urlheight": "Слично на $1urlwidth.",
+       "apihelp-query+revisions-example-last5": "Дај ги последните 5 преработки на „Главна страница“",
+       "apihelp-query+revisions-example-first5": "Дај ги првите 5 преработки на „Главна страница“",
+       "apihelp-query+revisions-example-first5-after": "Дај ги првите 5 преработки на „Главна страница“ направени по 2006-05-01 (1 мај 2006 г.)",
+       "apihelp-query+revisions-example-first5-not-localhost": "Дај ги првите 5 преработки на „Главна страница“ кои не се направени од анонимниот корисник „127.0.0.1“",
+       "apihelp-query+revisions-example-first5-user": "Дај ги првите 5 преработки на „Главна страница“ кои се направени од корисникот „зададен од МедијаВики“ (MediaWiki default)",
+       "apihelp-query+search-example-simple": "Побарај „meaning“",
+       "apihelp-query+search-example-text": "Побарај го „meaning“ по текстовите",
+       "apihelp-query+search-example-generator": "Дај информации за страниците што излегуваат во резултатите од пребарувањето на „meaning“",
+       "apihelp-query+siteinfo-description": "Дај општи информации за мрежното место.",
+       "apihelp-upload-param-filename": "Целно име на податотеката.",
+       "apihelp-upload-param-comment": "Коментар при подигање. Се користи и како првичен текст на страницата за нови податотеки ако не е укажано „$1text“.",
+       "apihelp-upload-param-text": "Првичен текст на страницата за нови податотеки.",
+       "apihelp-upload-param-watch": "Набљудувај ја страницата.",
+       "apihelp-upload-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-upload-param-ignorewarnings": "Занемари предупредувања.",
+       "apihelp-upload-param-file": "Содржина на податотеката.",
+       "apihelp-upload-param-url": "Од која URL-адреса да се преземе податотеката.",
+       "apihelp-upload-param-filekey": "Клуч на претходното подигање кое е привремено складирано.",
+       "apihelp-upload-param-sessionkey": "Исто што и $1filekey. Се одржува за назадна складност.",
+       "apihelp-upload-param-stash": "Ако е зададено, опслужувачот нема да ја стави податотеката во складиштето за привремено чување.",
+       "apihelp-upload-param-filesize": "Големина на целото подигање.",
+       "apihelp-upload-param-offset": "Зафатнина на делот во бајти.",
+       "apihelp-upload-param-chunk": "Содржина на делот.",
+       "apihelp-upload-param-async": "Направи ги работите со потенцијално големи податотеки неусогласени, кога е можно.",
+       "apihelp-upload-param-asyncdownload": "Направи го добивањето на URL-адреса неусогласено.",
+       "apihelp-upload-param-leavemessage": "Ако се користи неусогласено преземање, остави порака на страницата за разговор на корисникот ако е готово.",
+       "apihelp-upload-param-statuskey": "Дај ја состојбата на подигнатост за овој податотечен клуч (подигање по URL-адреса).",
+       "apihelp-upload-param-checkstatus": "Дај ја состојбата на подигнатост само за дадениот податотечен клуч.",
+       "apihelp-upload-example-url": "Подигни од URL-адреса",
+       "apihelp-userrights-param-userid": "Корисничка назнака.",
+       "apihelp-userrights-param-add": "Стави го корисникот во следниве групи.",
+       "apihelp-userrights-param-remove": "Отстрани го корисникот од следниве групи.",
+       "apihelp-userrights-param-reason": "Причина за промената.",
+       "apihelp-watch-example-watch": "Набљудувај ја страницата „Главна страница“",
+       "apihelp-watch-example-unwatch": "Отстрани ја страницата „Главна страница“ од набљудуваните",
+       "apihelp-watch-example-generator": "Набљудувај ги првите неколку страници во главниот именски простор",
+       "apihelp-format-example-generic": "Форматирај го резултатот од барањето во $1-формат",
+       "apihelp-dbg-description": "Давај го изводот во PHP-форматот var_export().",
+       "apihelp-dbgfm-description": "Давај го изводот во PHP-форматот var_export() (подобрен испис во HTML).",
+       "apihelp-dump-description": "Давај го изводот во PHP-форматот var_dump().",
+       "apihelp-dumpfm-description": "Давај го изводот во PHP-форматот var_dump() (подобрен испис во HTML).",
+       "apihelp-json-description": "Давај го изводот во JSON-формат.",
+       "apihelp-json-param-callback": "Ако е укажано, го обвива изводот во даден повик на функција. За безбедност, ќе се ограничат сите податоци што се однесуваат на корисниците.",
+       "apihelp-json-param-utf8": "Ако е укажано, ја ги шифрира највеќето (но не сите) не-ASCII знаци како UTF-8 наместо да ги заменува со хексадецимални изводни низи.",
+       "apihelp-jsonfm-description": "Давај го изводот во JSON-формат (подобрен испис во HTML).",
+       "apihelp-none-description": "Де давај извод.",
+       "apihelp-php-description": "Давај го изводот во серијализиран PHP-формат.",
+       "apihelp-phpfm-description": "Давај го изводот во серијализиран PHP-формат (подобрен испис во HTML).",
+       "apihelp-rawfm-description": "Давај го изводот со елементи за отстранување грешки во JSON-формат (подобрен испис во HTML).",
+       "apihelp-txt-description": "Давај го изводот во PHP-форматот print_r().",
+       "apihelp-txtfm-description": "Давај го изводот во PHP-форматот print_r() (подобрен испис во HTML).",
+       "apihelp-wddx-description": "Давај го изводот во WDDX-формат.",
+       "apihelp-wddxfm-description": "Давај го изводот во WDDX-формат (подобрен испис во HTML).",
+       "apihelp-xml-description": "Давај го изводот во XML-формат.",
+       "apihelp-xml-param-xslt": "Ако е укажано, додава &lt;xslt&gt; како стилска страница. Ова треба да е викистраница во именскиот простор МедијаВики (MediaWiki) чиј наслов завршува со „.xsl“.",
+       "apihelp-xml-param-includexmlnamespace": "Ако е укажано, додава именски простор XML.",
+       "apihelp-xmlfm-description": "Давај го изводот во XML-формат (подобрен испис во HTML).",
+       "apihelp-yaml-description": "Давај го изводот во YAML-формат.",
+       "apihelp-yamlfm-description": "Давај го изводот во YAML-формат (подобрен испис во HTML).",
+       "api-format-title": "Резултат од Прилогот на МедијаВики",
+       "api-format-prettyprint-header": "Ја гледате HTML-претставата на форматот $1. HTML е добар за отстранување на грешки, но не е погоден за употреб во прилог.\n\nУкажете го параметарот за формат за да го смените изводниот формат. За да ги видите претставите на форматот $1 вон HTML, задајте format=$2.\n\nПовеќе информации ќе најдете на [https://www.mediawiki.org/wiki/API целосната документација], или пак [[Special:ApiHelp/main|помош со прилогот]].",
+       "api-orm-param-props": "Полиња за пребарување.",
+       "api-orm-param-limit": "Макс. број на редови во изводот.",
+       "api-pageset-param-titles": "Список на наслови на кои ќе се работи",
+       "api-pageset-param-pageids": "Список на назнаки за страници на кои ќе се работи",
+       "api-pageset-param-revids": "Список на назнаки на преработки на кои ќе се работи",
+       "api-pageset-param-generator": "Дај го списокот на страници на кои ќе се работи исполнувајќи го укажаниот модул за барање.\n\n'''НАПОМЕНА:''' називите на создавачките параметри мора да ја имаат претставката „g“. Погледајте ги примерите.",
+       "api-help-title": "Помош со Прилогот на МедијаВики",
+       "api-help-lead": "Ова е самосоздадена документациска страница за Прилогот на МедијаВики.\n\nDocumentation and examples: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "Главен модул",
+       "api-help-flag-deprecated": "Овој модул е застарен.",
+       "api-help-flag-internal": "<strong>Овој модул е внатрешен или нестабилен.</strong> Работењето може да му се промени без предупредување.",
+       "api-help-flag-readrights": "За овој модул се потребни права на читање.",
+       "api-help-flag-writerights": "За овој модул се потребни права на пишување.",
+       "api-help-flag-mustbeposted": "Овој модул прифаќа само POST-барања.",
+       "api-help-flag-generator": "Овој модул може да се користи како создавач.",
+       "api-help-parameters": "{{PLURAL:$1|Параметар|Параметри}}:",
+       "api-help-param-deprecated": "Застарен.",
+       "api-help-param-required": "Овој параметар е задолжителен.",
+       "api-help-param-list": "{{PLURAL:$1|1=Една вредност|2=Вредности (одделени со „{{!}}“)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Мора да биде празно|Може да биде празно или $2}}",
+       "api-help-param-limit": "Не се допушта повеќе од $1.",
+       "api-help-param-limit2": "Не се допушта повеќе од $1 ($2 за ботови).",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=Вредноста не може да изнесува|2=Вредностите не може да изнесуваат}} помалку од $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=Вредноста не може да изнесува|2=Вредностите е може да изнесуваат}} повеќе од $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=Вредноста мора да изнесува|2=Вредностите мораат да изнесуваат}} помеѓу $2 и $3.",
+       "api-help-param-upload": "Мора да биде објавено како податотечно подигање користејќи податоци кои се повеќеделни или од образец.",
+       "api-help-param-multi-separate": "Одделувајте ги вредностите со „|“.",
+       "api-help-param-multi-max": "Максималниот број на вредности изнесува {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} за ботови).",
+       "api-help-param-default": "По основно: $1",
+       "api-help-param-default-empty": "По основно: <span class=\"apihelp-empty\">(празно)</span>",
+       "api-help-param-token": "Шифра „$1“ добиена од [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
+       "api-help-param-token-webui": "За складност, се прифаќа и шифрата што се користи за обичниот кориснички посредник.",
+       "api-help-param-disabled-in-miser-mode": "Исклучено поради [https://www.mediawiki.org/wiki/Manual:$wgMiserMode скржавиот режим].",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(нема опис)</span>",
+       "api-help-examples": "{{PLURAL:$1|Пример|Примери}}:",
+       "api-help-permissions": "{{PLURAL:$1|Дозвола|Дозволи}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Доделена на}: $2",
+       "api-help-right-apihighlimits": "Уоптреба на повисоки ограничувања за приложни барања (бавни барања: $1; брзи барања: $2). Ограничувањата за бавни барања важат и за повеќевредносни параметри.",
+       "api-credits-header": "Признанија",
+       "api-credits": "Разработувачи на Прилогот:\n* Роан Катау (главен резработувач од септември 2007 до 2009 г.)\n* Виктор Василев\n* Брајан Тонг Мињ\n* Сем Рид\n* Јуриј Астрахан (создавач, главен разработувач од септември 2006 до септември 2007 г.)\n* Brad Jorsch (главен разработувач од 2013 г. до денес)\n\nВашите коментари, предлози и прашања испраќајте ги на mediawiki-api@lists.wikimedia.org\nа грешките пријавувајте ги на https://bugzilla.wikimedia.org/."
+}
diff --git a/includes/api/i18n/ms.json b/includes/api/i18n/ms.json
new file mode 100644 (file)
index 0000000..6b10584
--- /dev/null
@@ -0,0 +1,58 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Anakmalaysia"
+               ]
+       },
+       "apihelp-main-param-action": "Tindakan mana untuk dilakukan.",
+       "apihelp-main-param-format": "Format output.",
+       "apihelp-main-param-uselang": "Bahasa yang hendak digunakan untuk penterjemahan mesej. Senarai kod boleh diperoleh dari [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo&siprop=languages]], ataupun menyatakan \"user\" untuk menggunakan bahasa kegemaran pengguna semasa.",
+       "apihelp-expandtemplates-example-simple": "Perluaskan \"<nowiki>{{Project:Sandbox}}</nowiki>\" wikiteks",
+       "apihelp-help-param-helpformat": "Format output bantuan.",
+       "apihelp-help-example-main": "Bantuan untuk modul utama",
+       "apihelp-help-example-recursive": "Segala bantuan dalam satu halaman",
+       "apihelp-help-example-help": "Bantuan untuk modul bantuan",
+       "apihelp-userrights-param-userid": "ID pengguna.",
+       "apihelp-dbgfm-description": "Data output dalam format var_export() PHP (''pretty-print'' dalam HTML).",
+       "apihelp-dump-description": "Output data dalam format var_dump() PHP.",
+       "apihelp-dumpfm-description": "Data output dalam format var_dump() PHP (''pretty-print'' dalam HTML).",
+       "apihelp-json-description": "Data output dalam format JSON.",
+       "apihelp-json-param-utf8": "Jika dinyatakan, mengekodkan kenanyakan (tetapi bukan semua) aksara bukan ASCII sebagai UTF-8 daripada menggantikannya dengan jujukan lepasan perenambelasan.",
+       "apihelp-jsonfm-description": "Output data dalam format JSON (''pretty-print'' dalam HTML).",
+       "apihelp-php-description": "Data output dalam format PHP bersiri.",
+       "apihelp-txt-description": "Data output dalam format print_r() PHP.",
+       "apihelp-txtfm-description": "Data output dalam format print_r() PHP (''pretty-print'' dalam HTML).",
+       "apihelp-wddx-description": "Data output dalam format WDDX.",
+       "apihelp-wddxfm-description": "Output data dalam format WDDX (''pretty-print'' dalam HTML).",
+       "apihelp-xml-description": "Data output dalam format XML.",
+       "apihelp-xmlfm-description": "Data output dalam format XML (''pretty-print'' dalam HTML).",
+       "apihelp-yaml-description": "Data output dalam format YAML.",
+       "apihelp-yamlfm-description": "Output data dalam format YAML (''pretty-print'' dalam HTML).",
+       "api-format-title": "Hasil API MediaWiki",
+       "api-format-prettyprint-header": "Anda sedang menyaksikan representasi format $1 dalam bentuk HTML. HTML bagus untuk menyah pepijat, tetapi tidak sesuai untuk kegunaan aplikasi.\n\nNyatakan parameter format untuk mengubah format outputnya. Untuk melihat representasi format $1 yang bukan HTML, tetapkan format=$2.\n\nSila rujuk [https://www.mediawiki.org/wiki/API dokumentasi lengkapnya] ataupun [[Special:ApiHelp/main|bantuan API]] untuk keterangan lanjut.",
+       "api-help-title": "Bantuan API MediaWiki",
+       "api-help-lead": "Ini merupakan laman dokumentasi MediaWiki API yang dihasilkan secara automatik.\n\nDokumentasi dan contoh-contoh: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "Modul utama",
+       "api-help-flag-deprecated": "Modul ini sudah lapuk.",
+       "api-help-flag-internal": "<strong>Modul ini dalaman atau tidak stabil.</strong> Operasinya boleh berubah tanpa amaran.",
+       "api-help-flag-readrights": "Modul ini memerlukan hak membaca.",
+       "api-help-flag-writerights": "Modul ini memerlukan hak menulis.",
+       "api-help-flag-mustbeposted": "Modul ini menerima permohonan POST sahaja.",
+       "api-help-flag-generator": "Modul ini boleh digunakan sebagai penjana.",
+       "api-help-parameters": "{{PLURAL:$1|Parameter}}:",
+       "api-help-param-deprecated": "Lapuk.",
+       "api-help-param-required": "Parameter ini diwajibkan.",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Mestilah kosong|Bolehlah kosong atau $2}}",
+       "api-help-param-limit2": "Dibenarkannya tidak lebih daripada $1 ($2 untuk bot).",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=Nilainya|2=Nilai-nilainya}} mesti tidak melebihi $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=Nilainya|2=Nilai-nilainya}} mestilah antara $2 hingga $3.",
+       "api-help-param-multi-separate": "Asingkan nilai-nilai dengan \"|\".",
+       "api-help-param-multi-max": "Bilangan nilai maksimum adalah {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} untuk bot).",
+       "api-help-param-default": "Asal: $1",
+       "api-help-param-default-empty": "Asal: <span class=\"apihelp-empty\">(kosong)</span>",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(tiada keterangan)</span>",
+       "api-help-examples": "{{PLURAL:$1|Contoh|Contoh-contoh}}:",
+       "api-help-permissions": "{{PLURAL:$1|Keizinan}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Diberikan kepada}}: $2",
+       "api-credits-header": "Kredit"
+}
diff --git a/includes/api/i18n/nb.json b/includes/api/i18n/nb.json
new file mode 100644 (file)
index 0000000..6dcba40
--- /dev/null
@@ -0,0 +1,24 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jeblad"
+               ]
+       },
+       "apihelp-main-param-action": "Hvilken handling skal utføres",
+       "apihelp-main-param-format": "Resultatets format.",
+       "apihelp-main-param-servedby": "Inkluder navnet på tjeneren som utførte forespørselen i resultatene.",
+       "apihelp-main-param-curtimestamp": "Inkluder det nåværende tidsmerket i resultatet.",
+       "apihelp-dbg-description": "Resultatdata i PHP's var_export() format.",
+       "apihelp-dbgfm-description": "Resultatdata i PHP's var_export() format (pen utskrift i HTML).",
+       "apihelp-dump-description": "Resultatdata i PHP's var_export() format.",
+       "apihelp-dumpfm-description": "Resultatdata i PHP's var_export() format (pen utskrift i HTML).",
+       "apihelp-json-description": "Resultatdata i JSON-format.",
+       "apihelp-none-description": "Ingen resultat.",
+       "api-help-flag-readrights": "Denne modulen krever lesetilgang.",
+       "api-help-flag-writerights": "Denne modulen krever skrivetilgang.",
+       "api-help-flag-mustbeposted": "Denne modulen aksepterer bare POST forespørsler.",
+       "api-help-flag-generator": "Denne modulen kan brukes som en generator.",
+       "api-help-parameters": "{{PLURAL:$1|Parameter|Parametre}}:",
+       "api-help-param-deprecated": "Utgått.",
+       "api-help-param-required": "Denne parameteren er påkrevd."
+}
diff --git a/includes/api/i18n/nl.json b/includes/api/i18n/nl.json
new file mode 100644 (file)
index 0000000..8ead891
--- /dev/null
@@ -0,0 +1,34 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Siebrand",
+                       "Sjoerddebruin",
+                       "Robin0van0der0vliet",
+                       "Mar(c)"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Documentatie]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-maillijst]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aankondigingen]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Bugs & verzoeken]\n</div>\n<strong>Status:</strong> Alle funties die op deze pagina worden weergegeven horen te werken. Aan de API wordt actief gewerkt, en deze kan gewijzigd worden. Abonneer u op  de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-maillijst mediawiki-api-announce] voor meldingen over aanpassingen.\n\n<strong>Foutieve verzoeken:</strong> als de API foutieve verzoeken ontvangt, wordt er geantwoord met een HTTP-header met de sleutel \"MediaWiki-API-Error\" en daarna worden de waarde van de header en de foutcode op dezelfde waarde ingesteld. Zie https://www.mediawiki.org/wiki/API:Errors_and_warnings voor meer informatie.",
+       "apihelp-main-param-action": "Welke handeling uit te voeren.",
+       "apihelp-main-param-format": "De opmaak van de uitvoer.",
+       "apihelp-main-param-maxlag": "De maximale vertraging kan gebruikt worden als MediaWiki is geïnstalleerd op een databasecluster die gebruik maakt van replicatie. Om te voorkomen dat handelingen nog meer databasereplicatievertraging veroorzaken, kan deze parameter er voor zorgen dat de client wacht totdat de replicatievertraging lager is dan de aangegeven waarde. In het geval van buitensporige vertraging, wordt de foutcode \"maxlag\" teruggegeven met een bericht als \"Waiting for $host: $lag seconds lagged\".<br />Zie https://www.mediawiki.org/wiki/Manual:Maxlag_parameter voor mee informatie.",
+       "apihelp-main-param-smaxage": "Stelt de header \"s-maxage\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
+       "apihelp-main-param-maxage": "Stelt de header \"max-age\" in op het aangegeven aantal seconden. Foutmeldingen komen nooit in de cache.",
+       "apihelp-block-description": "Gebruiker blokkeren.",
+       "apihelp-block-param-reason": "Reden voor blokkade.",
+       "apihelp-edit-example-edit": "Pagina bewerken",
+       "apihelp-emailuser-description": "Gebruiker e-mailen.",
+       "apihelp-emailuser-param-subject": "Onderwerp header.",
+       "apihelp-emailuser-param-text": "Mailbody",
+       "apihelp-expandtemplates-param-title": "Titel van de pagina.",
+       "apihelp-feedcontributions-param-year": "Van jaar (en eerder).",
+       "apihelp-feedcontributions-param-month": "Van maand (en eerder).",
+       "apihelp-login-param-name": "Gebruikersnaam.",
+       "apihelp-login-param-password": "Wachtwoord.",
+       "apihelp-login-param-domain": "Domein (optioneel).",
+       "apihelp-login-example-login": "Aanmelden",
+       "apihelp-move-description": "Pagina hernoemen.",
+       "api-help-parameters": "{{PLURAL:$1|Parameter|Parameters}}:",
+       "api-help-param-deprecated": "Verouderd.",
+       "api-help-param-default": "Standaard: $1",
+       "api-credits-header": "Vermeldingen"
+}
diff --git a/includes/api/i18n/pa.json b/includes/api/i18n/pa.json
new file mode 100644 (file)
index 0000000..96c8694
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Babanwalia"
+               ]
+       },
+       "apihelp-help-example-recursive": "ਇੱਕੋ ਸਫ਼ੇ 'ਤੇ ਸਾਰੀ ਮਦਦ"
+}
diff --git a/includes/api/i18n/pl.json b/includes/api/i18n/pl.json
new file mode 100644 (file)
index 0000000..7d89e3c
--- /dev/null
@@ -0,0 +1,74 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chrumps",
+                       "Py64"
+               ]
+       },
+       "apihelp-main-param-action": "Wybierz akcję do wykonania.",
+       "apihelp-main-param-format": "Format danych wyjściowych.",
+       "apihelp-main-param-maxlag": "Maksymalne opóźnienie mogą być używane kiedy MediaWiki jest zainstalowana w klastrze zreplikowanej bazy danych. By zapisać działania powodujące większe opóźnienie replikacji, ten parametr może wymusić czekanie u klienta, dopóki opóźnienie replikacji jest mniejsze niż określona wartość. W przypadku nadmiernego opóźnienia, kod błędu \"maxlag\" jest zwracany z wiadomością jak \"Oczekiwanie na $host: $lag sekund opóźnienia\".<br />Zobacz https://www.mediawiki.org/wiki/Manual:Maxlag_parameter by uzyskać więcej informacji.",
+       "apihelp-main-param-assert": "Sprawdź, czy użytkownik jest zalogowany jeżeli jest ustawiony na \"użytkownik\", lub ma prawa bota jeśli \"bot\".",
+       "apihelp-edit-example-edit": "Edytuj stronę",
+       "apihelp-help-description": "Wyświetl pomoc dla określonych modułów.",
+       "apihelp-help-param-modules": "Moduły do wyświetlenia pomocy dla (wartości akcji= i format= parametry, lub \"głównego\"). Może określić podmoduły z \"+\".",
+       "apihelp-help-param-recursivesubmodules": "Zawiera pomoc dla podmodułów rekursywnie.",
+       "apihelp-help-example-main": "Pomoc dla modułu głównego",
+       "apihelp-help-example-recursive": "Cała pomoc na jednej stronie.",
+       "apihelp-help-example-help": "Pomoc dla modułu pomocy",
+       "apihelp-move-description": "Przenieś stronę.",
+       "apihelp-protect-example-protect": "Zabezpiecz stronę",
+       "apihelp-query+search-description": "Wykonaj wyszukiwanie pełnotekstowe.",
+       "apihelp-query+watchlist-param-excludeuser": "Nie wyświetlaj zmian wykonanych przez tego użytkownika.",
+       "apihelp-unblock-param-reason": "Powód odblokowania.",
+       "apihelp-undelete-param-reason": "Powód przywracania.",
+       "apihelp-upload-param-filename": "Nazwa pliku docelowego.",
+       "apihelp-userrights-param-user": "Nazwa użytkownika.",
+       "apihelp-userrights-param-reason": "Powód zmiany.",
+       "apihelp-dbg-description": "Dane wyjściowe w formacie var_export() (funkcji PHP).",
+       "apihelp-dbgfm-description": "Dane wyjściowe w formacie var_export() (funkcji PHP) (prawidłowo wyświetlane w HTML).",
+       "apihelp-dump-description": "Dane wyjściowe w formacie var_dump() (funkcji PHP).",
+       "apihelp-dumpfm-description": "Dane wyjściowe w formacie var_dump() (funkcji PHP) (prawidłowo wyświetlane w HTML).",
+       "apihelp-json-description": "Dane wyjściowe w formacie JSON.",
+       "apihelp-jsonfm-description": "Dane wyjściowe w formacie JSON (prawidłowo wyświetlane w HTML).",
+       "apihelp-php-description": "Dane wyjściowe w serializowany formacie PHP.",
+       "apihelp-phpfm-description": "Dane wyjściowe w serializowanym formacie PHP (prawidłowo wyświetlane w HTML).",
+       "apihelp-txt-description": "Dane wyjściowe w formacie print_r() (funkcji PHP).",
+       "apihelp-txtfm-description": "Dane wyjściowe w formacie print_r() (funkcji PHP) (prawidłowo wyświetlane w HTML).",
+       "apihelp-wddx-description": "Dane wyjściowe w formacie WDDX.",
+       "apihelp-wddxfm-description": "Dane wyjściowe w formacie WDDX (prawidłowo wyświetlane w HTML).",
+       "apihelp-xml-description": "Dane wyjściowe w formacie XML.",
+       "apihelp-xml-param-xslt": "Jeśli określony, dodaje &lt;xslt&gt; jako arkusz styli. Powinna to być strona wiki w przestrzeni nazw MediaWiki, której nazwy stron kończą się na \".xsl\".",
+       "apihelp-xmlfm-description": "Dane wyjściowe w formacie XML (prawidłowo wyświetlane w HTML).",
+       "apihelp-yaml-description": "Dane wyjściowe w formacie YAML.",
+       "apihelp-yamlfm-description": "Dane wyjściowe w formacie YAML (prawidłowo wyświetlane w HTML).",
+       "api-format-title": "Wynik MediaWiki API",
+       "api-help-title": "Pomoc MediaWiki API",
+       "api-help-lead": "To jest automatycznie wygenerowana strona dokumentacji MediaWiki API.\nDokumentacja i przykłady: https://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "Moduł główny",
+       "api-help-flag-deprecated": "Ten moduł jest przestarzały.",
+       "api-help-flag-internal": "<strong>Ten moduł jest wewnętrzny lub niestabilny.</strong> Jego działanie może się zmienić bez uprzedzenia.",
+       "api-help-flag-readrights": "Ten moduł wymaga praw odczytu.",
+       "api-help-flag-writerights": "Ten moduł wymaga praw zapisu.",
+       "api-help-flag-mustbeposted": "Ten moduł akceptuje tylko żądania POST.",
+       "api-help-flag-generator": "Ten moduł może być użyty jako generator.",
+       "api-help-parameters": "{{PLURAL:$1|Parametr|Parametry}}:",
+       "api-help-param-deprecated": "Przestarzałe.",
+       "api-help-param-required": "Ten parametr jest wymagany.",
+       "api-help-param-list": "{{PLURAL:$1|1=Jedna wartość|2=Wartości (oddziel z \"{{!}}\")}}: $2",
+       "api-help-param-limit": "Nie więcej niż $1 dozwolone.",
+       "api-help-param-limit2": "Nie więcej niż $1 ($2 dla botów) dozwolone.",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=Wartość|2=Wartości}} musza być mniejsze niż $2.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=Wartość musi|2=Wartości muszą}} być nie większa niż $3.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=Wartość musi|2=Wartości muszą}} być pomiędzy $2 a $3.",
+       "api-help-param-multi-separate": "Oddziel wartości z \"|\".",
+       "api-help-param-multi-max": "Maksymalna ilość wartości to {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} dla botów).",
+       "api-help-param-default": "Domyślnie: $1",
+       "api-help-param-default-empty": "Domyślnie: <span class=\"apihelp-empty\">(puste)</span>",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(bez opisu)</span>",
+       "api-help-examples": "{{PLURAL:$1|Przykład|Przykłady}}:",
+       "api-help-permissions": "{{PLURAL:$2|Uprawnienie|Uprawnienia}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Przydzielone dla}}: $2",
+       "api-credits-header": "Twórcy",
+       "api-credits": "Deweloperzy API:\n* Roan Kattouw (główny programista wrzesień 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (twórca, główny programista wrzesień 2006–wrzesień 2007)\n* Brad Jorsch (główny programista 2013–obecnie)\n\nProsimy wysyłać komentarze, sugestie i pytania do mediawiki-api@lists.wikimedia.org\nlub zgłoś błąd na https://bugzilla.wikimedia.org/."
+}
diff --git a/includes/api/i18n/pt.json b/includes/api/i18n/pt.json
new file mode 100644 (file)
index 0000000..27eaa94
--- /dev/null
@@ -0,0 +1,88 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Vitorvicentevalente"
+               ]
+       },
+       "apihelp-main-param-format": "O formato de saída.",
+       "apihelp-block-description": "Bloquear um utilizador.",
+       "apihelp-block-param-user": "Nome de utilizador(a), endereço ou gama de IP que pretende bloquear.",
+       "apihelp-block-param-nocreate": "Impedir criação de contas.",
+       "apihelp-createaccount-description": "Criar uma nova conta.",
+       "apihelp-createaccount-param-name": "Nome de utilizador(a).",
+       "apihelp-createaccount-param-email": "Endereço de correio eletrónico do utilizador (opcional).",
+       "apihelp-createaccount-param-realname": "Nome verdadeiro do utilizador (opcional).",
+       "apihelp-delete-description": "Eliminar uma página.",
+       "apihelp-delete-param-watch": "Adicionar esta página à lista de vigiadas.",
+       "apihelp-delete-param-unwatch": "Remover esta página da lista de vigiadas.",
+       "apihelp-delete-example-simple": "Eliminar Página Principal",
+       "apihelp-disabled-description": "O módulo foi desativado.",
+       "apihelp-edit-description": "Criar e editar páginas.",
+       "apihelp-edit-param-sectiontitle": "Título para uma nova seção.",
+       "apihelp-edit-param-text": "Conteúdo da página.",
+       "apihelp-edit-param-minor": "Edição menor.",
+       "apihelp-edit-param-bot": "Marcar esta edição como robô.",
+       "apihelp-edit-example-edit": "Editar uma página",
+       "apihelp-expandtemplates-param-title": "Título da página.",
+       "apihelp-feedcontributions-param-deletedonly": "Mostrar apenas contribuições eliminadas.",
+       "apihelp-feedcontributions-param-showsizediff": "Mostrar diferença de tamanho entre edições.",
+       "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados a apresentar.",
+       "apihelp-feedrecentchanges-param-from": "Mostrar alterações desde então.",
+       "apihelp-feedrecentchanges-param-hideminor": "Ocultar edições menores.",
+       "apihelp-feedrecentchanges-param-hidebots": "Ocultar alterações feitas por robôs.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar alterações patrulhadas.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Ocultar alterações feitas por mim.",
+       "apihelp-feedrecentchanges-param-target": "Mostrar apenas mudanças em páginas afluentes a esta.",
+       "apihelp-feedrecentchanges-example-simple": "Mostrar mudanças recentes",
+       "apihelp-help-example-main": "Ajuda para o módulo principal",
+       "apihelp-help-example-recursive": "Toda a ajuda numa página",
+       "apihelp-login-param-name": "Nome de utilizador(a).",
+       "apihelp-login-param-password": "Palavra-passe.",
+       "apihelp-login-param-domain": "Domínio (opcional).",
+       "apihelp-login-example-login": "Entrar",
+       "apihelp-logout-description": "Terminar e limpar dados de sessão.",
+       "apihelp-move-description": "Mover uma página.",
+       "apihelp-move-param-noredirect": "Não criar um redirecionamento.",
+       "apihelp-move-param-ignorewarnings": "Ignorar quaisquer avisos.",
+       "apihelp-opensearch-param-limit": "Número máximo de resultados a apresentar.",
+       "apihelp-options-param-reset": "Reiniciar preferências para os padrões do sítio.",
+       "apihelp-options-example-reset": "Reiniciar todas as preferências",
+       "apihelp-patrol-description": "Patrulhar uma página ou edição.",
+       "apihelp-patrol-example-rcid": "Patrulhar uma mudança recente",
+       "apihelp-patrol-example-revid": "Patrulhar uma edição",
+       "apihelp-protect-example-protect": "Proteger uma página",
+       "apihelp-query+allcategories-description": "Enumerar todas as categorias.",
+       "apihelp-query+allpages-param-prefix": "Pesquisa para todos os títulos de páginas que comecem com este valor.",
+       "apihelp-query+allpages-example-generator": "Mostrar informação sobre 4 páginas que comecem com a letra \"T\"",
+       "apihelp-query+allusers-example-Y": "Lista de utilizadores que comecem com Y",
+       "apihelp-query+blocks-param-limit": "O número máximo de bloqueios a listar.",
+       "apihelp-query+categorymembers-description": "Lista de todas as páginas numa categoria fornecida.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
+       "apihelp-query+deletedrevs-param-excludeuser": "Não listar edições deste utilizador.",
+       "apihelp-query+deletedrevs-param-namespace": "Listar apenas as páginas neste domínio.",
+       "apihelp-query+filearchive-example-simple": "Mostrar lista de todos os ficheiros eliminados",
+       "apihelp-query+info-description": "Obter informação básica da página.",
+       "apihelp-query+recentchanges-example-simple": "Lista de mudanças recentes",
+       "apihelp-unblock-description": "Desbloquear um utilizador.",
+       "apihelp-unblock-param-reason": "Motivo para o desbloqueio.",
+       "apihelp-undelete-param-title": "Título da página a restaurar.",
+       "apihelp-upload-param-watch": "Vigiar página.",
+       "apihelp-upload-param-ignorewarnings": "Ignorar todos os avisos.",
+       "apihelp-userrights-param-user": "Nome de utilizador(a).",
+       "apihelp-userrights-param-userid": "ID de utilizador.",
+       "apihelp-userrights-param-add": "Adicionar o utilizador a estes grupos.",
+       "apihelp-userrights-param-remove": "Remover este utilizador destes grupos.",
+       "apihelp-watch-example-unwatch": "Deixar de vigiar a \"Página Principal\"",
+       "apihelp-json-description": "Dados de saída em formato JSON.",
+       "api-help-title": "Ajuda API da MediaWiki",
+       "api-help-main-header": "Módulo principal",
+       "api-help-flag-deprecated": "Este módulo está obsoleto.",
+       "api-help-parameters": "{{PLURAL:$1|Parâmetro|Parâmetros}}:",
+       "api-help-param-deprecated": "Obsoleto.",
+       "api-help-param-required": "Este parâmetro é obrigatório.",
+       "api-help-param-multi-separate": "Separe os valores com \"|\".",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(sem descrição)</span>",
+       "api-help-examples": "{{PLURAL:$1|Exemplo|Exemplos}}:",
+       "api-credits-header": "Créditos",
+       "api-credits": "Programadores API:\n* Roan Kattouw (programador principal Set 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (criador, programador-líder Set 2006–Set 2007)\n* Brad Jorsch (programador-líder 2013–presente)\n\nPor favor, envie os seus comentários, sugestões e perguntas para mediawiki-api@lists.wikimedia.org ou reporte um erro técnico em https://bugzilla.wikimedia.org/."
+}
diff --git a/includes/api/i18n/qqq.json b/includes/api/i18n/qqq.json
new file mode 100644 (file)
index 0000000..b81c2a6
--- /dev/null
@@ -0,0 +1,1004 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Liuxinyu970226",
+                       "Robby",
+                       "Shirayuki"
+               ]
+       },
+       "apihelp-main-description": "{{doc-apihelp-description|main}}",
+       "apihelp-main-param-action": "{{doc-apihelp-param|main|action}}",
+       "apihelp-main-param-format": "{{doc-apihelp-param|main|format}}",
+       "apihelp-main-param-maxlag": "{{doc-apihelp-param|main|maxlag}}\n\n\"$host\" and \"$lag\" are not variables and appear as is.",
+       "apihelp-main-param-smaxage": "{{doc-apihelp-param|main|smaxage}}",
+       "apihelp-main-param-maxage": "{{doc-apihelp-param|main|maxage}}",
+       "apihelp-main-param-assert": "{{doc-apihelp-param|main|assert}}",
+       "apihelp-main-param-requestid": "{{doc-apihelp-param|main|requestid}}",
+       "apihelp-main-param-servedby": "{{doc-apihelp-param|main|servedby}}",
+       "apihelp-main-param-curtimestamp": "{{doc-apihelp-param|main|curtimestamp}}",
+       "apihelp-main-param-origin": "{{doc-apihelp-param|main|origin}}",
+       "apihelp-main-param-uselang": "{{doc-apihelp-param|main|uselang}}",
+       "apihelp-block-description": "{{doc-apihelp-description|block}}",
+       "apihelp-block-param-user": "{{doc-apihelp-param|block|user}}",
+       "apihelp-block-param-expiry": "{{doc-apihelp-param|block|expiry}}",
+       "apihelp-block-param-reason": "{{doc-apihelp-param|block|reason}}",
+       "apihelp-block-param-anononly": "{{doc-apihelp-param|block|anononly}}",
+       "apihelp-block-param-nocreate": "{{doc-apihelp-param|block|nocreate}}",
+       "apihelp-block-param-autoblock": "{{doc-apihelp-param|block|autoblock}}",
+       "apihelp-block-param-noemail": "{{doc-apihelp-param|block|noemail}}",
+       "apihelp-block-param-hidename": "{{doc-apihelp-param|block|hidename}}",
+       "apihelp-block-param-allowusertalk": "{{doc-apihelp-param|block|allowusertalk}}",
+       "apihelp-block-param-reblock": "{{doc-apihelp-param|block|reblock}}",
+       "apihelp-block-param-watchuser": "{{doc-apihelp-param|block|watchuser}}",
+       "apihelp-block-example-ip-simple": "{{doc-apihelp-example|block}}",
+       "apihelp-block-example-user-complex": "{{doc-apihelp-example|block}}",
+       "apihelp-clearhasmsg-description": "{{doc-apihelp-description|clearhasmsg}}",
+       "apihelp-clearhasmsg-example-1": "{{doc-apihelp-example|clearhasmsg}}",
+       "apihelp-compare-description": "{{doc-apihelp-description|compare}}",
+       "apihelp-compare-param-fromtitle": "{{doc-apihelp-param|compare|fromtitle}}",
+       "apihelp-compare-param-fromid": "{{doc-apihelp-param|compare|fromid}}",
+       "apihelp-compare-param-fromrev": "{{doc-apihelp-param|compare|fromrev}}",
+       "apihelp-compare-param-totitle": "{{doc-apihelp-param|compare|totitle}}",
+       "apihelp-compare-param-toid": "{{doc-apihelp-param|compare|toid}}",
+       "apihelp-compare-param-torev": "{{doc-apihelp-param|compare|torev}}",
+       "apihelp-compare-example-1": "{{doc-apihelp-example|compare}}",
+       "apihelp-createaccount-description": "{{doc-apihelp-description|createaccount}}",
+       "apihelp-createaccount-param-name": "{{doc-apihelp-param|createaccount|name}}",
+       "apihelp-createaccount-param-password": "{{doc-apihelp-param|createaccount|password}}",
+       "apihelp-createaccount-param-domain": "{{doc-apihelp-param|createaccount|domain}}",
+       "apihelp-createaccount-param-token": "{{doc-apihelp-param|createaccount|token}}",
+       "apihelp-createaccount-param-email": "{{doc-apihelp-param|createaccount|email}}",
+       "apihelp-createaccount-param-realname": "{{doc-apihelp-param|createaccount|realname}}",
+       "apihelp-createaccount-param-mailpassword": "{{doc-apihelp-param|createaccount|mailpassword}}",
+       "apihelp-createaccount-param-reason": "{{doc-apihelp-param|createaccount|reason}}",
+       "apihelp-createaccount-param-language": "{{doc-apihelp-param|createaccount|language}}",
+       "apihelp-createaccount-example-pass": "{{doc-apihelp-example|createaccount}}",
+       "apihelp-createaccount-example-mail": "{{doc-apihelp-example|createaccount}}",
+       "apihelp-delete-description": "{{doc-apihelp-description|delete}}",
+       "apihelp-delete-param-title": "{{doc-apihelp-param|delete|title}}",
+       "apihelp-delete-param-pageid": "{{doc-apihelp-param|delete|pageid}}",
+       "apihelp-delete-param-reason": "{{doc-apihelp-param|delete|reason}}",
+       "apihelp-delete-param-watch": "{{doc-apihelp-param|delete|watch}}",
+       "apihelp-delete-param-watchlist": "{{doc-apihelp-param|delete|watchlist}}",
+       "apihelp-delete-param-unwatch": "{{doc-apihelp-param|delete|unwatch}}",
+       "apihelp-delete-param-oldimage": "{{doc-apihelp-param|delete|oldimage}}",
+       "apihelp-delete-example-simple": "{{doc-apihelp-example|delete}}",
+       "apihelp-delete-example-reason": "{{doc-apihelp-example|delete}}",
+       "apihelp-disabled-description": "{{doc-apihelp-description|disabled}}",
+       "apihelp-edit-description": "{{doc-apihelp-description|edit}}",
+       "apihelp-edit-param-title": "{{doc-apihelp-param|edit|title}}",
+       "apihelp-edit-param-pageid": "{{doc-apihelp-param|edit|pageid}}",
+       "apihelp-edit-param-section": "{{doc-apihelp-param|edit|section}}",
+       "apihelp-edit-param-sectiontitle": "{{doc-apihelp-param|edit|sectiontitle}}",
+       "apihelp-edit-param-text": "{{doc-apihelp-param|edit|text}}",
+       "apihelp-edit-param-summary": "{{doc-apihelp-param|edit|summary}}",
+       "apihelp-edit-param-minor": "{{doc-apihelp-param|edit|minor}}\n{{Identical|Minor edit}}",
+       "apihelp-edit-param-notminor": "{{doc-apihelp-param|edit|notminor}}",
+       "apihelp-edit-param-bot": "{{doc-apihelp-param|edit|bot}}",
+       "apihelp-edit-param-basetimestamp": "{{doc-apihelp-param|edit|basetimestamp}}",
+       "apihelp-edit-param-starttimestamp": "{{doc-apihelp-param|edit|starttimestamp}}",
+       "apihelp-edit-param-recreate": "{{doc-apihelp-param|edit|recreate}}",
+       "apihelp-edit-param-createonly": "{{doc-apihelp-param|edit|createonly}}",
+       "apihelp-edit-param-nocreate": "{{doc-apihelp-param|edit|nocreate}}",
+       "apihelp-edit-param-watch": "{{doc-apihelp-param|edit|watch}}",
+       "apihelp-edit-param-unwatch": "{{doc-apihelp-param|edit|unwatch}}",
+       "apihelp-edit-param-watchlist": "{{doc-apihelp-param|edit|watchlist}}",
+       "apihelp-edit-param-md5": "{{doc-apihelp-param|edit|md5}}",
+       "apihelp-edit-param-prependtext": "{{doc-apihelp-param|edit|prependtext}}",
+       "apihelp-edit-param-appendtext": "{{doc-apihelp-param|edit|appendtext}}",
+       "apihelp-edit-param-undo": "{{doc-apihelp-param|edit|undo}}",
+       "apihelp-edit-param-undoafter": "{{doc-apihelp-param|edit|undoafter}}",
+       "apihelp-edit-param-redirect": "{{doc-apihelp-param|edit|redirect}}",
+       "apihelp-edit-param-contentformat": "{{doc-apihelp-param|edit|contentformat}}",
+       "apihelp-edit-param-contentmodel": "{{doc-apihelp-param|edit|contentmodel}}",
+       "apihelp-edit-param-token": "{{doc-apihelp-param|edit|token}}",
+       "apihelp-edit-example-edit": "{{doc-apihelp-example|edit}}",
+       "apihelp-edit-example-prepend": "{{doc-apihelp-example|edit}}",
+       "apihelp-edit-example-undo": "{{doc-apihelp-example|edit}}",
+       "apihelp-emailuser-description": "{{doc-apihelp-description|emailuser}}",
+       "apihelp-emailuser-param-target": "{{doc-apihelp-param|emailuser|target}}",
+       "apihelp-emailuser-param-subject": "{{doc-apihelp-param|emailuser|subject}}",
+       "apihelp-emailuser-param-text": "{{doc-apihelp-param|emailuser|text}}",
+       "apihelp-emailuser-param-ccme": "{{doc-apihelp-param|emailuser|ccme}}",
+       "apihelp-emailuser-example-email": "{{doc-apihelp-example|emailuser}}",
+       "apihelp-expandtemplates-description": "{{doc-apihelp-description|expandtemplates}}",
+       "apihelp-expandtemplates-param-title": "{{doc-apihelp-param|expandtemplates|title}}",
+       "apihelp-expandtemplates-param-text": "{{doc-apihelp-param|expandtemplates|text}}",
+       "apihelp-expandtemplates-param-prop": "{{doc-apihelp-param|expandtemplates|prop}}",
+       "apihelp-expandtemplates-param-includecomments": "{{doc-apihelp-param|expandtemplates|includecomments}}",
+       "apihelp-expandtemplates-param-generatexml": "{{doc-apihelp-param|expandtemplates|generatexml}}",
+       "apihelp-expandtemplates-example-simple": "{{doc-apihelp-example|expandtemplates}}",
+       "apihelp-feedcontributions-description": "{{doc-apihelp-description|feedcontributions}}",
+       "apihelp-feedcontributions-param-feedformat": "{{doc-apihelp-param|feedcontributions|feedformat}}",
+       "apihelp-feedcontributions-param-user": "{{doc-apihelp-param|feedcontributions|user}}",
+       "apihelp-feedcontributions-param-namespace": "{{doc-apihelp-param|feedcontributions|namespace}}",
+       "apihelp-feedcontributions-param-year": "{{doc-apihelp-param|feedcontributions|year}}",
+       "apihelp-feedcontributions-param-month": "{{doc-apihelp-param|feedcontributions|month}}",
+       "apihelp-feedcontributions-param-tagfilter": "{{doc-apihelp-param|feedcontributions|tagfilter}}",
+       "apihelp-feedcontributions-param-deletedonly": "{{doc-apihelp-param|feedcontributions|deletedonly}}",
+       "apihelp-feedcontributions-param-toponly": "{{doc-apihelp-param|feedcontributions|toponly}}",
+       "apihelp-feedcontributions-param-newonly": "{{doc-apihelp-param|feedcontributions|newonly}}",
+       "apihelp-feedcontributions-param-showsizediff": "{{doc-apihelp-param|feedcontributions|showsizediff}}",
+       "apihelp-feedcontributions-example-simple": "{{doc-apihelp-example|feedcontributions}}",
+       "apihelp-feedrecentchanges-description": "{{doc-apihelp-description|feedrecentchanges}}",
+       "apihelp-feedrecentchanges-param-feedformat": "{{doc-apihelp-param|feedrecentchanges|feedformat}}",
+       "apihelp-feedrecentchanges-param-namespace": "{{doc-apihelp-param|feedrecentchanges|namespace}}",
+       "apihelp-feedrecentchanges-param-invert": "{{doc-apihelp-param|feedrecentchanges|invert}}",
+       "apihelp-feedrecentchanges-param-associated": "{{doc-apihelp-param|feedrecentchanges|associated}}",
+       "apihelp-feedrecentchanges-param-days": "{{doc-apihelp-param|feedrecentchanges|days}}",
+       "apihelp-feedrecentchanges-param-limit": "{{doc-apihelp-param|feedrecentchanges|limit}}",
+       "apihelp-feedrecentchanges-param-from": "{{doc-apihelp-param|feedrecentchanges|from}}",
+       "apihelp-feedrecentchanges-param-hideminor": "{{doc-apihelp-param|feedrecentchanges|hideminor}}",
+       "apihelp-feedrecentchanges-param-hidebots": "{{doc-apihelp-param|feedrecentchanges|hidebots}}",
+       "apihelp-feedrecentchanges-param-hideanons": "{{doc-apihelp-param|feedrecentchanges|hideanons}}",
+       "apihelp-feedrecentchanges-param-hideliu": "{{doc-apihelp-param|feedrecentchanges|hideliu}}",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "{{doc-apihelp-param|feedrecentchanges|hidepatrolled}}",
+       "apihelp-feedrecentchanges-param-hidemyself": "{{doc-apihelp-param|feedrecentchanges|hidemyself}}",
+       "apihelp-feedrecentchanges-param-tagfilter": "{{doc-apihelp-param|feedrecentchanges|tagfilter}}",
+       "apihelp-feedrecentchanges-param-target": "{{doc-apihelp-param|feedrecentchanges|target}}",
+       "apihelp-feedrecentchanges-param-showlinkedto": "{{doc-apihelp-param|feedrecentchanges|showlinkedto}}",
+       "apihelp-feedrecentchanges-example-simple": "{{doc-apihelp-example|feedrecentchanges}}",
+       "apihelp-feedrecentchanges-example-30days": "{{doc-apihelp-example|feedrecentchanges}}",
+       "apihelp-feedwatchlist-description": "{{doc-apihelp-description|feedwatchlist}}",
+       "apihelp-feedwatchlist-param-feedformat": "{{doc-apihelp-param|feedwatchlist|feedformat}}",
+       "apihelp-feedwatchlist-param-hours": "{{doc-apihelp-param|feedwatchlist|hours}}",
+       "apihelp-feedwatchlist-param-linktosections": "{{doc-apihelp-param|feedwatchlist|linktosections}}",
+       "apihelp-feedwatchlist-example-default": "{{doc-apihelp-example|feedwatchlist}}",
+       "apihelp-feedwatchlist-example-all6hrs": "{{doc-apihelp-example|feedwatchlist}}",
+       "apihelp-filerevert-description": "{{doc-apihelp-description|filerevert}}",
+       "apihelp-filerevert-param-filename": "{{doc-apihelp-param|filerevert|filename}}",
+       "apihelp-filerevert-param-comment": "{{doc-apihelp-param|filerevert|comment}}",
+       "apihelp-filerevert-param-archivename": "{{doc-apihelp-param|filerevert|archivename}}",
+       "apihelp-filerevert-example-revert": "{{doc-apihelp-example|filerevert}}",
+       "apihelp-help-description": "{{doc-apihelp-description|help}}",
+       "apihelp-help-param-modules": "{{doc-apihelp-param|help|modules}}",
+       "apihelp-help-param-submodules": "{{doc-apihelp-param|help|submodules}}",
+       "apihelp-help-param-recursivesubmodules": "{{doc-apihelp-param|help|recursivesubmodules}}",
+       "apihelp-help-param-helpformat": "{{doc-apihelp-param|help|helpformat}}",
+       "apihelp-help-param-wrap": "{{doc-apihelp-param|help|wrap}}",
+       "apihelp-help-param-toc": "{{doc-apihelp-param|help|toc}}",
+       "apihelp-help-example-main": "{{doc-apihelp-example|help}}",
+       "apihelp-help-example-recursive": "{{doc-apihelp-example|help}}",
+       "apihelp-help-example-help": "{{doc-apihelp-example|help}}",
+       "apihelp-help-example-query": "{{doc-apihelp-example|help}}",
+       "apihelp-imagerotate-description": "{{doc-apihelp-description|imagerotate}}",
+       "apihelp-imagerotate-param-rotation": "{{doc-apihelp-param|imagerotate|rotation}}",
+       "apihelp-imagerotate-example-simple": "{{doc-apihelp-example|imagerotate}}",
+       "apihelp-imagerotate-example-generator": "{{doc-apihelp-example|imagerotate}}",
+       "apihelp-import-description": "{{doc-apihelp-description|import}}",
+       "apihelp-import-param-summary": "{{doc-apihelp-param|import|summary}}",
+       "apihelp-import-param-xml": "{{doc-apihelp-param|import|xml}}",
+       "apihelp-import-param-interwikisource": "{{doc-apihelp-param|import|interwikisource}}",
+       "apihelp-import-param-interwikipage": "{{doc-apihelp-param|import|interwikipage}}",
+       "apihelp-import-param-fullhistory": "{{doc-apihelp-param|import|fullhistory}}",
+       "apihelp-import-param-templates": "{{doc-apihelp-param|import|templates}}",
+       "apihelp-import-param-namespace": "{{doc-apihelp-param|import|namespace}}",
+       "apihelp-import-param-rootpage": "{{doc-apihelp-param|import|rootpage}}",
+       "apihelp-import-example-import": "{{doc-apihelp-example|import}}",
+       "apihelp-login-description": "{{doc-apihelp-description|login}}",
+       "apihelp-login-param-name": "{{doc-apihelp-param|login|name}}\n{{Identical|Username}}",
+       "apihelp-login-param-password": "{{doc-apihelp-param|login|password}}\n{{Identical|Password}}",
+       "apihelp-login-param-domain": "{{doc-apihelp-param|login|domain}}",
+       "apihelp-login-param-token": "{{doc-apihelp-param|login|token}}",
+       "apihelp-login-example-gettoken": "{{doc-apihelp-example|login}}",
+       "apihelp-login-example-login": "{{doc-apihelp-example|login}}",
+       "apihelp-logout-description": "{{doc-apihelp-description|logout}}",
+       "apihelp-logout-example-logout": "{{doc-apihelp-example|logout}}",
+       "apihelp-move-description": "{{doc-apihelp-description|move}}",
+       "apihelp-move-param-from": "{{doc-apihelp-param|move|from}}",
+       "apihelp-move-param-fromid": "{{doc-apihelp-param|move|fromid}}",
+       "apihelp-move-param-to": "{{doc-apihelp-param|move|to}}",
+       "apihelp-move-param-reason": "{{doc-apihelp-param|move|reason}}",
+       "apihelp-move-param-movetalk": "{{doc-apihelp-param|move|movetalk}}",
+       "apihelp-move-param-movesubpages": "{{doc-apihelp-param|move|movesubpages}}",
+       "apihelp-move-param-noredirect": "{{doc-apihelp-param|move|noredirect}}",
+       "apihelp-move-param-watch": "{{doc-apihelp-param|move|watch}}",
+       "apihelp-move-param-unwatch": "{{doc-apihelp-param|move|unwatch}}",
+       "apihelp-move-param-watchlist": "{{doc-apihelp-param|move|watchlist}}",
+       "apihelp-move-param-ignorewarnings": "{{doc-apihelp-param|move|ignorewarnings}}",
+       "apihelp-move-example-move": "{{doc-apihelp-example|move}}",
+       "apihelp-opensearch-description": "{{doc-apihelp-description|opensearch}}",
+       "apihelp-opensearch-param-search": "{{doc-apihelp-param|opensearch|search}}",
+       "apihelp-opensearch-param-limit": "{{doc-apihelp-param|opensearch|limit}}",
+       "apihelp-opensearch-param-namespace": "{{doc-apihelp-param|opensearch|namespace}}",
+       "apihelp-opensearch-param-suggest": "{{doc-apihelp-param|opensearch|suggest}}",
+       "apihelp-opensearch-param-format": "{{doc-apihelp-param|opensearch|format}}",
+       "apihelp-opensearch-example-te": "{{doc-apihelp-example|opensearch}}",
+       "apihelp-options-description": "{{doc-apihelp-description|options}}",
+       "apihelp-options-param-reset": "{{doc-apihelp-param|options|reset}}",
+       "apihelp-options-param-resetkinds": "{{doc-apihelp-param|options|resetkinds}}",
+       "apihelp-options-param-change": "{{doc-apihelp-param|options|change}}",
+       "apihelp-options-param-optionname": "{{doc-apihelp-param|options|optionname}}",
+       "apihelp-options-param-optionvalue": "{{doc-apihelp-param|options|optionvalue}}",
+       "apihelp-options-example-reset": "{{doc-apihelp-example|options}}",
+       "apihelp-options-example-change": "{{doc-apihelp-example|options}}",
+       "apihelp-options-example-complex": "{{doc-apihelp-example|options}}",
+       "apihelp-paraminfo-description": "{{doc-apihelp-description|paraminfo}}",
+       "apihelp-paraminfo-param-modules": "{{doc-apihelp-param|paraminfo|modules}}",
+       "apihelp-paraminfo-param-helpformat": "{{doc-apihelp-param|paraminfo|helpformat}}",
+       "apihelp-paraminfo-param-querymodules": "{{doc-apihelp-param|paraminfo|querymodules}}",
+       "apihelp-paraminfo-param-mainmodule": "{{doc-apihelp-param|paraminfo|mainmodule}}",
+       "apihelp-paraminfo-param-pagesetmodule": "{{doc-apihelp-param|paraminfo|pagesetmodule}}",
+       "apihelp-paraminfo-param-formatmodules": "{{doc-apihelp-param|paraminfo|formatmodules}}",
+       "apihelp-paraminfo-example-1": "{{doc-apihelp-example|paraminfo}}",
+       "apihelp-parse-description": "{{doc-apihelp-description|parse}}",
+       "apihelp-parse-param-title": "{{doc-apihelp-param|parse|title}}",
+       "apihelp-parse-param-text": "{{doc-apihelp-param|parse|text}}",
+       "apihelp-parse-param-summary": "{{doc-apihelp-param|parse|summary}}",
+       "apihelp-parse-param-page": "{{doc-apihelp-param|parse|page}}",
+       "apihelp-parse-param-pageid": "{{doc-apihelp-param|parse|pageid}}",
+       "apihelp-parse-param-redirects": "{{doc-apihelp-param|parse|redirects}}",
+       "apihelp-parse-param-oldid": "{{doc-apihelp-param|parse|oldid}}",
+       "apihelp-parse-param-prop": "{{doc-apihelp-param|parse|prop}}",
+       "apihelp-parse-param-pst": "{{doc-apihelp-param|parse|pst}}",
+       "apihelp-parse-param-onlypst": "{{doc-apihelp-param|parse|onlypst}}",
+       "apihelp-parse-param-effectivelanglinks": "{{doc-apihelp-param|parse|effectivelanglinks}}",
+       "apihelp-parse-param-section": "{{doc-apihelp-param|parse|section}}",
+       "apihelp-parse-param-disablepp": "{{doc-apihelp-param|parse|disablepp}}",
+       "apihelp-parse-param-disableeditsection": "{{doc-apihelp-param|parse|disableeditsection}}",
+       "apihelp-parse-param-generatexml": "{{doc-apihelp-param|parse|generatexml|params=* $1 - Value of the constant CONTENT_MODEL_WIKITEXT|paramstart=2}}",
+       "apihelp-parse-param-preview": "{{doc-apihelp-param|parse|preview}}",
+       "apihelp-parse-param-sectionpreview": "{{doc-apihelp-param|parse|sectionpreview}}",
+       "apihelp-parse-param-disabletoc": "{{doc-apihelp-param|parse|disabletoc}}",
+       "apihelp-parse-param-contentformat": "{{doc-apihelp-param|parse|contentformat}}",
+       "apihelp-parse-param-contentmodel": "{{doc-apihelp-param|parse|contentmodel}}",
+       "apihelp-parse-example-page": "{{doc-apihelp-example|parse}}",
+       "apihelp-parse-example-text": "{{doc-apihelp-example|parse}}",
+       "apihelp-parse-example-texttitle": "{{doc-apihelp-example|parse}}",
+       "apihelp-parse-example-summary": "{{doc-apihelp-example|parse}}",
+       "apihelp-patrol-description": "{{doc-apihelp-description|patrol}}",
+       "apihelp-patrol-param-rcid": "{{doc-apihelp-param|patrol|rcid}}",
+       "apihelp-patrol-param-revid": "{{doc-apihelp-param|patrol|revid}}",
+       "apihelp-patrol-example-rcid": "{{doc-apihelp-example|patrol}}",
+       "apihelp-patrol-example-revid": "{{doc-apihelp-example|patrol}}",
+       "apihelp-protect-description": "{{doc-apihelp-description|protect}}",
+       "apihelp-protect-param-title": "{{doc-apihelp-param|protect|title}}",
+       "apihelp-protect-param-pageid": "{{doc-apihelp-param|protect|pageid}}",
+       "apihelp-protect-param-protections": "{{doc-apihelp-param|protect|protections}}",
+       "apihelp-protect-param-expiry": "{{doc-apihelp-param|protect|expiry}}",
+       "apihelp-protect-param-reason": "{{doc-apihelp-param|protect|reason}}",
+       "apihelp-protect-param-cascade": "{{doc-apihelp-param|protect|cascade}}",
+       "apihelp-protect-param-watch": "{{doc-apihelp-param|protect|watch}}",
+       "apihelp-protect-param-watchlist": "{{doc-apihelp-param|protect|watchlist}}",
+       "apihelp-protect-example-protect": "{{doc-apihelp-example|protect}}",
+       "apihelp-protect-example-unprotect": "{{doc-apihelp-example|protect}}",
+       "apihelp-protect-example-unprotect2": "{{doc-apihelp-example|protect}}",
+       "apihelp-purge-description": "{{doc-apihelp-description|purge}}",
+       "apihelp-purge-param-forcelinkupdate": "{{doc-apihelp-param|purge|forcelinkupdate}}",
+       "apihelp-purge-param-forcerecursivelinkupdate": "{{doc-apihelp-param|purge|forcerecursivelinkupdate}}",
+       "apihelp-purge-example-simple": "{{doc-apihelp-example|purge}}",
+       "apihelp-purge-example-generator": "{{doc-apihelp-example|purge}}",
+       "apihelp-query-description": "{{doc-apihelp-description|query}}",
+       "apihelp-query-param-prop": "{{doc-apihelp-param|query|prop}}",
+       "apihelp-query-param-list": "{{doc-apihelp-param|query|list}}",
+       "apihelp-query-param-meta": "{{doc-apihelp-param|query|meta}}",
+       "apihelp-query-param-indexpageids": "{{doc-apihelp-param|query|indexpageids}}",
+       "apihelp-query-param-export": "{{doc-apihelp-param|query|export}}",
+       "apihelp-query-param-exportnowrap": "{{doc-apihelp-param|query|exportnowrap}}",
+       "apihelp-query-param-iwurl": "{{doc-apihelp-param|query|iwurl}}",
+       "apihelp-query-param-continue": "{{doc-apihelp-param|query|continue}}",
+       "apihelp-query-param-rawcontinue": "{{doc-apihelp-param|query|rawcontinue}}",
+       "apihelp-query-example-revisions": "{{doc-apihelp-example|query}}",
+       "apihelp-query-example-allpages": "{{doc-apihelp-example|query}}",
+       "apihelp-query+allcategories-description": "{{doc-apihelp-description|query+allcategories}}",
+       "apihelp-query+allcategories-param-from": "{{doc-apihelp-param|query+allcategories|from}}",
+       "apihelp-query+allcategories-param-to": "{{doc-apihelp-param|query+allcategories|to}}",
+       "apihelp-query+allcategories-param-prefix": "{{doc-apihelp-param|query+allcategories|prefix}}",
+       "apihelp-query+allcategories-param-dir": "{{doc-apihelp-param|query+allcategories|dir}}",
+       "apihelp-query+allcategories-param-min": "{{doc-apihelp-param|query+allcategories|min}}",
+       "apihelp-query+allcategories-param-max": "{{doc-apihelp-param|query+allcategories|max}}",
+       "apihelp-query+allcategories-param-limit": "{{doc-apihelp-param|query+allcategories|limit}}",
+       "apihelp-query+allcategories-param-prop": "{{doc-apihelp-param|query+allcategories|prop}}",
+       "apihelp-query+allcategories-example-size": "{{doc-apihelp-example|query+allcategories}}",
+       "apihelp-query+allcategories-example-generator": "{{doc-apihelp-example|query+allcategories}}",
+       "apihelp-query+alldeletedrevisions-description": "{{doc-apihelp-description|query+alldeletedrevisions}}",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "{{doc-apihelp-paraminfo|query+alldeletedrevisions|useronly}}",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "{{doc-apihelp-paraminfo|query+alldeletedrevisions|nonuseronly}}",
+       "apihelp-query+alldeletedrevisions-param-start": "{{doc-apihelp-param|query+alldeletedrevisions|start}}",
+       "apihelp-query+alldeletedrevisions-param-end": "{{doc-apihelp-param|query+alldeletedrevisions|end}}",
+       "apihelp-query+alldeletedrevisions-param-from": "{{doc-apihelp-param|query+alldeletedrevisions|from}}",
+       "apihelp-query+alldeletedrevisions-param-to": "{{doc-apihelp-param|query+alldeletedrevisions|to}}",
+       "apihelp-query+alldeletedrevisions-param-prefix": "{{doc-apihelp-param|query+alldeletedrevisions|prefix}}",
+       "apihelp-query+alldeletedrevisions-param-tag": "{{doc-apihelp-param|query+alldeletedrevisions|tag}}",
+       "apihelp-query+alldeletedrevisions-param-user": "{{doc-apihelp-param|query+alldeletedrevisions|user}}",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "{{doc-apihelp-param|query+alldeletedrevisions|excludeuser}}",
+       "apihelp-query+alldeletedrevisions-param-namespace": "{{doc-apihelp-param|query+alldeletedrevisions|namespace}}",
+       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "{{doc-apihelp-param|query+alldeletedrevisions|miser-user-namespace}}",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "{{doc-apihelp-param|query+alldeletedrevisions|generatetitles}}",
+       "apihelp-query+alldeletedrevisions-example-user": "{{doc-apihelp-example|query+alldeletedrevisions}}",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "{{doc-apihelp-example|query+alldeletedrevisions}}",
+       "apihelp-query+allfileusages-description": "{{doc-apihelp-description|query+allfileusages}}",
+       "apihelp-query+allfileusages-param-from": "{{doc-apihelp-param|query+allfileusages|from}}",
+       "apihelp-query+allfileusages-param-to": "{{doc-apihelp-param|query+allfileusages|to}}",
+       "apihelp-query+allfileusages-param-prefix": "{{doc-apihelp-param|query+allfileusages|prefix}}",
+       "apihelp-query+allfileusages-param-unique": "{{doc-apihelp-param|query+allfileusages|unique}}",
+       "apihelp-query+allfileusages-param-prop": "{{doc-apihelp-param|query+allfileusages|prop}}",
+       "apihelp-query+allfileusages-param-limit": "{{doc-apihelp-param|query+allfileusages|limit}}",
+       "apihelp-query+allfileusages-param-dir": "{{doc-apihelp-param|query+allfileusages|dir}}",
+       "apihelp-query+allfileusages-example-B": "{{doc-apihelp-example|query+allfileusages}}",
+       "apihelp-query+allfileusages-example-unique": "{{doc-apihelp-example|query+allfileusages}}",
+       "apihelp-query+allfileusages-example-unique-generator": "{{doc-apihelp-example|query+allfileusages}}",
+       "apihelp-query+allfileusages-example-generator": "{{doc-apihelp-example|query+allfileusages}}",
+       "apihelp-query+allimages-description": "{{doc-apihelp-description|query+allimages}}",
+       "apihelp-query+allimages-param-sort": "{{doc-apihelp-param|query+allimages|sort}}",
+       "apihelp-query+allimages-param-dir": "{{doc-apihelp-param|query+allimages|dir}}",
+       "apihelp-query+allimages-param-from": "{{doc-apihelp-param|query+allimages|from}}",
+       "apihelp-query+allimages-param-to": "{{doc-apihelp-param|query+allimages|to}}",
+       "apihelp-query+allimages-param-start": "{{doc-apihelp-param|query+allimages|start}}",
+       "apihelp-query+allimages-param-end": "{{doc-apihelp-param|query+allimages|end}}",
+       "apihelp-query+allimages-param-prop": "{{doc-apihelp-param|query+allimages|prop}}",
+       "apihelp-query+allimages-param-prefix": "{{doc-apihelp-param|query+allimages|prefix}}",
+       "apihelp-query+allimages-param-minsize": "{{doc-apihelp-param|query+allimages|minsize}}",
+       "apihelp-query+allimages-param-maxsize": "{{doc-apihelp-param|query+allimages|maxsize}}",
+       "apihelp-query+allimages-param-sha1": "{{doc-apihelp-param|query+allimages|sha1}}",
+       "apihelp-query+allimages-param-sha1base36": "{{doc-apihelp-param|query+allimages|sha1base36}}",
+       "apihelp-query+allimages-param-user": "{{doc-apihelp-param|query+allimages|user}}",
+       "apihelp-query+allimages-param-filterbots": "{{doc-apihelp-param|query+allimages|filterbots}}",
+       "apihelp-query+allimages-param-mime": "{{doc-apihelp-param|query+allimages|mime}}",
+       "apihelp-query+allimages-param-limit": "{{doc-apihelp-param|query+allimages|limit}}",
+       "apihelp-query+allimages-example-B": "{{doc-apihelp-example|query+allimages}}",
+       "apihelp-query+allimages-example-recent": "{{doc-apihelp-example|query+allimages}}",
+       "apihelp-query+allimages-example-generator": "{{doc-apihelp-example|query+allimages}}",
+       "apihelp-query+alllinks-description": "{{doc-apihelp-description|query+alllinks}}",
+       "apihelp-query+alllinks-param-from": "{{doc-apihelp-param|query+alllinks|from}}",
+       "apihelp-query+alllinks-param-to": "{{doc-apihelp-param|query+alllinks|to}}",
+       "apihelp-query+alllinks-param-prefix": "{{doc-apihelp-param|query+alllinks|prefix}}",
+       "apihelp-query+alllinks-param-unique": "{{doc-apihelp-param|query+alllinks|unique}}",
+       "apihelp-query+alllinks-param-prop": "{{doc-apihelp-param|query+alllinks|prop}}",
+       "apihelp-query+alllinks-param-namespace": "{{doc-apihelp-param|query+alllinks|namespace}}",
+       "apihelp-query+alllinks-param-limit": "{{doc-apihelp-param|query+alllinks|limit}}",
+       "apihelp-query+alllinks-param-dir": "{{doc-apihelp-param|query+alllinks|dir}}",
+       "apihelp-query+alllinks-example-B": "{{doc-apihelp-example|query+alllinks}}",
+       "apihelp-query+alllinks-example-unique": "{{doc-apihelp-example|query+alllinks}}",
+       "apihelp-query+alllinks-example-unique-generator": "{{doc-apihelp-example|query+alllinks}}",
+       "apihelp-query+alllinks-example-generator": "{{doc-apihelp-example|query+alllinks}}",
+       "apihelp-query+allmessages-description": "{{doc-apihelp-description|query+allmessages}}",
+       "apihelp-query+allmessages-param-messages": "{{doc-apihelp-param|query+allmessages|messages}}",
+       "apihelp-query+allmessages-param-prop": "{{doc-apihelp-param|query+allmessages|prop}}",
+       "apihelp-query+allmessages-param-enableparser": "{{doc-apihelp-param|query+allmessages|enableparser}}",
+       "apihelp-query+allmessages-param-nocontent": "{{doc-apihelp-param|query+allmessages|nocontent}}",
+       "apihelp-query+allmessages-param-includelocal": "{{doc-apihelp-param|query+allmessages|includelocal}}",
+       "apihelp-query+allmessages-param-args": "{{doc-apihelp-param|query+allmessages|args}}",
+       "apihelp-query+allmessages-param-filter": "{{doc-apihelp-param|query+allmessages|filter}}",
+       "apihelp-query+allmessages-param-customised": "{{doc-apihelp-param|query+allmessages|customised}}",
+       "apihelp-query+allmessages-param-lang": "{{doc-apihelp-param|query+allmessages|lang}}",
+       "apihelp-query+allmessages-param-from": "{{doc-apihelp-param|query+allmessages|from}}",
+       "apihelp-query+allmessages-param-to": "{{doc-apihelp-param|query+allmessages|to}}",
+       "apihelp-query+allmessages-param-title": "{{doc-apihelp-param|query+allmessages|title}}",
+       "apihelp-query+allmessages-param-prefix": "{{doc-apihelp-param|query+allmessages|prefix}}",
+       "apihelp-query+allmessages-example-ipb": "{{doc-apihelp-example|query+allmessages}}",
+       "apihelp-query+allmessages-example-de": "{{doc-apihelp-example|query+allmessages}}",
+       "apihelp-query+allpages-description": "{{doc-apihelp-description|query+allpages}}",
+       "apihelp-query+allpages-param-from": "{{doc-apihelp-param|query+allpages|from}}",
+       "apihelp-query+allpages-param-to": "{{doc-apihelp-param|query+allpages|to}}",
+       "apihelp-query+allpages-param-prefix": "{{doc-apihelp-param|query+allpages|prefix}}",
+       "apihelp-query+allpages-param-namespace": "{{doc-apihelp-param|query+allpages|namespace}}",
+       "apihelp-query+allpages-param-filterredir": "{{doc-apihelp-param|query+allpages|filterredir}}",
+       "apihelp-query+allpages-param-minsize": "{{doc-apihelp-param|query+allpages|minsize}}",
+       "apihelp-query+allpages-param-maxsize": "{{doc-apihelp-param|query+allpages|maxsize}}",
+       "apihelp-query+allpages-param-prtype": "{{doc-apihelp-param|query+allpages|prtype}}",
+       "apihelp-query+allpages-param-prlevel": "{{doc-apihelp-param|query+allpages|prlevel}}",
+       "apihelp-query+allpages-param-prfiltercascade": "{{doc-apihelp-param|query+allpages|prfiltercascade}}",
+       "apihelp-query+allpages-param-limit": "{{doc-apihelp-param|query+allpages|limit}}",
+       "apihelp-query+allpages-param-dir": "{{doc-apihelp-param|query+allpages|dir}}",
+       "apihelp-query+allpages-param-filterlanglinks": "{{doc-apihelp-param|query+allpages|filterlanglinks}}",
+       "apihelp-query+allpages-param-prexpiry": "{{doc-apihelp-param|query+allpages|prexpiry}}",
+       "apihelp-query+allpages-example-B": "{{doc-apihelp-example|query+allpages}}",
+       "apihelp-query+allpages-example-generator": "{{doc-apihelp-example|query+allpages}}",
+       "apihelp-query+allpages-example-generator-revisions": "{{doc-apihelp-example|query+allpages}}",
+       "apihelp-query+allredirects-description": "{{doc-apihelp-description|query+allredirects}}",
+       "apihelp-query+allredirects-param-from": "{{doc-apihelp-param|query+allredirects|from}}",
+       "apihelp-query+allredirects-param-to": "{{doc-apihelp-param|query+allredirects|to}}",
+       "apihelp-query+allredirects-param-prefix": "{{doc-apihelp-param|query+allredirects|prefix}}",
+       "apihelp-query+allredirects-param-unique": "{{doc-apihelp-param|query+allredirects|unique}}",
+       "apihelp-query+allredirects-param-prop": "{{doc-apihelp-param|query+allredirects|prop}}",
+       "apihelp-query+allredirects-param-namespace": "{{doc-apihelp-param|query+allredirects|namespace}}",
+       "apihelp-query+allredirects-param-limit": "{{doc-apihelp-param|query+allredirects|limit}}",
+       "apihelp-query+allredirects-param-dir": "{{doc-apihelp-param|query+allredirects|dir}}",
+       "apihelp-query+allredirects-example-B": "{{doc-apihelp-example|query+allredirects}}",
+       "apihelp-query+allredirects-example-unique": "{{doc-apihelp-example|query+allredirects}}",
+       "apihelp-query+allredirects-example-unique-generator": "{{doc-apihelp-example|query+allredirects}}",
+       "apihelp-query+allredirects-example-generator": "{{doc-apihelp-example|query+allredirects}}",
+       "apihelp-query+alltransclusions-description": "{{doc-apihelp-description|query+alltransclusions}}",
+       "apihelp-query+alltransclusions-param-from": "{{doc-apihelp-param|query+alltransclusions|from}}",
+       "apihelp-query+alltransclusions-param-to": "{{doc-apihelp-param|query+alltransclusions|to}}",
+       "apihelp-query+alltransclusions-param-prefix": "{{doc-apihelp-param|query+alltransclusions|prefix}}",
+       "apihelp-query+alltransclusions-param-unique": "{{doc-apihelp-param|query+alltransclusions|unique}}",
+       "apihelp-query+alltransclusions-param-prop": "{{doc-apihelp-param|query+alltransclusions|prop}}",
+       "apihelp-query+alltransclusions-param-namespace": "{{doc-apihelp-param|query+alltransclusions|namespace}}",
+       "apihelp-query+alltransclusions-param-limit": "{{doc-apihelp-param|query+alltransclusions|limit}}",
+       "apihelp-query+alltransclusions-param-dir": "{{doc-apihelp-param|query+alltransclusions|dir}}",
+       "apihelp-query+alltransclusions-example-B": "{{doc-apihelp-example|query+alltransclusions}}",
+       "apihelp-query+alltransclusions-example-unique": "{{doc-apihelp-example|query+alltransclusions}}",
+       "apihelp-query+alltransclusions-example-unique-generator": "{{doc-apihelp-example|query+alltransclusions}}",
+       "apihelp-query+alltransclusions-example-generator": "{{doc-apihelp-example|query+alltransclusions}}",
+       "apihelp-query+allusers-description": "{{doc-apihelp-description|query+allusers}}",
+       "apihelp-query+allusers-param-from": "{{doc-apihelp-param|query+allusers|from}}",
+       "apihelp-query+allusers-param-to": "{{doc-apihelp-param|query+allusers|to}}",
+       "apihelp-query+allusers-param-prefix": "{{doc-apihelp-param|query+allusers|prefix}}",
+       "apihelp-query+allusers-param-dir": "{{doc-apihelp-param|query+allusers|dir}}",
+       "apihelp-query+allusers-param-group": "{{doc-apihelp-param|query+allusers|group}}",
+       "apihelp-query+allusers-param-excludegroup": "{{doc-apihelp-param|query+allusers|excludegroup}}",
+       "apihelp-query+allusers-param-rights": "{{doc-apihelp-param|query+allusers|rights}}",
+       "apihelp-query+allusers-param-prop": "{{doc-apihelp-param|query+allusers|prop}}",
+       "apihelp-query+allusers-param-limit": "{{doc-apihelp-param|query+allusers|limit}}",
+       "apihelp-query+allusers-param-witheditsonly": "{{doc-apihelp-param|query+allusers|witheditsonly}}",
+       "apihelp-query+allusers-param-activeusers": "{{doc-apihelp-param|query+allusers|activeusers|params=* $1 - Value of [[mw:Manual:$wgActiveUserDays]]|paramstart=2}}",
+       "apihelp-query+allusers-example-Y": "{{doc-apihelp-example|query+allusers}}",
+       "apihelp-query+backlinks-description": "{{doc-apihelp-description|query+backlinks}}",
+       "apihelp-query+backlinks-param-title": "{{doc-apihelp-param|query+backlinks|title}}",
+       "apihelp-query+backlinks-param-pageid": "{{doc-apihelp-param|query+backlinks|pageid}}",
+       "apihelp-query+backlinks-param-namespace": "{{doc-apihelp-param|query+backlinks|namespace}}",
+       "apihelp-query+backlinks-param-dir": "{{doc-apihelp-param|query+backlinks|dir}}",
+       "apihelp-query+backlinks-param-filterredir": "{{doc-apihelp-param|query+backlinks|filterredir}}",
+       "apihelp-query+backlinks-param-limit": "{{doc-apihelp-param|query+backlinks|limit}}",
+       "apihelp-query+backlinks-param-redirect": "{{doc-apihelp-param|query+backlinks|redirect}}",
+       "apihelp-query+backlinks-example-simple": "{{doc-apihelp-example|query+backlinks}}",
+       "apihelp-query+backlinks-example-generator": "{{doc-apihelp-example|query+backlinks}}",
+       "apihelp-query+blocks-description": "{{doc-apihelp-description|query+blocks}}",
+       "apihelp-query+blocks-param-start": "{{doc-apihelp-param|query+blocks|start}}",
+       "apihelp-query+blocks-param-end": "{{doc-apihelp-param|query+blocks|end}}",
+       "apihelp-query+blocks-param-ids": "{{doc-apihelp-param|query+blocks|ids}}",
+       "apihelp-query+blocks-param-users": "{{doc-apihelp-param|query+blocks|users}}",
+       "apihelp-query+blocks-param-ip": "{{doc-apihelp-param|query+blocks|ip|params=* $1 - Minimum CIDR prefix for IPv4\n* $2 - Minimum CIDR prefix for IPv6|paramstart=3}}",
+       "apihelp-query+blocks-param-limit": "{{doc-apihelp-param|query+blocks|limit}}",
+       "apihelp-query+blocks-param-prop": "{{doc-apihelp-param|query+blocks|prop}}",
+       "apihelp-query+blocks-param-show": "{{doc-apihelp-param|query+blocks|show}}",
+       "apihelp-query+blocks-example-simple": "{{doc-apihelp-example|query+blocks}}",
+       "apihelp-query+blocks-example-users": "{{doc-apihelp-example|query+blocks}}",
+       "apihelp-query+categories-description": "{{doc-apihelp-description|query+categories}}",
+       "apihelp-query+categories-param-prop": "{{doc-apihelp-param|query+categories|prop}}",
+       "apihelp-query+categories-param-show": "{{doc-apihelp-param|query+categories|show}}",
+       "apihelp-query+categories-param-limit": "{{doc-apihelp-param|query+categories|limit}}",
+       "apihelp-query+categories-param-categories": "{{doc-apihelp-param|query+categories|categories}}",
+       "apihelp-query+categories-param-dir": "{{doc-apihelp-param|query+categories|dir}}",
+       "apihelp-query+categories-example-simple": "{{doc-apihelp-example|query+categories}}",
+       "apihelp-query+categories-example-generator": "{{doc-apihelp-example|query+categories}}",
+       "apihelp-query+categoryinfo-description": "{{doc-apihelp-description|query+categoryinfo}}",
+       "apihelp-query+categoryinfo-example-simple": "{{doc-apihelp-example|query+categoryinfo}}",
+       "apihelp-query+categorymembers-description": "{{doc-apihelp-description|query+categorymembers}}",
+       "apihelp-query+categorymembers-param-title": "{{doc-apihelp-param|query+categorymembers|title}}",
+       "apihelp-query+categorymembers-param-pageid": "{{doc-apihelp-param|query+categorymembers|pageid}}",
+       "apihelp-query+categorymembers-param-prop": "{{doc-apihelp-param|query+categorymembers|prop}}",
+       "apihelp-query+categorymembers-param-namespace": "{{doc-apihelp-param|query+categorymembers|namespace}}",
+       "apihelp-query+categorymembers-param-type": "{{doc-apihelp-param|query+categorymembers|type}}",
+       "apihelp-query+categorymembers-param-limit": "{{doc-apihelp-param|query+categorymembers|limit}}",
+       "apihelp-query+categorymembers-param-sort": "{{doc-apihelp-param|query+categorymembers|sort}}",
+       "apihelp-query+categorymembers-param-dir": "{{doc-apihelp-param|query+categorymembers|dir}}",
+       "apihelp-query+categorymembers-param-start": "{{doc-apihelp-param|query+categorymembers|start}}",
+       "apihelp-query+categorymembers-param-end": "{{doc-apihelp-param|query+categorymembers|end}}",
+       "apihelp-query+categorymembers-param-starthexsortkey": "{{doc-apihelp-param|query+categorymembers|starthexsortkey}}",
+       "apihelp-query+categorymembers-param-endhexsortkey": "{{doc-apihelp-param|query+categorymembers|endhexsortkey}}",
+       "apihelp-query+categorymembers-param-startsortkeyprefix": "{{doc-apihelp-param|query+categorymembers|startsortkeyprefix}}",
+       "apihelp-query+categorymembers-param-endsortkeyprefix": "{{doc-apihelp-param|query+categorymembers|endsortkeyprefix}}",
+       "apihelp-query+categorymembers-param-startsortkey": "{{doc-apihelp-param|query+categorymembers|startsortkey}}",
+       "apihelp-query+categorymembers-param-endsortkey": "{{doc-apihelp-param|query+categorymembers|endsortkey}}",
+       "apihelp-query+categorymembers-example-simple": "{{doc-apihelp-example|query+categorymembers}}",
+       "apihelp-query+categorymembers-example-generator": "{{doc-apihelp-example|query+categorymembers}}",
+       "apihelp-query+contributors-description": "{{doc-apihelp-description|query+contributors}}",
+       "apihelp-query+contributors-param-group": "{{doc-apihelp-param|query+contributors|group}}",
+       "apihelp-query+contributors-param-excludegroup": "{{doc-apihelp-param|query+contributors|excludegroup}}",
+       "apihelp-query+contributors-param-rights": "{{doc-apihelp-param|query+contributors|rights}}",
+       "apihelp-query+contributors-param-excluderights": "{{doc-apihelp-param|query+contributors|excluderights}}",
+       "apihelp-query+contributors-param-limit": "{{doc-apihelp-param|query+contributors|limit}}",
+       "apihelp-query+contributors-example-simple": "{{doc-apihelp-example|query+contributors}}",
+       "apihelp-query+deletedrevisions-description": "{{doc-apihelp-description|query+deletedrevisions}}",
+       "apihelp-query+deletedrevisions-param-start": "{{doc-apihelp-param|query+deletedrevisions|start}}",
+       "apihelp-query+deletedrevisions-param-end": "{{doc-apihelp-param|query+deletedrevisions|end}}",
+       "apihelp-query+deletedrevisions-param-tag": "{{doc-apihelp-param|query+deletedrevisions|tag}}",
+       "apihelp-query+deletedrevisions-param-user": "{{doc-apihelp-param|query+deletedrevisions|user}}",
+       "apihelp-query+deletedrevisions-param-excludeuser": "{{doc-apihelp-param|query+deletedrevisions|excludeuser}}",
+       "apihelp-query+deletedrevisions-param-limit": "{{doc-apihelp-param|query+deletedrevisions|limit}}",
+       "apihelp-query+deletedrevisions-param-prop": "{{doc-apihelp-param|query+deletedrevisions|prop}}",
+       "apihelp-query+deletedrevisions-example-titles": "{{doc-apihelp-example|query+deletedrevisions}}",
+       "apihelp-query+deletedrevisions-example-revids": "{{doc-apihelp-example|query+deletedrevisions}}",
+       "apihelp-query+deletedrevs-description": "{{doc-apihelp-description|query+deletedrevs}}",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{doc-apihelp-paraminfo|query+deletedrevs|modes}}\n{{Identical|Mode}}",
+       "apihelp-query+deletedrevs-param-start": "{{doc-apihelp-param|query+deletedrevs|start}}",
+       "apihelp-query+deletedrevs-param-end": "{{doc-apihelp-param|query+deletedrevs|end}}",
+       "apihelp-query+deletedrevs-param-from": "{{doc-apihelp-param|query+deletedrevs|from}}",
+       "apihelp-query+deletedrevs-param-to": "{{doc-apihelp-param|query+deletedrevs|to}}",
+       "apihelp-query+deletedrevs-param-prefix": "{{doc-apihelp-param|query+deletedrevs|prefix}}",
+       "apihelp-query+deletedrevs-param-unique": "{{doc-apihelp-param|query+deletedrevs|unique}}",
+       "apihelp-query+deletedrevs-param-tag": "{{doc-apihelp-param|query+deletedrevs|tag}}",
+       "apihelp-query+deletedrevs-param-user": "{{doc-apihelp-param|query+deletedrevs|user}}",
+       "apihelp-query+deletedrevs-param-excludeuser": "{{doc-apihelp-param|query+deletedrevs|excludeuser}}",
+       "apihelp-query+deletedrevs-param-namespace": "{{doc-apihelp-param|query+deletedrevs|namespace}}",
+       "apihelp-query+deletedrevs-param-limit": "{{doc-apihelp-param|query+deletedrevs|limit}}",
+       "apihelp-query+deletedrevs-param-prop": "{{doc-apihelp-param|query+deletedrevs|prop}}",
+       "apihelp-query+deletedrevs-example-mode1": "{{doc-apihelp-example|query+deletedrevs}}",
+       "apihelp-query+deletedrevs-example-mode2": "{{doc-apihelp-example|query+deletedrevs}}",
+       "apihelp-query+deletedrevs-example-mode3-main": "{{doc-apihelp-example|query+deletedrevs}}",
+       "apihelp-query+deletedrevs-example-mode3-talk": "{{doc-apihelp-example|query+deletedrevs}}",
+       "apihelp-query+disabled-description": "{{doc-apihelp-description|query+disabled}}",
+       "apihelp-query+duplicatefiles-description": "{{doc-apihelp-description|query+duplicatefiles}}",
+       "apihelp-query+duplicatefiles-param-limit": "{{doc-apihelp-param|query+duplicatefiles|limit}}",
+       "apihelp-query+duplicatefiles-param-dir": "{{doc-apihelp-param|query+duplicatefiles|dir}}",
+       "apihelp-query+duplicatefiles-param-localonly": "{{doc-apihelp-param|query+duplicatefiles|localonly}}",
+       "apihelp-query+duplicatefiles-example-simple": "{{doc-apihelp-example|query+duplicatefiles}}",
+       "apihelp-query+duplicatefiles-example-generated": "{{doc-apihelp-example|query+duplicatefiles}}",
+       "apihelp-query+embeddedin-description": "{{doc-apihelp-description|query+embeddedin}}",
+       "apihelp-query+embeddedin-param-title": "{{doc-apihelp-param|query+embeddedin|title}}",
+       "apihelp-query+embeddedin-param-pageid": "{{doc-apihelp-param|query+embeddedin|pageid}}",
+       "apihelp-query+embeddedin-param-namespace": "{{doc-apihelp-param|query+embeddedin|namespace}}",
+       "apihelp-query+embeddedin-param-dir": "{{doc-apihelp-param|query+embeddedin|dir}}",
+       "apihelp-query+embeddedin-param-filterredir": "{{doc-apihelp-param|query+embeddedin|filterredir}}",
+       "apihelp-query+embeddedin-param-limit": "{{doc-apihelp-param|query+embeddedin|limit}}",
+       "apihelp-query+embeddedin-example-simple": "{{doc-apihelp-example|query+embeddedin}}",
+       "apihelp-query+embeddedin-example-generator": "{{doc-apihelp-example|query+embeddedin}}",
+       "apihelp-query+extlinks-description": "{{doc-apihelp-description|query+extlinks}}",
+       "apihelp-query+extlinks-param-limit": "{{doc-apihelp-param|query+extlinks|limit}}",
+       "apihelp-query+extlinks-param-protocol": "{{doc-apihelp-param|query+extlinks|protocol}}",
+       "apihelp-query+extlinks-param-query": "{{doc-apihelp-param|query+extlinks|query}}",
+       "apihelp-query+extlinks-param-expandurl": "{{doc-apihelp-param|query+extlinks|expandurl}}",
+       "apihelp-query+extlinks-example-simple": "{{doc-apihelp-example|query+extlinks}}",
+       "apihelp-query+exturlusage-description": "{{doc-apihelp-description|query+exturlusage}}",
+       "apihelp-query+exturlusage-param-prop": "{{doc-apihelp-param|query+exturlusage|prop}}",
+       "apihelp-query+exturlusage-param-protocol": "{{doc-apihelp-param|query+exturlusage|protocol}}",
+       "apihelp-query+exturlusage-param-query": "{{doc-apihelp-param|query+exturlusage|query}}",
+       "apihelp-query+exturlusage-param-namespace": "{{doc-apihelp-param|query+exturlusage|namespace}}",
+       "apihelp-query+exturlusage-param-limit": "{{doc-apihelp-param|query+exturlusage|limit}}",
+       "apihelp-query+exturlusage-param-expandurl": "{{doc-apihelp-param|query+exturlusage|expandurl}}",
+       "apihelp-query+exturlusage-example-simple": "{{doc-apihelp-example|query+exturlusage}}",
+       "apihelp-query+filearchive-description": "{{doc-apihelp-description|query+filearchive}}",
+       "apihelp-query+filearchive-param-from": "{{doc-apihelp-param|query+filearchive|from}}",
+       "apihelp-query+filearchive-param-to": "{{doc-apihelp-param|query+filearchive|to}}",
+       "apihelp-query+filearchive-param-prefix": "{{doc-apihelp-param|query+filearchive|prefix}}",
+       "apihelp-query+filearchive-param-limit": "{{doc-apihelp-param|query+filearchive|limit}}",
+       "apihelp-query+filearchive-param-dir": "{{doc-apihelp-param|query+filearchive|dir}}",
+       "apihelp-query+filearchive-param-sha1": "{{doc-apihelp-param|query+filearchive|sha1}}",
+       "apihelp-query+filearchive-param-sha1base36": "{{doc-apihelp-param|query+filearchive|sha1base36}}",
+       "apihelp-query+filearchive-param-prop": "{{doc-apihelp-param|query+filearchive|prop}}",
+       "apihelp-query+filearchive-example-simple": "{{doc-apihelp-example|query+filearchive}}",
+       "apihelp-query+filerepoinfo-description": "{{doc-apihelp-description|query+filerepoinfo}}",
+       "apihelp-query+filerepoinfo-param-prop": "{{doc-apihelp-param|query+filerepoinfo|prop}}",
+       "apihelp-query+filerepoinfo-example-simple": "{{doc-apihelp-example|query+filerepoinfo}}",
+       "apihelp-query+fileusage-description": "{{doc-apihelp-description|query+fileusage}}",
+       "apihelp-query+fileusage-param-prop": "{{doc-apihelp-param|query+fileusage|prop}}",
+       "apihelp-query+fileusage-param-namespace": "{{doc-apihelp-param|query+fileusage|namespace}}",
+       "apihelp-query+fileusage-param-limit": "{{doc-apihelp-param|query+fileusage|limit}}",
+       "apihelp-query+fileusage-param-show": "{{doc-apihelp-param|query+fileusage|show}}",
+       "apihelp-query+fileusage-example-simple": "{{doc-apihelp-example|query+fileusage}}",
+       "apihelp-query+fileusage-example-generator": "{{doc-apihelp-example|query+fileusage}}",
+       "apihelp-query+imageinfo-description": "{{doc-apihelp-description|query+imageinfo}}",
+       "apihelp-query+imageinfo-param-prop": "{{doc-apihelp-param|query+imageinfo|prop}}",
+       "apihelp-query+imageinfo-param-limit": "{{doc-apihelp-param|query+imageinfo|limit}}",
+       "apihelp-query+imageinfo-param-start": "{{doc-apihelp-param|query+imageinfo|start}}",
+       "apihelp-query+imageinfo-param-end": "{{doc-apihelp-param|query+imageinfo|end}}",
+       "apihelp-query+imageinfo-param-urlwidth": "{{doc-apihelp-param|query+imageinfo|urlwidth|params=* $1 - Maximum number of thumbnails per query|paramstart=2}}",
+       "apihelp-query+imageinfo-param-urlheight": "{{doc-apihelp-param|query+imageinfo|urlheight}}",
+       "apihelp-query+imageinfo-param-metadataversion": "{{doc-apihelp-param|query+imageinfo|metadataversion}}",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "{{doc-apihelp-param|query+imageinfo|extmetadatalanguage}}",
+       "apihelp-query+imageinfo-param-extmetadatamultilang": "{{doc-apihelp-param|query+imageinfo|extmetadatamultilang}}",
+       "apihelp-query+imageinfo-param-extmetadatafilter": "{{doc-apihelp-param|query+imageinfo|extmetadatafilter}}",
+       "apihelp-query+imageinfo-param-urlparam": "{{doc-apihelp-param|query+imageinfo|urlparam}}",
+       "apihelp-query+imageinfo-param-localonly": "{{doc-apihelp-param|query+imageinfo|localonly}}",
+       "apihelp-query+imageinfo-example-simple": "{{doc-apihelp-example|query+imageinfo}}",
+       "apihelp-query+imageinfo-example-dated": "{{doc-apihelp-example|query+imageinfo}}",
+       "apihelp-query+images-description": "{{doc-apihelp-description|query+images}}",
+       "apihelp-query+images-param-limit": "{{doc-apihelp-param|query+images|limit}}",
+       "apihelp-query+images-param-images": "{{doc-apihelp-param|query+images|images}}",
+       "apihelp-query+images-param-dir": "{{doc-apihelp-param|query+images|dir}}",
+       "apihelp-query+images-example-simple": "{{doc-apihelp-example|query+images}}",
+       "apihelp-query+images-example-generator": "{{doc-apihelp-example|query+images}}",
+       "apihelp-query+imageusage-description": "{{doc-apihelp-description|query+imageusage}}",
+       "apihelp-query+imageusage-param-title": "{{doc-apihelp-param|query+imageusage|title}}",
+       "apihelp-query+imageusage-param-pageid": "{{doc-apihelp-param|query+imageusage|pageid}}",
+       "apihelp-query+imageusage-param-namespace": "{{doc-apihelp-param|query+imageusage|namespace}}",
+       "apihelp-query+imageusage-param-dir": "{{doc-apihelp-param|query+imageusage|dir}}",
+       "apihelp-query+imageusage-param-filterredir": "{{doc-apihelp-param|query+imageusage|filterredir}}",
+       "apihelp-query+imageusage-param-limit": "{{doc-apihelp-param|query+imageusage|limit}}",
+       "apihelp-query+imageusage-param-redirect": "{{doc-apihelp-param|query+imageusage|redirect}}",
+       "apihelp-query+imageusage-example-simple": "{{doc-apihelp-example|query+imageusage}}",
+       "apihelp-query+imageusage-example-generator": "{{doc-apihelp-example|query+imageusage}}",
+       "apihelp-query+info-description": "{{doc-apihelp-description|query+info}}",
+       "apihelp-query+info-param-prop": "{{doc-apihelp-param|query+info|prop}}",
+       "apihelp-query+info-param-token": "{{doc-apihelp-param|query+info|token}}",
+       "apihelp-query+info-example-simple": "{{doc-apihelp-example|query+info}}",
+       "apihelp-query+info-example-protection": "{{doc-apihelp-example|query+info}}",
+       "apihelp-query+iwbacklinks-description": "{{doc-apihelp-description|query+iwbacklinks}}",
+       "apihelp-query+iwbacklinks-param-prefix": "{{doc-apihelp-param|query+iwbacklinks|prefix}}",
+       "apihelp-query+iwbacklinks-param-title": "{{doc-apihelp-param|query+iwbacklinks|title}}",
+       "apihelp-query+iwbacklinks-param-limit": "{{doc-apihelp-param|query+iwbacklinks|limit}}",
+       "apihelp-query+iwbacklinks-param-prop": "{{doc-apihelp-param|query+iwbacklinks|prop}}",
+       "apihelp-query+iwbacklinks-param-dir": "{{doc-apihelp-param|query+iwbacklinks|dir}}",
+       "apihelp-query+iwbacklinks-example-simple": "{{doc-apihelp-example|query+iwbacklinks}}",
+       "apihelp-query+iwbacklinks-example-generator": "{{doc-apihelp-example|query+iwbacklinks}}",
+       "apihelp-query+iwlinks-description": "{{doc-apihelp-description|query+iwlinks}}",
+       "apihelp-query+iwlinks-param-url": "{{doc-apihelp-param|query+iwlinks|url}}",
+       "apihelp-query+iwlinks-param-prop": "{{doc-apihelp-param|query+iwlinks|prop}}",
+       "apihelp-query+iwlinks-param-limit": "{{doc-apihelp-param|query+iwlinks|limit}}",
+       "apihelp-query+iwlinks-param-prefix": "{{doc-apihelp-param|query+iwlinks|prefix}}",
+       "apihelp-query+iwlinks-param-title": "{{doc-apihelp-param|query+iwlinks|title}}",
+       "apihelp-query+iwlinks-param-dir": "{{doc-apihelp-param|query+iwlinks|dir}}",
+       "apihelp-query+iwlinks-example-simple": "{{doc-apihelp-example|query+iwlinks}}",
+       "apihelp-query+langbacklinks-description": "{{doc-apihelp-description|query+langbacklinks}}",
+       "apihelp-query+langbacklinks-param-lang": "{{doc-apihelp-param|query+langbacklinks|lang}}",
+       "apihelp-query+langbacklinks-param-title": "{{doc-apihelp-param|query+langbacklinks|title}}",
+       "apihelp-query+langbacklinks-param-limit": "{{doc-apihelp-param|query+langbacklinks|limit}}",
+       "apihelp-query+langbacklinks-param-prop": "{{doc-apihelp-param|query+langbacklinks|prop}}",
+       "apihelp-query+langbacklinks-param-dir": "{{doc-apihelp-param|query+langbacklinks|dir}}",
+       "apihelp-query+langbacklinks-example-simple": "{{doc-apihelp-example|query+langbacklinks}}",
+       "apihelp-query+langbacklinks-example-generator": "{{doc-apihelp-example|query+langbacklinks}}",
+       "apihelp-query+langlinks-description": "{{doc-apihelp-description|query+langlinks}}",
+       "apihelp-query+langlinks-param-limit": "{{doc-apihelp-param|query+langlinks|limit}}",
+       "apihelp-query+langlinks-param-url": "{{doc-apihelp-param|query+langlinks|url}}",
+       "apihelp-query+langlinks-param-prop": "{{doc-apihelp-param|query+langlinks|prop}}",
+       "apihelp-query+langlinks-param-lang": "{{doc-apihelp-param|query+langlinks|lang}}",
+       "apihelp-query+langlinks-param-title": "{{doc-apihelp-param|query+langlinks|title}}",
+       "apihelp-query+langlinks-param-dir": "{{doc-apihelp-param|query+langlinks|dir}}",
+       "apihelp-query+langlinks-param-inlanguagecode": "{{doc-apihelp-param|query+langlinks|inlanguagecode}}",
+       "apihelp-query+langlinks-example-simple": "{{doc-apihelp-example|query+langlinks}}",
+       "apihelp-query+links-description": "{{doc-apihelp-description|query+links}}",
+       "apihelp-query+links-param-namespace": "{{doc-apihelp-param|query+links|namespace}}",
+       "apihelp-query+links-param-limit": "{{doc-apihelp-param|query+links|limit}}",
+       "apihelp-query+links-param-titles": "{{doc-apihelp-param|query+links|titles}}",
+       "apihelp-query+links-param-dir": "{{doc-apihelp-param|query+links|dir}}",
+       "apihelp-query+links-example-simple": "{{doc-apihelp-example|query+links}}",
+       "apihelp-query+links-example-generator": "{{doc-apihelp-example|query+links}}",
+       "apihelp-query+links-example-namespaces": "{{doc-apihelp-example|query+links}}",
+       "apihelp-query+linkshere-description": "{{doc-apihelp-description|query+linkshere}}",
+       "apihelp-query+linkshere-param-prop": "{{doc-apihelp-param|query+linkshere|prop}}",
+       "apihelp-query+linkshere-param-namespace": "{{doc-apihelp-param|query+linkshere|namespace}}",
+       "apihelp-query+linkshere-param-limit": "{{doc-apihelp-param|query+linkshere|limit}}",
+       "apihelp-query+linkshere-param-show": "{{doc-apihelp-param|query+linkshere|show}}",
+       "apihelp-query+linkshere-example-simple": "{{doc-apihelp-example|query+linkshere}}",
+       "apihelp-query+linkshere-example-generator": "{{doc-apihelp-example|query+linkshere}}",
+       "apihelp-query+logevents-description": "{{doc-apihelp-description|query+logevents}}",
+       "apihelp-query+logevents-param-prop": "{{doc-apihelp-param|query+logevents|prop}}",
+       "apihelp-query+logevents-param-type": "{{doc-apihelp-param|query+logevents|type}}",
+       "apihelp-query+logevents-param-action": "{{doc-apihelp-param|query+logevents|action}}",
+       "apihelp-query+logevents-param-start": "{{doc-apihelp-param|query+logevents|start}}",
+       "apihelp-query+logevents-param-end": "{{doc-apihelp-param|query+logevents|end}}",
+       "apihelp-query+logevents-param-user": "{{doc-apihelp-param|query+logevents|user}}",
+       "apihelp-query+logevents-param-title": "{{doc-apihelp-param|query+logevents|title}}",
+       "apihelp-query+logevents-param-namespace": "{{doc-apihelp-param|query+logevents|namespace}}",
+       "apihelp-query+logevents-param-prefix": "{{doc-apihelp-param|query+logevents|prefix}}",
+       "apihelp-query+logevents-param-tag": "{{doc-apihelp-param|query+logevents|tag}}",
+       "apihelp-query+logevents-param-limit": "{{doc-apihelp-param|query+logevents|limit}}",
+       "apihelp-query+logevents-example-simple": "{{doc-apihelp-example|query+logevents}}",
+       "apihelp-query+pagepropnames-description": "{{doc-apihelp-description|query+pagepropnames}}",
+       "apihelp-query+pagepropnames-param-limit": "{{doc-apihelp-param|query+pagepropnames|limit}}",
+       "apihelp-query+pagepropnames-example-simple": "{{doc-apihelp-example|query+pagepropnames}}",
+       "apihelp-query+pageprops-description": "{{doc-apihelp-description|query+pageprops}}",
+       "apihelp-query+pageprops-param-prop": "{{doc-apihelp-param|query+pageprops|prop}}",
+       "apihelp-query+pageprops-example-simple": "{{doc-apihelp-example|query+pageprops}}",
+       "apihelp-query+pageswithprop-description": "{{doc-apihelp-description|query+pageswithprop}}",
+       "apihelp-query+pageswithprop-param-propname": "{{doc-apihelp-param|query+pageswithprop|propname}}",
+       "apihelp-query+pageswithprop-param-prop": "{{doc-apihelp-param|query+pageswithprop|prop}}",
+       "apihelp-query+pageswithprop-param-limit": "{{doc-apihelp-param|query+pageswithprop|limit}}",
+       "apihelp-query+pageswithprop-param-dir": "{{doc-apihelp-param|query+pageswithprop|dir}}",
+       "apihelp-query+pageswithprop-example-simple": "{{doc-apihelp-example|query+pageswithprop}}",
+       "apihelp-query+pageswithprop-example-generator": "{{doc-apihelp-example|query+pageswithprop}}",
+       "apihelp-query+prefixsearch-description": "{{doc-apihelp-description|query+prefixsearch}}",
+       "apihelp-query+prefixsearch-param-search": "{{doc-apihelp-param|query+prefixsearch|search}}",
+       "apihelp-query+prefixsearch-param-namespace": "{{doc-apihelp-param|query+prefixsearch|namespace}}",
+       "apihelp-query+prefixsearch-param-limit": "{{doc-apihelp-param|query+prefixsearch|limit}}",
+       "apihelp-query+prefixsearch-example-simple": "{{doc-apihelp-example|query+prefixsearch}}",
+       "apihelp-query+protectedtitles-description": "{{doc-apihelp-description|query+protectedtitles}}",
+       "apihelp-query+protectedtitles-param-namespace": "{{doc-apihelp-param|query+protectedtitles|namespace}}",
+       "apihelp-query+protectedtitles-param-level": "{{doc-apihelp-param|query+protectedtitles|level}}",
+       "apihelp-query+protectedtitles-param-limit": "{{doc-apihelp-param|query+protectedtitles|limit}}",
+       "apihelp-query+protectedtitles-param-start": "{{doc-apihelp-param|query+protectedtitles|start}}",
+       "apihelp-query+protectedtitles-param-end": "{{doc-apihelp-param|query+protectedtitles|end}}",
+       "apihelp-query+protectedtitles-param-prop": "{{doc-apihelp-param|query+protectedtitles|prop}}",
+       "apihelp-query+protectedtitles-example-simple": "{{doc-apihelp-example|query+protectedtitles}}",
+       "apihelp-query+protectedtitles-example-generator": "{{doc-apihelp-example|query+protectedtitles}}",
+       "apihelp-query+querypage-description": "{{doc-apihelp-description|query+querypage}}",
+       "apihelp-query+querypage-param-page": "{{doc-apihelp-param|query+querypage|page}}",
+       "apihelp-query+querypage-param-limit": "{{doc-apihelp-param|query+querypage|limit}}",
+       "apihelp-query+querypage-example-ancientpages": "{{doc-apihelp-example|query+querypage}}",
+       "apihelp-query+random-description": "{{doc-apihelp-description|query+random}}",
+       "apihelp-query+random-param-namespace": "{{doc-apihelp-param|query+random|namespace}}",
+       "apihelp-query+random-param-limit": "{{doc-apihelp-param|query+random|limit}}",
+       "apihelp-query+random-param-redirect": "{{doc-apihelp-param|query+random|redirect}}",
+       "apihelp-query+random-example-simple": "{{doc-apihelp-example|query+random}}",
+       "apihelp-query+random-example-generator": "{{doc-apihelp-example|query+random}}",
+       "apihelp-query+recentchanges-description": "{{doc-apihelp-description|query+recentchanges}}",
+       "apihelp-query+recentchanges-param-start": "{{doc-apihelp-param|query+recentchanges|start}}",
+       "apihelp-query+recentchanges-param-end": "{{doc-apihelp-param|query+recentchanges|end}}",
+       "apihelp-query+recentchanges-param-namespace": "{{doc-apihelp-param|query+recentchanges|namespace}}",
+       "apihelp-query+recentchanges-param-user": "{{doc-apihelp-param|query+recentchanges|user}}",
+       "apihelp-query+recentchanges-param-excludeuser": "{{doc-apihelp-param|query+recentchanges|excludeuser}}",
+       "apihelp-query+recentchanges-param-tag": "{{doc-apihelp-param|query+recentchanges|tag}}",
+       "apihelp-query+recentchanges-param-prop": "{{doc-apihelp-param|query+recentchanges|prop}}",
+       "apihelp-query+recentchanges-param-token": "{{doc-apihelp-param|query+recentchanges|token}}",
+       "apihelp-query+recentchanges-param-show": "{{doc-apihelp-param|query+recentchanges|show}}",
+       "apihelp-query+recentchanges-param-limit": "{{doc-apihelp-param|query+recentchanges|limit}}",
+       "apihelp-query+recentchanges-param-type": "{{doc-apihelp-param|query+recentchanges|type}}",
+       "apihelp-query+recentchanges-param-toponly": "{{doc-apihelp-param|query+recentchanges|toponly}}",
+       "apihelp-query+recentchanges-example-simple": "{{doc-apihelp-example|query+recentchanges}}",
+       "apihelp-query+recentchanges-example-generator": "{{doc-apihelp-example|query+recentchanges}}",
+       "apihelp-query+redirects-description": "{{doc-apihelp-description|query+redirects}}",
+       "apihelp-query+redirects-param-prop": "{{doc-apihelp-param|query+redirects|prop}}",
+       "apihelp-query+redirects-param-namespace": "{{doc-apihelp-param|query+redirects|namespace}}",
+       "apihelp-query+redirects-param-limit": "{{doc-apihelp-param|query+redirects|limit}}",
+       "apihelp-query+redirects-param-show": "{{doc-apihelp-param|query+redirects|show}}",
+       "apihelp-query+redirects-example-simple": "{{doc-apihelp-example|query+redirects}}",
+       "apihelp-query+redirects-example-generator": "{{doc-apihelp-example|query+redirects}}",
+       "apihelp-query+revisions-description": "{{doc-apihelp-description|query+revisions}}",
+       "apihelp-query+revisions-paraminfo-singlepageonly": "{{doc-apihelp-paraminfo|query+revisions|singlepageonly}}",
+       "apihelp-query+revisions-param-startid": "{{doc-apihelp-param|query+revisions|startid}}",
+       "apihelp-query+revisions-param-endid": "{{doc-apihelp-param|query+revisions|endid}}",
+       "apihelp-query+revisions-param-start": "{{doc-apihelp-param|query+revisions|start}}",
+       "apihelp-query+revisions-param-end": "{{doc-apihelp-param|query+revisions|end}}",
+       "apihelp-query+revisions-param-user": "{{doc-apihelp-param|query+revisions|user}}",
+       "apihelp-query+revisions-param-excludeuser": "{{doc-apihelp-param|query+revisions|excludeuser}}",
+       "apihelp-query+revisions-param-tag": "{{doc-apihelp-param|query+revisions|tag}}",
+       "apihelp-query+revisions-param-token": "{{doc-apihelp-param|query+revisions|token}}",
+       "apihelp-query+revisions-example-content": "{{doc-apihelp-example|query+revisions}}",
+       "apihelp-query+revisions-example-last5": "{{doc-apihelp-example|query+revisions}}",
+       "apihelp-query+revisions-example-first5": "{{doc-apihelp-example|query+revisions}}",
+       "apihelp-query+revisions-example-first5-after": "{{doc-apihelp-example|query+revisions}}",
+       "apihelp-query+revisions-example-first5-not-localhost": "{{doc-apihelp-example|query+revisions}}",
+       "apihelp-query+revisions-example-first5-user": "{{doc-apihelp-example|query+revisions}}",
+       "apihelp-query+revisions+base-param-prop": "{{doc-apihelp-param|query+revisions+base|prop|description=the \"prop\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-limit": "{{doc-apihelp-param|query+revisions+base|limit|description=the \"limit\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-expandtemplates": "{{doc-apihelp-param|query+revisions+base|expandtemplates|description=the \"expandtemplates\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-generatexml": "{{doc-apihelp-param|query+revisions+base|generatexml|description=the \"generatexml\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-parse": "{{doc-apihelp-param|query+revisions+base|parse|description=the \"parse\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-section": "{{doc-apihelp-param|query+revisions+base|section|description=the \"section\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-diffto": "{{doc-apihelp-param|query+revisions+base|diffto|description=the \"diffto\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-difftotext": "{{doc-apihelp-param|query+revisions+base|difftotext|description=the \"difftotext\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+revisions+base-param-contentformat": "{{doc-apihelp-param|query+revisions+base|contentformat|description=the \"contentformat\" parameter to revision querying modules|noseealso=1}}",
+       "apihelp-query+search-description": "{{doc-apihelp-description|query+search}}",
+       "apihelp-query+search-param-search": "{{doc-apihelp-param|query+search|search}}",
+       "apihelp-query+search-param-namespace": "{{doc-apihelp-param|query+search|namespace}}",
+       "apihelp-query+search-param-what": "{{doc-apihelp-param|query+search|what}}",
+       "apihelp-query+search-param-info": "{{doc-apihelp-param|query+search|info}}",
+       "apihelp-query+search-param-prop": "{{doc-apihelp-param|query+search|prop}}",
+       "apihelp-query+search-param-limit": "{{doc-apihelp-param|query+search|limit}}",
+       "apihelp-query+search-param-interwiki": "{{doc-apihelp-param|query+search|interwiki}}",
+       "apihelp-query+search-param-backend": "{{doc-apihelp-param|query+search|backend}}",
+       "apihelp-query+search-example-simple": "{{doc-apihelp-example|query+search}}",
+       "apihelp-query+search-example-text": "{{doc-apihelp-example|query+search}}",
+       "apihelp-query+search-example-generator": "{{doc-apihelp-example|query+search}}",
+       "apihelp-query+siteinfo-description": "{{doc-apihelp-description|query+siteinfo}}",
+       "apihelp-query+siteinfo-param-prop": "{{doc-apihelp-param|query+siteinfo|prop}}",
+       "apihelp-query+siteinfo-param-filteriw": "{{doc-apihelp-param|query+siteinfo|filteriw}}",
+       "apihelp-query+siteinfo-param-showalldb": "{{doc-apihelp-param|query+siteinfo|showalldb}}",
+       "apihelp-query+siteinfo-param-numberingroup": "{{doc-apihelp-param|query+siteinfo|numberingroup}}",
+       "apihelp-query+siteinfo-param-inlanguagecode": "{{doc-apihelp-param|query+siteinfo|inlanguagecode}}",
+       "apihelp-query+siteinfo-example-simple": "{{doc-apihelp-example|query+siteinfo}}",
+       "apihelp-query+siteinfo-example-interwiki": "{{doc-apihelp-example|query+siteinfo}}",
+       "apihelp-query+siteinfo-example-replag": "{{doc-apihelp-example|query+siteinfo}}",
+       "apihelp-query+stashimageinfo-description": "{{doc-apihelp-description|query+stashimageinfo}}",
+       "apihelp-query+stashimageinfo-param-filekey": "{{doc-apihelp-param|query+stashimageinfo|filekey}}",
+       "apihelp-query+stashimageinfo-param-sessionkey": "{{doc-apihelp-param|query+stashimageinfo|sessionkey}}",
+       "apihelp-query+stashimageinfo-param-prop": "{{doc-apihelp-param|query+stashimageinfo|prop}}",
+       "apihelp-query+stashimageinfo-example-simple": "{{doc-apihelp-example|query+stashimageinfo}}",
+       "apihelp-query+stashimageinfo-example-params": "{{doc-apihelp-example|query+stashimageinfo}}",
+       "apihelp-query+tags-description": "{{doc-apihelp-description|query+tags}}",
+       "apihelp-query+tags-param-limit": "{{doc-apihelp-param|query+tags|limit}}",
+       "apihelp-query+tags-param-prop": "{{doc-apihelp-param|query+tags|prop}}",
+       "apihelp-query+tags-example-simple": "{{doc-apihelp-example|query+tags}}",
+       "apihelp-query+templates-description": "{{doc-apihelp-description|query+templates}}",
+       "apihelp-query+templates-param-namespace": "{{doc-apihelp-param|query+templates|namespace}}",
+       "apihelp-query+templates-param-limit": "{{doc-apihelp-param|query+templates|limit}}",
+       "apihelp-query+templates-param-templates": "{{doc-apihelp-param|query+templates|templates}}",
+       "apihelp-query+templates-param-dir": "{{doc-apihelp-param|query+templates|dir}}",
+       "apihelp-query+templates-example-simple": "{{doc-apihelp-example|query+templates}}",
+       "apihelp-query+templates-example-generator": "{{doc-apihelp-example|query+templates}}",
+       "apihelp-query+templates-example-namespaces": "{{doc-apihelp-example|query+templates}}",
+       "apihelp-query+tokens-description": "{{doc-apihelp-description|query+tokens}}",
+       "apihelp-query+tokens-param-type": "{{doc-apihelp-param|query+tokens|type}}",
+       "apihelp-query+tokens-example-simple": "{{doc-apihelp-example|query+tokens}}",
+       "apihelp-query+tokens-example-types": "{{doc-apihelp-example|query+tokens}}",
+       "apihelp-query+transcludedin-description": "{{doc-apihelp-description|query+transcludedin}}",
+       "apihelp-query+transcludedin-param-prop": "{{doc-apihelp-param|query+transcludedin|prop}}",
+       "apihelp-query+transcludedin-param-namespace": "{{doc-apihelp-param|query+transcludedin|namespace}}",
+       "apihelp-query+transcludedin-param-limit": "{{doc-apihelp-param|query+transcludedin|limit}}",
+       "apihelp-query+transcludedin-param-show": "{{doc-apihelp-param|query+transcludedin|show}}",
+       "apihelp-query+transcludedin-example-simple": "{{doc-apihelp-example|query+transcludedin}}",
+       "apihelp-query+transcludedin-example-generator": "{{doc-apihelp-example|query+transcludedin}}",
+       "apihelp-query+usercontribs-description": "{{doc-apihelp-description|query+usercontribs}}",
+       "apihelp-query+usercontribs-param-limit": "{{doc-apihelp-param|query+usercontribs|limit}}",
+       "apihelp-query+usercontribs-param-start": "{{doc-apihelp-param|query+usercontribs|start}}",
+       "apihelp-query+usercontribs-param-end": "{{doc-apihelp-param|query+usercontribs|end}}",
+       "apihelp-query+usercontribs-param-user": "{{doc-apihelp-param|query+usercontribs|user}}",
+       "apihelp-query+usercontribs-param-userprefix": "{{doc-apihelp-param|query+usercontribs|userprefix}}",
+       "apihelp-query+usercontribs-param-namespace": "{{doc-apihelp-param|query+usercontribs|namespace}}",
+       "apihelp-query+usercontribs-param-prop": "{{doc-apihelp-param|query+usercontribs|prop}}",
+       "apihelp-query+usercontribs-param-show": "{{doc-apihelp-param|query+usercontribs|show|params=* $1 - Value of [[mw:Manual:$RCMaxAge|$RCMaxAge]]|paramstart=2}}",
+       "apihelp-query+usercontribs-param-tag": "{{doc-apihelp-param|query+usercontribs|tag}}",
+       "apihelp-query+usercontribs-param-toponly": "{{doc-apihelp-param|query+usercontribs|toponly}}",
+       "apihelp-query+usercontribs-example-user": "{{doc-apihelp-example|query+usercontribs}}",
+       "apihelp-query+usercontribs-example-ipprefix": "{{doc-apihelp-example|query+usercontribs}}",
+       "apihelp-query+userinfo-description": "{{doc-apihelp-description|query+userinfo}}",
+       "apihelp-query+userinfo-param-prop": "{{doc-apihelp-param|query+userinfo|prop|params=* $1 - Maximum value for the \"unreadcount\" property.\n$2 - Return value when there are more unread pages.|paramstart=3}}",
+       "apihelp-query+userinfo-example-simple": "{{doc-apihelp-example|query+userinfo}}",
+       "apihelp-query+userinfo-example-data": "{{doc-apihelp-example|query+userinfo}}",
+       "apihelp-query+users-description": "{{doc-apihelp-description|query+users}}",
+       "apihelp-query+users-param-prop": "{{doc-apihelp-param|query+users|prop}}",
+       "apihelp-query+users-param-users": "{{doc-apihelp-param|query+users|users}}",
+       "apihelp-query+users-param-token": "{{doc-apihelp-param|query+users|token}}",
+       "apihelp-query+users-example-simple": "{{doc-apihelp-example|query+users}}",
+       "apihelp-query+watchlist-description": "{{doc-apihelp-description|query+watchlist}}",
+       "apihelp-query+watchlist-param-allrev": "{{doc-apihelp-param|query+watchlist|allrev}}",
+       "apihelp-query+watchlist-param-start": "{{doc-apihelp-param|query+watchlist|start}}",
+       "apihelp-query+watchlist-param-end": "{{doc-apihelp-param|query+watchlist|end}}",
+       "apihelp-query+watchlist-param-namespace": "{{doc-apihelp-param|query+watchlist|namespace}}",
+       "apihelp-query+watchlist-param-user": "{{doc-apihelp-param|query+watchlist|user}}",
+       "apihelp-query+watchlist-param-excludeuser": "{{doc-apihelp-param|query+watchlist|excludeuser}}",
+       "apihelp-query+watchlist-param-limit": "{{doc-apihelp-param|query+watchlist|limit}}",
+       "apihelp-query+watchlist-param-prop": "{{doc-apihelp-param|query+watchlist|prop}}",
+       "apihelp-query+watchlist-param-show": "{{doc-apihelp-param|query+watchlist|show}}",
+       "apihelp-query+watchlist-param-type": "{{doc-apihelp-param|query+watchlist|type}}",
+       "apihelp-query+watchlist-param-owner": "{{doc-apihelp-param|query+watchlist|owner}}",
+       "apihelp-query+watchlist-param-token": "{{doc-apihelp-param|query+watchlist|token}}",
+       "apihelp-query+watchlist-example-simple": "{{doc-apihelp-example|query+watchlist}}",
+       "apihelp-query+watchlist-example-props": "{{doc-apihelp-example|query+watchlist}}",
+       "apihelp-query+watchlist-example-allrev": "{{doc-apihelp-example|query+watchlist}}",
+       "apihelp-query+watchlist-example-generator": "{{doc-apihelp-example|query+watchlist}}",
+       "apihelp-query+watchlist-example-generator-rev": "{{doc-apihelp-example|query+watchlist}}",
+       "apihelp-query+watchlist-example-wlowner": "{{doc-apihelp-example|query+watchlist}}",
+       "apihelp-query+watchlistraw-description": "{{doc-apihelp-description|query+watchlistraw}}",
+       "apihelp-query+watchlistraw-param-namespace": "{{doc-apihelp-param|query+watchlistraw|namespace}}",
+       "apihelp-query+watchlistraw-param-limit": "{{doc-apihelp-param|query+watchlistraw|limit}}",
+       "apihelp-query+watchlistraw-param-prop": "{{doc-apihelp-param|query+watchlistraw|prop}}",
+       "apihelp-query+watchlistraw-param-show": "{{doc-apihelp-param|query+watchlistraw|show}}",
+       "apihelp-query+watchlistraw-param-owner": "{{doc-apihelp-param|query+watchlistraw|owner}}",
+       "apihelp-query+watchlistraw-param-token": "{{doc-apihelp-param|query+watchlistraw|token}}",
+       "apihelp-query+watchlistraw-example-simple": "{{doc-apihelp-example|query+watchlistraw}}",
+       "apihelp-query+watchlistraw-example-generator": "{{doc-apihelp-example|query+watchlistraw}}",
+       "apihelp-revisiondelete-description": "{{doc-apihelp-description|revisiondelete}}",
+       "apihelp-revisiondelete-param-type": "{{doc-apihelp-param|revisiondelete|type}}",
+       "apihelp-revisiondelete-param-target": "{{doc-apihelp-param|revisiondelete|target}}",
+       "apihelp-revisiondelete-param-ids": "{{doc-apihelp-param|revisiondelete|ids}}",
+       "apihelp-revisiondelete-param-hide": "{{doc-apihelp-param|revisiondelete|hide}}",
+       "apihelp-revisiondelete-param-show": "{{doc-apihelp-param|revisiondelete|show}}",
+       "apihelp-revisiondelete-param-suppress": "{{doc-apihelp-param|revisiondelete|suppress}}",
+       "apihelp-revisiondelete-param-reason": "{{doc-apihelp-param|revisiondelete|reason}}",
+       "apihelp-revisiondelete-example-revision": "{{doc-apihelp-example|revisiondelete}}",
+       "apihelp-revisiondelete-example-log": "{{doc-apihelp-example|revisiondelete}}",
+       "apihelp-rollback-description": "{{doc-apihelp-description|rollback}}",
+       "apihelp-rollback-param-title": "{{doc-apihelp-param|rollback|title}}",
+       "apihelp-rollback-param-pageid": "{{doc-apihelp-param|rollback|pageid}}",
+       "apihelp-rollback-param-user": "{{doc-apihelp-param|rollback|user}}",
+       "apihelp-rollback-param-summary": "{{doc-apihelp-param|rollback|summary}}",
+       "apihelp-rollback-param-markbot": "{{doc-apihelp-param|rollback|markbot}}",
+       "apihelp-rollback-param-watchlist": "{{doc-apihelp-param|rollback|watchlist}}",
+       "apihelp-rollback-example-simple": "{{doc-apihelp-example|rollback}}",
+       "apihelp-rollback-example-summary": "{{doc-apihelp-example|rollback}}",
+       "apihelp-rsd-description": "{{doc-apihelp-description|rsd}}",
+       "apihelp-rsd-example-simple": "{{doc-apihelp-example|rsd}}",
+       "apihelp-setnotificationtimestamp-description": "{{doc-apihelp-description|setnotificationtimestamp}}",
+       "apihelp-setnotificationtimestamp-param-entirewatchlist": "{{doc-apihelp-param|setnotificationtimestamp|entirewatchlist}}",
+       "apihelp-setnotificationtimestamp-param-timestamp": "{{doc-apihelp-param|setnotificationtimestamp|timestamp}}",
+       "apihelp-setnotificationtimestamp-param-torevid": "{{doc-apihelp-param|setnotificationtimestamp|torevid}}",
+       "apihelp-setnotificationtimestamp-param-newerthanrevid": "{{doc-apihelp-param|setnotificationtimestamp|newerthanrevid}}",
+       "apihelp-setnotificationtimestamp-example-all": "{{doc-apihelp-example|setnotificationtimestamp}}",
+       "apihelp-setnotificationtimestamp-example-page": "{{doc-apihelp-example|setnotificationtimestamp}}",
+       "apihelp-setnotificationtimestamp-example-pagetimestamp": "{{doc-apihelp-example|setnotificationtimestamp}}",
+       "apihelp-setnotificationtimestamp-example-allpages": "{{doc-apihelp-example|setnotificationtimestamp}}",
+       "apihelp-tokens-description": "{{doc-apihelp-description|tokens}}",
+       "apihelp-tokens-param-type": "{{doc-apihelp-param|tokens|type}}",
+       "apihelp-tokens-example-edit": "{{doc-apihelp-example|tokens}}",
+       "apihelp-tokens-example-emailmove": "{{doc-apihelp-example|tokens}}",
+       "apihelp-unblock-description": "{{doc-apihelp-description|unblock}}",
+       "apihelp-unblock-param-id": "{{doc-apihelp-param|unblock|id}}",
+       "apihelp-unblock-param-user": "{{doc-apihelp-param|unblock|user}}",
+       "apihelp-unblock-param-reason": "{{doc-apihelp-param|unblock|reason}}",
+       "apihelp-unblock-example-id": "{{doc-apihelp-example|unblock}}",
+       "apihelp-unblock-example-user": "{{doc-apihelp-example|unblock}}",
+       "apihelp-undelete-description": "{{doc-apihelp-description|undelete}}",
+       "apihelp-undelete-param-title": "{{doc-apihelp-param|undelete|title}}",
+       "apihelp-undelete-param-reason": "{{doc-apihelp-param|undelete|reason}}",
+       "apihelp-undelete-param-timestamps": "{{doc-apihelp-param|undelete|timestamps}}",
+       "apihelp-undelete-param-fileids": "{{doc-apihelp-param|undelete|fileids}}",
+       "apihelp-undelete-param-watchlist": "{{doc-apihelp-param|undelete|watchlist}}",
+       "apihelp-undelete-example-page": "{{doc-apihelp-example|undelete}}",
+       "apihelp-undelete-example-revisions": "{{doc-apihelp-example|undelete}}",
+       "apihelp-upload-description": "{{doc-apihelp-description|upload}}",
+       "apihelp-upload-param-filename": "{{doc-apihelp-param|upload|filename}}",
+       "apihelp-upload-param-comment": "{{doc-apihelp-param|upload|comment}}",
+       "apihelp-upload-param-text": "{{doc-apihelp-param|upload|text}}",
+       "apihelp-upload-param-watch": "{{doc-apihelp-param|upload|watch}}",
+       "apihelp-upload-param-watchlist": "{{doc-apihelp-param|upload|watchlist}}",
+       "apihelp-upload-param-ignorewarnings": "{{doc-apihelp-param|upload|ignorewarnings}}",
+       "apihelp-upload-param-file": "{{doc-apihelp-param|upload|file}}",
+       "apihelp-upload-param-url": "{{doc-apihelp-param|upload|url}}",
+       "apihelp-upload-param-filekey": "{{doc-apihelp-param|upload|filekey}}",
+       "apihelp-upload-param-sessionkey": "{{doc-apihelp-param|upload|sessionkey}}",
+       "apihelp-upload-param-stash": "{{doc-apihelp-param|upload|stash}}",
+       "apihelp-upload-param-filesize": "{{doc-apihelp-param|upload|filesize}}",
+       "apihelp-upload-param-offset": "{{doc-apihelp-param|upload|offset}}",
+       "apihelp-upload-param-chunk": "{{doc-apihelp-param|upload|chunk}}",
+       "apihelp-upload-param-async": "{{doc-apihelp-param|upload|async}}",
+       "apihelp-upload-param-asyncdownload": "{{doc-apihelp-param|upload|asyncdownload}}",
+       "apihelp-upload-param-leavemessage": "{{doc-apihelp-param|upload|leavemessage}}",
+       "apihelp-upload-param-statuskey": "{{doc-apihelp-param|upload|statuskey}}",
+       "apihelp-upload-param-checkstatus": "{{doc-apihelp-param|upload|checkstatus}}",
+       "apihelp-upload-example-url": "{{doc-apihelp-example|upload}}",
+       "apihelp-upload-example-filekey": "{{doc-apihelp-example|upload}}",
+       "apihelp-userrights-description": "{{doc-apihelp-description|userrights}}",
+       "apihelp-userrights-param-user": "{{doc-apihelp-param|userrights|user}}\n{{Identical|Username}}",
+       "apihelp-userrights-param-userid": "{{doc-apihelp-param|userrights|userid}}",
+       "apihelp-userrights-param-add": "{{doc-apihelp-param|userrights|add}}",
+       "apihelp-userrights-param-remove": "{{doc-apihelp-param|userrights|remove}}",
+       "apihelp-userrights-param-reason": "{{doc-apihelp-param|userrights|reason}}",
+       "apihelp-userrights-example-user": "{{doc-apihelp-example|userrights}}",
+       "apihelp-userrights-example-userid": "{{doc-apihelp-example|userrights}}",
+       "apihelp-watch-description": "{{doc-apihelp-description|watch}}",
+       "apihelp-watch-param-title": "{{doc-apihelp-param|watch|title}}",
+       "apihelp-watch-param-unwatch": "{{doc-apihelp-param|watch|unwatch}}",
+       "apihelp-watch-example-watch": "{{doc-apihelp-example|watch}}",
+       "apihelp-watch-example-unwatch": "{{doc-apihelp-example|watch}}",
+       "apihelp-watch-example-generator": "{{doc-apihelp-example|watch}}",
+       "apihelp-format-example-generic": "{{doc-apihelp-example|format|params=* $1 - Format name|paramstart=2|noseealso=1}}",
+       "apihelp-dbg-description": "{{doc-apihelp-description|dbg|seealso=* {{msg-mw|apihelp-dbgfm-description}}}}",
+       "apihelp-dbgfm-description": "{{doc-apihelp-description|dbgfm|seealso=* {{msg-mw|apihelp-dbg-description}}}}",
+       "apihelp-dump-description": "{{doc-apihelp-description|dump|seealso=* {{msg-mw|apihelp-dumpfm-description}}}}",
+       "apihelp-dumpfm-description": "{{doc-apihelp-description|dumpfm|seealso=* {{msg-mw|apihelp-dump-description}}}}",
+       "apihelp-json-description": "{{doc-apihelp-description|json|seealso=* {{msg-mw|apihelp-jsonfm-description}}}}",
+       "apihelp-json-param-callback": "{{doc-apihelp-param|json|callback}}",
+       "apihelp-json-param-utf8": "{{doc-apihelp-param|json|utf8}}",
+       "apihelp-jsonfm-description": "{{doc-apihelp-description|jsonfm|seealso=* {{msg-mw|apihelp-json-description}}}}",
+       "apihelp-none-description": "{{doc-apihelp-description|none}}",
+       "apihelp-php-description": "{{doc-apihelp-description|php|seealso=* {{msg-mw|apihelp-phpfm-description}}}}",
+       "apihelp-phpfm-description": "{{doc-apihelp-description|phpfm|seealso=* {{msg-mw|apihelp-php-description}}}}",
+       "apihelp-rawfm-description": "{{doc-apihelp-description|rawfm|seealso=* {{msg-mw|apihelp-raw-description}}}}",
+       "apihelp-txt-description": "{{doc-apihelp-description|txt|seealso=* {{msg-mw|apihelp-txtfm-description}}}}",
+       "apihelp-txtfm-description": "{{doc-apihelp-description|txtfm|seealso=* {{msg-mw|apihelp-txt-description}}}}",
+       "apihelp-wddx-description": "{{doc-apihelp-description|wddx|seealso=* {{msg-mw|apihelp-wddxfm-description}}}}",
+       "apihelp-wddxfm-description": "{{doc-apihelp-description|wddxfm|seealso=* {{msg-mw|apihelp-wddx-description}}}}",
+       "apihelp-xml-description": "{{doc-apihelp-description|xml|seealso=* {{msg-mw|apihelp-xmlfm-description}}}}",
+       "apihelp-xml-param-xslt": "{{doc-apihelp-param|xml|xslt}}",
+       "apihelp-xml-param-includexmlnamespace": "{{doc-apihelp-param|xml|includexmlnamespace}}",
+       "apihelp-xmlfm-description": "{{doc-apihelp-description|xmlfm|seealso=* {{msg-mw|apihelp-xml-description}}}}",
+       "apihelp-yaml-description": "{{doc-apihelp-description|yaml|seealso=* {{msg-mw|apihelp-yamlfm-description}}}}",
+       "apihelp-yamlfm-description": "{{doc-apihelp-description|yamlfm|seealso=* {{msg-mw|apihelp-yaml-description}}}}",
+       "api-format-title": "Page title when API output is pretty-printed in HTML.",
+       "api-format-prettyprint-header": "{{technical}} Displayed as a header when API output is pretty-printed in HTML.\n\nParameters:\n* $1 - Format name\n* $2 - Non-pretty-printing module name",
+       "api-orm-param-props": "{{doc-apihelp-param|orm|props|description=the \"props\" parameter in subclasses of ApiQueryORM}}",
+       "api-orm-param-limit": "{{doc-apihelp-param|orm|limit|description=the \"limit\" parameter in subclasses of ApiQueryORM}}",
+       "api-pageset-param-titles": "{{doc-apihelp-param|pageset|titles|description=the \"titles\" parameter in pageset-using modules}}",
+       "api-pageset-param-pageids": "{{doc-apihelp-param|pageset|pageids|description=the \"pageids\" parameter in pageset-using modules}}",
+       "api-pageset-param-revids": "{{doc-apihelp-param|pageset|revids|description=the \"revids\" parameter in pageset-using modules}}",
+       "api-pageset-param-generator": "{{doc-apihelp-param|pageset|generator|description=the \"generator\" parameter in pageset-using modules}}",
+       "api-pageset-param-redirects-generator": "{{doc-apihelp-param|pageset|redirects-generator|description=the \"redirects\" parameter in pageset-using modules when the \"generator\" parameter is also available}}",
+       "api-pageset-param-redirects-nogenerator": "{{doc-apihelp-param|pageset|redirects-generator|description=the \"redirects\" parameter in pageset-using modules when the \"generator\" parameter is not available}}",
+       "api-pageset-param-converttitles": "{{doc-apihelp-param|pageset|converttitles|description=the \"converttitles\" parameter in pageset-using modules|params=* $1 - List of languages with variants|paramstart=2}}",
+       "api-help-title": "Page title for the auto-generated help output",
+       "api-help-lead": "Text displayed at the top of the API help page",
+       "api-help-main-header": "Text for the header of the main module",
+       "api-help-fallback-description": "{{notranslate}}",
+       "api-help-fallback-parameter": "{{notranslate}}",
+       "api-help-fallback-example": "{{notranslate}}",
+       "api-help-flags": "{{optional}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed",
+       "api-help-flag-deprecated": "Flag displayed for an API module that is deprecated",
+       "api-help-flag-internal": "Flag displayed for an API module that is considered internal or unstable",
+       "api-help-flag-readrights": "Flag displayed for an API module that requires read rights",
+       "api-help-flag-writerights": "Flag displayed for an API module that requires write rights",
+       "api-help-flag-mustbeposted": "Flag displayed for an API module that only accepts POST requests",
+       "api-help-flag-generator": "Flag displayed for an API module that can be used as a generator",
+       "api-help-help-urls": "{{optional}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed",
+       "api-help-parameters": "Label for the API help parameters section\n\nParameters:\n* $1 - Number of parameters to be displayed\n{{Identical|Parameter}}",
+       "api-help-param-deprecated": "Displayed in the API help for any deprecated parameter\n{{Identical|Deprecated}}",
+       "api-help-param-required": "Displayed in the API help for any required parameter",
+       "api-help-param-list": "Used to display the possible values for a parameter taking a list of values\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Comma-separated list of values, possibly formatted using {{msg-mw|api-help-param-list-can-be-empty}}",
+       "api-help-param-list-can-be-empty": "Used to indicate that one of the possible values in the list is the empty string.\n\nParameters:\n* $1 - Number of items in the rest of the list; may be 0\n* $2 - Remainder of the list as a comma-separated string",
+       "api-help-param-limit": "Used to display the maximum value of a limit parameter\n\nParameters:\n* $1 - Maximum value",
+       "api-help-param-limit2": "Used to display the maximum values of a limit parameter\n\nParameters:\n* $1 - Maximum value without the apihighlimits right\n* $2 - Maximum value with the apihighlimits right",
+       "api-help-param-integer-min": "Used to display an integer parameter with a minimum but no maximum value\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Minimum value\n* $3 - unused\n\nSee also:\n* {{msg-mw|api-help-param-integer-max}}\n* {{msg-mw|api-help-param-integer-minmax}}",
+       "api-help-param-integer-max": "Used to display an integer parameter with a maximum but no minimum value.\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - (Unused)\n* $3 - Maximum value\nSee also:\n* {{msg-mw|Api-help-param-integer-min}}\n* {{msg-mw|Api-help-param-integer-minmax}}",
+       "api-help-param-integer-minmax": "Used to display an integer parameter with a maximum and minimum values\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Minimum value\n* $3 - Maximum value\n\nSee also:\n* {{msg-mw|api-help-param-integer-min}}\n* {{msg-mw|api-help-param-integer-max}}",
+       "api-help-param-upload": "{{technical}} Used to indicate that an 'upload'-type parameter must be posted as a file upload using multipart/form-data",
+       "api-help-param-multi-separate": "Used to indicate how to separate multiple values. Not used with {{msg-mw|api-help-param-list}}.",
+       "api-help-param-multi-max": "Used to indicate the maximum number of values accepted for a multi-valued parameter.\n\nParameters:\n* $1 - Maximum value without the apihighlimits right\n* $2 - Maximum value with the apihighlimits right",
+       "api-help-param-default": "Used to display the default value for an API parameter\n\nParameters:\n* $1 - Default value\n\nSee also:\n* {{msg-mw|api-help-param-default-empty}}\n{{Identical|Default}}",
+       "api-help-param-default-empty": "Used to display the default value for an API parameter when that default is an empty value\n\nSee also:\n* {{msg-mw|api-help-param-default}}",
+       "api-help-param-token": "{{doc-apihelp-param|description=any 'token' parameter|paramstart=3|params=\n* $1 - Token type|noseealso=1}}",
+       "api-help-param-token-webui": "{{doc-apihelp-param|description=additional text for any \"token\" parameter, explaining that web UI tokens are also accepted|noseealso=1}}",
+       "api-help-param-disabled-in-miser-mode": "{{doc-apihelp-param|description=any parameter that is disabled when [[mw:Manual:$wgMiserMode|$wgMiserMode]] is set.|noseealso=1}}",
+       "api-help-param-limited-in-miser-mode": "{{doc-apihelp-param|description=additional text for any parameter that may cause the module to return few results when [[mw:Manual:$wgMiserMode|$wgMiserMode]] is set.|noseealso=1}}",
+       "api-help-param-direction": "{{doc-apihelp-param|description=any standard \"dir\" parameter|noseealso=1}}",
+       "api-help-param-continue": "{{doc-apihelp-param|description=any standard \"continue\" parameter, or other parameter with the same semantics|noseealso=1}}",
+       "api-help-param-no-description": "Displayed on API parameters that lack any description",
+       "api-help-examples": "Label for the API help examples section\n\nParameters:\n* $1 - Number of examples to be displayed\n{{Identical|Example}}",
+       "api-help-permissions": "Label for the \"permissions\" section in the main module's help output.\n\nParameters:\n* $1 - Number of permissions displayed\n{{Identical|Permission}}",
+       "api-help-permissions-granted-to": "Used to introduce the list of groups each permission is assigned to.\n\nParameters:\n* $1 - Number of groups\n* $2 - List of group names, comma-separated",
+       "api-help-right-apihighlimits": "{{technical}}{{doc-right|apihighlimits|prefix=api-help}}\nThis message is used instead of {{msg-mw|right-apihighlimits}} in the API help to display the actual limits.\n\nParameters:\n* $1 - Limit for slow queries\n* $2 - Limit for fast queries",
+       "api-credits-header": "Header for the API credits section in the API help output\n{{Identical|Credit}}",
+       "api-credits": "API credits text, displayed in the API help output"
+}
diff --git a/includes/api/i18n/ru.json b/includes/api/i18n/ru.json
new file mode 100644 (file)
index 0000000..330da6d
--- /dev/null
@@ -0,0 +1,44 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mahairod",
+                       "Okras"
+               ]
+       },
+       "apihelp-main-param-action": "Действие, которое следует выполнить.",
+       "apihelp-main-param-format": "Формат вывода.",
+       "apihelp-main-param-smaxage": "Устанавливает заголовок s-maxage в заданное число секунд. Ошибки никогда не кэшируются.",
+       "apihelp-main-param-maxage": "Устанавливает заголовок max-age в заданное число секунд. Ошибки никогда не кэшируются.",
+       "apihelp-main-param-assert": "Удостовериться, что пользователь авторизован, если задано \"user\", или что имеет права бота, если задано \"bot\".",
+       "apihelp-main-param-requestid": "Любое значение, заданное здесь, будет включено в ответ. Может быть использовано для различения запросов.",
+       "apihelp-main-param-servedby": "Включить в результаты имя хоста, обработавшего запрос.",
+       "apihelp-main-param-curtimestamp": "Включить в результаты временную метку.",
+       "apihelp-main-param-origin": "При обращении к API, используя кросс-доменный AJAX запрос (CORS), задайте параметру значение исходного домена. Он должен быть включён в любой предварительный запрос и таким образом должен быть частью URI запроса (не тела POST). Он должен точно соответствовать одному из источников в заголовке Origin:, так что он должен быть задан наподобие http://en.wikipedia.org или https://meta.wikimedia.org. Если параметр не соответствует заголовку Origin:, будет возвращён ответ с кодом ошибки 403. Если параметр соответствует заголовку Origin: и источник в белом списке, будет установлен заголовок Access-Control-Allow-Origin.",
+       "apihelp-block-description": "Блокировка участника.",
+       "apihelp-block-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите заблокировать.",
+       "apihelp-block-param-reason": "Причина блокировки.",
+       "apihelp-block-param-nocreate": "Запретить создание учётных записей.",
+       "apihelp-createaccount-param-name": "Имя участника.",
+       "apihelp-delete-description": "Удалить страницу.",
+       "apihelp-delete-param-watch": "Добавить эту страницу в список наблюдения.",
+       "apihelp-disabled-description": "Этот модуль был отключен.",
+       "apihelp-edit-param-sectiontitle": "Заголовок для нового раздела.",
+       "apihelp-edit-param-text": "Содержание страницы.",
+       "apihelp-edit-example-edit": "Редактировать страницу",
+       "apihelp-expandtemplates-param-title": "Заголовок страницы.",
+       "apihelp-import-param-xml": "Загруженный XML-файл.",
+       "apihelp-login-param-name": "Имя участника.",
+       "apihelp-login-param-password": "Пароль.",
+       "apihelp-login-param-domain": "Домен (необязательно).",
+       "apihelp-login-example-login": "Войти",
+       "apihelp-logout-description": "Выйти и очистить данные сессии.",
+       "api-help-main-header": "Главный модуль",
+       "api-help-parameters": "Параметр{{PLURAL:$1||ы}}:",
+       "api-help-param-deprecated": "Устаревший.",
+       "api-help-param-required": "Этот параметр является обязательным.",
+       "api-help-param-default": "По умолчанию: $1",
+       "api-help-param-default-empty": "По умолчанию: <span class=\"apihelp-empty\">(пусто)</span>",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(описание отсутствует)</span>",
+       "api-help-examples": "Пример{{PLURAL:$1||ы}}:",
+       "api-credits-header": "Создатели"
+}
diff --git a/includes/api/i18n/si.json b/includes/api/i18n/si.json
new file mode 100644 (file)
index 0000000..14e0015
--- /dev/null
@@ -0,0 +1,70 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Susith Chandira Gts"
+               ]
+       },
+       "apihelp-main-param-action": "ඉටු කිරීමට ඇත්තේ කුමන ක්‍රියාවද.",
+       "apihelp-main-param-format": "ප්‍රතිදානයේ ආකෘතිය.",
+       "apihelp-main-param-requestid": "මෙහි ඇති සියලුම වටිනාකම් ප්‍රතිචාරයන්හි අන්තර්ගතකොට ඇත. ඇතැම් විට පැහැදිලිව වටහාගත් ඉල්ලීම් සදහා භාවිතා වේ.",
+       "apihelp-main-param-servedby": "ප්‍රතිපලයන්හි ඉල්ලීම් ඉටුකළ ධාරකනාමය ඇතුලත් කරන්න.",
+       "apihelp-main-param-curtimestamp": "ප්‍රථිපලයන්හි කාල මුද්‍රාව ඇතුලත් කරන්න.",
+       "apihelp-help-description": "නිරූපිත ඒකක සදහා උදවු පෙන්වන්න.",
+       "apihelp-help-param-submodules": "නම් කරන ලද ඒකකයේ, අනුඒකක සදහා උදවු ඇතුලත් කරන්න.",
+       "apihelp-help-param-helpformat": "උදවු ප්‍රතිදානයේ ආකෘතිය.",
+       "apihelp-help-param-wrap": "ප්‍රතිදානය නියමිත API අනුකූලතා ආකෘතියකට හරවන්න.",
+       "apihelp-help-param-toc": "HTML ප්‍රතිදනයන්ගේ පටුනේ ලැයිස්තුවක් ඇතුලත් කරන්න.",
+       "apihelp-help-example-main": "ප්‍රධාන ඒකකය සදහා උදවු කරන්න",
+       "apihelp-help-example-recursive": "සියලුම උදවු එක පිටුවක් තුල",
+       "apihelp-help-example-query": "සැකසහිත අනුඒකක සදහා උදවු කරන්න",
+       "apihelp-format-example-generic": "$1 ආකෘතියේ ඇති සැක සහිත ප්‍රථිපල පරිවර්තනය කරන්න",
+       "apihelp-dbg-description": "ප්‍රතිදාන දත්ත PHP හි var_export() ආකෘතියෙන් පවතී.",
+       "apihelp-dbgfm-description": "ප්‍රතිදාන දත්ත PHP හි var_export() ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-dump-description": "ප්‍රතිදාන දත්ත PHP හි var_dump() ආකෘතියෙන් පවතී.",
+       "apihelp-dumpfm-description": "ප්‍රතිදාන දත්ත PHP හි var_dump() ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-json-description": "ප්‍රතිදාන දත්ත JSON ආකෘතියෙන් පවතී.",
+       "apihelp-jsonfm-description": "ප්‍රතිදාන දත්ත JSON ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-none-description": "ප්‍රතිදානයේ කිසිවක් නොමැත.",
+       "apihelp-php-description": "ප්‍රතිදාන දත්ත serialized PHP ආකෘතියෙන් පවතී.",
+       "apihelp-phpfm-description": "ප්‍රතිදාන දත්ත serialized PHP ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-txt-description": "ප්‍රතිදාන දත්ත PHP හි print_r() ආකෘතියෙන් පවතී.",
+       "apihelp-txtfm-description": "ප්‍රතිදාන දත්ත PHP හි print_r() ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-wddx-description": "ප්‍රතිදාන දත්ත WDDX ආකෘතියෙන් පවතී",
+       "apihelp-wddxfm-description": "ප්‍රතිදාන දත්ත WDDX ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-xml-description": "ප්‍රතිදාන දත්ත XML ආකෘතියෙන් පවතී.",
+       "apihelp-xml-param-includexmlnamespace": "නිරූපණය කළා නම්, XML නාමාවකාශයක් එකතු කරන්න.",
+       "apihelp-xmlfm-description": "ප්‍රතිදාන දත්ත XML ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "apihelp-yaml-description": "ප්‍රතිදාන දත්ත YAML ආකෘතියෙන් පවතී.",
+       "apihelp-yamlfm-description": "ප්‍රතිදාන දත්ත YAML ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
+       "api-format-title": "මාධ්‍යවිකි API ප්‍රථිපල",
+       "api-help-title": "මාධ්‍යවිකි API උදවු",
+       "api-help-lead": "මෙය ස්වයං-ජනිත මාධ්‍යවිකි API \tප්‍රලේඛන පිටුවකි.\n\nප්‍රලේඛනය සහ උදාහරණ:\nhttps://www.mediawiki.org/wiki/API",
+       "api-help-main-header": "ප්‍රධාන ආකෘතිය",
+       "api-help-flag-deprecated": "මෙම ආකෘතිය විරුද්ධත්වය ප්‍රකාශ කරන ලදී.",
+       "api-help-flag-internal": "<strong>මෙම ඒකකය අභ්‍යන්තර හෝ අස්ථායි.\n</strong> එහි ක්‍රියාකාරිත්වය දැනුම් දීමකින් තොරව වෙනස් වියහැක.",
+       "api-help-flag-readrights": "මෙම ඒකකය සදහා හිමිකම් කියවීම අවශ්‍ය වේ.",
+       "api-help-flag-writerights": "මෙම ඒකකය සදහා හිමිකම් ලිවීම අවශ්‍ය වේ.",
+       "api-help-flag-mustbeposted": "මෙම ඒකකය POST ඉල්ලීම් පමණක් බාරගනී.",
+       "api-help-flag-generator": "මෙම ආකෘතිය \tඋත්පාදකයක් ලෙස භාවිතා කල හැක.",
+       "api-help-parameters": "{{PLURAL:$1|පරාමිතිය|පරාමිතීන්}}:",
+       "api-help-param-deprecated": "විරුද්ධත්වය ප්‍රකාශ කර ඇත.",
+       "api-help-param-required": "මෙම පරාමිතිය අවශ්‍යයි.",
+       "api-help-param-list": "{{PLURAL:$1|1=එක් වටිනාකමක්|2=වටිනාකම් (\"{{!}}\" සමග වෙන් කරන්න)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=හිස් කල යුතුයි|හිස් කල හැකියි, හෝ $2}}",
+       "api-help-param-limit": "$1 ට වඩා අනුමත නොකරයි.",
+       "api-help-param-limit2": "$1 කට වැඩ අනුමත කරන්නේ නැත ($2 බොට්ස් සදහාය).",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=අගය|2=අගයන්}} $2 ට වඩා අඩු නොවිය යුතුය.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=වටිනාකම|2=වටිනාකම්}} $3 ට ව වැඩි නොවිය යුතුය.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=අගය|2=අගයන්}} $2 සහ $3 අතර පැවතිය යුතුය.",
+       "api-help-param-multi-separate": "වටිනාකම් \"|\" සමග වෙන් කරන්න.",
+       "api-help-param-multi-max": "අංක සදහා උපරිම වටිනාකම {{PLURAL:$1|$1}}\n({{PLURAL:$2|$2}} බොට්ස් සදහා)",
+       "api-help-param-default": "Default: $1",
+       "api-help-param-default-empty": "Default: <span class=\"apihelp-empty\">(හිස්)</span>",
+       "api-help-param-token": "[[Special:ApiHelp/query+tokens|action=query&meta=tokens]] මගින් \"$1\" \tසංඥාව සොයාගන්නා ලදී",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(විස්තරයක් නැත)</span>",
+       "api-help-examples": "{{PLURAL:$1|උදාහරණය|උදාහරණ}}:",
+       "api-help-permissions": "{{PLURAL:$1|අවසරය|අවසරයන්}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|\tප්‍රදානලාභියාට}}: $2",
+       "api-credits-header": "ස්තුතිය",
+       "api-credits": "API වැඩිදියුණු කරන්නන්:\n* Roan Kattouw (ප්‍රධානියා 2007 සැප්. –2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (නිර්මාපකයා, ප්‍රධානියා 2006 සැප්. – 2007 සැප්.)\n* Brad Jorsch (ප්‍රධානියා 2013–මේ දක්වා)\n\nඔබගේ අදහස්, යෝජනා හා ගැටළු mediawiki-api@lists.wikimedia.org වෙත යොමු කරන්න, පින්තූර හෝ ගොනු හරහා ගැටළු ඉදිරිපත් කිරීමට  https://bugzilla.wikimedia.org/ වෙත පිවිසෙන්න."
+}
diff --git a/includes/api/i18n/sv.json b/includes/api/i18n/sv.json
new file mode 100644 (file)
index 0000000..ae40cd9
--- /dev/null
@@ -0,0 +1,66 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Jopparn",
+                       "Lokal Profil",
+                       "WikiPhoenix"
+               ]
+       },
+       "apihelp-main-param-curtimestamp": "Inkludera den aktuella tidsstämpeln i resultatet.",
+       "apihelp-block-description": "Blockera en användare.",
+       "apihelp-block-param-user": "Användare, IP-adress eller IP-intervall du vill blockera.",
+       "apihelp-block-param-reason": "Orsak till blockering.",
+       "apihelp-block-param-anononly": "Blockera endast anonyma användare (t.ex. inaktivera anonyma redigeringar för denna IP-adress).",
+       "apihelp-block-param-nocreate": "Förhindra registrering av användarkonton.",
+       "apihelp-createaccount-description": "Skapa ett nytt användarkonto.",
+       "apihelp-createaccount-param-name": "Användarnamn.",
+       "apihelp-createaccount-param-password": "Lösenord (ignoreras om $1mailpassword angetts).",
+       "apihelp-createaccount-param-email": "Användarens e-postadress (valfritt).",
+       "apihelp-createaccount-param-realname": "Användarens riktiga namn (valfritt).",
+       "apihelp-createaccount-example-pass": "Skapa användaren \"testuser\" med lösenordet \"test123\"",
+       "apihelp-delete-description": "Radera en sida.",
+       "apihelp-delete-param-watch": "Lägg till sidan i din bevakningslista.",
+       "apihelp-delete-param-unwatch": "Ta bort sidan från din bevakningslista.",
+       "apihelp-delete-example-simple": "Radera huvudsidan",
+       "apihelp-delete-example-reason": "Raderar huvudsidan med orsaken \"Förbereder flyttning\"",
+       "apihelp-disabled-description": "Denna modul har inaktiverats.",
+       "apihelp-edit-description": "Skapa och redigera sidor.",
+       "apihelp-edit-param-text": "Sidans innehåll.",
+       "apihelp-edit-param-summary": "Redigeringssammanfattning. Även avsnittets rubrik när $1section=new och $1sectiontitle inte anges.",
+       "apihelp-edit-param-minor": "Mindre redigering.",
+       "apihelp-edit-param-watch": "Lägg till sidan i din bevakningslista.",
+       "apihelp-edit-param-unwatch": "Ta bort sidan från din bevakningslista.",
+       "apihelp-edit-example-edit": "Redigera en sida",
+       "apihelp-emailuser-description": "Skicka e-post till en användare.",
+       "apihelp-expandtemplates-param-title": "Sidans rubrik.",
+       "apihelp-expandtemplates-param-text": "Wikitext att konvertera.",
+       "apihelp-feedcontributions-param-year": "Från år (och tidigare).",
+       "apihelp-feedcontributions-param-month": "Från månad (och tidigare).",
+       "apihelp-feedrecentchanges-param-hideminor": "Dölj mindre ändringar.",
+       "apihelp-feedrecentchanges-param-hidebots": "Dölj robotändringar.",
+       "apihelp-feedrecentchanges-param-hideanons": "Dölj ändringar av oinloggade användare.",
+       "apihelp-feedrecentchanges-param-hideliu": "Dölj ändringar av inloggade användare.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Dölj patrullerade ändringar.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Dölj mina ändringar.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtrera efter tagg.",
+       "apihelp-feedrecentchanges-param-target": "Visa endast ändringarna av sidor som den här sidan länkar till.",
+       "apihelp-feedrecentchanges-example-simple": "Visa senaste ändringar",
+       "apihelp-feedrecentchanges-example-30days": "Visa senaste ändringar för 30 dygn",
+       "apihelp-filerevert-param-comment": "Ladda upp kommentar.",
+       "apihelp-help-example-recursive": "All hjälp på en sida",
+       "apihelp-help-example-help": "Hjälp för själva hjälpmodulen",
+       "api-help-main-header": "Huvudmodul",
+       "api-help-flag-deprecated": "Denna modul är föråldrad.",
+       "api-help-flag-internal": "<strong>Denna modul är intern eller instabil.</strong> Dess funktion kan ändras utan föregående meddelande.",
+       "api-help-flag-readrights": "Denna modul kräver läsrättigheter.",
+       "api-help-flag-writerights": "Denna modul kräver skrivrättigheter.",
+       "api-help-flag-mustbeposted": "Denna modul accepterar endast POST-begäranden.",
+       "api-help-flag-generator": "Denna modul kan användas som en generator.",
+       "api-help-parameters": "{{PLURAL:$1|Parameter|Parametrar}}:",
+       "api-help-param-deprecated": "Föråldrad.",
+       "api-help-param-required": "Denna parameter är obligatorisk.",
+       "api-help-param-list": "{{PLURAL:$1|1=ett värde|2=värden (separade med \"{{!}}\")}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Måste vara tom|Kan vara tom, eller $2}}",
+       "api-help-param-limit": "Inte mer än $1 tillåts.",
+       "api-help-param-limit2": "Inte mer än $1 ($2 för robotar) tillåts."
+}
diff --git a/includes/api/i18n/tr.json b/includes/api/i18n/tr.json
new file mode 100644 (file)
index 0000000..3a9ff25
--- /dev/null
@@ -0,0 +1,40 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Sayginer"
+               ]
+       },
+       "apihelp-edit-param-text": "Sayfa içeriği.",
+       "apihelp-edit-param-minor": "Küçük değişiklik.",
+       "apihelp-edit-param-nocreate": "Sayfa mevcut değilse hata oluştur.",
+       "apihelp-edit-param-watch": "Sayfayı izleme listenize ekleyin.",
+       "apihelp-edit-param-unwatch": "Sayfayı izleme listenizden çıkarın.",
+       "apihelp-edit-param-redirect": "Yönlendirmeleri otomatik olarak çöz.",
+       "apihelp-emailuser-description": "Bir kullanıcıya e-posta gönder.",
+       "apihelp-emailuser-param-target": "E-posta gönderilecek kullanıcı.",
+       "apihelp-emailuser-param-subject": "Konu başlığı.",
+       "apihelp-emailuser-param-text": "E-posta metni.",
+       "apihelp-emailuser-param-ccme": "Bu e-postanın bir kopyasını bana gönder.",
+       "apihelp-feedcontributions-param-toponly": "Yalnızca son revizyon olan değişiklikleri göster.",
+       "apihelp-feedcontributions-param-newonly": "Yalnızca yeni sayfa oluşturan değişiklikleri göster.",
+       "apihelp-feedcontributions-param-showsizediff": "Sürümler arasındaki boyut farkını göster.",
+       "apihelp-feedrecentchanges-param-limit": "Verilecek azami sonuç sayısı.",
+       "apihelp-feedrecentchanges-param-hideminor": "Küçük değişiklikleri gizle.",
+       "apihelp-feedrecentchanges-param-hidebots": "Bot değişikliklerini gizle.",
+       "apihelp-feedrecentchanges-param-hideanons": "Anonim kullanıcı değişikliklerini gizle.",
+       "apihelp-feedrecentchanges-param-hideliu": "Kayıtlı kullanıcı değişikliklerini gizle.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Kendi değişikliklerini gizle.",
+       "apihelp-feedrecentchanges-example-simple": "Son değişiklikleri göster",
+       "apihelp-feedrecentchanges-example-30days": "Son 30 gündeki değişiklikleri göster",
+       "apihelp-filerevert-description": "Bir dosyayı eski bir sürümüne geri döndür.",
+       "apihelp-move-description": "Bir sayfayı taşı.",
+       "apihelp-move-param-from": "Taşımak istediğiniz sayfanın başlığı. $1fromid ile birlikte kullanılamaz.",
+       "apihelp-move-param-noredirect": "Yönlendirme oluşturmayın.",
+       "apihelp-opensearch-param-limit": "Verilecek azami sonuç sayısı.",
+       "apihelp-options-example-reset": "Tüm tercihleri sıfırla",
+       "api-help-title": "MediaWiki API yardımı",
+       "api-help-parameters": "{{PLURAL:$1|Parametre|Parametre}}:",
+       "api-help-param-limit": "$1 taneden fazla olamaz.",
+       "api-help-param-limit2": "$1 taneden fazla (botlar için $2) olamaz.",
+       "api-help-param-default": "Varsayılan: $1"
+}
diff --git a/includes/api/i18n/uk.json b/includes/api/i18n/uk.json
new file mode 100644 (file)
index 0000000..d9f89a4
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ата"
+               ]
+       },
+       "apihelp-main-param-action": "Яку дію виконати.",
+       "apihelp-main-param-format": "Формат виводу."
+}
diff --git a/includes/api/i18n/vi.json b/includes/api/i18n/vi.json
new file mode 100644 (file)
index 0000000..30211af
--- /dev/null
@@ -0,0 +1,123 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Minh Nguyen",
+                       "Max20091"
+               ]
+       },
+       "apihelp-main-param-action": "Tác vụ để thực hiện.",
+       "apihelp-main-param-format": "Định dạng của dữ liệu được cho ra.",
+       "apihelp-block-description": "Cấm người dùng.",
+       "apihelp-block-param-reason": "Lý do cấm.",
+       "apihelp-block-param-nocreate": "Cấm tạo tài khoản.",
+       "apihelp-createaccount-description": "Mở tài khoản mới.",
+       "apihelp-createaccount-param-name": "Tên người dùng.",
+       "apihelp-createaccount-param-password": "Mật khẩu (được bỏ qua nếu $1mailpassword được đặt).",
+       "apihelp-createaccount-param-domain": "Tên miền để xác thực bên ngoài (tùy chọn).",
+       "apihelp-createaccount-param-token": "Dấu hiệu mở tài khoản được lấy trong yêu cầu đầu tiên.",
+       "apihelp-createaccount-param-email": "Địa chỉ thư điện tử của thành viên (tùy chọn).",
+       "apihelp-createaccount-param-realname": "Tên thật của thành viên (tùy chọn).",
+       "apihelp-delete-description": "Xóa trang.",
+       "apihelp-delete-param-watch": "Thêm trang vào danh sách theo dõi của bạn.",
+       "apihelp-delete-param-unwatch": "Bỏ trang này khỏi danh sách theo dõi của bạn.",
+       "apihelp-delete-example-simple": "Xóa Trang Chính",
+       "apihelp-delete-example-reason": "Xóa Trang Chính với lý do “Chuẩn bị di chuyển”",
+       "apihelp-disabled-description": "Mô đun này đã bị vô hiệu hóa.",
+       "apihelp-edit-description": "Tạo và sửa trang.",
+       "apihelp-edit-param-section": "Số phần trang. 0 là phần đầu; “new” là phần mới.",
+       "apihelp-edit-param-sectiontitle": "Tên của phần mới.",
+       "apihelp-edit-param-text": "Nội dung trang.",
+       "apihelp-edit-param-summary": "Tóm lược sửa đổi. Cũng là tên phần khi $1section=new và $1sectiontitle không được đặt.",
+       "apihelp-edit-param-minor": "Sửa đổi nhỏ.",
+       "apihelp-edit-param-notminor": "Sửa đổi không nhỏ.",
+       "apihelp-edit-param-bot": "Đánh dấu sửa đổi này là do bot thực hiện.",
+       "apihelp-edit-param-createonly": "Không sửa đổi trang nếu nó đã tồn tại.",
+       "apihelp-edit-param-nocreate": "Gây lỗi nếu trang không tồn tại.",
+       "apihelp-edit-param-watch": "Thêm trang vào danh sách theo dõi của bạn.",
+       "apihelp-edit-param-unwatch": "Bỏ trang này khỏi danh sách theo dõi của bạn.",
+       "apihelp-edit-example-edit": "Sửa đổi trang",
+       "apihelp-edit-example-prepend": "Đưa _&#95;NOTOC_&#95; vào đầu trang",
+       "apihelp-edit-example-undo": "Lùi sửa các thay đổi 13579–13585 và tự động tóm lược",
+       "apihelp-emailuser-description": "Gửi thư cho người dùng.",
+       "apihelp-emailuser-param-target": "Người dùng để gửi thư điện tử cho.",
+       "apihelp-emailuser-param-subject": "Tiêu đề bức thư.",
+       "apihelp-emailuser-param-text": "Nội dung bức thư.",
+       "apihelp-emailuser-param-ccme": "Gửi bản sao của thư này cho tôi.",
+       "apihelp-emailuser-example-email": "Gửi thư điện tử cho thành viên “BQVWiki” với văn bản “Nội dung”",
+       "apihelp-expandtemplates-description": "Bung tất cả bản mẫu trong văn bản wiki.",
+       "apihelp-expandtemplates-param-title": "Tên trang.",
+       "apihelp-expandtemplates-param-text": "Văn bản wiki để bung.",
+       "apihelp-help-param-helpformat": "Định dạng của văn bản trợ giúp được cho ra.",
+       "apihelp-imagerotate-example-simple": "Xoay [[:Tập tin:Ví dụ.jpg]] 90 độ",
+       "apihelp-imagerotate-example-generator": "Xoay tất cả các hình ảnh trong [[:Thể loại:Búng]] 180 độ",
+       "apihelp-login-param-name": "Tên người dùng.",
+       "apihelp-login-param-password": "Mật khẩu.",
+       "apihelp-login-param-domain": "Tên miền (tùy chọn).",
+       "apihelp-login-param-token": "Dấu hiệu đăng nhập được lấy trong yêu cầu đầu tiên.",
+       "apihelp-login-example-gettoken": "Lấy dấu hiệu đăng nhập",
+       "apihelp-login-example-login": "Đăng nhập",
+       "apihelp-logout-example-logout": "Đăng xuất người dùng hiện tại",
+       "apihelp-move-description": "Di chuyển trang.",
+       "apihelp-move-param-reason": "Lý do di chuyển.",
+       "apihelp-move-param-noredirect": "Không tạo trang đổi hướng.",
+       "apihelp-move-param-ignorewarnings": "Bỏ qua tất cả các cảnh báo.",
+       "apihelp-opensearch-description": "Tìm kiếm trong wiki qua giao thức OpenSearch.",
+       "apihelp-opensearch-param-search": "Chuỗi tìm kiếm.",
+       "apihelp-opensearch-param-limit": "Đa số kết quả để cho ra.",
+       "apihelp-opensearch-param-namespace": "Không gian tên để tìm kiếm.",
+       "apihelp-opensearch-param-format": "Định dạng kết quả được cho ra.",
+       "apihelp-opensearch-example-te": "Tìm trang bắt đầu với “Te”",
+       "apihelp-options-example-reset": "Mặc định lại các tùy chọn",
+       "apihelp-paraminfo-param-helpformat": "Định dạng chuỗi trợ giúp.",
+       "apihelp-parse-param-summary": "Lời tóm lược để phân tích.",
+       "apihelp-parse-example-page": "Phân tích trang.",
+       "apihelp-parse-example-text": "Phân tích văn bản wiki.",
+       "apihelp-parse-example-texttitle": "Phân tích văn bản wiki theo tên trang.",
+       "apihelp-parse-example-summary": "Phân tích lời tóm lược.",
+       "apihelp-protect-example-protect": "Khóa trang.",
+       "apihelp-protect-example-unprotect": "Mở khóa trang bằng cách đặt hạn chế thành “all”",
+       "apihelp-protect-example-unprotect2": "Mở khóa trang bằng cách không đặt hạn chế nào",
+       "apihelp-purge-param-forcelinkupdate": "Cập nhật các bảng liên kết.",
+       "apihelp-purge-example-generator": "Làm mới 10 trang đầu tiên trong không gian tên chính",
+       "apihelp-query-param-prop": "Các thuộc tính để lấy khi truy vấn các trang.",
+       "apihelp-query-param-list": "Các danh sách để lấy.",
+       "apihelp-query-param-meta": "Siêu dữ liệu để lấy.",
+       "apihelp-format-example-generic": "Định dạng kết quả truy vấn dưới dạng $1",
+       "apihelp-dbg-description": "Cho ra dữ liệu dưới dạng var_export() của PHP.",
+       "apihelp-dbgfm-description": "Cho ra dữ liệu dưới dạng var_export() của PHP (định dạng bằng HTML).",
+       "apihelp-dump-description": "Cho ra dữ liệu dưới dạng var_dump() của PHP.",
+       "apihelp-dumpfm-description": "Cho ra dữ liệu dưới dạng var_dump() của PHP (định dạng bằng HTML).",
+       "apihelp-json-description": "Cho ra dữ liệu dưới dạng JSON.",
+       "apihelp-jsonfm-description": "Cho ra dữ liệu dưới dạng JSON (định dạng bằng HTML).",
+       "apihelp-none-description": "Không cho ra gì.",
+       "apihelp-rawfm-description": "Cho ra dữ liệu với các phần tử gỡ lỗi dưới dạng JSON (định dạng bằng HTML).",
+       "apihelp-txt-description": "Cho ra dữ liệu dưới dạng print_r() của PHP.",
+       "apihelp-txtfm-description": "Cho ra dữ liệu dưới dạng print_r() của PHP (định dạng bằng HTML).",
+       "apihelp-wddx-description": "Cho ra dữ liệu dưới dạng WDDX.",
+       "apihelp-wddxfm-description": "Cho ra dữ liệu dưới dạng WDDX (định dạng bằng HTML).",
+       "apihelp-xml-description": "Cho ra dữ liệu dưới dạng XML.",
+       "apihelp-xmlfm-description": "Cho ra dữ liệu dưới dạng XML (định dạng bằng HTML).",
+       "apihelp-yaml-description": "Cho ra dữ liệu dưới dạng YAML.",
+       "apihelp-yamlfm-description": "Cho ra dữ liệu dưới dạng YAML (định dạng bằng HTML).",
+       "api-format-title": "Kết quả API MediaWiki",
+       "api-help-title": "Trợ giúp về API MediaWiki",
+       "api-help-main-header": "Mô đun chính",
+       "api-help-flag-deprecated": "Mô đun này đã bị phản đối.",
+       "api-help-flag-readrights": "Mô đun này cần quyền đọc.",
+       "api-help-flag-writerights": "Mô đun này cần quyền ghi.",
+       "api-help-flag-mustbeposted": "Mô đun này chỉ có nhận các yêu cầu POST.",
+       "api-help-parameters": "{{PLURAL:$1|Tham số|Các tham số}}:",
+       "api-help-param-deprecated": "Bị phản đối.",
+       "api-help-param-required": "Tham số này là bắt buộc.",
+       "api-help-param-list": "{{PLURAL:$1|1=Một giá trị|2=Các giá trị (phân tách bằng “{{!}}”)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Cần phải để trống|Cần phải để trống hoặc là $2}}",
+       "api-help-param-limit": "Không cho phép hơn $1.",
+       "api-help-param-limit2": "Không cho phép hơn $1 ($2 đối với các bot).",
+       "api-help-param-multi-separate": "Phân tách các giá trị bằng “|”.",
+       "api-help-param-default": "Mặc định: $1",
+       "api-help-param-default-empty": "Mặc định: <span class=\"apihelp-empty\">(trống)</span>",
+       "api-help-examples": "{{PLURAL:$1|Ví dụ|Các ví dụ}}:",
+       "api-help-permissions": "{{PLURAL:$1|Quyền hạn|Các quyền hạn}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1}}Cấp cho: $2",
+       "api-credits-header": "Ghi công"
+}
diff --git a/includes/api/i18n/zh-hans.json b/includes/api/i18n/zh-hans.json
new file mode 100644 (file)
index 0000000..3fb7b68
--- /dev/null
@@ -0,0 +1,388 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gaoxuewei",
+                       "Linforest",
+                       "Liuxinyu970226",
+                       "Papapasan"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page 文档]\n* [https://www.mediawiki.org/wiki/API:FAQ 问答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 邮件列表]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://bugzilla.wikimedia.org/buglist.cgi?component=API&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.delta_ts Bugs与需求信息]\n</div>\n<strong>状态信息:</strong> 本页所展示的所有特性都应正常工作,但是API仍在开发当中,将会随时变化。请订阅[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce 邮件列表]以便获得更新通知。\n\n<strong>错误请求:</strong> 当API收到错误请求时,HTTP header将会返回一个包含\"MediaWiki-API-Error\"的值,随后header的值与error code将会送回并设置为相同的值。详细信息请参阅https://www.mediawiki.org/wiki/API:Errors_and_warnings 。",
+       "apihelp-main-param-action": "要执行哪些操作。",
+       "apihelp-main-param-format": "输出的格式。",
+       "apihelp-main-param-curtimestamp": "在结果中包括当前时间戳。",
+       "apihelp-block-description": "封禁一位用户。",
+       "apihelp-block-param-user": "您要封禁的用户、IP地址或IP地址段。",
+       "apihelp-block-param-reason": "封禁的原因",
+       "apihelp-block-param-nocreate": "防止创建帐户。",
+       "apihelp-block-param-noemail": "阻止用户通过 wiki发送电子邮件。(要求\"blockemail\"权限)。",
+       "apihelp-block-param-hidename": "从封禁日志中隐藏用户名。(需要“隐藏用户”权限)。",
+       "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页 (取决于 $wgBlockAllowsUTEdit)。",
+       "apihelp-block-param-watchuser": "监视该用户或该 IP 的用户页和讨论页。",
+       "apihelp-block-example-ip-simple": "封禁IP地址192.0.2.5三天,原因“首次罢工”",
+       "apihelp-clearhasmsg-description": "清除当前用户的 hasmsg 标志。",
+       "apihelp-clearhasmsg-example-1": "清除当前用户的 hasmsg 标志",
+       "apihelp-compare-description": "获取2个页面之间的差别。\n\n您必须为\"from\"和\"to\"传递特定的修订版本号、 页面标题或页面ID。",
+       "apihelp-compare-param-fromtitle": "要比较的第一个标题。",
+       "apihelp-compare-param-fromid": "要比较的第一个页面 ID。",
+       "apihelp-compare-param-fromrev": "要比较的第一个修订版本。",
+       "apihelp-compare-param-totitle": "要比较的第二个标题。",
+       "apihelp-compare-param-toid": "要比较的第一个页面 ID。",
+       "apihelp-compare-param-torev": "要比较的第二个修订版本。",
+       "apihelp-compare-example-1": "在版本1和2中创建差异",
+       "apihelp-createaccount-description": "创建一个新用户账户。",
+       "apihelp-createaccount-param-name": "用户名",
+       "apihelp-createaccount-param-password": "密码(如果设置$1mailpassword则忽略)。",
+       "apihelp-createaccount-param-domain": "外部身份验证域 (可选)。",
+       "apihelp-createaccount-param-token": "在第一个请求中获得的帐户创建标记。",
+       "apihelp-createaccount-param-email": "用户的电子邮件地址(可选)。",
+       "apihelp-createaccount-param-realname": "用户的真实姓名(可选)。",
+       "apihelp-createaccount-param-mailpassword": "如果设置为任何值,将向用户发送一个随机密码。",
+       "apihelp-createaccount-param-reason": "将要放在日志中的,关于创建帐户的可选原因。",
+       "apihelp-createaccount-example-pass": "创建用户“testuser”和密码“test123”",
+       "apihelp-delete-description": "删除一个页面。",
+       "apihelp-delete-param-title": "你所希望删除的页面的标题。不能与$1pageid一起使用。",
+       "apihelp-delete-param-pageid": "你所希望删除的页面的页面ID。不能与$1title一起使用。",
+       "apihelp-delete-param-reason": "删除原因。如果未设置,将使用一个自动生成的原因。",
+       "apihelp-delete-param-watch": "将该页面加入您的监视列表。",
+       "apihelp-delete-param-unwatch": "将该页面从您的监视列表删除。",
+       "apihelp-delete-example-simple": "删除首页",
+       "apihelp-delete-example-reason": "删除首页,原因“准备移动”",
+       "apihelp-disabled-description": "此模块已禁用。",
+       "apihelp-edit-description": "创建和编辑页面。",
+       "apihelp-edit-param-sectiontitle": "新小节的标题。",
+       "apihelp-edit-param-text": "页面内容。",
+       "apihelp-edit-param-summary": "编辑摘要。当$1section=new且未设置$1sectiontitle时,还包括小节标题。",
+       "apihelp-edit-param-minor": "小编辑。",
+       "apihelp-edit-param-notminor": "不是小编辑。",
+       "apihelp-edit-param-bot": "标记此编辑为机器人编辑。",
+       "apihelp-edit-param-createonly": "不要编辑页面,如果已经存在。",
+       "apihelp-edit-param-nocreate": "如果该页面不存在,则抛出一个错误。",
+       "apihelp-edit-param-watch": "将页面加入您的监视列表。",
+       "apihelp-edit-param-unwatch": "将页面从您的监视列表移除。",
+       "apihelp-edit-param-redirect": "自动解析重定向。",
+       "apihelp-edit-example-edit": "编辑一个页面",
+       "apihelp-edit-example-prepend": "页面中预置_&#95;NOTOC_&#95;",
+       "apihelp-emailuser-description": "电子邮件联系一位用户。",
+       "apihelp-emailuser-param-target": "电子邮件的目标用户。",
+       "apihelp-emailuser-param-subject": "主题页眉。",
+       "apihelp-emailuser-param-text": "邮件正文。",
+       "apihelp-emailuser-param-ccme": "给我发送一份该邮件的副本。",
+       "apihelp-emailuser-example-email": "向用户“WikiSysop”发送邮件,带文字“Content”",
+       "apihelp-expandtemplates-description": "展开维基文本中的所有模板。",
+       "apihelp-expandtemplates-param-title": "页面标题。",
+       "apihelp-expandtemplates-param-text": "要转换的wiki文本。",
+       "apihelp-expandtemplates-example-simple": "展开wiki文本“<nowiki>{{Project:Sandbox}}</nowiki>”",
+       "apihelp-feedcontributions-description": "返回用户贡献纲要。",
+       "apihelp-feedcontributions-param-feedformat": "纲要的格式。",
+       "apihelp-feedcontributions-param-deletedonly": "仅显示已删除的贡献。",
+       "apihelp-feedcontributions-param-toponly": "仅仅显示那些作为最新修订的编辑。",
+       "apihelp-feedcontributions-param-newonly": "仅仅显示那些作为页面创建的编辑。",
+       "apihelp-feedcontributions-param-showsizediff": "显示修订版本之间的大小差别。",
+       "apihelp-feedcontributions-example-simple": "返回[[User:Example]]的贡献",
+       "apihelp-feedrecentchanges-description": "返回最新变更纲要。",
+       "apihelp-feedrecentchanges-param-feedformat": "纲要的格式。",
+       "apihelp-feedrecentchanges-param-namespace": "用于限制结果的命名空间。",
+       "apihelp-feedrecentchanges-param-invert": "除所选定者外的所有命名空间。",
+       "apihelp-feedrecentchanges-param-days": "用于限制结果的天数。",
+       "apihelp-feedrecentchanges-param-limit": "所要返回结果的最大数目。",
+       "apihelp-feedrecentchanges-param-from": "显示自那时以来的更改。",
+       "apihelp-feedrecentchanges-param-hideminor": "隐藏小更改。",
+       "apihelp-feedrecentchanges-param-hidebots": "隐藏机器人所做的更改。",
+       "apihelp-feedrecentchanges-param-hideanons": "隐藏匿名用户做出的更改。",
+       "apihelp-feedrecentchanges-param-hideliu": "隐藏注册用户做出的更改。",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "隐藏已巡查更改。",
+       "apihelp-feedrecentchanges-param-hidemyself": "隐藏您做出的更改。",
+       "apihelp-feedrecentchanges-param-tagfilter": "按标签过滤。",
+       "apihelp-feedrecentchanges-param-target": "仅仅显示从该页面链出的那些页面的变更。",
+       "apihelp-feedrecentchanges-param-showlinkedto": "仅仅显示链入到该页面的那些页面的变更。",
+       "apihelp-feedrecentchanges-example-simple": "显示最近更改",
+       "apihelp-feedrecentchanges-example-30days": "显示最近30天的更改",
+       "apihelp-feedwatchlist-description": "返回监视列表纲要。",
+       "apihelp-feedwatchlist-param-feedformat": "纲要的格式。",
+       "apihelp-feedwatchlist-param-hours": "列出从现在起数小时内修改的页面。",
+       "apihelp-feedwatchlist-param-linktosections": "如果可能的话,直接链接到已变更的小节。",
+       "apihelp-feedwatchlist-example-default": "显示监视列表订阅",
+       "apihelp-feedwatchlist-example-all6hrs": "显示过去6小时内受监视页面的所有更改。",
+       "apihelp-filerevert-description": "回退一个文件至某一旧版本。",
+       "apihelp-filerevert-param-filename": "目标文件名,不包含前缀“File:”。",
+       "apihelp-filerevert-param-comment": "上传评论。",
+       "apihelp-filerevert-example-revert": "回退Wiki.png至2011-03-05T15:27:40Z的版本",
+       "apihelp-help-example-main": "主模块帮助",
+       "apihelp-help-example-recursive": "一个页面中的所有帮助",
+       "apihelp-help-example-help": "帮助模块本身的帮助",
+       "apihelp-help-example-query": "两个查询子模块的帮助",
+       "apihelp-import-param-summary": "导入摘要。",
+       "apihelp-import-param-xml": "上传的XML文件。",
+       "apihelp-import-param-interwikipage": "用于跨wiki导入:导入的页面。",
+       "apihelp-import-param-rootpage": "导入作为此页面的子页面。",
+       "apihelp-import-example-import": "将页面[[meta:Help:Parserfunctions]]连带完整历史导入至100名字空间。",
+       "apihelp-login-param-name": "用户名。",
+       "apihelp-login-param-password": "密码。",
+       "apihelp-login-param-domain": "域名(可选)。",
+       "apihelp-login-example-gettoken": "检索登录令牌",
+       "apihelp-login-example-login": "登录",
+       "apihelp-move-description": "移动一个页面。",
+       "apihelp-move-param-reason": "移动原因。",
+       "apihelp-move-param-movetalk": "移动讨论页,如果存在。",
+       "apihelp-move-param-movesubpages": "移动子页面,如果可以。",
+       "apihelp-move-param-noredirect": "不要创建重定向。",
+       "apihelp-move-param-ignorewarnings": "忽略任何警告。",
+       "apihelp-opensearch-param-search": "搜索字符串。",
+       "apihelp-opensearch-param-namespace": "搜索的名字空间。",
+       "apihelp-opensearch-param-suggest": "如果[https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest]设置为false则不做任何事情。",
+       "apihelp-opensearch-param-format": "输出格式。",
+       "apihelp-opensearch-example-te": "查找以“Te”开头的页面",
+       "apihelp-options-example-reset": "重置所有用户设置",
+       "apihelp-options-example-change": "更改“皮肤”和“hideminot”设置",
+       "apihelp-options-example-complex": "重置所有设置,之后设置“皮肤”和“昵称”",
+       "apihelp-paraminfo-description": "获取关于 API 模块的信息。",
+       "apihelp-paraminfo-param-modules": "模块名称列表(action=和format=参数值,或“主”)。可通过“+”指定子模块。",
+       "apihelp-paraminfo-param-helpformat": "帮助字符串的格式。",
+       "apihelp-paraminfo-example-1": "显示[[Special:ApiHelp/parse|action=parse]]、[[Special:ApiHelp/jsonfm|format=jsonfm]]、[[Special:ApiHelp/query+allpages|action=query&list=allpages]]和[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]的信息",
+       "apihelp-parse-param-summary": "所要解析的摘要。",
+       "apihelp-parse-param-page": "解析此页的内容。不能与$1text和$1title一起使用。",
+       "apihelp-parse-param-pageid": "解析此页的内容。覆盖 $1 页。",
+       "apihelp-parse-param-redirects": "如果 $1page 或 $1 pageid 参数被设置为一个重定向,则解析它。",
+       "apihelp-parse-param-oldid": "解析该修订版本的内容。覆盖 $1page 和 $1 pageid。",
+       "apihelp-parse-param-preview": "在预览模式下解析。",
+       "apihelp-parse-param-sectionpreview": "在小节预览模式下解析 (同时要启用预览模式)。",
+       "apihelp-parse-param-disabletoc": "在输出中禁用目录。",
+       "apihelp-parse-example-page": "解析一个页面。",
+       "apihelp-parse-example-text": "解析wiki文本。",
+       "apihelp-parse-example-texttitle": "解析维基文本,指定页面标题。",
+       "apihelp-parse-example-summary": "解析一个摘要。",
+       "apihelp-patrol-description": "巡查页面或修订版本。",
+       "apihelp-patrol-param-rcid": "所要巡查的最近变更 ID。",
+       "apihelp-patrol-param-revid": "要巡查的修订版本ID。",
+       "apihelp-patrol-example-rcid": "巡查一次最近更改",
+       "apihelp-patrol-example-revid": "巡查一次修订",
+       "apihelp-protect-description": "更改页面的保护等级。",
+       "apihelp-protect-param-title": "要(解除)保护的页面标题。不能与$1pageid一起使用。",
+       "apihelp-protect-param-pageid": "要(解除)保护的页面ID。不能与$1title一起使用。",
+       "apihelp-protect-param-protections": "保护等级列表,格式:action=level(例如edit=sysop)。\n\n'''注意:'''未列出的操作将移除限制。",
+       "apihelp-protect-param-reason": "(解除)保护的原因。",
+       "apihelp-protect-example-protect": "保护一个页面",
+       "apihelp-purge-param-forcelinkupdate": "更新链接表。",
+       "apihelp-purge-param-forcerecursivelinkupdate": "更新链接表中,并更新任何使用此页作为模板的页面的链接表。",
+       "apihelp-purge-example-simple": "刷新“首页”和“API”页面",
+       "apihelp-purge-example-generator": "刷新主名字空间的前10个页面",
+       "apihelp-query-param-list": "要获取的列表。",
+       "apihelp-query-param-meta": "要获取的元数据。",
+       "apihelp-query-example-revisions": "获取首页的[[Special:ApiHelp/query+siteinfo|站点信息]]和[[Special:ApiHelp/query+revisions|修订版本]]",
+       "apihelp-query+allcategories-description": "枚举所有类别。",
+       "apihelp-query+allcategories-param-from": "要作为枚举起始点的类别。",
+       "apihelp-query+allcategories-param-to": "要作为枚举终止点的类别。",
+       "apihelp-query+allcategories-param-limit": "要返回多少个类别。",
+       "apihelp-query+allfileusages-param-dir": "罗列所采用的方向。",
+       "apihelp-query+allfileusages-example-unique": "列出唯一性的文件标题",
+       "apihelp-query+allfileusages-example-unique-generator": "获取所有文件标题,并标记出缺失者",
+       "apihelp-query+allfileusages-example-generator": "获取包含这些文件的页面",
+       "apihelp-query+allimages-description": "按顺序枚举所有图像。",
+       "apihelp-query+allimages-param-sort": "要作为排序方式的属性。",
+       "apihelp-query+allimages-param-dir": "罗列所采用的方向。",
+       "apihelp-query+allimages-param-minsize": "限于至少这么多字节的图像。",
+       "apihelp-query+allimages-param-maxsize": "限于顶多这么多字节的图像。",
+       "apihelp-query+allimages-param-sha1": "图像的 SHA1 哈希。覆盖$1sha1base36。",
+       "apihelp-query+allimages-param-limit": "共计要返回多少图像。",
+       "apihelp-query+allimages-example-B": "显示以字母“B”开始的文件列表",
+       "apihelp-query+alllinks-example-generator": "获取包含这些链接的页面",
+       "apihelp-query+allmessages-description": "返回来自该站点的消息。",
+       "apihelp-query+allmessages-param-messages": "要输出的哪些消息。\"*\" (默认值) 表示所有消息。",
+       "apihelp-query+allmessages-param-prop": "要获取的属性。",
+       "apihelp-query+allmessages-param-lang": "返回这种语言的信息。",
+       "apihelp-query+allmessages-param-prefix": "返回带有该前缀的消息。",
+       "apihelp-query+allmessages-example-ipb": "显示以“ipb-”开始的消息",
+       "apihelp-query+allpages-param-filterredir": "要列出哪些页面。",
+       "apihelp-query+allpages-param-minsize": "限于至少这么多字节的页面。",
+       "apihelp-query+allpages-param-maxsize": "限于至多这么多字节的页面。",
+       "apihelp-query+allpages-param-prtype": "仅限于受保护页面。",
+       "apihelp-query+allredirects-description": "列出至一个名字空间的重定向。",
+       "apihelp-query+allredirects-param-namespace": "要列举的名字空间。",
+       "apihelp-query+allusers-param-witheditsonly": "只列出有编辑的用户。",
+       "apihelp-query+allusers-param-activeusers": "只列出最近$1天内活跃的用户。",
+       "apihelp-query+allusers-example-Y": "列出以Y开头的用户",
+       "apihelp-query+backlinks-example-simple": "显示至[[首页]]的链接",
+       "apihelp-query+backlinks-example-generator": "获取关于链接至[[首页]]的页面的信息",
+       "apihelp-query+blocks-description": "列出所有被封禁的用户和IP地址。",
+       "apihelp-query+blocks-example-simple": "封禁列表",
+       "apihelp-query+categories-param-show": "显示何种分类。",
+       "apihelp-query+categories-param-limit": "返回多少分类。",
+       "apihelp-query+categoryinfo-example-simple": "获取有关[[:Category:Foo]]和[[:Category:Bar]]的信息",
+       "apihelp-query+categorymembers-param-sort": "要作为排序方式的属性。",
+       "apihelp-query+categorymembers-param-startsortkey": "请改用$1starthexsortkey。",
+       "apihelp-query+categorymembers-param-endsortkey": "请改用$1endhexsortkey。",
+       "apihelp-query+categorymembers-example-simple": "获取[[:Category:Physics]]中的前10个页面。",
+       "apihelp-query+categorymembers-example-generator": "获取关于[[:Category:Physics]]中的前10个页面的页面信息。",
+       "apihelp-query+contributors-example-simple": "显示[[首页]]的贡献",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|模式}}:$2",
+       "apihelp-query+deletedrevs-param-namespace": "只列出此名字空间的页面。",
+       "apihelp-query+deletedrevs-example-mode1": "列出最近已删除的对首页和Talk:首页的贡献,带内容(模式1)",
+       "apihelp-query+deletedrevs-example-mode2": "列出由Bob作出的最近50次已删除贡献(模式2)",
+       "apihelp-query+deletedrevs-example-mode3-main": "列出前50次主名字空间已删除贡献(模式3)",
+       "apihelp-query+deletedrevs-example-mode3-talk": "列出前50次讨论名字空间已删除页面(模式3):",
+       "apihelp-query+disabled-description": "此查询模块已被禁用。",
+       "apihelp-query+duplicatefiles-param-limit": "返回多少重复文件。",
+       "apihelp-query+duplicatefiles-example-simple": "查找与[[:File:Albert Einstein Head.jpg]]重复的文件",
+       "apihelp-query+duplicatefiles-example-generated": "查找所有文件的重复文件",
+       "apihelp-query+embeddedin-param-title": "要搜索的标题。不能与$1pageid一起使用。",
+       "apihelp-query+embeddedin-param-pageid": "要搜索的页面ID。不能与$1title一起使用。",
+       "apihelp-query+embeddedin-param-namespace": "列举的名字空间。",
+       "apihelp-query+embeddedin-example-simple": "显示嵌入[[Template:Stub]]的页面",
+       "apihelp-query+embeddedin-example-generator": "获取有关显示嵌入[[Template:Stub]]的页面的信息",
+       "apihelp-query+extlinks-param-limit": "返回多少链接。",
+       "apihelp-query+exturlusage-param-limit": "返回多少页面。",
+       "apihelp-query+exturlusage-example-simple": "显示链接至http://www.mediawiki.org的页面",
+       "apihelp-query+filearchive-example-simple": "显示已删除文件列表",
+       "apihelp-query+fileusage-param-prop": "要获取的属性:\n;pageid:每个页面的页面ID。\n;title:每个页面的标题。\n;redirect:标记作为重定向的页面。",
+       "apihelp-query+fileusage-param-namespace": "只包括这些名字空间的页面。",
+       "apihelp-query+fileusage-param-limit": "返回多少。",
+       "apihelp-query+fileusage-example-simple": "获取使用[[:File:Example.jpg]]的页面列表",
+       "apihelp-query+fileusage-example-generator": "获取有关使用[[:File:Example.jpg]]的页面的信息",
+       "apihelp-query+imageinfo-description": "返回文件信息和上传历史。",
+       "apihelp-query+imageinfo-param-urlheight": "与$1urlwidth类似。",
+       "apihelp-query+imageinfo-example-simple": "获取有关[[:File:Albert Einstein Head.jpg]]的当前版本的信息",
+       "apihelp-query+imageinfo-example-dated": "获取有关[[:File:Albert Einstein Head.jpg]]自2008年以来版本的信息",
+       "apihelp-query+images-param-limit": "返回多少文件。",
+       "apihelp-query+images-example-simple": "获取[[首页]]使用的文件列表",
+       "apihelp-query+images-example-generator": "获取有关[[首页]]使用的文件的信息",
+       "apihelp-query+imageusage-example-simple": "显示使用[[:File:Albert Einstein Head.jpg]]的页面",
+       "apihelp-query+imageusage-example-generator": "获取有关使用[[:File:Albert Einstein Head.jpg]]的页面的信息",
+       "apihelp-query+info-description": "获取基本页面信息。",
+       "apihelp-query+info-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
+       "apihelp-query+info-example-simple": "获取有关[[首页]]的信息",
+       "apihelp-query+iwbacklinks-param-prefix": "跨维基前缀。",
+       "apihelp-query+iwbacklinks-example-simple": "获取链接至[[wikibooks:Test]]的页面",
+       "apihelp-query+iwbacklinks-example-generator": "获取有关链接至[[wikibooks:Test]]的页面的信息",
+       "apihelp-query+iwlinks-param-limit": "返回多少跨wiki链接。",
+       "apihelp-query+iwlinks-param-prefix": "只返回此前缀的跨wiki链接。",
+       "apihelp-query+iwlinks-param-title": "用于搜索的跨wiki链接。必须与$1prefix一起使用。",
+       "apihelp-query+iwlinks-example-simple": "从[[首页]]获取跨wiki链接",
+       "apihelp-query+langbacklinks-param-lang": "用于语言链接的语言。",
+       "apihelp-query+langbacklinks-example-simple": "获取链接至[[:fr:Test]]的页面",
+       "apihelp-query+langbacklinks-example-generator": "获取链接至[[:fr:Test]]的页面的信息",
+       "apihelp-query+langlinks-param-limit": "返回多少语言链接。",
+       "apihelp-query+langlinks-example-simple": "从[[首页]]获取跨语言链接",
+       "apihelp-query+links-param-limit": "返回多少链接。",
+       "apihelp-query+links-example-simple": "从[[首页]]获取链接",
+       "apihelp-query+links-example-generator": "获取有关[[首页]]链接页面的信息",
+       "apihelp-query+linkshere-param-limit": "返回多少。",
+       "apihelp-query+linkshere-example-simple": "获取链接至[[首页]]的页面列表",
+       "apihelp-query+linkshere-example-generator": "获取有关链接至[[首页]]的页面的信息",
+       "apihelp-query+logevents-description": "从日志获取事件。",
+       "apihelp-query+pagepropnames-example-simple": "获取前10个常用名称",
+       "apihelp-query+pageprops-example-simple": "获取用于[[:Category:Foo]]的属性",
+       "apihelp-query+pageswithprop-example-simple": "列出前10个使用&#123;&#123;DISPLAYTITLE:&#125;&#125;的页面",
+       "apihelp-query+pageswithprop-example-generator": "获取有关前10个使用_&#95;NOTOC_&#95;的页面的信息",
+       "apihelp-query+prefixsearch-param-search": "搜索字符串。",
+       "apihelp-query+prefixsearch-param-namespace": "搜索的名字空间。",
+       "apihelp-query+protectedtitles-param-namespace": "只列出这些名字空间的标题。",
+       "apihelp-query+protectedtitles-example-simple": "受保护标题列表",
+       "apihelp-query+querypage-param-limit": "返回的结果数。",
+       "apihelp-query+querypage-example-ancientpages": "返回[[Special:Ancientpages]]的结果。",
+       "apihelp-query+random-param-namespace": "只返回这些名字空间的页面。",
+       "apihelp-query+recentchanges-description": "枚举最近更改。",
+       "apihelp-query+recentchanges-param-user": "只列出此用户的更改。",
+       "apihelp-query+recentchanges-param-excludeuser": "不要列出此用户的更改。",
+       "apihelp-query+recentchanges-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
+       "apihelp-query+recentchanges-example-simple": "最近更改列表",
+       "apihelp-query+redirects-example-simple": "获取至[[首页]]的重定向列表",
+       "apihelp-query+redirects-example-generator": "获取所有重定向至[[首页]]的信息",
+       "apihelp-query+revisions-example-last5": "获取“首页”的最近5次修订",
+       "apihelp-query+revisions-example-first5": "获取“首页”的前5次修订版本",
+       "apihelp-query+revisions-example-first5-after": "获取“首页”于2006年05月01日之后做出的前5次修订版本",
+       "apihelp-query+search-param-info": "要返回的元数据。",
+       "apihelp-query+search-param-interwiki": "搜索结果中包含跨wiki结果,如果可用。",
+       "apihelp-query+search-example-simple": "搜索“意义”",
+       "apihelp-query+search-example-text": "搜索文本“意义”",
+       "apihelp-query+siteinfo-example-simple": "获取网站信息",
+       "apihelp-query+siteinfo-example-interwiki": "获取本地跨wiki前缀列表",
+       "apihelp-query+tags-description": "列出更改标签。",
+       "apihelp-query+tags-example-simple": "可用标签列表",
+       "apihelp-query+templates-param-limit": "返回多少模板。",
+       "apihelp-query+templates-param-templates": "只列出这些模板。对于检查某一页面使用某一模板很有用。",
+       "apihelp-query+templates-example-simple": "从[[首页]]获取模板",
+       "apihelp-query+templates-example-generator": "获取有关[[首页]]中的模板页面的信息",
+       "apihelp-query+templates-example-namespaces": "从[[首页]]获取用户和模板名字空间中的模板",
+       "apihelp-query+transcludedin-param-namespace": "至包含这些名字空间的页面。",
+       "apihelp-query+transcludedin-param-limit": "返回多少。",
+       "apihelp-query+transcludedin-example-simple": "获取嵌入[[首页]]的页面列表",
+       "apihelp-query+transcludedin-example-generator": "获取有关嵌入[[首页]]的页面的信息",
+       "apihelp-query+usercontribs-description": "获取一位用户的所有编辑。",
+       "apihelp-query+usercontribs-param-namespace": "只列出这些名字空间的贡献。",
+       "apihelp-query+usercontribs-example-user": "显示[[User:Example]]的贡献",
+       "apihelp-query+usercontribs-example-ipprefix": "显示来自“192.0.2.”前缀所有IP地址的贡献",
+       "apihelp-query+userinfo-description": "获取有关当前用户的信息。",
+       "apihelp-query+userinfo-example-simple": "获取有关当前用户的信息",
+       "apihelp-query+userinfo-example-data": "获取有关当前用户的额外信息",
+       "apihelp-query+users-description": "获取有关列出用户的信息。",
+       "apihelp-query+users-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
+       "apihelp-query+users-example-simple": "返回[[User:Example]]的信息",
+       "apihelp-query+watchlist-param-user": "只列出此用户的更改。",
+       "apihelp-query+watchlist-param-excludeuser": "不要列出此用户的更改。",
+       "apihelp-query+watchlistraw-description": "获取登录用户的监视列表的所有页面。",
+       "apihelp-query+watchlistraw-param-namespace": "只列出指定名字空间的页面。",
+       "apihelp-revisiondelete-description": "删除和恢复修订版本。",
+       "apihelp-revisiondelete-param-reason": "删除或恢复的原因。",
+       "apihelp-rollback-example-simple": "回退由用户Example对[[首页]]做出的最近编辑",
+       "apihelp-rollback-example-summary": "回退由IP用户192.0.2.5对[[首页]]做出的最近编辑,带编辑摘要“回退破坏”,并将这些编辑和回退标记为“机器人”",
+       "apihelp-rsd-description": "导出一个RSD(Really Simple Discovery)架构",
+       "apihelp-rsd-example-simple": "导出RSD架构",
+       "apihelp-unblock-description": "解封一位用户。",
+       "apihelp-unblock-param-id": "解封时需要的封禁ID(通过list=blocks获得)。不能与$1user一起使用。",
+       "apihelp-unblock-param-user": "要解封的用户名、IP地址或IP段。不能与$1id一起使用。",
+       "apihelp-unblock-param-reason": "解封的原因。",
+       "apihelp-unblock-example-id": "解封封禁ID#105",
+       "apihelp-unblock-example-user": "解封用户Bob,原因“抱歉Bob”",
+       "apihelp-undelete-param-title": "要恢复的页面标题。",
+       "apihelp-undelete-param-reason": "恢复的原因。",
+       "apihelp-undelete-example-page": "恢复[[首页]]",
+       "apihelp-undelete-example-revisions": "恢复[[首页]]的两个修订",
+       "apihelp-upload-param-filename": "目标文件名。",
+       "apihelp-upload-param-watch": "监视页面。",
+       "apihelp-upload-param-ignorewarnings": "忽略任何警告。",
+       "apihelp-upload-param-file": "文件内容。",
+       "apihelp-upload-example-url": "从URL上传",
+       "apihelp-userrights-param-user": "用户名。",
+       "apihelp-userrights-param-userid": "用户ID。",
+       "apihelp-userrights-param-reason": "更改原因。",
+       "apihelp-userrights-example-user": "将用户FooBot添加至“机器人”用户组,并从“管理员”和“行政员”组移除",
+       "apihelp-watch-example-watch": "监视页面“首页”",
+       "apihelp-watch-example-unwatch": "取消监视页面“首页”",
+       "apihelp-none-description": "不输出任何东西。",
+       "apihelp-yaml-description": "以YAML格式输出数据。",
+       "api-format-title": "MediaWiki API 结果",
+       "api-orm-param-props": "要查询的字段。",
+       "api-help-title": "MediaWiki API 帮助",
+       "api-help-lead": "这是自动生成的MediaWiki API文档页面。\n\n文档和例子:https://www.mediawiki.org/wiki/API:Main_page/zh",
+       "api-help-main-header": "主模块",
+       "api-help-flag-deprecated": "此模块已弃用。",
+       "api-help-flag-internal": "<strong>此模块是内部或不稳定的。</strong>它的操作可以更改而不另行通知。",
+       "api-help-flag-readrights": "此模块需要读取权限。",
+       "api-help-flag-writerights": "此模块需要写入权限。",
+       "api-help-flag-mustbeposted": "此模块只允许POST请求。",
+       "api-help-flag-generator": "此模块可作为发生器使用。",
+       "api-help-parameters": "{{PLURAL:$1|参数}}:",
+       "api-help-param-deprecated": "不推荐使用。",
+       "api-help-param-required": "这个参数是必须的。",
+       "api-help-param-list": "{{PLURAL:$1|1=一个值|2=值(以“{{!}}”分隔)}}:$2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=必须为空|可以为空,或$2}}",
+       "api-help-param-limit": "不允许超过$1。",
+       "api-help-param-limit2": "不允许超过$1个(对于机器人则是$2个)。",
+       "api-help-param-integer-min": "{{PLURAL:$1|值}}必须不少于$2。",
+       "api-help-param-integer-max": "{{PLURAL:$1|值}}必须不大于$2。",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|值}}必须介于$2和$3之间。",
+       "api-help-param-multi-separate": "通过“|”隔开各值。",
+       "api-help-param-multi-max": "值的最高数字是{{PLURAL:$1|$1}}(对于机器人则是{{PLURAL:$2|$2}})。",
+       "api-help-param-default": "默认:$1",
+       "api-help-param-default-empty": "默认:<span class=\"apihelp-empty\">(空)</span>",
+       "api-help-param-disabled-in-miser-mode": "由于[https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser模式]而禁用。",
+       "api-help-param-limited-in-miser-mode": "'''注意:'''由于[https://www.mediawiki.org/wiki/Manual:$wgMiserMode miser模式],使用这个可能导致继续前返回少于“$1limit”个结果;极端情况下可能不会返回任何结果。",
+       "api-help-param-continue": "什么时候更多结果可用什么时候继续使用。",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(没有说明)</span>",
+       "api-help-examples": "{{PLURAL:$1|例子}}:",
+       "api-help-permissions": "{{PLURAL:$1|权限}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|授予}}:$2",
+       "api-credits-header": "制作人员",
+       "api-credits": "API 开发人员:\n* Roan Kattouw(2007年9月~2009年的开发组领导)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan(创建者,2006年9月~2007年9月的开发组领导)\n* Brad Jorsch(2013年至今的开发组领导)\n\n请将您的评论、建议和问题发送至mediawiki-api@lists.wikimedia.org,或提交错误请求在https://bugzilla.wikimedia.org/。"
+}
diff --git a/includes/api/i18n/zh-hant.json b/includes/api/i18n/zh-hant.json
new file mode 100644 (file)
index 0000000..1038f71
--- /dev/null
@@ -0,0 +1,51 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Cwlin0416",
+                       "Liuxinyu970226"
+               ]
+       },
+       "apihelp-main-param-action": "要執行的動作。",
+       "apihelp-main-param-format": "輸出的格式。",
+       "apihelp-login-param-name": "使用者名稱。",
+       "apihelp-userrights-param-user": "使用者名稱。",
+       "apihelp-format-example-generic": "格式化查詢結果為 $1 格式",
+       "apihelp-dbg-description": "使用 PHP 的 var_export() 格式輸出資料。",
+       "apihelp-dbgfm-description": "使用 PHP 的 var_export() 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-dump-description": "使用 PHP 的 var_dump() 格式輸出資料。",
+       "apihelp-dumpfm-description": "使用 PHP 的 var_dump() 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-json-description": "使用 JSON 格式輸出資料。",
+       "apihelp-jsonfm-description": "使用 JSON 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-none-description": "不輸出。",
+       "apihelp-php-description": "使用序列化 PHP 格式輸出資料。",
+       "apihelp-phpfm-description": "使用序列化 PHP 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-rawfm-description": "使用 JSON 格式的除錯元素輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-txt-description": "使用 PHP 的 print_r() 格式輸出資料。",
+       "apihelp-txtfm-description": "使用 PHP 的 print_r() 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-wddx-description": "使用 WDDX 格式輸出資料。",
+       "apihelp-wddxfm-description": "使用 WDDX 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-xml-description": "使用 XML 格式輸出資料。",
+       "apihelp-xmlfm-description": "使用 XML 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-yaml-description": "使用 YAML 格式輸出資料。",
+       "apihelp-yamlfm-description": "使用 YAML 格式輸出資料 (使用 HTML 格式顯示)。",
+       "api-format-title": "MediaWiki API 結果",
+       "api-help-title": "MediaWiki API 說明",
+       "api-help-main-header": "主要模組",
+       "api-help-flag-deprecated": "此模組已停用。",
+       "api-help-flag-readrights": "此模組需要讀取權限。",
+       "api-help-flag-writerights": "此模組需要寫入權限。",
+       "api-help-flag-mustbeposted": "此模組僅接受 POST 請求。",
+       "api-help-parameters": "{{PLURAL:$1|參數}}:",
+       "api-help-param-deprecated": "已停用。",
+       "api-help-param-required": "此參數為必填。",
+       "api-help-param-limit": "不允許超過 $1。",
+       "api-help-param-limit2": "不允許超過 $1 (機器人為 $2)。",
+       "api-help-param-multi-separate": "使用 \"|\" 分隔數值。",
+       "api-help-param-default": "預設值:$1",
+       "api-help-param-default-empty": "預設值:<span class=\"apihelp-empty\">(空)</span>",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(無描述)</span>",
+       "api-help-examples": "{{PLURAL:$1|範例}}:",
+       "api-help-permissions": "{{PLURAL:$1|權限}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|已授權給}}: $2",
+       "api-credits-header": "製作群"
+}
index 6925df9..82fb12d 100644 (file)
@@ -216,7 +216,7 @@ class LinkCache {
         * @return int
         */
        public function addLinkObj( $nt ) {
-               global $wgAntiLockFlags, $wgContentHandlerUseDB;
+               global $wgContentHandlerUseDB;
 
                wfProfileIn( __METHOD__ );
 
@@ -242,14 +242,8 @@ class LinkCache {
                # Some fields heavily used for linking...
                if ( $this->mForUpdate ) {
                        $db = wfGetDB( DB_MASTER );
-                       if ( !( $wgAntiLockFlags & ALF_NO_LINK_LOCK ) ) {
-                               $options = array( 'FOR UPDATE' );
-                       } else {
-                               $options = array();
-                       }
                } else {
                        $db = wfGetDB( DB_SLAVE );
-                       $options = array();
                }
 
                $f = array( 'page_id', 'page_len', 'page_is_redirect', 'page_latest' );
@@ -259,7 +253,7 @@ class LinkCache {
 
                $s = $db->selectRow( 'page', $f,
                        array( 'page_namespace' => $nt->getNamespace(), 'page_title' => $nt->getDBkey() ),
-                       __METHOD__, $options );
+                       __METHOD__ );
                # Set fields...
                if ( $s !== false ) {
                        $this->addGoodLinkObjFromRow( $nt, $s );
index 1ef7cc5..99dafa6 100644 (file)
@@ -422,7 +422,7 @@ class MessageCache {
                        $this->mLoadedLanguages[$code] = true;
                }
                $info = implode( ', ', $where );
-               wfDebug( __METHOD__ . ": Loading $code... $info\n" );
+               wfDebugLog( 'MessageCache', __METHOD__ . ": Loading $code... $info\n" );
                wfProfileOut( __METHOD__ );
 
                return $success;
index e33274e..d187c54 100644 (file)
@@ -283,7 +283,7 @@ class RecentChange {
                }
 
                # If our database is strict about IP addresses, use NULL instead of an empty string
-               if ( $dbw->strictIPs() and $this->mAttribs['rc_ip'] == '' ) {
+               if ( $dbw->strictIPs() && $this->mAttribs['rc_ip'] == '' ) {
                        unset( $this->mAttribs['rc_ip'] );
                }
 
@@ -298,7 +298,7 @@ class RecentChange {
                $this->mAttribs['rc_id'] = $dbw->nextSequenceValue( 'recentchanges_rc_id_seq' );
 
                ## If we are using foreign keys, an entry of 0 for the page_id will fail, so use NULL
-               if ( $dbw->cascadingDeletes() and $this->mAttribs['rc_cur_id'] == 0 ) {
+               if ( $dbw->cascadingDeletes() && $this->mAttribs['rc_cur_id'] == 0 ) {
                        unset( $this->mAttribs['rc_cur_id'] );
                }
 
index 39d6e8e..589f7d3 100644 (file)
@@ -62,15 +62,6 @@ class GlobalVarConfig implements Config {
                return $this->hasWithPrefix( $this->prefix, $name );
        }
 
-       /**
-        * @see MutableConfig::set
-        * @deprecated since 1.24
-        */
-       public function set( $name, $value ) {
-               wfDeprecated( __METHOD__, '1.24' );
-               $this->setWithPrefix( $this->prefix, $name, $value );
-       }
-
        /**
         * Get a variable with a given prefix, if not the defaults.
         *
@@ -93,16 +84,4 @@ class GlobalVarConfig implements Config {
                $var = $prefix . $name;
                return array_key_exists( $var, $GLOBALS );
        }
-
-       /**
-        * Get a variable with a given prefix, if not the defaults.
-        *
-        * @param string $prefix Prefix to use on the variable
-        * @param string $name Variable name without prefix
-        * @param mixed $value Value to set
-        * @deprecated since 1.24
-        */
-       protected function setWithPrefix( $prefix, $name, $value ) {
-               $GLOBALS[$prefix . $name] = $value;
-       }
 }
index 29642d0..34132aa 100644 (file)
@@ -1117,7 +1117,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                # Keep track of whether the transaction has write queries pending
                if ( $this->mTrxLevel && !$this->mTrxDoneWrites && $this->isWriteQuery( $sql ) ) {
                        $this->mTrxDoneWrites = true;
-                       Profiler::instance()->transactionWritingIn(
+                       Profiler::instance()->getTransactionProfiler()->transactionWritingIn(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
 
@@ -1162,6 +1162,14 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                        throw new DBUnexpectedError( $this, "DB connection was already closed." );
                }
 
+               # Log the query time and feed it into the DB trx profiler
+               $queryStartTime = microtime( true );
+               $queryProfile = new ScopedCallback( function() use ( $queryStartTime, $queryProf ) {
+                       $elapsed = microtime( true ) - $queryStartTime;
+                       $trxProfiler = Profiler::instance()->getTransactionProfiler();
+                       $trxProfiler->recordFunctionCompletion( $queryProf, $elapsed );
+               } );
+
                # Do the query and handle errors
                $ret = $this->doQuery( $commentedSql );
 
@@ -2346,7 +2354,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                # Split database and table into proper variables.
                # We reverse the explode so that database.table and table both output
                # the correct table.
-               $dbDetails = explode( '.', $name, 2 );
+               $dbDetails = explode( '.', $name, 3 );
                if ( count( $dbDetails ) == 3 ) {
                        list( $database, $schema, $table ) = $dbDetails;
                        # We don't want any prefix added in this case
@@ -3524,7 +3532,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                        $this->runOnTransactionPreCommitCallbacks();
                        $this->doCommit( $fname );
                        if ( $this->mTrxDoneWrites ) {
-                               Profiler::instance()->transactionWritingOut(
+                               Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
                                        $this->mServer, $this->mDBname, $this->mTrxShortId );
                        }
                        $this->runOnTransactionIdleCallbacks();
@@ -3604,7 +3612,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                $this->runOnTransactionPreCommitCallbacks();
                $this->doCommit( $fname );
                if ( $this->mTrxDoneWrites ) {
-                       Profiler::instance()->transactionWritingOut(
+                       Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
                $this->runOnTransactionIdleCallbacks();
@@ -3662,7 +3670,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                $this->mTrxPreCommitCallbacks = array(); // cancel
                $this->mTrxAtomicLevels = new SplStack;
                if ( $this->mTrxDoneWrites ) {
-                       Profiler::instance()->transactionWritingOut(
+                       Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
        }
index ab8d366..669525a 100644 (file)
@@ -953,12 +953,8 @@ class DatabaseMssql extends DatabaseBase {
                // Matches: LIMIT {[offset,] row_count | row_count OFFSET offset}
                $pattern = '/\bLIMIT\s+((([0-9]+)\s*,\s*)?([0-9]+)(\s+OFFSET\s+([0-9]+))?)/i';
                if ( preg_match( $pattern, $sql, $matches ) ) {
-                       // row_count = $matches[4]
                        $row_count = $matches[4];
-                       // offset = $matches[3] OR $matches[6]
-                       $offset = $matches[3] or
-                       $offset = $matches[6] or
-                       $offset = false;
+                       $offset = $matches[3] ?: $matches[6] ?: false;
 
                        // strip the matching LIMIT clause out
                        $sql = str_replace( $matches[0], '', $sql );
index 4dc693a..6e262e8 100644 (file)
@@ -442,10 +442,11 @@ interface IORMTable {
         * Takes an array of field names with prefix and returns the unprefixed equivalent.
         *
         * @since 1.20
+        * @deprecated since 1.25, will be removed
         *
-        * @param array $fieldNames
+        * @param string[] $fieldNames
         *
-        * @return array
+        * @return string[]
         */
        public function unprefixFieldNames( array $fieldNames );
 
@@ -453,6 +454,7 @@ interface IORMTable {
         * Takes a field name with prefix and returns the unprefixed equivalent.
         *
         * @since 1.20
+        * @deprecated since 1.25, will be removed
         *
         * @param string $fieldName
         *
index 9797f29..eeb2fec 100644 (file)
@@ -315,20 +315,6 @@ class LoadBalancer {
                return $i;
        }
 
-       /**
-        * Wait for a specified number of microseconds, and return the period waited
-        * @param int $t
-        * @return int
-        */
-       function sleep( $t ) {
-               wfProfileIn( __METHOD__ );
-               wfDebug( __METHOD__ . ": waiting $t us\n" );
-               usleep( $t );
-               wfProfileOut( __METHOD__ );
-
-               return $t;
-       }
-
        /**
         * Set the master wait position
         * If a DB_SLAVE connection has been opened already, waits
@@ -669,7 +655,9 @@ class LoadBalancer {
                        $conn = reset( $this->mConns['foreignFree'][$i] );
                        $oldWiki = key( $this->mConns['foreignFree'][$i] );
 
-                       if ( !$conn->selectDB( $dbName ) ) {
+                       // The empty string as a DB name means "don't care".
+                       // DatabaseMysqlBase::open() already handle this on connection.
+                       if ( $dbName !== '' && !$conn->selectDB( $dbName ) ) {
                                $this->mLastError = "Error selecting database $dbName on server " .
                                        $conn->getServer() . " from client host " . wfHostname() . "\n";
                                $this->mErrorConnection = $conn;
index 2f898b7..b22df39 100644 (file)
@@ -129,6 +129,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * Gets the db field prefix.
         *
         * @since 1.20
+        * @deprecated since 1.25, use the $this->fieldPrefix property instead
         *
         * @return string
         */
@@ -770,33 +771,54 @@ class ORMTable extends DBAccessBase implements IORMTable {
         * @return string
         */
        public function getPrefixedField( $field ) {
-               return $this->getFieldPrefix() . $field;
+               return $this->fieldPrefix . $field;
        }
 
        /**
         * Takes an array of field names with prefix and returns the unprefixed equivalent.
         *
         * @since 1.20
+        * @deprecated since 1.25, will be removed
         *
-        * @param array $fieldNames
+        * @param string[] $fieldNames
         *
-        * @return array
+        * @return string[]
         */
        public function unprefixFieldNames( array $fieldNames ) {
-               return array_map( array( $this, 'unprefixFieldName' ), $fieldNames );
+               wfDeprecated( __METHOD__, '1.25' );
+
+               return $this->stripFieldPrefix( $fieldNames );
+       }
+
+       /**
+        * Takes an array of field names with prefix and returns the unprefixed equivalent.
+        *
+        * @param string[] $fieldNames
+        *
+        * @return string[]
+        */
+       private function stripFieldPrefix( array $fieldNames ) {
+               $start = strlen( $this->fieldPrefix );
+
+               return array_map( function ( $fieldName ) use ( $start ) {
+                       return substr( $fieldName, $start );
+               }, $fieldNames );
        }
 
        /**
         * Takes a field name with prefix and returns the unprefixed equivalent.
         *
         * @since 1.20
+        * @deprecated since 1.25, will be removed
         *
         * @param string $fieldName
         *
         * @return string
         */
        public function unprefixFieldName( $fieldName ) {
-               return substr( $fieldName, strlen( $this->getFieldPrefix() ) );
+               wfDeprecated( __METHOD__, '1.25' );
+
+               return substr( $fieldName, strlen( $this->fieldPrefix ) );
        }
 
        /**
@@ -832,7 +854,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
                $result = (array)$result;
 
                $rawFields = array_combine(
-                       $this->unprefixFieldNames( array_keys( $result ) ),
+                       $this->stripFieldPrefix( array_keys( $result ) ),
                        array_values( $result )
                );
 
index c2f2223..ffc6b3b 100644 (file)
@@ -46,7 +46,7 @@ class MWDebug {
        protected static $debug = array();
 
        /**
-        * SQL statements of the databses queries.
+        * SQL statements of the database queries.
         *
         * @var array $query
         */
diff --git a/includes/debug/logger/Logger.php b/includes/debug/logger/Logger.php
new file mode 100644 (file)
index 0000000..f5d2445
--- /dev/null
@@ -0,0 +1,221 @@
+<?php
+/**
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+if ( !interface_exists( '\Psr\Log\LoggerInterface' ) ) {
+       $message = <<<TXT
+MediaWiki requires the <a href="https://github.com/php-fig/log">PSR-3 logging library</a> to be present. This library is not embedded directly in MediaWiki's git repository and must be installed separately by the end user.
+
+Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a> for help on installing the required components.
+TXT;
+       echo $message;
+       trigger_error( $message, E_USER_ERROR );
+       die( 1 );
+}
+
+/**
+ * PSR-3 logging service.
+ *
+ * This class provides a service interface for logging system events. The
+ * MWLogger class itself is intended to be a thin wrapper around another PSR-3
+ * compliant logging library. Creation of MWLogger instances is managed via
+ * the MWLogger::getInstance() static method which in turn delegates to the
+ * currently registered service provider.
+ *
+ * A service provider is any class implementing the MWLoggerSpi interface.
+ * There are two possible methods of registering a service provider. The
+ * MWLogger::registerProvider() static method can be called at any time to
+ * change the service provider. If MWLogger::getInstance() is called before
+ * any service provider has been registered, it will attempt to use the
+ * $wgMWLoggerDefaultSpi global to bootstrap MWLoggerSpi registration.
+ * $wgMWLoggerDefaultSpi can either be the name of a class implementing the
+ * MWLoggerSpi interface with a zero argument constructor or a callable that
+ * will return an MWLoggerSpi instance.
+ *
+ * @see MWLoggerSpi
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLogger implements \Psr\Log\LoggerInterface {
+
+       /**
+        * Service provider.
+        * @var MWLoggerSpi $spi
+        */
+       protected static $spi;
+
+
+       /**
+        * Wrapped PSR-3 logger instance.
+        *
+        * @var \Psr\Log\LoggerInterface $delegate
+        */
+       protected $delegate;
+
+
+       /**
+        * @param \Psr\Log\LoggerInterface $logger
+        */
+       public function __construct( \Psr\Log\LoggerInterface $logger ) {
+               $this->delegate = $logger;
+       }
+
+
+       /**
+        * Logs with an arbitrary level.
+        *
+        * @param string|int $level
+        * @param string $message
+        * @param array $context
+        */
+       public function log( $level, $message, array $context = array() ) {
+               $this->delegate->log( $level, $message, $context );
+       }
+
+
+       /**
+        * System is unusable.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function emergency( $message, array $context = array() ) {
+               $this->log( \Psr\Log\LogLevel::EMERGENCY, $message, $context );
+       }
+
+
+       /**
+        * Action must be taken immediately.
+        *
+        * Example: Entire website down, database unavailable, etc. This should
+        * trigger the SMS alerts and wake you up.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function alert( $message, array $context = array() ) {
+               $this->log( \Psr\Log\LogLevel::ALERT, $message, $context );
+       }
+
+
+       /**
+        * Critical conditions.
+        *
+        * Example: Application component unavailable, unexpected exception.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function critical( $message, array $context = array( ) ) {
+               $this->log( \Psr\Log\LogLevel::CRITICAL, $message, $context );
+       }
+
+
+       /**
+        * Runtime errors that do not require immediate action but should typically
+        * be logged and monitored.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function error( $message, array $context = array( ) ) {
+               $this->log( \Psr\Log\LogLevel::ERROR, $message, $context );
+       }
+
+
+       /**
+        * Exceptional occurrences that are not errors.
+        *
+        * Example: Use of deprecated APIs, poor use of an API, undesirable things
+        * that are not necessarily wrong.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function warning( $message, array $context = array() ) {
+               $this->log( \Psr\Log\LogLevel::WARNING, $message, $context );
+       }
+
+
+       /**
+        * Normal but significant events.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function notice( $message, array $context = array() ) {
+               $this->log( \Psr\Log\LogLevel::NOTICE, $message, $context );
+       }
+
+
+       /**
+        * Interesting events.
+        *
+        * Example: User logs in, SQL logs.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function info( $message, array $context = array() ) {
+               $this->log( \Psr\Log\LogLevel::INFO, $message, $context );
+       }
+
+
+       /**
+        * Detailed debug information.
+        *
+        * @param string $message
+        * @param array $context
+        */
+       public function debug( $message, array $context = array() ) {
+               $this->log( \Psr\Log\LogLevel::DEBUG, $message, $context );
+       }
+
+
+       /**
+        * Register a service provider to create new MWLogger instances.
+        *
+        * @param MWLoggerSpi $provider Provider to register
+        */
+       public static function registerProvider( MWLoggerSpi $provider ) {
+               self::$spi = $provider;
+       }
+
+
+       /**
+        * Get a named logger instance from the currently configured logger factory.
+        *
+        * @param string $channel Logger channel (name)
+        * @return MWLogger
+        */
+       public static function getInstance( $channel ) {
+               if ( self::$spi === null ) {
+                       global $wgMWLoggerDefaultSpi;
+                       $provider = ObjectFactory::getObjectFromSpec(
+                               $wgMWLoggerDefaultSpi
+                       );
+                       self::registerProvider( $provider );
+               }
+
+               return self::$spi->getLogger( $channel );
+       }
+
+}
diff --git a/includes/debug/logger/NullSpi.php b/includes/debug/logger/NullSpi.php
new file mode 100644 (file)
index 0000000..33304fc
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * MWLogger service provider that creates \Psr\Log\NullLogger instances.
+ * A NullLogger silently discards all log events sent to it.
+ *
+ * Usage:
+ * @code
+ * $wgMWLoggerDefaultSpi = array(
+ *   'class' => 'MWLoggerNullSpi',
+ * );
+ * @endcode
+ *
+ * @see MWLogger
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerNullSpi implements MWLoggerSpi {
+
+       /**
+        * @var \Psr\Log\NullLogger $singleton
+        */
+       protected $singleton;
+
+
+       public function __construct() {
+               $this->singleton = new \Psr\Log\NullLogger();
+       }
+
+
+       /**
+        * Get a logger instance.
+        *
+        * @param string $channel Logging channel
+        * @return MWLogger Logger instance
+        */
+       public function getLogger( $channel ) {
+               return $this->singleton;
+       }
+
+}
diff --git a/includes/debug/logger/Spi.php b/includes/debug/logger/Spi.php
new file mode 100644 (file)
index 0000000..7139856
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * Service provider interface for MWLogger implementation libraries.
+ *
+ * MediaWiki can be configured to use a class implementing this interface to
+ * create new MWLogger instances via either the $wgMWLoggerDefaultSpi global
+ * variable or code that constructs an instance and registeres it via the
+ * MWLogger::registerProvider() static method.
+ *
+ * @see MWLogger
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+interface MWLoggerSpi {
+
+       /**
+        * Get a logger instance.
+        *
+        * @param string $channel Logging channel
+        * @return MWLogger Logger instance
+        */
+       public function getLogger( $channel );
+
+}
diff --git a/includes/debug/logger/legacy/Logger.php b/includes/debug/logger/legacy/Logger.php
new file mode 100644 (file)
index 0000000..daf3f51
--- /dev/null
@@ -0,0 +1,359 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * PSR-3 logger that mimics the historic implementation of MediaWiki's
+ * wfErrorLog logging implementation.
+ *
+ * This logger is configured by the following global configuration variables:
+ * - `$wgDebugLogFile`
+ * - `$wgDebugLogGroups`
+ * - `$wgDBerrorLog`
+ * - `$wgDBerrorLogTZ`
+ *
+ * See documentation in DefaultSettings.php for detailed explanations of each
+ * variable.
+ *
+ * @see MWLogger
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerLegacyLogger extends \Psr\Log\AbstractLogger {
+
+       /**
+        * @var string $channel
+        */
+       protected $channel;
+
+
+       /**
+        * @param string $channel
+        */
+       public function __construct( $channel ) {
+               $this->channel = $channel;
+       }
+
+       /**
+        * Logs with an arbitrary level.
+        *
+        * @param string|int $level
+        * @param string $message
+        * @param array $context
+        */
+       public function log( $level, $message, array $context = array() ) {
+               if ( self::shouldEmit( $this->channel, $message, $context ) ) {
+                       $text = self::format( $this->channel, $message, $context );
+                       $destination = self::destination( $this->channel, $message, $context );
+                       self::emit( $text, $destination );
+               }
+       }
+
+
+       /**
+        * Determine if the given message should be emitted or not.
+        *
+        * @param string $channel
+        * @param string $message
+        * @param array $context
+        * @return bool True if message should be sent to disk/network, false
+        * otherwise
+        */
+       protected static function shouldEmit( $channel, $message, $context ) {
+               global $wgDebugLogFile, $wgDBerrorLog, $wgDebugLogGroups;
+
+               if ( $channel === 'wfLogDBError' ) {
+                       // wfLogDBError messages are emitted if a database log location is
+                       // specfied.
+                       $shouldEmit = (bool)$wgDBerrorLog;
+
+               } elseif ( $channel === 'wfErrorLog' ) {
+                       // All messages on the wfErrorLog channel should be emitted.
+                       $shouldEmit = true;
+
+               } elseif ( isset( $wgDebugLogGroups[$channel] ) ) {
+                       $logConfig = $wgDebugLogGroups[$channel];
+
+                       if ( is_array( $logConfig ) && isset( $logConfig['sample'] ) ) {
+                               // Emit randomly with a 1 in 'sample' chance for each message.
+                               $shouldEmit = mt_rand( 1, $logConfig['sample'] ) === 1;
+
+                       } else {
+                               // Emit unless the config value is explictly false.
+                               $shouldEmit = $logConfig !== false;
+                       }
+
+               } elseif ( isset( $context['private'] ) && $context['private'] ) {
+                       // Don't emit if the message didn't match previous checks based on the
+                       // channel and the event is marked as private. This check discards
+                       // messages sent via wfDebugLog() with dest == 'private' and no explicit
+                       // wgDebugLogGroups configuration.
+                       $shouldEmit = false;
+               } else {
+                       // Default return value is the the same as the historic wfDebug
+                       // method: emit if $wgDebugLogFile has been set.
+                       $shouldEmit = $wgDebugLogFile != '';
+               }
+
+               return $shouldEmit;
+       }
+
+
+       /**
+        * Format a message.
+        *
+        * Messages to the 'wfDebug', 'wfLogDBError' and 'wfErrorLog' channels
+        * receive special fomatting to mimic the historic output of the functions
+        * of the same name. All other channel values are formatted based on the
+        * historic output of the `wfDebugLog()` global function.
+        *
+        * @param string $channel
+        * @param string $message
+        * @param array $context
+        * @return string
+        */
+       protected static function format( $channel, $message, $context ) {
+               global $wgDebugLogGroups;
+
+               if ( $channel === 'wfDebug' ) {
+                       $text = self::formatAsWfDebug( $channel, $message, $context );
+
+               } elseif ( $channel === 'wfLogDBError' ) {
+                       $text = self::formatAsWfLogDBError( $channel, $message, $context );
+
+               } elseif ( $channel === 'wfErrorLog' ) {
+                       $text = "{$message}\n";
+
+               } elseif ( $channel === 'profileoutput' ) {
+                       // Legacy wfLogProfilingData formatitng
+                       $forward = '';
+                       if ( isset( $context['forwarded_for'] )) {
+                               $forward = " forwarded for {$context['forwarded_for']}";
+                       }
+                       if ( isset( $context['client_ip'] ) ) {
+                               $forward .= " client IP {$context['client_ip']}";
+                       }
+                       if ( isset( $context['from'] ) ) {
+                               $forward .= " from {$context['from']}";
+                       }
+                       if ( $forward ) {
+                               $forward = "\t(proxied via {$context['proxy']}{$forward})";
+                       }
+                       if ( $context['anon'] ) {
+                               $forward .= ' anon';
+                       }
+                       if ( !isset( $context['url'] ) ) {
+                               $context['url'] = 'n/a';
+                       }
+
+                       $log = sprintf( "%s\t%04.3f\t%s%s\n",
+                               gmdate( 'YmdHis' ), $context['elapsed'], $context['url'], $forward );
+
+                       $text = self::formatAsWfDebugLog(
+                               $channel, $log . $context['output'], $context );
+
+               } elseif ( !isset( $wgDebugLogGroups[$channel] ) ) {
+                       $text = self::formatAsWfDebug(
+                               $channel, "[{$channel}] {$message}", $context );
+
+               } else {
+                       // Default formatting is wfDebugLog's historic style
+                       $text = self::formatAsWfDebugLog( $channel, $message, $context );
+               }
+               return $text;
+       }
+
+
+       /**
+        * Format a message as `wfDebug()` would have formatted it.
+        *
+        * @param string $channel
+        * @param string $message
+        * @param array $context
+        * @return string
+        */
+       protected static function formatAsWfDebug( $channel, $message, $context ) {
+               $text = preg_replace( '![\x00-\x08\x0b\x0c\x0e-\x1f]!', ' ', $message );
+               if ( isset( $context['prefix'] ) ) {
+                       $text = "{$context['prefix']}{$text}";
+               }
+               return "{$text}\n";
+       }
+
+
+       /**
+        * Format a message as `wfLogDBError()` would have formatted it.
+        *
+        * @param string $channel
+        * @param string $message
+        * @param array $context
+        * @return string
+        */
+       protected static function formatAsWfLogDBError( $channel, $message, $context ) {
+               global $wgDBerrorLogTZ;
+               static $cachedTimezone = null;
+
+               if ( $wgDBerrorLogTZ && !$cachedTimezone ) {
+                       $cachedTimezone = new DateTimeZone( $wgDBerrorLogTZ );
+               }
+
+               // Workaround for https://bugs.php.net/bug.php?id=52063
+               // Can be removed when min PHP > 5.3.6
+               if ( $cachedTimezone === null ) {
+                       $d = date_create( 'now' );
+               } else {
+                       $d = date_create( 'now', $cachedTimezone );
+               }
+               $date = $d->format( 'D M j G:i:s T Y' );
+
+               $host = wfHostname();
+               $wiki = wfWikiID();
+
+               $text = "{$date}\t{$host}\t{$wiki}\t{$message}\n";
+               return $text;
+       }
+
+
+       /**
+        * Format a message as `wfDebugLog() would have formatted it.
+        *
+        * @param string $channel
+        * @param string $message
+        * @param array $context
+        */
+       protected static function formatAsWfDebugLog( $channel, $message, $context ) {
+               $time = wfTimestamp( TS_DB );
+               $wiki = wfWikiID();
+               $host = wfHostname();
+               $text = "{$time} {$host} {$wiki}: {$message}\n";
+               return $text;
+       }
+
+
+       /**
+        * Select the appropriate log output destination for the given log event.
+        *
+        * If the event context contains 'destination'
+        *
+        * @param string $channel
+        * @param string $message
+        * @param array $context
+        * @return string
+        */
+       protected static function destination( $channel, $message, $context ) {
+               global $wgDebugLogFile, $wgDBerrorLog, $wgDebugLogGroups;
+
+               // Default destination is the debug log file as historically used by
+               // the wfDebug function.
+               $destination = $wgDebugLogFile;
+
+               if ( isset( $context['destination'] ) ) {
+                       // Use destination explicitly provided in context
+                       $destination = $context['destination'];
+
+               } elseif ( $channel === 'wfDebug' ) {
+                       $destination = $wgDebugLogFile;
+
+               } elseif ( $channel === 'wfLogDBError' ) {
+                       $destination = $wgDBerrorLog;
+
+               } elseif ( isset( $wgDebugLogGroups[$channel] ) ) {
+                       $logConfig = $wgDebugLogGroups[$channel];
+
+                       if ( is_array( $logConfig ) ) {
+                               $destination = $logConfig['destination'];
+                       } else {
+                               $destination = strval( $logConfig );
+                       }
+               }
+
+               return $destination;
+       }
+
+
+       /**
+       * Log to a file without getting "file size exceeded" signals.
+       *
+       * Can also log to UDP with the syntax udp://host:port/prefix. This will send
+       * lines to the specified port, prefixed by the specified prefix and a space.
+       *
+       * @param string $text
+       * @param string $file Filename
+       * @throws MWException
+       */
+       public static function emit( $text, $file ) {
+               if ( substr( $file, 0, 4 ) == 'udp:' ) {
+                       # Needs the sockets extension
+                       if ( preg_match( '!^udp:(?://)?\[([0-9a-fA-F:]+)\]:(\d+)(?:/(.*))?$!', $file, $m ) ) {
+                               // IPv6 bracketed host
+                               $host = $m[1];
+                               $port = intval( $m[2] );
+                               $prefix = isset( $m[3] ) ? $m[3] : false;
+                               $domain = AF_INET6;
+                       } elseif ( preg_match( '!^udp:(?://)?([a-zA-Z0-9.-]+):(\d+)(?:/(.*))?$!', $file, $m ) ) {
+                               $host = $m[1];
+                               if ( !IP::isIPv4( $host ) ) {
+                                       $host = gethostbyname( $host );
+                               }
+                               $port = intval( $m[2] );
+                               $prefix = isset( $m[3] ) ? $m[3] : false;
+                               $domain = AF_INET;
+                       } else {
+                               throw new MWException( __METHOD__ . ': Invalid UDP specification' );
+                       }
+
+                       // Clean it up for the multiplexer
+                       if ( strval( $prefix ) !== '' ) {
+                               $text = preg_replace( '/^/m', $prefix . ' ', $text );
+
+                               // Limit to 64KB
+                               if ( strlen( $text ) > 65506 ) {
+                                       $text = substr( $text, 0, 65506 );
+                               }
+
+                               if ( substr( $text, -1 ) != "\n" ) {
+                                       $text .= "\n";
+                               }
+                       } elseif ( strlen( $text ) > 65507 ) {
+                               $text = substr( $text, 0, 65507 );
+                       }
+
+                       $sock = socket_create( $domain, SOCK_DGRAM, SOL_UDP );
+                       if ( !$sock ) {
+                               return;
+                       }
+
+                       socket_sendto( $sock, $text, strlen( $text ), 0, $host, $port );
+                       socket_close( $sock );
+               } else {
+                       wfSuppressWarnings();
+                       $exists = file_exists( $file );
+                       $size = $exists ? filesize( $file ) : false;
+                       if ( !$exists ||
+                               ( $size !== false && $size + strlen( $text ) < 0x7fffffff )
+                       ) {
+                               file_put_contents( $file, $text, FILE_APPEND );
+                       }
+                       wfRestoreWarnings();
+               }
+       }
+
+}
diff --git a/includes/debug/logger/legacy/Spi.php b/includes/debug/logger/legacy/Spi.php
new file mode 100644 (file)
index 0000000..a3d34fa
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * MWLogger service provider that creates MWLoggerLegacyLogger instances.
+ *
+ * Usage:
+ * @code
+ * $wgMWLoggerDefaultSpi = array(
+ *   'class' => 'MWLoggerLegacySpi',
+ * );
+ * @endcode
+ *
+ * @see MWLogger
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerLegacySpi implements MWLoggerSpi {
+
+       /**
+        * @var array $singletons
+        */
+       protected $singletons = array();
+
+
+       /**
+        * Get a logger instance.
+        *
+        * @param string $channel Logging channel
+        * @return MWLogger Logger instance
+        */
+       public function getLogger( $channel ) {
+               if ( !isset( $this->singletons[$channel] ) ) {
+                       $this->singletons[$channel] = new MWLoggerLegacyLogger( $channel );
+               }
+               return $this->singletons[$channel];
+       }
+
+}
diff --git a/includes/debug/logger/monolog/Handler.php b/includes/debug/logger/monolog/Handler.php
new file mode 100644 (file)
index 0000000..02ab309
--- /dev/null
@@ -0,0 +1,212 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+
+/**
+ * Log handler that replicates the behavior of MediaWiki's wfErrorLog()
+ * logging service. Log output can be directed to a local file, a PHP stream,
+ * or a udp2log server.
+ *
+ * For udp2log output, the stream specification must have the form:
+ * "udp://HOST:PORT[/PREFIX]"
+ * where:
+ * - HOST: IPv4, IPv6 or hostname
+ * - PORT: server port
+ * - PREFIX: optional (but recommended) prefix telling udp2log how to route
+ * the log event
+ *
+ * When not targeting a udp2log stream this class will act as a drop-in
+ * replacement for Monolog's StreamHandler.
+ *
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerMonologHandler extends \Monolog\Handler\AbstractProcessingHandler {
+
+       /**
+        * Log sink descriptor
+        * @var string $uri
+        */
+       protected $uri;
+
+       /**
+        * Log sink
+        * @var resource $sink
+        */
+       protected $sink;
+
+       /**
+        * @var string $error
+        */
+       protected $error;
+
+       /**
+        * @var string $host
+        */
+       protected $host;
+
+       /**
+        * @var int $port
+        */
+       protected $port;
+
+       /**
+        * @var string $prefix
+        */
+       protected $prefix;
+
+
+       /**
+        * @param string $stream Stream URI
+        * @param int $level Minimum logging level that will trigger handler
+        * @param bool $bubble Can handled meesages bubble up the handler stack?
+        */
+       public function __construct(
+               $stream, $level = \Monolog\Logger::DEBUG, $bubble = true
+       ) {
+               parent::__construct( $level, $bubble );
+               $this->uri = $stream;
+       }
+
+
+       /**
+        * Open the log sink described by our stream URI.
+        */
+       protected function openSink() {
+               if ( !$this->uri ) {
+                       throw new LogicException(
+                               'Missing stream uri, the stream can not be opened.' );
+               }
+               $this->error = null;
+               set_error_handler( array( $this, 'errorTrap' ) );
+
+               if ( substr( $this->uri, 0, 4 ) == 'udp:' ) {
+                       $parsed = parse_url( $this->uri );
+                       if ( !isset( $parsed['host'] ) ) {
+                               throw new UnexpectedValueException( sprintf(
+                                       'Udp transport "%s" must specify a host', $this->uri
+                               ) );
+                       }
+                       if ( !isset( $parsed['port'] ) ) {
+                               throw new UnexpectedValueException( sprintf(
+                                       'Udp transport "%s" must specify a port', $this->uri
+                               ) );
+                       }
+
+                       $this->host = $parsed['host'];
+                       $this->port = $parsed['port'];
+                       $this->prefix = '';
+
+                       if ( isset( $parsed['path'] ) ) {
+                               $this->prefix = ltrim( $parsed['path'], '/' );
+                       }
+
+                       if ( filter_var( $this->host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) {
+                               $domain = AF_INET6;
+
+                       } else {
+                               $domain = AF_INET;
+                       }
+
+                       $this->sink = socket_create( $domain, SOCK_DGRAM, SOL_UDP );
+
+               } else {
+                       $this->sink = fopen( $this->uri, 'a' );
+               }
+               restore_error_handler();
+
+               if ( !is_resource( $this->sink ) ) {
+                       $this->sink = null;
+                       throw new UnexpectedValueException( sprintf(
+                               'The stream or file "%s" could not be opened: %s',
+                               $this->uri, $this->error
+                       ) );
+               }
+       }
+
+
+       /**
+        * Custom error handler.
+        * @param int $code Error number
+        * @param string $msg Error message
+        */
+       protected function errorTrap( $code, $msg ) {
+               $this->error = $msg;
+       }
+
+
+       /**
+        * Should we use UDP to send messages to the sink?
+        * @return bool
+        */
+       protected function useUdp() {
+               return $this->host !== null;
+       }
+
+
+       protected function write( array $record ) {
+               if ( $this->sink === null ) {
+                       $this->openSink();
+               }
+
+               $text = (string)$record['formatted'];
+               if ( $this->useUdp() ) {
+
+                       // Clean it up for the multiplexer
+                       if ( $this->prefix !== '' ) {
+                               $text = preg_replace( '/^/m', "{$this->prefix} ", $text );
+
+                               // Limit to 64KB
+                               if ( strlen( $text ) > 65506 ) {
+                                       $text = substr( $text, 0, 65506 );
+                               }
+
+                               if ( substr( $text, -1 ) != "\n" ) {
+                                       $text .= "\n";
+                               }
+
+                       } elseif ( strlen( $text ) > 65507 ) {
+                               $text = substr( $text, 0, 65507 );
+                       }
+
+                       socket_sendto(
+                               $this->sink, $text, strlen( $text ), 0, $this->host, $this->port );
+
+               } else {
+                       fwrite( $this->sink, $text );
+               }
+       }
+
+
+       public function close() {
+               if ( is_resource( $this->sink ) ) {
+                       if ( $this->useUdp() ) {
+                               socket_close( $this->sink );
+
+                       } else {
+                               fclose( $this->sink );
+                       }
+               }
+               $this->sink = null;
+       }
+
+}
diff --git a/includes/debug/logger/monolog/Processor.php b/includes/debug/logger/monolog/Processor.php
new file mode 100644 (file)
index 0000000..a9f72c8
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+
+/**
+ * Injects `wfHostname()` and `wfWikiID()` in all records.
+ *
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerMonologProcessor {
+
+       /**
+        * @param array $record
+        * @return array
+        */
+       public function __invoke( array $record ) {
+               $record['extra'] = array_merge(
+                       $record['extra'],
+                       array(
+                               'host' => wfHostname(),
+                               'wiki' => wfWikiID(),
+                       )
+               );
+               return $record;
+       }
+
+}
diff --git a/includes/debug/logger/monolog/Spi.php b/includes/debug/logger/monolog/Spi.php
new file mode 100644 (file)
index 0000000..e514715
--- /dev/null
@@ -0,0 +1,242 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * MWLogger service provider that creates loggers implemented by Monolog.
+ *
+ * Configured using an array of configuration data with the keys 'loggers',
+ * 'processors', 'handlers' and 'formatters'.
+ *
+ * The ['loggers']['@default'] configuration will be used to create loggers
+ * for any channel that isn't explicitly named in the 'loggers' configuration
+ * section.
+ *
+ * Configuration will most typically be provided in the $wgMWLoggerDefaultSpi
+ * global configuration variable used by MWLogger to construct its default SPI
+ * provider:
+ * @code
+ * $wgMWLoggerDefaultSpi = array(
+ *   'class' => 'MWLoggerMonologSpi',
+ *   'args' => array( array(
+ *       'loggers' => array(
+ *           '@default' => array(
+ *               'processors' => array( 'wiki', 'psr', 'pid', 'uid', 'web' ),
+ *               'handlers'   => array( 'stream' ),
+ *           ),
+ *           'runJobs' => array(
+ *               'processors' => array( 'wiki', 'psr', 'pid' ),
+ *               'handlers'   => array( 'stream' ),
+ *           )
+ *       ),
+ *       'processors' => array(
+ *           'wiki' => array(
+ *               'class' => 'MWLoggerMonologProcessor',
+ *           ),
+ *           'psr' => array(
+ *               'class' => '\\Monolog\\Processor\\PsrLogMessageProcessor',
+ *           ),
+ *           'pid' => array(
+ *               'class' => '\\Monolog\\Processor\\ProcessIdProcessor',
+ *           ),
+ *           'uid' => array(
+ *               'class' => '\\Monolog\\Processor\\UidProcessor',
+ *           ),
+ *           'web' => array(
+ *               'class' => '\\Monolog\\Processor\\WebProcessor',
+ *           ),
+ *       ),
+ *       'handlers' => array(
+ *           'stream' => array(
+ *               'class'     => '\\Monolog\\Handler\\StreamHandler',
+ *               'args'      => array( 'path/to/your.log' ),
+ *               'formatter' => 'line',
+ *           ),
+ *           'redis' => array(
+ *               'class'     => '\\Monolog\\Handler\\RedisHandler',
+ *               'args'      => array( function() {
+ *                       $redis = new Redis();
+ *                       $redis->connect( '127.0.0.1', 6379 );
+ *                       return $redis;
+ *                   },
+ *                   'logstash'
+ *               ),
+ *               'formatter' => 'logstash',
+ *           ),
+ *           'udp2log' => array(
+ *               'class' => 'MWLoggerMonologHandler',
+ *               'args' => array(
+ *                   'udp://127.0.0.1:8420/mediawiki
+ *               ),
+ *               'formatter' => 'line',
+ *           ),
+ *       ),
+ *       'formatters' => array(
+ *           'line' => array(
+ *               'class' => '\\Monolog\\Formatter\\LineFormatter',
+ *            ),
+ *            'logstash' => array(
+ *                'class' => '\\Monolog\\Formatter\\LogstashFormatter',
+ *                'args'  => array( 'mediawiki', php_uname( 'n' ), null, '', 1 ),
+ *            ),
+ *       ),
+ *   ) ),
+ * );
+ * @endcode
+ *
+ * @see https://github.com/Seldaek/monolog
+ * @since 1.25
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class MWLoggerMonologSpi implements MWLoggerSpi {
+
+       /**
+        * @var array $singletons
+        */
+       protected $singletons;
+
+       /**
+        * Configuration for creating new loggers.
+        * @var array $config
+        */
+       protected $config;
+
+
+       /**
+        * @param array $config Configuration data.
+        */
+       public function __construct( array $config ) {
+               $this->config = $config;
+               $this->reset();
+       }
+
+
+       /**
+        * Reset internal caches.
+        *
+        * This is public for use in unit tests. Under normal operation there should
+        * be no need to flush the caches.
+        */
+       public function reset() {
+               $this->singletons = array(
+                       'loggers'    => array(),
+                       'handlers'   => array(),
+                       'formatters' => array(),
+                       'processors' => array(),
+               );
+       }
+
+
+       /**
+        * Get a logger instance.
+        *
+        * Creates and caches a logger instance based on configuration found in the
+        * $wgMWLoggerMonologSpiConfig global. Subsequent request for the same channel
+        * name will return the cached instance.
+        *
+        * @param string $channel Logging channel
+        * @return MWLogger Logger instance
+        */
+       public function getLogger( $channel ) {
+               if ( !isset( $this->singletons['loggers'][$channel] ) ) {
+                       // Fallback to using the '@default' configuration if an explict
+                       // configuration for the requested channel isn't found.
+                       $spec = isset( $this->config['loggers'][$channel] ) ?
+                               $this->config['loggers'][$channel] :
+                               $this->config['loggers']['@default'];
+
+                       $monolog = $this->createLogger( $channel, $spec );
+                       $this->singletons['loggers'][$channel] = new MWLogger( $monolog );
+               }
+
+               return $this->singletons['loggers'][$channel];
+       }
+
+
+       /**
+        * Create a logger.
+        * @param string $channel Logger channel
+        * @param array $spec Configuration
+        * @return \Monolog\Logger
+        */
+       protected function createLogger( $channel, $spec ) {
+               $obj = new \Monolog\Logger( $channel );
+
+               if ( isset( $spec['processors'] ) ) {
+                       foreach ( $spec['processors'] as $processor ) {
+                               $obj->pushProcessor( $this->getProcessor( $processor ) );
+                       }
+               }
+
+               if ( isset( $spec['handlers'] ) ) {
+                       foreach ( $spec['handlers'] as $handler ) {
+                               $obj->pushHandler( $this->getHandler( $handler ) );
+                       }
+               }
+               return $obj;
+       }
+
+
+       /**
+        * Create or return cached processor.
+        * @param string $name Processor name
+        * @return callable
+        */
+       protected function getProcessor( $name ) {
+               if ( !isset( $this->singletons['processors'][$name] ) ) {
+                       $spec = $this->config['processors'][$name];
+                       $processor = ObjectFactory::getObjectFromSpec( $spec );
+                       $this->singletons['processors'][$name] = $processor;
+               }
+               return $this->singletons['processors'][$name];
+       }
+
+
+       /**
+        * Create or return cached handler.
+        * @param string $name Processor name
+        * @return \Monolog\Handler\HandlerInterface
+        */
+       protected function getHandler( $name ) {
+               if ( !isset( $this->singletons['handlers'][$name] ) ) {
+                       $spec = $this->config['handlers'][$name];
+                       $handler = ObjectFactory::getObjectFromSpec( $spec );
+                       $handler->setFormatter( $this->getFormatter( $spec['formatter'] ) );
+                       $this->singletons['handlers'][$name] = $handler;
+               }
+               return $this->singletons['handlers'][$name];
+       }
+
+
+       /**
+        * Create or return cached formatter.
+        * @param string $name Formatter name
+        * @return \Monolog\Formatter\FormatterInterface
+        */
+       protected function getFormatter( $name ) {
+               if ( !isset( $this->singletons['formatters'][$name] ) ) {
+                       $spec = $this->config['formatters'][$name];
+                       $formatter = ObjectFactory::getObjectFromSpec( $spec );
+                       $this->singletons['formatters'][$name] = $formatter;
+               }
+               return $this->singletons['formatters'][$name];
+       }
+}
index 7bfafee..97a17c3 100644 (file)
@@ -22,9 +22,6 @@
  * Class for handling updates to the site_stats table
  */
 class SiteStatsUpdate implements DeferrableUpdate {
-       /** @var int */
-       protected $views = 0;
-
        /** @var int */
        protected $edits = 0;
 
@@ -42,7 +39,6 @@ class SiteStatsUpdate implements DeferrableUpdate {
 
        // @todo deprecate this constructor
        function __construct( $views, $edits, $good, $pages = 0, $users = 0 ) {
-               $this->views = $views;
                $this->edits = $edits;
                $this->articles = $good;
                $this->pages = $pages;
@@ -100,7 +96,6 @@ class SiteStatsUpdate implements DeferrableUpdate {
                        }
                        $pd = $this->getPendingDeltas();
                        // Piggy-back the async deltas onto those of this stats update....
-                       $this->views += ( $pd['ss_total_views']['+'] - $pd['ss_total_views']['-'] );
                        $this->edits += ( $pd['ss_total_edits']['+'] - $pd['ss_total_edits']['-'] );
                        $this->articles += ( $pd['ss_good_articles']['+'] - $pd['ss_good_articles']['-'] );
                        $this->pages += ( $pd['ss_total_pages']['+'] - $pd['ss_total_pages']['-'] );
@@ -110,7 +105,6 @@ class SiteStatsUpdate implements DeferrableUpdate {
 
                // Build up an SQL query of deltas and apply them...
                $updates = '';
-               $this->appendUpdate( $updates, 'ss_total_views', $this->views );
                $this->appendUpdate( $updates, 'ss_total_edits', $this->edits );
                $this->appendUpdate( $updates, 'ss_good_articles', $this->articles );
                $this->appendUpdate( $updates, 'ss_total_pages', $this->pages );
@@ -160,7 +154,6 @@ class SiteStatsUpdate implements DeferrableUpdate {
        }
 
        protected function doUpdatePendingDeltas() {
-               $this->adjustPending( 'ss_total_views', $this->views );
                $this->adjustPending( 'ss_total_edits', $this->edits );
                $this->adjustPending( 'ss_good_articles', $this->articles );
                $this->adjustPending( 'ss_total_pages', $this->pages );
@@ -226,7 +219,7 @@ class SiteStatsUpdate implements DeferrableUpdate {
                global $wgMemc;
 
                $pending = array();
-               foreach ( array( 'ss_total_views', 'ss_total_edits',
+               foreach ( array( 'ss_total_edits',
                        'ss_good_articles', 'ss_total_pages', 'ss_users', 'ss_images' ) as $type
                ) {
                        // Get pending increments and pending decrements
index 9c58503..7ec61ea 100644 (file)
@@ -35,7 +35,7 @@ abstract class SqlDataUpdate extends DataUpdate {
        protected $mDb;
 
        /** @var array SELECT options to be used (array) */
-       protected $mOptions;
+       protected $mOptions = array();
 
        /** @var bool Whether a transaction is open on this object (internal use only!) */
        private $mHasTransaction;
@@ -51,16 +51,8 @@ abstract class SqlDataUpdate extends DataUpdate {
         *   transaction is already in progress, see beginTransaction() for details.
         */
        public function __construct( $withTransaction = true ) {
-               global $wgAntiLockFlags;
-
                parent::__construct();
 
-               if ( $wgAntiLockFlags & ALF_NO_LINK_LOCK ) {
-                       $this->mOptions = array();
-               } else {
-                       $this->mOptions = array( 'FOR UPDATE' );
-               }
-
                // @todo Get connection only when it's needed? Make sure that doesn't
                // break anything, especially transactions!
                $this->mDb = wfGetDB( DB_MASTER );
index 0dcff44..d4fc7a0 100644 (file)
@@ -51,41 +51,6 @@ class SquidUpdate {
                $this->urlArr = $urlArr;
        }
 
-       /**
-        * Create a SquidUpdate from the given Title object.
-        *
-        * The resulting SquidUpdate will purge the given Title's URLs as well as
-        * the pages that link to it. Capped at $wgMaxSquidPurgeTitles total URLs.
-        *
-        * @param Title $title
-        * @return SquidUpdate
-        */
-       public static function newFromLinksTo( Title $title ) {
-               global $wgMaxSquidPurgeTitles;
-               wfProfileIn( __METHOD__ );
-
-               # Get a list of URLs linking to this page
-               $dbr = wfGetDB( DB_SLAVE );
-               $res = $dbr->select( array( 'links', 'page' ),
-                       array( 'page_namespace', 'page_title' ),
-                       array(
-                               'pl_namespace' => $title->getNamespace(),
-                               'pl_title' => $title->getDBkey(),
-                               'pl_from=page_id' ),
-                       __METHOD__ );
-               $blurlArr = $title->getSquidURLs();
-               if ( $res->numRows() <= $wgMaxSquidPurgeTitles ) {
-                       foreach ( $res as $BL ) {
-                               $tobj = Title::makeTitle( $BL->page_namespace, $BL->page_title );
-                               $blurlArr[] = $tobj->getInternalURL();
-                       }
-               }
-
-               wfProfileOut( __METHOD__ );
-
-               return new SquidUpdate( $blurlArr );
-       }
-
        /**
         * Create a SquidUpdate from an array of Title objects, or a TitleArray object
         *
diff --git a/includes/deferred/ViewCountUpdate.php b/includes/deferred/ViewCountUpdate.php
deleted file mode 100644 (file)
index 8282295..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * Update for the 'page_counter' field
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * Update for the 'page_counter' field, when $wgDisableCounters is false.
- *
- * Depending on $wgHitcounterUpdateFreq, this will directly increment the
- * 'page_counter' field or use the 'hitcounter' table and then collect the data
- * from that table to update the 'page_counter' field in a batch operation.
- */
-class ViewCountUpdate implements DeferrableUpdate {
-       /** @var int Page ID to increment the view count */
-       protected $id;
-
-       /**
-        * Constructor
-        *
-        * @param int $id Page ID to increment the view count
-        */
-       public function __construct( $id ) {
-               $this->id = intval( $id );
-       }
-
-       /**
-        * Run the update
-        */
-       public function doUpdate() {
-               global $wgHitcounterUpdateFreq;
-
-               $dbw = wfGetDB( DB_MASTER );
-
-               if ( $wgHitcounterUpdateFreq <= 1 || $dbw->getType() == 'sqlite' ) {
-                       $id = $this->id;
-                       $method = __METHOD__;
-                       $dbw->onTransactionIdle( function () use ( $dbw, $id, $method ) {
-                               try {
-                                       $dbw->update( 'page',
-                                               array( 'page_counter = page_counter + 1' ),
-                                               array( 'page_id' => $id ),
-                                               $method
-                                       );
-                               } catch ( DBError $e ) {
-                                       MWExceptionHandler::logException( $e );
-                               }
-                       } );
-                       return;
-               }
-
-               # Not important enough to warrant an error page in case of failure
-               try {
-                       // Since `hitcounter` is non-transactional, the contention is minimal
-                       $dbw->insert( 'hitcounter', array( 'hc_id' => $this->id ), __METHOD__ );
-                       $checkfreq = intval( $wgHitcounterUpdateFreq / 25 + 1 );
-                       if ( rand() % $checkfreq == 0 && $dbw->lastErrno() == 0 ) {
-                               $this->collect();
-                       }
-               } catch ( DBError $e ) {
-                       MWExceptionHandler::logException( $e );
-               }
-       }
-
-       protected function collect() {
-               global $wgHitcounterUpdateFreq;
-
-               $dbw = wfGetDB( DB_MASTER );
-
-               $rown = $dbw->selectField( 'hitcounter', 'COUNT(*)', array(), __METHOD__ );
-               if ( $rown < $wgHitcounterUpdateFreq ) {
-                       return;
-               }
-
-               wfProfileIn( __METHOD__ . '-collect' );
-               $old_user_abort = ignore_user_abort( true );
-
-               $dbType = $dbw->getType();
-               $tabletype = $dbType == 'mysql' ? "ENGINE=HEAP " : '';
-               $hitcounterTable = $dbw->tableName( 'hitcounter' );
-               $acchitsTable = $dbw->tableName( 'acchits' );
-               $pageTable = $dbw->tableName( 'page' );
-
-               $dbw->lockTables( array(), array( 'hitcounter' ), __METHOD__, false );
-               $dbw->query( "CREATE TEMPORARY TABLE $acchitsTable $tabletype AS " .
-                       "SELECT hc_id,COUNT(*) AS hc_n FROM $hitcounterTable " .
-                       'GROUP BY hc_id', __METHOD__ );
-               $dbw->delete( 'hitcounter', '*', __METHOD__ );
-               $dbw->unlockTables( __METHOD__ );
-
-               if ( $dbType == 'mysql' ) {
-                       $dbw->query( "UPDATE $pageTable,$acchitsTable SET page_counter=page_counter + hc_n " .
-                               'WHERE page_id = hc_id', __METHOD__ );
-               } else {
-                       $dbw->query( "UPDATE $pageTable SET page_counter=page_counter + hc_n " .
-                               "FROM $acchitsTable WHERE page_id = hc_id", __METHOD__ );
-               }
-               $dbw->query( "DROP TABLE $acchitsTable", __METHOD__ );
-
-               ignore_user_abort( $old_user_abort );
-               wfProfileOut( __METHOD__ . '-collect' );
-       }
-}
index 71917e1..1f1ba9c 100644 (file)
@@ -82,6 +82,8 @@ class MWExceptionHandler {
                        } else {
                                echo nl2br( htmlspecialchars( $message ) ) . "\n";
                        }
+
+                       self::logException( $e );
                }
        }
 
diff --git a/includes/exception/TimestampException.php b/includes/exception/TimestampException.php
new file mode 100644 (file)
index 0000000..b9c0c35
--- /dev/null
@@ -0,0 +1,7 @@
+<?php
+
+/**
+ * @since 1.20
+ */
+class TimestampException extends MWException {
+}
index 03ba0b2..02fca3d 100644 (file)
@@ -25,8 +25,9 @@
  * 'exception-nologin' as a title and 'exception-nologin-text' for the message.
  *
  * @note In order for this exception to redirect, the error message passed to the
- * constructor has to be explicitly added to LoginForm::validErrorMessages. Otherwise,
- * the user will just be shown the message rather than redirected.
+ * constructor has to be explicitly added to LoginForm::validErrorMessages or with
+ * the LoginFormValidErrorMessages hook. Otherwise, the user will just be shown the message
+ * rather than redirected.
  *
  * @par Example:
  * @code
@@ -52,7 +53,8 @@
 class UserNotLoggedIn extends ErrorPageError {
 
        /**
-        * @note The value of the $reasonMsg parameter must be put into LoginForm::validErrorMessages
+        * @note The value of the $reasonMsg parameter must be put into LoginForm::validErrorMessages or
+        * set with the LoginFormValidErrorMessages Hook.
         * if you want the user to be automatically redirected to the login form.
         *
         * @param string $reasonMsg A message key containing the reason for the error.
@@ -77,7 +79,7 @@ class UserNotLoggedIn extends ErrorPageError {
        public function report() {
                // If an unsupported message is used, don't try redirecting to Special:Userlogin,
                // since the message may not be compatible.
-               if ( !in_array( $this->msg, LoginForm::$validErrorMessages ) ) {
+               if ( !in_array( $this->msg, LoginForm::getValidErrorMessages() ) ) {
                        parent::report();
                }
 
index df8d2d4..762bc66 100644 (file)
@@ -72,9 +72,9 @@ abstract class LockManager {
        public function __construct( array $config ) {
                $this->domain = isset( $config['domain'] ) ? $config['domain'] : wfWikiID();
                if ( isset( $config['lockTTL'] ) ) {
-                       $this->lockTTL = max( 1, $config['lockTTL'] );
+                       $this->lockTTL = max( 5, $config['lockTTL'] );
                } elseif ( PHP_SAPI === 'cli' ) {
-                       $this->lockTTL = 2 * 3600;
+                       $this->lockTTL = 3600;
                } else {
                        $met = ini_get( 'max_execution_time' ); // this is 0 in CLI mode
                        $this->lockTTL = max( 5 * 60, 2 * (int)$met );
index 5929525..58245a5 100644 (file)
@@ -114,6 +114,9 @@ class FileRepo {
        /** @var string The URL of the repo's favicon, if any */
        protected $favicon;
 
+       /** @var bool Whether all zones should be private (e.g. private wiki repo) */
+       protected $isPrivate;
+
        /**
         * Factory functions for creating new files
         * Override these in the base class
@@ -269,7 +272,7 @@ class FileRepo {
         * @return string|bool
         */
        public function getZoneUrl( $zone, $ext = null ) {
-               if ( in_array( $zone, array( 'public', 'temp', 'thumb', 'transcoded' ) ) ) {
+               if ( in_array( $zone, array( 'public', 'thumb', 'transcoded' ) ) ) {
                        // standard public zones
                        if ( $ext !== null && isset( $this->zones[$zone]['urlsByExt'][$ext] ) ) {
                                // custom URL for extension/zone
@@ -283,7 +286,6 @@ class FileRepo {
                        case 'public':
                                return $this->url;
                        case 'temp':
-                               return "{$this->url}/temp";
                        case 'deleted':
                                return false; // no public URL
                        case 'thumb':
@@ -1305,7 +1307,10 @@ class FileRepo {
                list( , $container, ) = FileBackend::splitStoragePath( $path );
 
                $params = array( 'dir' => $path );
-               if ( $this->isPrivate || $container === $this->zones['deleted']['container'] ) {
+               if ( $this->isPrivate
+                       || $container === $this->zones['deleted']['container']
+                       || $container === $this->zones['temp']['container']
+               ) {
                        # Take all available measures to prevent web accessibility of new deleted
                        # directories, in case the user has not configured offline storage
                        $params = array( 'noAccess' => true, 'noListing' => true ) + $params;
@@ -1785,9 +1790,9 @@ class FileRepo {
        }
 
        /**
-        * Get an temporary FileRepo associated with this repo.
-        * Files will be created in the temp zone of this repo and
-        * thumbnails in a /temp subdirectory in thumb zone of this repo.
+        * Get a temporary private FileRepo associated with this repo.
+        *
+        * Files will be created in the temp zone of this repo.
         * It will have the same backend as this repo.
         *
         * @return TempFileRepo
@@ -1798,26 +1803,26 @@ class FileRepo {
                        'backend' => $this->backend,
                        'zones' => array(
                                'public' => array(
+                                       // Same place storeTemp() uses in the base repo, though
+                                       // the path hashing is mismatched, which is annoying.
                                        'container' => $this->zones['temp']['container'],
                                        'directory' => $this->zones['temp']['directory']
                                ),
                                'thumb' => array(
-                                       'container' => $this->zones['thumb']['container'],
-                                       'directory' => $this->zones['thumb']['directory'] == ''
-                                               ? 'temp'
-                                               : $this->zones['thumb']['directory'] . '/temp'
+                                       'container' => $this->zones['temp']['container'],
+                                       'directory' => $this->zones['temp']['directory'] == ''
+                                               ? 'thumb'
+                                               : $this->zones['temp']['directory'] . '/thumb'
                                ),
                                'transcoded' => array(
-                                       'container' => $this->zones['transcoded']['container'],
-                                       'directory' => $this->zones['transcoded']['directory'] == ''
-                                               ? 'temp'
-                                               : $this->zones['transcoded']['directory'] . '/temp'
+                                       'container' => $this->zones['temp']['container'],
+                                       'directory' => $this->zones['temp']['directory'] == ''
+                                               ? 'transcoded'
+                                               : $this->zones['temp']['directory'] . '/transcoded'
                                )
                        ),
-                       'url' => $this->getZoneUrl( 'temp' ),
-                       'thumbUrl' => $this->getZoneUrl( 'thumb' ) . '/temp',
-                       'transcodedUrl' => $this->getZoneUrl( 'transcoded' ) . '/temp',
-                       'hashLevels' => $this->hashLevels // performance
+                       'hashLevels' => $this->hashLevels, // performance
+                       'isPrivate' => true // all in temp zone
                ) );
        }
 
index 8824b66..9f14669 100644 (file)
@@ -1303,9 +1303,11 @@ class LocalFile extends File {
                );
                if ( $dbw->affectedRows() == 0 ) {
                        if ( $allowTimeKludge ) {
-                               # Use FOR UPDATE to ignore any transaction snapshotting
+                               # Use LOCK IN SHARE MODE to ignore any transaction snapshotting
                                $ltimestamp = $dbw->selectField( 'image', 'img_timestamp',
-                                       array( 'img_name' => $this->getName() ), __METHOD__, array( 'FOR UPDATE' ) );
+                                       array( 'img_name' => $this->getName() ),
+                                       __METHOD__,
+                                       array( 'LOCK IN SHARE MODE' ) );
                                $lUnixtime = $ltimestamp ? wfTimestamp( TS_UNIX, $ltimestamp ) : false;
                                # Avoid a timestamp that is not newer than the last version
                                # TODO: the image/oldimage tables should be like page/revision with an ID field
@@ -1850,7 +1852,7 @@ class LocalFile extends File {
         * Start a transaction and lock the image for update
         * Increments a reference counter if the lock is already held
         * @throws MWException Throws an error if the lock was not acquired
-        * @return bool Success
+        * @return bool Whether the file lock owns/spawned the DB transaction
         */
        function lock() {
                $dbw = $this->repo->getMasterDB();
@@ -1877,7 +1879,7 @@ class LocalFile extends File {
 
                $this->markVolatile(); // file may change soon
 
-               return true;
+               return $this->lockedOwnTrx;
        }
 
        /**
@@ -2419,13 +2421,19 @@ class LocalFileRestoreBatch {
                        return $this->file->repo->newGood();
                }
 
-               $this->file->lock();
+               $lockOwnsTrx = $this->file->lock();
 
                $dbw = $this->file->repo->getMasterDB();
                $status = $this->file->repo->newGood();
 
                $exists = (bool)$dbw->selectField( 'image', '1',
-                       array( 'img_name' => $this->file->getName() ), __METHOD__, array( 'FOR UPDATE' ) );
+                       array( 'img_name' => $this->file->getName() ),
+                       __METHOD__,
+                       // The lock() should already prevents changes, but this still may need
+                       // to bypass any transaction snapshot. However, if lock() started the
+                       // trx (which it probably did) then snapshot is post-lock and up-to-date.
+                       $lockOwnsTrx ? array() : array( 'LOCK IN SHARE MODE' )
+               );
 
                // Fetch all or selected archived revisions for the file,
                // sorted from the most recent to the oldest.
@@ -2797,7 +2805,7 @@ class LocalFileMoveBatch {
                        array( 'oi_archive_name', 'oi_deleted' ),
                        array( 'oi_name' => $this->oldName ),
                        __METHOD__,
-                       array( 'FOR UPDATE' ) // ignore snapshot
+                       array( 'LOCK IN SHARE MODE' ) // ignore snapshot
                );
 
                foreach ( $result as $row ) {
index 4511046..62345b8 100644 (file)
@@ -115,6 +115,8 @@ class HTMLForm extends ContextSource {
                'info' => 'HTMLInfoField',
                'selectorother' => 'HTMLSelectOrOtherField',
                'selectandother' => 'HTMLSelectAndOtherField',
+               'namespaceselect' => 'HTMLSelectNamespace',
+               'tagfilter' => 'HTMLTagFilter',
                'submit' => 'HTMLSubmitField',
                'hidden' => 'HTMLHiddenField',
                'edittools' => 'HTMLEditTools',
index 029911c..5dadaf8 100644 (file)
@@ -276,6 +276,7 @@ class HTMLFormFieldCloner extends HTMLFormField {
                }
 
                $html = '';
+               $hidden = '';
                $hasLabel = false;
 
                $fields = $this->createFieldsForKey( $key );
@@ -283,11 +284,18 @@ class HTMLFormFieldCloner extends HTMLFormField {
                        $v = ( empty( $field->mParams['nodata'] ) && $values !== null )
                                ? $values[$fieldname]
                                : $field->getDefault();
-                       $html .= $field->$getFieldHtmlMethod( $v );
 
-                       $labelValue = trim( $field->getLabel() );
-                       if ( $labelValue != '&#160;' && $labelValue !== '' ) {
-                               $hasLabel = true;
+                       if ( $field instanceof HTMLHiddenField ) {
+                               // HTMLHiddenField doesn't generate its own HTML
+                               list( $name, $value, $params ) = $field->getHiddenFieldData( $v );
+                               $hidden .= Html::hidden( $name, $value, $params ) . "\n";
+                       } else {
+                               $html .= $field->$getFieldHtmlMethod( $v );
+
+                               $labelValue = trim( $field->getLabel() );
+                               if ( $labelValue != '&#160;' && $labelValue !== '' ) {
+                                       $hasLabel = true;
+                               }
                        }
                }
 
@@ -335,6 +343,8 @@ class HTMLFormFieldCloner extends HTMLFormField {
                        }
                }
 
+               $html .= $hidden;
+
                if ( !empty( $this->mParams['row-legend'] ) ) {
                        $legend = $this->msg( $this->mParams['row-legend'] )->text();
                        $html = Xml::fieldset( $legend, $html );
index e32c0bb..ffde915 100644 (file)
@@ -1,22 +1,36 @@
 <?php
 
 class HTMLHiddenField extends HTMLFormField {
+       protected $outputAsDefault = true;
+
        public function __construct( $params ) {
                parent::__construct( $params );
 
+               if ( isset( $this->mParams['output-as-default'] ) ) {
+                       $this->outputAsDefault = (bool)$this->mParams['output-as-default'];
+               }
+
                # Per HTML5 spec, hidden fields cannot be 'required'
                # http://www.w3.org/TR/html5/forms.html#hidden-state-%28type=hidden%29
                unset( $this->mParams['required'] );
        }
 
-       public function getTableRow( $value ) {
+       public function getHiddenFieldData( $value ) {
                $params = array();
                if ( $this->mID ) {
                        $params['id'] = $this->mID;
                }
 
-               $this->mParent->addHiddenField( $this->mName, $this->mDefault, $params );
+               if ( $this->outputAsDefault ) {
+                       $value = $this->mDefault;
+               }
+
+               return array( $this->mName, $value, $params );
+       }
 
+       public function getTableRow( $value ) {
+               list( $name, $value, $params ) = $this->getHiddenFieldData( $value );
+               $this->mParent->addHiddenField( $name, $value, $params );
                return '';
        }
 
diff --git a/includes/htmlform/HTMLSelectNamespace.php b/includes/htmlform/HTMLSelectNamespace.php
new file mode 100644 (file)
index 0000000..9638106
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Wrapper for Html::namespaceSelector to use in HTMLForm
+ */
+class HTMLSelectNamespace extends HTMLFormField {
+       function getInputHTML( $value ) {
+               return Html::namespaceSelector(
+                       array(
+                               'selected' => $value,
+                               'all' => 'all'
+                       ), array(
+                               'name' => $this->mName,
+                               'id' => $this->mID,
+                               'class' => 'namespaceselector',
+                       )
+               );
+       }
+}
diff --git a/includes/htmlform/HTMLTagFilter.php b/includes/htmlform/HTMLTagFilter.php
new file mode 100644 (file)
index 0000000..eac9423
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Wrapper for ChgangeTags::buildTagFilterSelector to use in HTMLForm
+ */
+class HTMLTagFilter extends HTMLFormField {
+       function getInputHTML( $value ) {
+               $tagFilter = ChangeTags::buildTagFilterSelector( $value );
+               if ( $tagFilter ) {
+                       list( $tagFilterLabel, $tagFilterSelector ) = $tagFilter;
+                       // we only need the select field, HTMLForm should handle the label
+                       return $tagFilterSelector;
+               }
+               return '';
+       }
+}
index 193d592..6e0c37f 100644 (file)
@@ -31,6 +31,7 @@ require_once __DIR__ . '/../../maintenance/Maintenance.php';
  * @since 1.17
  */
 abstract class DatabaseUpdater {
+       protected static $updateCounter = 0;
 
        /**
         * Array of updates to perform on the database
@@ -460,7 +461,8 @@ abstract class DatabaseUpdater {
                if ( !$this->canUseNewUpdatelog() ) {
                        return;
                }
-               $key = "updatelist-$version-" . time();
+               $key = "updatelist-$version-" . time() . self::$updateCounter;
+               self::$updateCounter++;
                $this->db->insert( 'updatelog',
                        array( 'ul_key' => $key, 'ul_value' => serialize( $updates ) ),
                        __METHOD__ );
index 2e31e41..b2b0a69 100644 (file)
@@ -796,6 +796,9 @@ class WebInstallerName extends WebInstallerPage {
                        ) ) .
                        $this->parent->getTextBox( array(
                                'var' => '_AdminEmail',
+                               'attribs' => array(
+                                       'dir' => 'ltr',
+                               ),
                                'label' => 'config-admin-email',
                                'help' => $this->parent->getHelpBox( 'config-admin-email-help' )
                        ) ) .
index 9f84215..e0c985b 100644 (file)
@@ -5,7 +5,8 @@
                        "පසිඳු කාවින්ද",
                        "Kippelboy",
                        "Toniher",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Jmarchn"
                ]
        },
        "config-desc": "L'instal·lador del MediaWiki",
@@ -19,6 +20,8 @@
        "config-localsettings-incomplete": "El <code>LocalSettings.php</code> que hi ha sembla incomplet.\nLa variable $1 no està definida.\nCanvieu <code>LocalSettings.php</code> perquè la variable estigui definida i feu clic a «{{int:Config-continue}}».",
        "config-localsettings-connection-error": "S'ha trobat un error en connectar-se amb la base de dades fent servir els paràmetres especificats a <code>LocalSettings.php</code>. Corregiu aquests paràmetres i torneu-ho a provar.\n\n$1",
        "config-session-error": "Error en iniciar la sessió: $1",
+       "config-session-expired": "Les dades de la vostra sessió sembla que han caducat.\nLes sessions estan configurades per a un temps de $1.\nPodeu augmentar-lo posant <code>session.gc_maxlifetime</code> en php.ini.\nReprengueu el procés d'instal·lació.",
+       "config-no-session": "Les dades de la vostra sessió s'han perdut!\nComprovar el vostre php.ini i assegureu-vos que <code>session.save_path</code> està assignat a un directori apropiat.",
        "config-your-language": "La vostra llengua:",
        "config-your-language-help": "Seleccioneu la llengua que s'utilitzarà durant el procés d'instal·lació.",
        "config-wiki-language": "Llengua del wiki:",
@@ -43,6 +46,8 @@
        "config-help-restart": "Voleu esborrar totes les dades que heu introduït i tornar a començar el procés d'instal·lació?",
        "config-restart": "Sí, torna a començar",
        "config-welcome": "=== Comprovacions de l'entorn ===\nS'efectuaran comprovacions bàsiques per veure si l'entorn és adequat per a la instal·lació del MediaWiki.\nRecordeu d'incloure aquesta informació si heu de demanar ajuda sobre com completar la instal·lació.",
+       "config-copyright": "=== Drets d'autor i condicions ===\n\n$1\n\nAquest programa és de programari lliure; podeu redistribuir-lo i/o modificar-lo sota les condicions de la Llicència Pública General GNU com es publicada per la Free Software Foundation; qualsevol versió 2 de la llicència, o (opcionalment) qualsevol versió posterior.\n\nAquest programa és distribueix amb l'esperança que serà útil, però <strong>sense cap garantia</strong>; sense ni tan sols la garantia implícita de <strong>\ncomerciabilitat</strong> o <strong>idoneïtat per a un propòsit particular</strong>.\nConsulteu la Llicència Pública General GNU, per a més detalls.\n\nHauríeu d'haver rebut <doclink href=\"Copying\">una còpia de la Llicència Pública General GNU</doclink> amb aquest programa; si no, escriviu a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA o [http://www.gnu.org/copyleft/gpl.html per llegir-lo en línia].",
+       "config-sidebar": "* [//www.mediawiki.org la Pàgina d'inici]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guia de l'Usuari]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guia de l'Administrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Llegeix-me</doclink>\n* <doclink href=ReleaseNotes>Notes de la versió</doclink>\n* <doclink href=Còpia>Còpia</doclink>\n* <doclink href=UpgradeDoc>Actualització</doclink>",
        "config-env-good": "S'ha comprovat l'entorn.\nPodeu instal·lar el MediaWiki.",
        "config-env-bad": "S'ha comprovat l'entorn.\nNo podeu instal·lar el MediaWiki.",
        "config-env-php": "El PHP $1 està instal·lat.",
        "config-profile-private": "Wiki privat",
        "config-license": "Copyright i llicència:",
        "config-license-none": "Sense llicència al peu de pàgina",
+       "config-license-cc-by-sa": "Creative Commons Reconeixement-CompartirIgual",
+       "config-license-cc-by": "Creative Commons Reconeixement",
+       "config-license-cc-by-nc-sa": "Creative Commons Reconeixement-NoComercial-CompartirIgual",
+       "config-license-cc-0": "Creative Commons Zero (Domini Públic)",
+       "config-license-gfdl": "GNU Free Documentation License 1.3 o posterior",
        "config-license-pd": "Domini públic",
+       "config-license-cc-choose": "Selecció d'una llicència personalitzada de Creative Commons",
        "config-email-settings": "Paràmetres del correu electrònic",
        "config-email-user": "Habilita el correu electrònic usuari-a-usuari",
        "config-email-user-help": "Permet que tots els usuaris puguin enviar-se correu si ho han habilitat a les preferències.",
index 02ffd0d..7e06c60 100644 (file)
        "config-profile": "شرح‌حال حقوق کاربر:",
        "config-profile-wiki": "بازکردن ویکی",
        "config-profile-no-anon": "ساخت کاربری مورد نیاز است",
-       "config-profile-fishbowl": "فقط کاربر تأیید شده",
+       "config-profile-fishbowl": "فقط کاربر مجاز",
        "config-profile-private": "ویکی خصوصی",
        "config-profile-help": "زمانی ویکی درست کار می کند که شما اجازه دهید تعداد زیادی از مردم آن را ویرایش کنند.\nدر مدیاویکی امکان مشاهدهٔ تغییرات اخیر و واگردانی ویرایش‌های خرابکاری به آسانی وجود دارد.\n\nبا وجودی که مدیا ویکی منافع بسیاری برای مردم دارد ولی متقاعد کردن خیلی از مردم درباره روش کار ویکی‌ها کار آسانی نیست.\n\nدر نتیجه شما دو انتخاب دارید.\n\n'''{{int:config-profile-wiki}}''' به همه کاربرها اجازهٔ ویرایش می دهد حتی بدون ثبت‌نام.\n\nیک ویکی که دارای '''{{int:config-profile-no-anon}}''' باشد امکانات کاربری بیشتری ارائه می‌دهد ولی امکان دارد ویرایشگران عادی را نگران کند.\n\nسناریوی '''{{int:config-profile-fishbowl}}''' به کاربرها اجازهٔ ویرایش می دهد ولی همه می توانند متن و تاریخچه را ببیند.\n\n'''{{int:config-profile-private}}''' فقط به کاربران اجازهٔ مشاهدهٔ مطالب را می‌دهد و فقط آنها می توانند ویرایش کنند.\n\nدسترسی‌های بیشتر کاربری بعد از نصب در [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights راهنماهای مرتبط] موجود است.",
        "config-license": "حق تکثیر و مجوز:",
index c40544d..f88ab91 100644 (file)
@@ -13,7 +13,8 @@
                        "Elseweyr",
                        "Lliehu",
                        "Syreeni",
-                       "Stryn"
+                       "Stryn",
+                       "SMAUG"
                ]
        },
        "config-desc": "MediaWiki-asennin",
        "config-profile-fishbowl": "Vain hyväksytyt muokkaajat",
        "config-profile-private": "Yksityinen wiki",
        "config-license": "Tekijänoikeus ja lisenssi:",
+       "config-license-cc-by-sa": "Creative Commons Nimeä-Tarttuva",
+       "config-license-cc-by": "Creative Commons Nimeä",
+       "config-license-cc-by-nc-sa": "Creative Commons Nimeä-Epäkaupallinen-Tarttuva",
+       "config-license-cc-0": "Creative Commons Zero (Public Domain)",
+       "config-license-gfdl": "GNU Free Documentation -lisenssi 1.3 tai uudempi",
        "config-license-pd": "Public domain",
+       "config-license-cc-choose": "Valitse mukautettu Creative Commons -lisenssi",
        "config-email-settings": "Sähköpostiasetukset",
        "config-enable-email": "Ota käyttöön sähköpostien lähetys",
        "config-enable-email-help": "Jotta sähköposti toimii, [http://www.php.net/manual/en/mail.configuration.php PHP:n sähköpostiasetukset] täytyy asettaa oikein.\nJos et halua käyttää sähköpostiominaisuuksia, ne voi kytkeä pois päältä tästä.",
index 1eb0d89..8577834 100644 (file)
@@ -1,9 +1,14 @@
 {
        "@metadata": {
                "authors": [
-                       "Seb35"
+                       "Seb35",
+                       "Robin0van0der0vliet"
                ]
        },
+       "config-page-language": "Taal",
+       "config-page-name": "Namme",
+       "config-admin-password": "Wachtwurd:",
+       "config-help": "help",
        "mainpagetext": "'''MediaWiki-program goed ynstallearre.'''",
        "mainpagedocfooter": "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Contents Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List mei ynstellings]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index a150fbc..a35ea31 100644 (file)
@@ -6,7 +6,8 @@
                        "아라",
                        "Dj",
                        "Misibacsi",
-                       "Tacsipacsi"
+                       "Tacsipacsi",
+                       "Dorgan"
                ]
        },
        "config-desc": "A MediaWiki telepítője",
        "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/Special:MyLanguage/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/Special:MyLanguage/Unicode_normalization_considerations frissítését].",
        "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni.  Telepítened kell egyet a PHP-hez.\nA következő adatbázistípusok támogatottak: $1.\n\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysql</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz 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-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-skins": "Felületek",
+       "config-skins-use-as-default": "Felület használata alapértelmezettként",
        "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 \"{{int:config-back}}\" gombra.",
        "config-install-step-done": "kész",
index a61fff2..8ef3188 100644 (file)
@@ -10,7 +10,8 @@
                        "Lucas2",
                        "Ontsed",
                        "Seb35",
-                       "Nemo bis"
+                       "Nemo bis",
+                       "Ricordisamoa"
                ]
        },
        "config-desc": "Il programma di installazione per MediaWiki",
        "config-admin-error-password": "Errore interno durante l'impostazione di una password per amministratore \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
        "config-admin-error-bademail": "È stato inserito un indirizzo email non valido.",
        "config-subscribe": "Sottoscrivi la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailing list degli annunci di rilasci].",
-       "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-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 propria 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.",
index 21fcb9d..dedc3c2 100644 (file)
        "config-install-stats": "統計情報の初期化",
        "config-install-keys": "秘密鍵の生成",
        "config-insecure-keys": "<strong>警告:</strong> インストール中に生成されたセキュアキー ($1) は完璧に安全ではありません。手動で変更することを検討してください。",
+       "config-install-updates": "不要な更新を実行するのを防ぐ",
        "config-install-sysop": "管理者のアカウントの作成",
        "config-install-subscribe-fail": "mediawiki-announce を購読できませんでした: $1",
        "config-install-subscribe-notpossible": "cURL がインストールされていないため、<code>allow_url_fopen</code> を利用できません。",
index bc828a5..081f50f 100644 (file)
@@ -5,17 +5,18 @@
                        "아라",
                        "Hym411",
                        "Priviet",
-                       "Namoroka"
+                       "Namoroka",
+                       "Revi"
                ]
        },
        "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-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": "ì\9e\85ë ¥한 키가 잘못되었습니다.",
-       "config-upgrade-key-missing": "기존에 설치 했던 미디어위키를 감지했습니다.\n이 설치를 업그레이드하려면 <code>LocalSettings.php</code>의 아래에 다음 줄을 넣으세요:\n\n$1",
+       "config-localsettings-badkey": "ì \9cê³µ한 키가 잘못되었습니다.",
+       "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>에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 고치고 다시 시도하세요.\n\n$1",
        "config-session-error": "세션 시작 오류: $1",
        "config-help-restart": "입력한 모든 저장된 데이터를 지우고 설치 과정을 다시 시작하겠습니까?",
        "config-restart": "예, 다시 시작합니다",
        "config-welcome": "=== 사용 환경 검사 ===\n기본 검사는 지금 이 환경이 미디어위키 설치에 적합한지 수행합니다.\n설치를 완료하는 방법에 대한 지원을 찾는다면 이 정보를 포함해야 하는 것을 기억하세요.",
-       "config-copyright": "=== ì \80ì\9e\91ê¶\8c ë°\8f ì\9d´ì\9a© ì\95½ê´\80 ===\n\n$1\n\nì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d\80 ì\9e\90ì\9c  ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ì\9e\85ë\8b\88ë\8b¤. ë\8b¹ì\8b ì\9d\80 ì\9e\90ì\9c  ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ ì\9e¬ë\8b¨ì\9d´ ë°\9cí\91\9cí\95\9c GNU ì\9d¼ë°\98 ê³µì¤\91 ì\82¬ì\9a© í\97\88ê°\80ì\84\9c ë²\84ì \84 2ë\82\98 ê·¸ ì\9d´í\9b\84 ë²\84ì \84ì\97\90 ë\94°ë\9d¼ ì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d\84 ì\9e¬ë°°í\8f¬í\95\98ê±°ë\82\98 ì\88\98ì \95í\95  ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.\n\nì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d´ ì\9c ì\9a©í\95\98ê²\8c ì\82¬ì\9a©ë\90  ì\88\98 ì\9e\88기를 ë°\94ë\9d¼ì§\80ë§\8c '''ì\83\81ì\9a©ì\9c¼ë¡\9c ì\82¬ì\9a©'''ë\90\98ê±°ë\82\98 '''í\8a¹ì \95 ëª©ì \81ì\97\90 ë§\9eì\9d\84 ê²\83'''ì\9d´ë\9d¼ë\8a\94 ê²\83ì\9d\84 '''ë³´ì¦\9dí\95\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤'''.\nì\9e\90ì\84¸í\95\9c ë\82´ì\9a©ì\9d\80 GNU ì\9d¼ë°\98 ê³µì¤\91 ì\82¬ì\9a© í\97\88ê°\80ì\84\9c를 ì°¸ê³ í\95\98ì\8b­ì\8b\9cì\98¤.\n\në\8b¹ì\8b ì\9d\80 ì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d\84 í\86µí\95´ <doclink href=Copying>GNU ì\9d¼ë°\98 ê³µì¤\91 ì\82¬ì\9a© í\97\88ê°\80ì\84\9c ì \84문</doclink>ì\9d\84 ë°\9bì\95\98ì\8aµë\8b\88ë\8b¤. ê·¸ë \87ì§\80 ì\95\8aë\8b¤ë©´, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USAë¡\9c í\8e¸ì§\80를 ë³´ë\82´ì£¼ì\8b\9cê±°ë\82\98 [http://www.gnu.org/copyleft/gpl.html ì\98¨ë\9d¼ì\9d¸ì\9c¼ë¡\9c ì\9d½ì\96´ë³´ì\8b\9c기] ë°\94ë\9e\8dë\8b\88ë\8b¤.",
+       "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/Special:MyLanguage/Help:Contents 사용자 가이드]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 관리자 가이드]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/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": "PHP $1이(가) 설치되어 있습니다.",
+       "config-env-hhvm": "HHMV $1이(가) 설치되어 있습니다.",
        "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 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보시기 바랍니다.",
-       "config-unicode-update-warning": "'''경고''': 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
+       "config-unicode-pure-php-warning": "<strong>경고</strong>: 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
+       "config-unicode-update-warning": "<strong>경고</strong>: 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
        "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 유형을 지원합니다: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysql</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 모듈도 설치해야 합니다.",
-       "config-outdated-sqlite": "'''경고''': 최소인 $2 버전보다 낮은 SQLite $1(이)가 있습니다. SQLite를 사용할 수 없습니다.",
-       "config-no-fts3": "'''경고''': SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
+       "config-outdated-sqlite": "<strong>경고</strong>: 최소인 $2 버전보다 낮은 SQLite $1(이)가 있습니다. SQLite를 사용할 수 없습니다.",
+       "config-no-fts3": "<strong>경고</strong>: SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
        "config-register-globals-error": "<strong>오류: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.\n설치를 계속하려면 비활성화해야 합니다.</strong>\n어떻게 하는지에 대한 도움말에 대해서는 [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals]를 보세요.",
-       "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-safe-mode": "'''경고:''' [http://www.php.net/features.safe-mode 안전 모드]가 활성화됩니다!\n특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
+       "config-magic-quotes-gpc": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상을 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-magic-quotes-runtime": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-magic-quotes-sybase": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상을 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-mbstring": "<strong>치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성화되어 있습니다!</strong>\n이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상을 일으킬 수 있습니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-safe-mode": "<strong>경고:</strong> PHP의 [http://www.php.net/features.safe-mode 안전 모드]가 활성화되어 있습니다!\n특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
        "config-xml-bad": "PHP의 XML 모듈이 없습니다.\n미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.\nMandrake를 실행하고 있다면 php-xml 패키지를 설치하세요.",
-       "config-pcre-old": "'''치명적인 오류:''' PCRE $1 또는 이후의 것들이 필요합니다. 당신의 PHP 바이너리는 PCRE $2와 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 더 많은 정보].",
-       "config-pcre-no-utf8": "'''치명''': PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 제대로 작동하려면 UTF-8을 지원해야 합니다.",
+       "config-pcre-old": "<strong>치명:</strong> PCRE $1 또는 그 이상이 필요합니다.\nPHP 바이너리는 PCRE $2에 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 자세한 정보].",
+       "config-pcre-no-utf8": "<strong>치명:</strong> 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-iconv": "<strong>치명</strong>: PHP는 [http://www.php.net/manual/en/iconv.installation.php iconv 확장 기능]을 지원하도록 하여 컴파일해야 합니다.",
        "config-json": "'''치명:''' 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년 5월 이후에 출시된 일부 리눅스 배포판은 PHP 확장 기능이 생략된 대신, <code>php5-json</code>이나 <code>php-pecl-jsonc</code>로 PECL 확장 기능이 포장되어 있습니다.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache]가 설치되었습니다",
        "config-apc": "[http://www.php.net/apc APC]가 설치되었습니다",
        "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": "ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ì\84\9cë²\84ê°\80 ë\8b¤ë¥¸ ì\84\9cë²\84ì\97\90 ì\9e\88ì\9c¼ë©´ ì\97¬ê¸°ì\97\90 í\98¸ì\8a¤í\8a¸ ì\9d´ë¦\84ì\9d´ë\82\98 IP ì£¼ì\86\8c를 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94.\n\nê³µì\9c í\95\98ë\8a\94 ì\9b¹ í\98¸ì\8a¤í\8c\85ì\9d\84 ì\82¬ì\9a©í\95\98ê³  ì\9e\88ì\9c¼ë©´ í\98¸ì\8a¤í\8c\85 ì \9cê³µ ì\97\85ì²´ë\8a\94 ì \95í\99\95í\95\9c í\98¸ì\8a¤í\8a¸ ì\9d´ë¦\84ì\9d\84 ì\84¤ëª\85í\95\98ê³  ì\9e\88ì\9d\84 ê²\83ì\9e\85ë\8b\88ë\8b¤.\n\nì\9c\88ë\8f\84 ì\84\9cë²\84ì\97\90 ì\84¤ì¹\98í\95\98ê³  MySQLì\9d\84 ì\82¬ì\9a©í\95\98ë©´ \"localhost\"ê°\80 í\95´ë\8b¹ 서버 이름으로는 작동하지 않을 수 있습니다. 그렇게 된다면 로컬 IP 주소로 \"127.0.0.1\"을 시도하세요.\n\nPostgreSQL을 사용하면 유닉스 소켓을 통해 연결되도록 입력란을 비워두세요.",
+       "config-db-host-help": "ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ì\84\9cë²\84ê°\80 ë\8b¤ë¥¸ ì\84\9cë²\84ì\97\90 ì\9e\88ì\9c¼ë©´ ì\97¬ê¸°ì\97\90 í\98¸ì\8a¤í\8a¸ ì\9d´ë¦\84ì\9d´ë\82\98 IP ì£¼ì\86\8c를 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94.\n\nê³µì\9c í\95\98ë\8a\94 ì\9b¹ í\98¸ì\8a¤í\8c\85ì\9d\84 ì\82¬ì\9a©í\95\98ê³  ì\9e\88ì\9c¼ë©´ í\98¸ì\8a¤í\8c\85 ì \9cê³µ ì\97\85ì²´ë\8a\94 ì\98¬ë°\94른 í\98¸ì\8a¤í\8a¸ ì\9d´ë¦\84ì\9d\84 ì\84¤ëª\85í\95\98ê³  ì\9e\88ì\9d\84 ê²\83ì\9e\85ë\8b\88ë\8b¤.\n\nWindows ì\84\9cë²\84ì\97\90 ì\84¤ì¹\98í\95\98ê³  MySQLì\9d\84 ì\82¬ì\9a©í\95\98ë©´ \"localhost\"ê°\80 서버 이름으로는 작동하지 않을 수 있습니다. 그렇게 된다면 로컬 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-account-oracle-warn": "데이터베이스 백엔드로 Oracle을 설치하기 위해 지원하는 세 가지 시나리오가 있습니다:\n\n설치 과정의 일부로 데이터베이스 계정을 만들려면 설치를 위해 데이터베이스 계정으로 SYSDBA 역할을 가진 계정을 제공하고 웹 접근 계정에 대해 원하는 자격 증명을 지정하세요, 그렇지 않으면 수동으로 웹 접근 계정을 만들 수 있으며 (스키마 개체를 만들 권한이 필요한 경우) 또는 생성 권한을 가진 계정과 웹 접근이 제한된 계정의 두 가지 다른 계정을 제공할 수도 있습니다\n\n필요한 권한을 가진 계정을 만드는 스크립트는 이 설치 위치의 \"maintenance/oracle/\" 디렉터리에서 찾을 수 있습니다. 제한된 계정을 사용하면 기본 계정의 모든 유지 관리 기능이 비활성화된다는 점에 유의하십시오.",
        "config-db-install-account": "설치를 위한 사용자 계정",
        "config-db-username": "데이터베이스 사용자 이름:",
        "config-db-password": "데이터베이스 비밀번호:",
        "config-oracle-temp-ts": "임시 테이블공간:",
        "config-type-mysql": "MySQL (또는 호환되는 데이터베이스 시스템)",
        "config-type-oracle": "Oracle",
-       "config-type-mssql": "마이크로소프트 SQL 서버",
+       "config-type-mssql": "Microsoft SQL 서버",
        "config-support-info": "미디어위키는 다음의 데이터베이스 시스템을 지원합니다:\n\n$1\n\n데이터베이스 시스템이 표시되지 않을 때 아래에 나열된 다음 지원을 활성화하려면 위의 링크된 지시에 따라 설치해볼 수 있습니다.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL]은 미디어위키의 기본 대상이며 가장 잘 지원됩니다. 미디어위키는 또한 MySQL와 호환되는 [{{int:version-db-mariadb-url}} MariaDB]와 [{{int:version-db-percona-url}} Percona 서버]에서도 작동합니다. \n\n([http://www.php.net/manual/en/mysql.installation.php MySQL을 지원하여 PHP를 컴파일하는 방법])",
-       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL]은 MySQL의 대안으로서 인기 있는 오픈 소스 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQL을 지원하여 PHP를 컴파일하는 방법]) 몇 가지 해결하지 못한 사소한 버그가 있을 수 있으며, 이를 제작 환경에서 사용하지 않는 것이 좋습니다.",
-       "config-dbsupport-sqlite": "*  [{{int:version-db-sqlite-url}} SQLite]는 매우 잘 지원되고 가벼운 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pdo.installation.php SQLite를 지원하여 PHP를 컴파일하는 방법], PDO 사용)",
-       "config-dbsupport-oracle": "*  [{{int:version-db-oracle-url}} 오라클]은 상용 엔터프라이스 데이터베이스입니다. ([http://www.php.net/manual/en/oci8.installation.php OCI8을 지원하여 PHP를 컴파일하는 방법])",
-       "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} 마이크로소프트 SQL 서버]는 윈도용 상용 기업 데이터베이스입니다.([http://www.php.net/manual/en/sqlsrv.installation.php SQLSRV 지원으로 PHP를 컴파일하는 방법])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL]은 미디어위키의 기본 대상이며 가장 잘 지원됩니다. 미디어위키는 또한 MySQL와 호환되는 [{{int:version-db-mariadb-url}} MariaDB]와 [{{int:version-db-percona-url}} Percona 서버]에서도 작동합니다. ([http://www.php.net/manual/en/mysql.installation.php MySQL 지원으로 PHP를 컴파일하는 방법])",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL]은 MySQL의 대안으로서 인기 있는 오픈 소스 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQL 지원으로 PHP를 컴파일하는 방법]) 몇 가지 해결하지 못한 사소한 버그가 있을 수 있으며, 이를 제작 환경에서 사용하지 않는 것이 좋습니다.",
+       "config-dbsupport-sqlite": "*  [{{int:version-db-sqlite-url}} SQLite]는 매우 잘 지원되고 가벼운 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pdo.installation.php SQLite 지원으로 PHP를 컴파일하는 방법], PDO 사용)",
+       "config-dbsupport-oracle": "*  [{{int:version-db-oracle-url}} Oracle]은 상용 기업 데이터베이스입니다. ([http://www.php.net/manual/en/oci8.installation.php OCI8 지원으로 PHP를 컴파일하는 방법])",
+       "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL 서버]는 Windows용 상용 기업 데이터베이스입니다. ([http://www.php.net/manual/en/sqlsrv.installation.php SQLSRV 지원으로 PHP를 컴파일하는 방법])",
        "config-header-mysql": "MySQL 설정",
        "config-header-postgres": "PostgreSQL 설정",
        "config-header-sqlite": "SQLite 설정",
        "config-header-oracle": "Oracle 설정",
-       "config-header-mssql": "마이크로소프트 SQL 서버 설정",
+       "config-header-mssql": "Microsoft SQL 서버 설정",
        "config-invalid-db-type": "잘못된 데이터베이스 종류",
        "config-missing-db-name": "\"{{int:config-db-name}}\"에 대한 값을 입력해야 합니다.",
        "config-missing-db-host": "\"{{int:config-db-host}}\"에 대한 값을 입력해야 합니다.",
        "config-missing-db-server-oracle": "\"{{int:config-db-host-oracle}}\"에 대한 값을 입력해야 합니다.",
-       "config-invalid-db-server-oracle": "\"$1\" 데이터베이스 TNS가 잘못됐습니다.\n\"TNS Name\"이나 \"Easy Connect\" 문자열 중 하나를 사용하세요 ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm 오라클 네이밍 메서드])",
+       "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-db-sys-create-oracle": "설치 프로그램은 새 계정을 만들기 위한 SYSDBA 계정만을 지원합니다.",
        "config-db-sys-user-exists-oracle": "\"$1\" 사용자 계정이 이미 존재합니다. SYSDBA는 새 계정을 만드는 데에만 사용할 수 있습니다!",
        "config-postgres-old": "PostgreSQL $1 이상이 필요하나 $2(이)가 있습니다.",
-       "config-mssql-old": "마이크로소프트 SQL 서버 $1 이상의 버전이 필요합니다. 현재 버전은 $2입니다.",
+       "config-mssql-old": "Microsoft SQL 서버 $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-extensions": "확장 기능",
        "config-extensions-help": "위에 나열된 확장 기능이 <code>./extensions</code>에서 발견되었습니다.\n\n추가적인 설정이 필요할 수 있습니다만 지금 활성화시킬 수 있습니다.",
        "config-skins": "스킨",
+       "config-skins-help": "위에 나열된 스킨이 <code>./skins</code> 디렉터리에서 감지되었습니다. 적어도 하나를 활성화하고 나서, 기본값을 선택해야 합니다.",
        "config-skins-use-as-default": "이 스킨을 기본값으로 사용",
+       "config-skins-missing": "스킨을 찾을 수 없습니다; 미디어위키는 당신이 적절한 스킨을 설치할 때까지 대체 스킨을 사용합니다.",
        "config-skins-must-enable-some": "적어도 활성화활 스킨 하나를 선택해야 합니다.",
        "config-skins-must-enable-default": "기본값으로 설정한 스킨은 반드시 활성화해야 합니다.",
        "config-install-alreadydone": "'''경고:''' 이미 미디어위키를 설치했고 다시 설치하려고 합니다.\n다음 페이지로 진행하세요.",
        "config-install-stats": "통계를 초기화하는 중",
        "config-install-keys": "보안 키를 만드는 중",
        "config-insecure-keys": "'''경고:''' 설치 중에 생성한 {{PLURAL:$2|보안 키}} ($1)는 완전히 안전하지 {{PLURAL:$2|않습니다}}. 직접 바꾸는 것을 고려하세요.",
+       "config-install-updates": "불필요한 업데이트 실행 방지",
+       "config-install-updates-failed": "<strong>오류:</strong> 다음 오류로 테이블 안에 업데이트 키를 넣기에 실패했습니다: $1",
        "config-install-sysop": "관리자 사용자 계정을 만드는 중",
        "config-install-subscribe-fail": "미디어위키 알림을 구독할 수 없습니다: $1",
        "config-install-subscribe-notpossible": "cURL이 설치되어 있지 않고 <code>allow_url_fopen</code>을 사용할 수 없습니다.",
index 190ee04..9135393 100644 (file)
@@ -5,6 +5,7 @@
                ]
        },
        "config-information": "文訊",
+       "config-page-language": "語",
        "mainpagetext": "'''共筆臺已立'''",
        "mainpagedocfooter": "欲識維基,見[//meta.wikimedia.org/wiki/Help:Contents User's Guide]\n\n== 始 ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
diff --git a/includes/installer/i18n/mfe.json b/includes/installer/i18n/mfe.json
new file mode 100644 (file)
index 0000000..0cd9b6e
--- /dev/null
@@ -0,0 +1,45 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Moris231"
+               ]
+       },
+       "config-desc": "Programme installasion pu MediaWiki",
+       "config-title": "Installasion MediaWiki $1",
+       "config-information": "Informasion",
+       "config-localsettings-key": "Mis a zour lakle:",
+       "config-localsettings-badkey": "Lakle ki ou inn fourni inkorrekt.",
+       "config-your-language": "Ou langaz:",
+       "config-your-language-help": "Seleksionn enn langaz ki pu servi pendan prosesis installasion.",
+       "config-wiki-language": "Langaz Wiki:",
+       "config-wiki-language-help": "Seleksionn langaz dan ki Wiki pu prinsipalman ekrir.",
+       "config-back": "← Retourne",
+       "config-continue": "Kontinye →",
+       "config-page-language": "Langaz",
+       "config-page-welcome": "Bienvini lor MediaWiki!",
+       "config-page-dbconnect": "Konekte base donnee",
+       "config-page-dbsettings": "Paramets database",
+       "config-page-name": "Nom",
+       "config-page-options": "Opsion",
+       "config-page-install": "Installe",
+       "config-page-complete": "Termine!",
+       "config-page-restart": "Rekoumans installasion",
+       "config-page-readme": "Lir-mwa",
+       "config-page-releasenotes": "Notes verzion",
+       "config-page-copying": "Kopi",
+       "config-page-upgradedoc": "Mis a zour",
+       "config-page-existingwiki": "Wiki existan",
+       "config-restart": "Oui, rekoumans li",
+       "config-env-php": "PHP $1 inn finn installe.",
+       "config-env-hhvm": "HHVM $1 inn finn installe.",
+       "config-diff3-bad": "GNU diff3 introuvab.",
+       "config-db-type": "Type database:",
+       "config-db-host": "Hote database:",
+       "config-db-host-oracle": "Nom TNS database:",
+       "config-db-wiki-settings": "Idantifie sa wiki-la",
+       "config-db-name": "Nom base donnee:",
+       "config-db-name-oracle": "Schema base donnee:",
+       "config-db-install-account": "Kontt litilizater pu sa installasion",
+       "config-db-username": "Itilizater database:",
+       "config-db-password": "Password database:"
+}
index 3576585..52d049b 100644 (file)
@@ -92,7 +92,7 @@
        "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": "Ð\92неÑ\81еÑ\82е Ð²Ð°Ð¶ÐµÑ\87ко [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-host-oracle-help": "Ð\92неÑ\81еÑ\82е Ð²Ð°Ð¶ÐµÑ\87ко [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Ð¼ÐµÑ\81но име за поврзување]. На оваа воспоставка мора да ѝ биде видлива податотеката 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Ако користите заедничко (споделено) вдомување, тогаш вашиот вдомител ќе ви даде конкретно име на база за користење, или пак ќе ви даде да создавате бази преку контролната табла.",
index c542770..4aeba75 100644 (file)
        "config-mysql-charset": "Peranggu aksara pangkalan data:",
        "config-mysql-binary": "Perduaan",
        "config-mysql-utf8": "UTF-8",
+       "config-mssql-auth": "Jenis pengesahan:",
        "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-admin-password": "Kata laluan:",
        "config-admin-password-confirm": "Kata laluan lagi:",
        "config-admin-name-blank": "Masukkan nama pengguna pentadbir.",
+       "config-admin-password-blank": "Berikan kata laluan untuk akaun pentadbir.",
        "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-license-gfdl": "Lesen Pendokumenan Bebas GNU 1.3 atau ke atas",
        "config-license-pd": "Domain Awam",
        "config-email-settings": "Tetapan e-mel",
+       "config-skins": "Rupa",
+       "config-skins-use-as-default": "Gunakan rupa ini sebagai asal",
        "config-install-step-done": "siap",
        "config-install-step-failed": "gagal",
        "config-install-user-alreadyexists": "Pengguna \"$1\" sudah wujud",
index 1cbe7d5..93c31a7 100644 (file)
        "config-localsettings-cli-upgrade": "È stato scummigliato nu file <code>LocalSettings.php</code>.\nPe l'agghiurnà sta installazione, secutate <code>update.php</code>",
        "config-localsettings-key": "Chiave d'agghiurnamiento:",
        "config-localsettings-badkey": "'A chiave c'avete dato nun è curretta.",
+       "config-upgrade-key-missing": "S'è scummigliata n'installazione 'e MediaWiki ch'esisteva già.\nPe' ll'agghiurnà, nzertate pe' piacere sta riga ccà abbascio dint' 'a parta vascia d' 'o <code>LocalSettings.php</code> vuosto:\n\n$1",
+       "config-localsettings-incomplete": "'O file <code>LocalSettings.php</code> esistente pare ca fosse cumpleto a metà.\n'A variabbele $1 nun è mpustata.\nCagnate <code>LocalSettings.php</code> in modo ca sta variabbele fosse mpustata e facite clic ncopp'a \"{{int:Config-continue}}\".",
+       "config-localsettings-connection-error": "S'è truvato n'errore pe' tramente ca se faceva 'a connessione a 'o database ausanno 'e mpustaziune specificate dint'a <code>LocalSettings.php</code>. Pe' piacere curriggite sti mpustaziuni e provate n'ata vota.\n\n$1",
+       "config-session-error": "Errore facenno accumincià 'a sessione: $1",
+       "config-session-expired": "'E date d' 'a sessione pareno ammaturate.\n'E sessiune so' configurate pe na durata 'e $1.\n'A putite aumentà pe' bbìa 'e na mpustazione  <code>session.gc_maxlifetime</code> dint' 'o file php.ini.\nRiabbìa 'o prucesso 'e installazione.",
+       "config-no-session": "'E date d' 'a sessione so' state perdute!\nCuntrullate 'o file php.ini vuosto e assicurateve ca 'a <code>session.save_path</code> è stata mpustata ncopp'a na cartella appropriata.",
+       "config-your-language": "'A lengua vosta:",
+       "config-your-language-help": "Scigliete na lengua pe' l'ausà pe' tramente ca se fa 'o prucesso 'installazione.",
+       "config-wiki-language": "Lengua d' 'o wiki:",
+       "config-wiki-language-help": "Scigliete 'a lengua ca sarrà ausàta prevalentemente ncopp' 'a wiki.",
+       "config-back": "← Arreto",
+       "config-continue": "Annanze →",
+       "config-page-language": "Lengua",
+       "config-page-welcome": "Bemmenute a MediaWiki!",
+       "config-page-dbconnect": "Connessione a 'o database",
+       "config-page-upgrade": "Agghiuorna l'istallazione esistente",
+       "config-page-dbsettings": "Mpustaziune d' 'o database",
+       "config-page-name": "Nomme",
+       "config-page-options": "Opziune",
+       "config-page-install": "Installa",
+       "config-page-complete": "Cumpreta!",
+       "config-page-restart": "Riabbìa l'installazione",
+       "config-page-readme": "Lieggeme",
+       "config-page-releasenotes": "Note 'e verziona",
+       "config-page-copying": "Copia",
+       "config-page-upgradedoc": "Agghiurnanno",
+       "config-page-existingwiki": "Wiki esistente",
+       "config-help-restart": "Vulite scancellà tutt' 'e date astipate c'avite nzertato e riabbià 'o prucesso d'installazione?",
+       "config-restart": "Sì, riabbìa",
+       "config-welcome": "=== Cuntrollo 'e ll'ambiente ===\nSarranno eseguite 'e cuntrolle bbase pe' putè vedè si st'ambiente è adatto pe' ne ffà l'installazione 'e MediaWiki.\nArricurdateve d'includere sti nfurmaziune si spiate assistenza ncopp' 'a maniera 'e cumpletà l'installazione.",
+       "config-copyright": "=== Copyright e termine ===\n\n$1\n\nChistu programma è nu software libbero; vuje 'o putite redestribbuì e/o cagnà sott' 'e termine d' 'a licienza GNU GPL ('a Licienza Pubbreca Generale) comme pubbrecata d' 'a Free Software Foundation; o pure 'a verziona 2 d' 'a Licienza, o pure (comme vulite vuje) 'a n'ata verziona cchiù nnova.\n\nChistu programma è destribbuito c' 'a speranza d'essere utile, ma SENZA NISCIUNA GARANZIA; senza manco 'a garanzia p' 'a CUMMERCIABBELETÀ O IDONIETÀ PE' NU SCOPO PARTICOLARE.\nIate a vedé 'a GNU GPL pe' n'avé cchiù nfurmaziune.\n\nCu stu programma avísseve 'a ricevere <doclink href=Copying>na copia d' 'a Licienza GNU GPL</doclink> cu stu prugramma; si nò, scrivete â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [http://www.gnu.org/copyleft/gpl.html liggite sta paggena ncopp' 'a l'Internet].",
+       "config-sidebar": "* [//www.mediawiki.org Paggina prencepale MediaWiki]\n* [//www.mediawiki.org/wiki/Aiuto:Guida a 'e cuntenute pe' l'utente]\n* [//www.mediawiki.org/wiki/Manuale:Guida a 'e cuntenute pe l'ammenistrature]\n* [//www.mediawiki.org/wiki/Manuale:FAQ FAQ]\n----\n* <doclink href=Readme>Lieggeme</doclink>\n* <doclink href=ReleaseNotes>Note 'e verziona</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Agghiurnamento</doclink>",
+       "config-env-good": "L'ambiente è stato cuntrullato.\nÈ pussibbele installare MediaWiki.",
+       "config-env-bad": "L'ambiente è stato cuntrullato.\nNun se può installà MediaWiki.",
+       "config-env-php": "PHP $1 è installato.",
+       "config-env-hhvm": "HHVM $1 è installato.",
+       "config-unicode-using-utf8": "Aúsa Brion Vibber's utf8_normalize.so pe' ne fà 'a normalizzazione Unicode.",
+       "config-unicode-using-intl": "Aúsa [http://pecl.php.net/intl l'estensione PECL intl] pe' ne fà 'a normalizzazione Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Attenziò:</strong> L' [http://pecl.php.net/intl estensione intl PECL] nun è a disposizione pe' gestire 'a normalizzazione Unicode, accussì se ausasse n'imprementazziona llenta 'n puro PHP.\nSi state a gestire nu pizzo ad alto traffico, avisseve a lieggere cocche considerazione ncopp' 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzaziona Unicode].",
+       "config-unicode-update-warning": "<strong>Attenziò:</strong> 'A verziona installata 'e normalizzazione Unicode aùsa 'a verziona viecchia d' 'o [http://site.icu-project.org/ pruggetto ICU].\nV'avite 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agghiurnà] si state a penzà ncopp' 'o fatto d'ausà Unicode.",
+       "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n'E furmatte 'e database ccà annanze songo suppurtate: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php5-mysql</code>.",
+       "config-outdated-sqlite": "'''Attenziò''': tenite 'o SQLite $1 pe' tramente ca ce vulesse 'a verziona $2, SQLite nun sarrà a disposizione.",
+       "config-no-fts3": "'''Attenziò''': SQLite è cumpilato senza 'o [//sqlite.org/fts3.html modulo FTS3], 'e funziune 'e p'ascià dinto nun sarranno a disposizione ncopp'a stu backend.",
+       "config-register-globals-error": "<strong>Errore: l'opzione PHP <code>[http://php.net/register_globals register_globals]</code> è apicciata.\nS'avesse 'a stutà pe' cuntinuà c' 'a installazione.</strong>\nVide [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] pe' n'avé n'aiuto ncopp'a comme s'avess'a ffà.",
+       "config-magic-quotes-gpc": "<strong>Fatale: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] è attivo!</strong>\nChest'opzione scassa 'e date d'input 'n modo scanusciuto.\nNun putite installare o utilizzare MediaWiki, si nun stutate st'opzione.",
+       "config-magic-quotes-runtime": "<strong>Fatale: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] è attivo!'</strong>\nSt'opzione scassa 'e date 'e na manera scanusciuta.\nNun se può installà o ausà MediaWiki si nun se stuta st'opzione.",
+       "config-xml-bad": "'O modulo XML 'e PHP è mancante.\nA MediaWiki servessero 'e funziune prisente dint'a stu modulo e nun faticarrà c' 'a configurazione 'e mò.\nSi se sta eseguenno Mandrake, installare 'o pacco php-xml.",
+       "config-memory-raised": "'O valore 'e PHP <code>memory_limit</code> è $1, aumentato a $2.",
+       "config-memory-bad": "<strong>Attenziò:</strong> 'o valore 'e PHP <code>memory_limit</code> è $1.\nProbabbilmente troppo basso.\n'A installazione se putesse scassà!",
+       "config-ctype": "'''Errore''': 'o PHP s'adda ghienchere c' 'o supporto pe' l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
+       "config-iconv": "<strong>Fatale:</strong> PHP s'adda ghienchere c' 'o supporto pe' l'[http://www.php.net/manual/en/iconv.installation.php estensione iconv].",
+       "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": "'''Attenziò:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache] nun so' state truvate.\n'A funziona caching 'e ll'oggette non è apicciata.",
+       "config-diff3-bad": "GNU diff3 nun truvato.",
+       "config-git": "Truvato software 'e cuntrollo d' 'a verziona Git: <code>$1</code>.",
+       "config-git-bad": "Software 'e cuntrollo d' 'a verziona Git nun truvato.",
+       "config-imagemagick": "Truvato ImageMagick: <code>$1</code>.\n'E miniature d' 'e fiùre sarranno prisente si l'upload song'abbiàte.",
+       "config-gd": "Truvata 'a bibblioteca ntegrata GD Graphics.\n'E miniature 'e ll'immaggene sarranno prisente si l'upload se song'abbiàte.",
+       "config-no-scaling": "Nun se può truvà 'a bibblioteca GD o ImageMagick.\n'E miniature 'e l'immaggene sarranno stutate.",
+       "config-no-uri": "<strong>Errore:</strong> Nun se può determina l'URI 'e mmò.\nInstallazione spezzata.",
+       "config-using-server": "Nomme d' 'o server ca se stà ausanno \"<nowiki>$1</nowiki>\".",
+       "config-using-uri": "URL d' 'o server ca se stà ausanno \"<nowiki>$1$2</nowiki>\".",
+       "config-brokenlibxml": "'O sistema vuosto ave na combinazione 'e verziune 'e PHP e libxml2 nguacchiata ca putesse scassà 'e date 'e MediaWiki 'n manera annascunnusa e pure l'ati apprecaziune p' 'o web.\nAgghiurnate a libxml2 2.7.3 o cchiù muderno ([https://bugs.php.net/bug.php?id=45996 'o bug studiato d' 'o lato PHP]).\nInstallaziona spezzata.",
+       "config-db-type": "Tipo 'e database:",
+       "config-db-host": "Host d' 'o database:",
+       "config-db-host-oracle": "TNS d' 'o database:",
+       "config-db-wiki-settings": "Identifica stu wiki",
+       "config-db-name": "Nomme d' 'o database:",
+       "config-db-name-help": "Sciglite nu nomme ca identificasse 'a wiki vosta.\nNun avess'a cuntenè spazie.\n\nSi ausate nu web hosting spartuto, 'o furnitore d' 'o hosting v'avesse 'a specificà nu nomme 'e database specifico pe' ve permettere 'e crià database pe' bbìa 'e nu pannello 'e cuntrollo.",
+       "config-db-name-oracle": "Schema d' 'o database:",
+       "config-db-install-account": "Cunto utente pe' l'installazione",
+       "config-db-username": "Nomme utente p' 'o database:",
+       "config-db-password": "Password d' 'o database:",
+       "config-db-password-empty": "Avita nzertà na password pe' l'utente nuovo d' 'o database: $1.\nPure si fosse possibbele 'e crià ll'utente senza password chisto nun fosse sicuro.",
+       "config-db-username-empty": "Avita miette nu valore p' 'o \"{{int:config-db-username}}\"",
+       "config-db-wiki-account": "Account utente p' 'o funzionamento nurmale",
+       "config-db-charset": "Nzieme 'e carattere d' 'o 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 cu compatibbelità UTF-8",
+       "config-mysql-old": "MySQL $1 o cchiù muderno è necessario. Vuje avite $2.",
+       "config-db-port": "Porta d' 'o database:",
+       "config-db-schema": "Schema pe' MediaWiki:",
+       "config-db-schema-help": "Stu schema 'n genere sarrà buono.\nSi 'o vulite cagnà facite sulamente si ne tenite abbesuogno.",
+       "config-pg-test-error": "Nun se può connettà a 'o database <strong>$1</strong>: $2",
+       "config-sqlite-dir": "Cartella 'e data 'e SQLite:",
+       "config-oracle-def-ts": "Tablespace 'e default:",
+       "config-oracle-temp-ts": "Tablespace temporaneo:",
+       "config-type-mysql": "MySQL (o compatibbele)",
+       "config-type-mssql": "Microsoft SQL Server",
+       "config-header-mysql": "Mpustaziune MySQL",
+       "config-header-postgres": "Mpustaziune PostgreSQL",
+       "config-header-sqlite": "Mpustaziune SQLite",
+       "config-header-oracle": "Mpustaziune Oracle",
+       "config-header-mssql": "Mpustaziune 'e Microsoft SQL Server",
+       "config-invalid-db-type": "'O tipo 'e database nun è buono.",
+       "config-missing-db-name": "Avita miette nu valore p' 'o \"{{int:config-db-name}}\"",
+       "config-missing-db-host": "Avita miette nu valore p' 'o \"{{int:config-db-host}}\"",
+       "config-missing-db-server-oracle": "Avita miette nu valore p' 'o \"{{int:config-db-host-oracle}}\"",
        "config-mssql-install-auth": "Sceglie 'o tipo d'autenticazziona ca s'ausarrà pe cunnettà â database, durante ll'operazziona d'istallazziona. Si piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate.",
-       "config-mssql-web-auth": "Sceglie 'o tipo d'autenticazziona ca 'o web server pigliarrà pe se cunnettà a 'o server 'e bbase 'e dati, durante ll'operazziona nurmale d&#39;'a wiki.\nSi piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate."
+       "config-mssql-web-auth": "Sceglie 'o tipo d'autenticazziona ca 'o web server pigliarrà pe se cunnettà a 'o server 'e bbase 'e dati, durante ll'operazziona nurmale d'a wiki.\nSi piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate."
 }
index c1bc294..55771c8 100644 (file)
        "config-memcache-badport": "Memcached-port-numrene må være mellom $1 og $2.",
        "config-extensions": "Utvidelser",
        "config-extensions-help": "Utvidelsene listet over ble oppdaget i din <code>./extensions</code>-folder.\n\nDisse kan trenge ekstra konfigurering, men du kan aktivisere dem nå.",
+       "config-skins": "Drakt",
+       "config-skins-use-as-default": "Bruk denne drakta som standard",
        "config-install-alreadydone": "'''Advarsel:''' Det ser ut til at allerede har installert MediaWiki og prøver å installere denne må nytt.\nVær vennlig å fortsette til neste side.",
        "config-install-begin": "Ved å trykke \"{{int:config-continue}}\", starter du installeringen av MediaWiki.\nHvis du først ønsker å endre på noe, trykk\"{{int:config-back}}\".",
        "config-install-step-done": "ferdig",
index 5bf1645..9cf7006 100644 (file)
        "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.\nLever deze gegevens dan ook aan indien u support vraagt bij de installatie.",
        "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/Special:MyLanguage/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Beheerdershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/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-sidebar": "* [//www.mediawiki.org MediaWiki thuispagina]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Beheerdershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde 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-hhvm": "HHVM $1 is geïnstalleerd.",
        "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/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
@@ -65,6 +66,8 @@
        "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP. U moet een databasedriver installeren voor PHP.\nDe volgende databases worden ondersteund: $1.\n\nAls u een gedeelde omgeving gebruikt, 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]; zoekfuncties zijn niet beschikbaar.",
+       "config-register-globals-error": "<strong>Fout: de optie <code>[http://php.net/register_globals register_globals]</code> van PHP is ingeschakeld.\nDeze optie moet uitgeschakeld zijn om door te kunnen gaan met de installatie.</strong>\nOp de pagina [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] staat beschreven hoe u dit kunt doen.",
+       "config-magic-quotes-gpc": "<strong>Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] is actief!<strong>\nDeze instelling zorgt voor onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
        "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 onvoorspelbare 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 onvoorspelbare 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 onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
@@ -75,6 +78,7 @@
        "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-iconv": "<strong>Onherstelbare fout:</strong> PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/iconv.installation.php uitbreiding iconv].",
        "config-json": "'''Fatale fout:''' PHP is gecompileerd zonder ondersteuning voor JSON.\nU moet de PHP-extensie JSON installeren of de extensie [http://pecl.php.net/package/jsonc PECL jsonc] voordat u MediaWiki installeert.\n* De PHP-extensie is beschikbaar in Red Hat Enterprise Linux (CentOS) 5 en 6, maar moet ingeschakeld worden <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Sommige Linuxdistributies die zijn uitgebracht na mei 2013 hebben de PHP-extensie niet, maar hebben een package voor de PECL-extensie als <code>php5-json</code> of <code>php-pecl-jsonc</code>.",
        "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-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-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 <strong>{{int:config-license-cc-by-sa}}</strong>.\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-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-skins": "Vormgevingen",
+       "config-skins-help": "De hierboven weergegeven uiterlijken zijn aangetroffen in de map <code>./skins</code>. U moet tenminste één uiterlijk inschakelen en het standaard uiterlijk kiezen.",
        "config-skins-use-as-default": "Als standaard vormgeving instellen",
+       "config-skins-missing": "Er zijn geen uiterlijken aangetroffen. MediaWiki gebruikt een basisuiterlijk totdat u een uiterlijk installeert.",
+       "config-skins-must-enable-some": "U moet minstens één vormgeving kiezen om in te schakelen.",
+       "config-skins-must-enable-default": "De vormgeving gekozen als standaard moet ingeschakeld zijn.",
        "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-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-updates": "Voorkomen dat updates onnodig worden uitgevoerd",
+       "config-install-updates-failed": "<strong>Fout:</strong> het toevoegen van updatesleutels aan tabellen is mislukt met de volgende fout: $1",
        "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.",
index 68a94e8..a28f610 100644 (file)
@@ -12,7 +12,8 @@
                        "Cybermandrake",
                        "Fabsouza1",
                        "Rodrigo codignoli",
-                       "Tuliouel"
+                       "Tuliouel",
+                       "Marcos dias de oliveira"
                ]
        },
        "config-desc": "O instalador do MediaWiki",
@@ -57,6 +58,7 @@
        "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-env-hhvm": "HHVM $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": "<strong>Aviso</strong>: A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode, abortando e passando para a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalização Unicode].",
        "config-instantcommons": "Ativar o Instant Commons",
        "config-cc-again": "Escolha novamente...",
        "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-extensions": "Extensões",
        "config-install-step-done": "feito",
        "config-install-extensions": "Incluindo extensões",
index 7725734..333aa7d 100644 (file)
        "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-env-hhvm": "HHVM $1 este instalat.",
+       "config-xcache": "[http://xcache.lighttpd.net/ XCache] este instalat",
+       "config-apc": "[http://www.php.net/apc APC] este instalat",
+       "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] este instalat",
        "config-db-type": "Tipul bazei de date:",
        "config-db-host": "Gazdă bază de date:",
        "config-db-host-oracle": "Baza de date TNS:",
@@ -65,7 +68,9 @@
        "config-header-oracle": "Setări Oracle",
        "config-header-mssql": "Setări Microsoft SQL Server",
        "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-missing-db-name": "Trebuie să introduceți o valoare pentru „{{int:config-db-name}}”.",
+       "config-missing-db-host": "Trebuie să introduceți o valoare pentru „{{int:config-db-host}}”.",
+       "config-missing-db-server-oracle": "Trebuie să introduceți o valoare pentru „{{int:config-db-host-oracle}}”.",
        "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 →",
@@ -78,6 +83,7 @@
        "config-mysql-charset": "Setul de caractere al bazei de date:",
        "config-mysql-binary": "Binar",
        "config-mysql-utf8": "UTF-8",
+       "config-mssql-auth": "Tip de autentificare:",
        "config-site-name": "Numele wikiului:",
        "config-site-name-blank": "Introduceți un nume pentru sit.",
        "config-project-namespace": "Spațiul de nume al proiectului:",
@@ -86,7 +92,7 @@
        "config-ns-other": "Altul (specificați)",
        "config-ns-other-default": "MyWiki",
        "config-admin-box": "Cont de administrator",
-       "config-admin-name": "Numele dumneavoastră:",
+       "config-admin-name": "Numele dumneavoastră de utilizator:",
        "config-admin-password": "Parolă:",
        "config-admin-password-confirm": "Parola, din nou:",
        "config-admin-password-blank": "Introduceți o parolă pentru contul de administrator.",
        "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-wiki": "Wiki deschis",
        "config-profile-no-anon": "Crearea de cont este necesară",
        "config-profile-fishbowl": "Doar editorii autorizați",
        "config-profile-private": "Wiki privat",
        "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-settings": "Încărcare de imagini și fișiere",
        "config-upload-deleted": "Director pentru fișierele șterse:",
        "config-logo": "Adresa URL a siglei:",
        "config-cc-again": "Alegeți din nou...",
        "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-user-missing": "Utilizatorul „$1” specificat nu există.",
        "config-install-tables": "Se creează tabelele",
        "config-install-stats": "Se inițializează statisticile",
        "config-install-keys": "Se generează cheile secrete",
        "config-install-mainpage-failed": "Nu s-a putut insera pagina principală: $1",
        "config-download-localsettings": "Descarcă <code>LocalSettings.php</code>",
        "config-help": "ajutor",
+       "config-help-tooltip": "clic pentru a extinde",
        "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/Special:MyLanguage/Manual:Configuration_settings Lista parametrilor configurabili (en)]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Întrebări frecvente despre MediaWiki (en)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discuții a MediaWiki (en)]"
 }
index b8a36be..eef6cac 100644 (file)
@@ -17,7 +17,8 @@
                        "아라",
                        "Meshkov.a",
                        "Eroha",
-                       "Seb35"
+                       "Seb35",
+                       "Striking Blue"
                ]
        },
        "config-desc": "Инсталлятор MediaWiki",
@@ -88,7 +89,7 @@
        "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-mod-security": "<strong>Внимание</strong>: На вашем веб-сервере включен [http://modsecurity.org/ mod_security]/mod_security2. Многие его стандартные настройки могут вызывать проблемы для MediaWiki или другого ПО, позволяющего пользователям отправлять на сервер произвольный контент.\nОбратитесь к [http://modsecurity.org/documentation/ документации mod_security] или в службу поддержки вашего хостинг-провайдера, если вы сталкиваетесь со случайными ошибками.",
        "config-diff3-bad": "GNU diff3 не найден.",
        "config-git": "Найдена система контроля версий Git: <code>$1</code>.",
        "config-git-bad": "Программное обеспечение по управлению версиями Git не найдено.",
index ad6bca7..a22f94d 100644 (file)
@@ -37,7 +37,7 @@
        "config-env-good": "Prostredie bolo skontrolované.\nMôžete nainštalovať MediaWiki.",
        "config-env-bad": "Prostredie bolo skontrolované.\nNemôžete nainštalovať MediaWiki.",
        "config-env-php": "PHP $1 je nainštalované.",
-       "config-env-php-toolow": "PHP $1 je nainštalované. Avšak, MediaWiki vyžaduje PHP $2 alebo vyššie.",
+       "config-env-hhvm": "HHVM $1 je nainštalované.",
        "config-db-type": "Typ databázy:",
        "config-db-host": "Databázový server:",
        "config-db-host-oracle": "Databázové TNS:",
        "config-missing-db-name": "Musíte zadať hodnotu pre \"{{int:config-db-name}}\".",
        "config-missing-db-host": "Musíte zadať hodnotu pre \"{{int:config-db-host}}\".",
        "config-missing-db-server-oracle": "Musíte zadať hodnotu pre \"{{int:config-db-host-oracle}}\".",
+       "config-admin-box": "Účet správcu",
        "config-admin-name": "Vaše používateľské meno:",
        "config-admin-password": "Heslo:",
-       "config-admin-password-confirm": "Zopakuj heslo:",
+       "config-admin-password-confirm": "Zopakujte heslo:",
        "config-admin-name-blank": "Zadajte používateľské meno správcu.",
        "config-admin-name-invalid": "Zadané používateľské meno \"<nowiki>$1</nowiki>\" je neplatné. \nZadajte iné meno.",
        "config-admin-password-blank": "Zadajte heslo ku správcovskému účtu.",
index b27fcdd..d7f435e 100644 (file)
@@ -47,6 +47,7 @@
        "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-hhvm": "HHVM $1 je nameščen.",
        "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-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-using-server": "Uporabljam ime strežnika \"<nowiki>$1</nowiki>\".",
+       "config-using-uri": "Uporabljam URL strežnika \"<nowiki>$1$2</nowiki>\".",
        "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-install-account": "Uporabniški račun za namestitev",
        "config-db-username": "Uporabniško ime zbirke podatkov:",
        "config-db-password": "Geslo zbirke podatkov:",
+       "config-db-password-empty": "Prosimo, vnesite geslo za novega uporabnika podatkovne zbirke: $1. Morda je mogoče ustvarjati uporabnike brez gesel, ni pa varno.",
+       "config-db-username-empty": "Vnesti morate vrednost za \"{{int:config-db-username}}\".",
+       "config-db-install-username": "Vnesite uporabniško ime za povezavo s podatkovno zbirko med postopkom nameščanja.\nTo ni uporabniško ime računa MediaWiki, pač pa uporabniško ime za vašo podatkovno zbirko.",
+       "config-db-install-password": "Vnesite geslo za povezavo s podatkovno zbirko med postopkom nameščanja.\nTo ni geslo računa MediaWiki, pač pa geslo za vašo podatkovno zbirko.",
+       "config-db-install-help": "Vnesite uporabniško ime in geslo za povezavo s podatkovno zbirko med postopkom nameščanja.",
+       "config-db-account-lock": "Uporabite isto uporabniško ime in geslo tudi po namestitvi.",
        "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-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-pg-test-error": "Ne morem se povezati z zbirko podatkov <strong>$1</strong>: $2",
        "config-sqlite-dir": "Mapa podatkov SQLite:",
+       "config-type-mysql": "MySQL (ali združljiv)",
        "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-header-mssql": "nastavitve Microsoft SQL Server",
        "config-invalid-db-type": "Neveljavna vrsta zbirke podatkov",
        "config-missing-db-name": "Vnesti morate vrednost za »{{int:config-db-name}}«",
        "config-missing-db-host": "Vnesti morate vrednost za »{{int:config-db-host}}«.",
        "config-mysql-charset": "Nabor znakov zbirke podatkov:",
        "config-mysql-binary": "Dvojiško",
        "config-mysql-utf8": "UTF-8",
+       "config-mssql-auth": "Tip avtentikacije:",
        "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-profile-no-anon": "Zahtevano je ustvarjanje računa",
        "config-profile-fishbowl": "Samo pooblaščeni urejevalci",
        "config-profile-private": "Zasebni wiki",
+       "config-profile-help": "Wikiji delujejo najbolje, kadar jih lahko ureja največje možno število ljudi.\nPregled nad zadnjimi spremembami in razveljavljanje škode, ki jo povzročijo neuki ali zlonamerni uporabniki, je v MediaWiki preprosto.\n\nVendar pa je MediaWiki uporaben v celi vrsti različnih vlog, pri čemer včasih ni lahko prepričati vseh o prednostih wiki načina. Zato imate izbiro.\n\nModel <strong>{{int:config-profile-wiki}}</strong> dovoljuje urejanje vsem, tudi brez prijavljanja.\nWiki, nastavljen na <strong>{{int:config-profile-no-anon}}</strong> nudi dodatno sledljivost, vendar lahko odvrne priložnostne urejevalce.\n\nScenarij <strong>{{int:config-profile-fishbowl}}</strong> dovoljuje urejanje odobrenim uporabnikom, pri čemer sta vsebina in zgodovina strani javni.\nV načinu <strong>{{int:config-profile-private}}</strong> lahko urejajo in pregledujejo strani le odobreni uporabniki.\n\nPodrobnejše konfiguriranje uporabniških pravic je možno po namestitvi, glejte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights vnos v uporabniškem priročniku].",
        "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-gfdl": "Dovoljenje GNU za rabo proste dokumentacije 1.3 ali kasnejše",
        "config-license-pd": "Javna last",
        "config-license-cc-choose": "Izberite dovoljenje Creative Commons po meri",
        "config-email-settings": "Nastavitve e-pošte",
index 2bdfb10..60d072a 100644 (file)
@@ -6,7 +6,8 @@
                        "WikiPhoenix",
                        "Josve05a",
                        "Lokal Profil",
-                       "Tobulos1"
+                       "Tobulos1",
+                       "Rotsee"
                ]
        },
        "config-desc": "Installationsprogrammet för MediaWiki",
        "config-profile-no-anon": "Kontoskapande krävs",
        "config-profile-fishbowl": "Endast auktoriserade redigerare",
        "config-profile-private": "Privat wiki",
-       "config-profile-help": "Wikis fungerar bäst när du låter som många människor som möjligt redigera dem.\nI MediaWiki, är det lätt att granska de senaste ändringarna och återställa alla skador som utförs av naiva eller illvilliga användare.\n\nMen många har funnit MediaWiki användbart i en mängd olika roller, och ibland är det inte lätt att övertyga alla fördelarna med wiki-sättet.\nSå valet är ditt.\n\nModellen <strong>{{int:config-profil-wiki}}</strong> tillåter vem som helst att redigera, utan att ens behöva logga in.\nEn wiki med <strong>{{int:config-profil-ingen-anon}}</strong> ger extra ansvarskänsla, men kan avskräcka tillfälliga bidragsgivare.\n\nScenariot <strong>{{int:config-profil-fishbowl}}</strong> tillåter godkända användare att redigera, men allmänheten kan se sidorna, inklusive historik.\nA <strong>{{int:config-profil-privat}}</strong> tillåter endast godkända användare att se sidor, samma grupp får även redigera.\n\nMer komplexa användarrättighetskonfigurationer finns tillgängliga efter installationen, se [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights avsnittet i manualen].",
+       "config-profile-help": "Wikier fungerar bäst när du låter som många människor som möjligt redigera dem.\nI MediaWiki är det lätt att granska de senaste ändringarna och återställa alla skador som utförs av naiva eller illvilliga användare.\n\nMen många har funnit MediaWiki användbart i en mängd olika roller, och ibland är det inte lätt att övertyga alla om fördelarna med wiki-sättet.\nSå valet är ditt.\n\nModellen <strong>{{int:config-profil-wiki}}</strong> tillåter vem som helst att redigera, utan att ens behöva logga in.\nEn wiki med <strong>{{int:config-profil-ingen-anon}}</strong> ger extra ansvarskänsla, men kan avskräcka tillfälliga bidragsgivare.\n\nScenariot <strong>{{int:config-profil-fishbowl}}</strong> tillåter godkända användare att redigera, men allmänheten kan se sidorna, inklusive historik.\nA <strong>{{int:config-profil-privat}}</strong> tillåter endast godkända användare att se sidor, samma grupp får även redigera.\n\nMer komplexa användarrättighetskonfigurationer finns tillgängliga efter installationen, se [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights avsnittet i manualen].",
        "config-license": "Upphovsrätt och licens:",
        "config-license-none": "Ingen licenssidfot",
        "config-license-cc-by-sa": "Creative Commons Erkännande-DelaLika",
index 9a894c2..4b83500 100644 (file)
@@ -50,7 +50,6 @@
        "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/Special:MyLanguage/Unicode_normalization_considerations pagpapanormal ng Unikodigo].",
@@ -58,7 +57,6 @@
        "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.",
index 83c51ee..8b4136e 100644 (file)
@@ -6,7 +6,8 @@
                        "Rhinestorm",
                        "SiLveRLeaD",
                        "Trncmvsr",
-                       "Sayginer"
+                       "Sayginer",
+                       "Trockya"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
        "config-install-schema": "Şema oluştur",
        "config-install-pg-schema-not-exist": "PostgreSQL şema yok.",
        "config-install-pg-commit": "Değişiklikleri yapılıyor",
+       "config-pg-no-create-privs": "Kurulum için belirttiğiniz hesap yeni bir hesap oluşturmak için gereken izinlere sahip değil.",
        "config-install-user": "Veritabanı kullanıcısı oluşturma",
        "config-install-user-alreadyexists": "Kullanıcı \" $1 \" zaten var",
        "config-install-user-create-failed": "Kullanıcı oluşturma \" $1 \" başarısız oldu:$2",
index 35a99b7..4be4d98 100644 (file)
@@ -34,6 +34,7 @@
        "config-page-upgradedoc": "Nâng cấp",
        "config-page-existingwiki": "Wiki đã tồn tại",
        "config-restart": "Có, khởi động lại nó",
+       "config-welcome": "=== Kiểm tra môi trường ===\nBây giờ sẽ kiểm tra sơ qua môi trường này có phù hợp cho việc cài đặt MediaWiki.\nHãy nhớ bao gồm thông tin này khi nào xin hỗ trợ hoàn thành việc cài đặt.",
        "config-env-good": "Đã kiểm tra môi trường.\nBạn có thể cài đặt MediaWiki.",
        "config-env-bad": "Đã kiểm tra môi trường.\nBạn không thể cài đặt MediaWiki.",
        "config-env-php": "PHP $1 đã được cài đặt.",
        "config-profile": "Hồ sơ quyền người dùng:",
        "config-profile-wiki": "Mở wiki",
        "config-profile-no-anon": "Bắt buộc mở tài khoản",
+       "config-profile-fishbowl": "Chỉ những người dùng được phép",
        "config-profile-private": "Wiki riêng tư",
        "config-license": "Bản quyền và giấy phép:",
        "config-license-none": "Không hiển thị giấy phép ở chân trang",
        "config-extensions": "Phần mở rộng",
        "config-skins": "Giao diện",
        "config-skins-use-as-default": "Dùng giao diện này làm mặc định",
+       "config-skins-must-enable-some": "Phải chọn ít nhất một giao diện để kích hoạt.",
+       "config-skins-must-enable-default": "Giao diện được chọn làm mặc định phải được kích hoạt.",
        "config-install-step-done": "hoàn tất",
        "config-install-step-failed": "thất bại",
        "config-install-extensions": "Đang bao gồm phần mở rộng",
        "config-install-interwiki-exists": "'''Cảnh báo:''' Hình như đã có mục trong bảng liên wiki.\nĐã bỏ qua danh sách mặc định.",
        "config-install-stats": "Đang khởi tạo các thống kê",
        "config-install-keys": "Tạo ra các chìa khóa bí mật",
+       "config-install-updates": "Tránh các cập nhật không cần thiết",
        "config-install-sysop": "Đang mở tài khoản người dùng bảo quản viên",
        "config-install-subscribe-fail": "Không thể theo dõi mediawiki-announce: $1",
        "config-install-subscribe-notpossible": "cURL không được cài đặt và <code>allow_url_fopen</code> không có sẵn.",
index d89c5d2..56fd1c6 100644 (file)
@@ -47,20 +47,12 @@ abstract class Job implements IJobSpecification {
        /** @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
         *
@@ -80,6 +72,20 @@ abstract class Job implements IJobSpecification {
                throw new MWException( "Invalid job command `{$command}`" );
        }
 
+       /**
+        * @param string $command
+        * @param Title $title
+        * @param array|bool $params Can not be === true
+        */
+       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;
+       }
+
        /**
         * Batch-insert a group of jobs into the queue.
         * This will be wrapped in a transaction with a forced commit.
@@ -92,68 +98,11 @@ abstract class Job implements IJobSpecification {
         * @deprecated since 1.21
         */
        public static function batchInsert( $jobs ) {
+               wfDeprecated( __METHOD__, '1.21' );
                JobQueueGroup::singleton()->push( $jobs );
                return true;
        }
 
-       /**
-        * 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 Job[] $jobs Array of Job objects
-        * @return bool
-        * @deprecated since 1.21
-        */
-       public static function safeBatchInsert( $jobs ) {
-               JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
-               return true;
-       }
-
-       /**
-        * 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 string $type
-        * @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 string $command
-        * @param Title $title
-        * @param array|bool $params Can not be === true
-        */
-       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
         */
@@ -315,7 +264,7 @@ abstract class Job implements IJobSpecification {
                                                        break;
                                                }
                                        }
-                                       if ( $filteredValue ) {
+                                       if ( $filteredValue && count( $filteredValue ) < 10 ) {
                                                $value = FormatJson::encode( $filteredValue );
                                        } else {
                                                $value = "array(" . count( $value ) . ")";
@@ -328,16 +277,25 @@ abstract class Job implements IJobSpecification {
                        }
                }
 
-               if ( is_object( $this->title ) ) {
-                       $s = "{$this->command} " . $this->title->getPrefixedDBkey();
-                       if ( $paramString !== '' ) {
-                               $s .= ' ' . $paramString;
+               $metaString = '';
+               foreach ( $this->metadata as $key => $value ) {
+                       if ( is_scalar( $value ) && mb_strlen( $value ) < 1024 ) {
+                               $metaString .= ( $metaString ? ",$key=$value" : "$key=$value" );
                        }
+               }
 
-                       return $s;
-               } else {
-                       return "{$this->command} $paramString";
+               $s = $this->command;
+               if ( is_object( $this->title ) ) {
+                       $s .= " {$this->title->getPrefixedDBkey()}";
                }
+               if ( $paramString != '' ) {
+                       $s .= " $paramString";
+               }
+               if ( $metaString != '' ) {
+                       $s .= " ($metaString)";
+               }
+
+               return $s;
        }
 
        protected function setLastError( $error ) {
index 3519eac..abfdc8c 100644 (file)
@@ -91,6 +91,7 @@ class JobQueueRedis extends JobQueue {
                $this->compression = isset( $params['compression'] ) ? $params['compression'] : 'none';
                $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
                $this->daemonized = !empty( $params['daemonized'] );
+               $this->checkDelay = true; // always enabled
        }
 
        protected function supportedOrders() {
@@ -134,9 +135,6 @@ class JobQueueRedis extends JobQueue {
         * @throws JobQueueError
         */
        protected function doGetAcquiredCount() {
-               if ( $this->claimTTL <= 0 ) {
-                       return 0; // no acknowledgements
-               }
                $conn = $this->getConnection();
                try {
                        $conn->multi( Redis::PIPELINE );
@@ -155,9 +153,6 @@ class JobQueueRedis extends JobQueue {
         * @throws JobQueueError
         */
        protected function doGetDelayedCount() {
-               if ( !$this->checkDelay ) {
-                       return 0; // no delayed jobs
-               }
                $conn = $this->getConnection();
                try {
                        return $conn->zSize( $this->getQueueKey( 'z-delayed' ) );
@@ -172,9 +167,6 @@ class JobQueueRedis extends JobQueue {
         * @throws JobQueueError
         */
        protected function doGetAbandonedCount() {
-               if ( $this->claimTTL <= 0 ) {
-                       return 0; // no acknowledgements
-               }
                $conn = $this->getConnection();
                try {
                        return $conn->zSize( $this->getQueueKey( 'z-abandoned' ) );
@@ -301,22 +293,18 @@ LUA;
 
                // 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 ) {
+               if ( !$this->daemonized && 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 );
+                               // Keep the claimed job list down for high-traffic queues
+                               if ( !$this->daemonized && mt_rand( 0, 99 ) == 0 ) {
+                                       $this->recyclePruneAndUndelayJobs();
                                }
+                               $blob = $this->popAndAcquireBlob( $conn );
                                if ( !is_string( $blob ) ) {
                                        break; // no jobs; nothing to do
                                }
@@ -338,39 +326,6 @@ LUA;
                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
@@ -416,36 +371,35 @@ LUA;
                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 =
+
+               $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])
+                       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 );
+                       $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;
@@ -658,7 +612,6 @@ LUA;
                                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
@@ -723,12 +676,9 @@ LUA;
                if ( $this->daemonized ) {
                        return array(); // managed in the runner loop
                }
-               $periods = array( 3600 ); // standard cleanup (useful on config change)
+               $periods = array( 300 ); // 5 min; delayed/stale jobs
                if ( $this->claimTTL > 0 ) {
-                       $periods[] = ceil( $this->claimTTL / 2 ); // avoid bad timing
-               }
-               if ( $this->checkDelay ) {
-                       $periods[] = 300; // 5 minutes
+                       $periods[] = ceil( $this->claimTTL / 2 ); // halved to avoid bad timing
                }
                $period = min( $periods );
                $period = max( $period, 30 ); // sanity
index 4d2c618..6b19340 100644 (file)
@@ -186,7 +186,7 @@ class JobRunner {
                                // other wikis in the farm (on different masters) get a chance.
                                $timePassed = microtime( true ) - $lastTime;
                                if ( $timePassed >= 5 || $timePassed < 0 ) {
-                                       if ( !wfWaitForSlaves( $lastTime, wfWikiID(), false, 5 ) ) {
+                                       if ( !wfWaitForSlaves( $lastTime, false, '*', 5 ) ) {
                                                $response['reached'] = 'slave-lag-limit';
                                                break;
                                        }
index f3e5c76..74775b5 100644 (file)
@@ -70,6 +70,13 @@ class FormatJson {
         */
        const TRY_FIXING = 0x200;
 
+       /**
+        * If set, strip comments from input before parsing as JSON.
+        *
+        * @since 1.25
+        */
+       const STRIP_COMMENTS = 0x400;
+
        /**
         * Regex that matches whitespace inside empty arrays and objects.
         *
@@ -150,10 +157,14 @@ class FormatJson {
         * Unlike FormatJson::decode(), if $value represents null value, it will be properly decoded as valid.
         *
         * @param string $value The JSON string being decoded
-        * @param int $options A bit field that allows FORCE_ASSOC, TRY_FIXING
+        * @param int $options A bit field that allows FORCE_ASSOC, TRY_FIXING,
+        * STRIP_COMMENTS
         * @return Status If valid JSON, the value is available in $result->getValue()
         */
        public static function parse( $value, $options = 0 ) {
+               if ( $options & self::STRIP_COMMENTS ) {
+                       $value = self::stripComments( $value );
+               }
                $assoc = ( $options & self::FORCE_ASSOC ) !== 0;
                $result = json_decode( $value, $assoc );
                $code = json_last_error();
@@ -347,4 +358,79 @@ class FormatJson {
 
                return str_replace( "\x01", '\"', $buf );
        }
+
+       /**
+        * Remove multiline and single line comments from an otherwise valid JSON
+        * input string. This can be used as a preprocessor for to allow JSON
+        * formatted configuration files to contain comments.
+        *
+        * @param string $json
+        * @return string JSON with comments removed
+        */
+       public static function stripComments( $json ) {
+               // Ensure we have a string
+               $str = (string) $json;
+               $buffer = '';
+               $maxLen = strlen( $str );
+               $mark = 0;
+
+               $inString = false;
+               $inComment = false;
+               $multiline = false;
+
+               for ($idx = 0; $idx < $maxLen; $idx++) {
+                       switch ( $str[$idx] ) {
+                               case '"':
+                                       $lookBehind = ( $idx - 1 >= 0 ) ? $str[$idx - 1] : '';
+                                       if ( !$inComment && $lookBehind !== '\\' ) {
+                                               // Either started or ended a string
+                                               $inString = !$inString;
+                                       }
+                                       break;
+
+                               case '/':
+                                       $lookAhead = ( $idx + 1 < $maxLen ) ? $str[$idx + 1] : '';
+                                       $lookBehind = ( $idx - 1 >= 0 ) ? $str[$idx - 1] : '';
+                                       if ( $inString ) {
+                                               continue;
+
+                                       } elseif ( !$inComment &&
+                                               ( $lookAhead === '/' || $lookAhead === '*' )
+                                       ) {
+                                               // Transition into a comment
+                                               // Add characters seen to buffer
+                                               $buffer .= substr( $str, $mark, $idx - $mark );
+                                               // Consume the look ahead character
+                                               $idx++;
+                                               // Track state
+                                               $inComment = true;
+                                               $multiline = $lookAhead === '*';
+
+                                       } elseif ( $multiline && $lookBehind === '*' ) {
+                                               // Found the end of the current comment
+                                               $mark = $idx + 1;
+                                               $inComment = false;
+                                               $multiline = false;
+                                       }
+                                       break;
+
+                               case "\n":
+                                       if ( $inComment && !$multiline ) {
+                                               // Found the end of the current comment
+                                               $mark = $idx + 1;
+                                               $inComment = false;
+                                       }
+                                       break;
+                       }
+               }
+               if ( $inComment ) {
+                       // Comment ends with input
+                       // Technically we should check to ensure that we aren't in
+                       // a multiline comment that hasn't been properly ended, but this
+                       // is a strip filter, not a validating parser.
+                       $mark = $maxLen;
+               }
+               // Add final chunk to buffer before returning
+               return $buffer . substr( $str, $mark, $maxLen - $mark );
+       }
 }
diff --git a/includes/libs/ArrayUtils.php b/includes/libs/ArrayUtils.php
new file mode 100644 (file)
index 0000000..f934021
--- /dev/null
@@ -0,0 +1,187 @@
+<?php
+/**
+ * Methods to play with arrays.
+ *
+ * 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
+ */
+
+/**
+ * A collection of static methods to play with arrays.
+ *
+ * @since 1.21
+ */
+class ArrayUtils {
+       /**
+        * Sort the given array in a pseudo-random order which depends only on the
+        * given key and each element value. This is typically used for load
+        * balancing between servers each with a local cache.
+        *
+        * Keys are preserved. The input array is modified in place.
+        *
+        * Note: Benchmarking on PHP 5.3 and 5.4 indicates that for small
+        * strings, md5() is only 10% slower than hash('joaat',...) etc.,
+        * since the function call overhead dominates. So there's not much
+        * justification for breaking compatibility with installations
+        * compiled with ./configure --disable-hash.
+        *
+        * @param array $array Array to sort
+        * @param string $key
+        * @param string $separator A separator used to delimit the array elements and the
+        *     key. This can be chosen to provide backwards compatibility with
+        *     various consistent hash implementations that existed before this
+        *     function was introduced.
+        */
+       public static function consistentHashSort( &$array, $key, $separator = "\000" ) {
+               $hashes = array();
+               foreach ( $array as $elt ) {
+                       $hashes[$elt] = md5( $elt . $separator . $key );
+               }
+               uasort( $array, function ( $a, $b ) use ( $hashes ) {
+                       return strcmp( $hashes[$a], $hashes[$b] );
+               } );
+       }
+
+       /**
+        * Given an array of non-normalised probabilities, this function will select
+        * an element and return the appropriate key
+        *
+        * @param array $weights
+        * @return bool|int|string
+        */
+       public static function pickRandom( $weights ) {
+               if ( !is_array( $weights ) || count( $weights ) == 0 ) {
+                       return false;
+               }
+
+               $sum = array_sum( $weights );
+               if ( $sum == 0 ) {
+                       # No loads on any of them
+                       # In previous versions, this triggered an unweighted random selection,
+                       # but this feature has been removed as of April 2006 to allow for strict
+                       # separation of query groups.
+                       return false;
+               }
+               $max = mt_getrandmax();
+               $rand = mt_rand( 0, $max ) / $max * $sum;
+
+               $sum = 0;
+               foreach ( $weights as $i => $w ) {
+                       $sum += $w;
+                       # Do not return keys if they have 0 weight.
+                       # Note that the "all 0 weight" case is handed above
+                       if ( $w > 0 && $sum >= $rand ) {
+                               break;
+                       }
+               }
+
+               return $i;
+       }
+
+       /**
+        * Do a binary search, and return the index of the largest item that sorts
+        * less than or equal to the target value.
+        *
+        * @since 1.23
+        *
+        * @param callable $valueCallback A function to call to get the value with
+        *     a given array index.
+        * @param int $valueCount The number of items accessible via $valueCallback,
+        *     indexed from 0 to $valueCount - 1
+        * @param callable $comparisonCallback A callback to compare two values, returning
+        *     -1, 0 or 1 in the style of strcmp().
+        * @param string $target The target value to find.
+        *
+        * @return int|bool The item index of the lower bound, or false if the target value
+        *     sorts before all items.
+        */
+       public static function findLowerBound( $valueCallback, $valueCount,
+               $comparisonCallback, $target
+       ) {
+               if ( $valueCount === 0 ) {
+                       return false;
+               }
+
+               $min = 0;
+               $max = $valueCount;
+               do {
+                       $mid = $min + ( ( $max - $min ) >> 1 );
+                       $item = call_user_func( $valueCallback, $mid );
+                       $comparison = call_user_func( $comparisonCallback, $target, $item );
+                       if ( $comparison > 0 ) {
+                               $min = $mid;
+                       } elseif ( $comparison == 0 ) {
+                               $min = $mid;
+                               break;
+                       } else {
+                               $max = $mid;
+                       }
+               } while ( $min < $max - 1 );
+
+               if ( $min == 0 ) {
+                       $item = call_user_func( $valueCallback, $min );
+                       $comparison = call_user_func( $comparisonCallback, $target, $item );
+                       if ( $comparison < 0 ) {
+                               // Before the first item
+                               return false;
+                       }
+               }
+               return $min;
+       }
+
+       /**
+        * Do array_diff_assoc() on multi-dimensional arrays.
+        *
+        * Note: empty arrays are removed.
+        *
+        * @since 1.23
+        *
+        * @param array $array1 The array to compare from
+        * @param array $array2,... More arrays to compare against
+        * @return array An array containing all the values from array1
+        *               that are not present in any of the other arrays.
+        */
+       public static function arrayDiffAssocRecursive( $array1 ) {
+               $arrays = func_get_args();
+               array_shift( $arrays );
+               $ret = array();
+
+               foreach ( $array1 as $key => $value ) {
+                       if ( is_array( $value ) ) {
+                               $args = array( $value );
+                               foreach ( $arrays as $array ) {
+                                       if ( isset( $array[$key] ) ) {
+                                               $args[] = $array[$key];
+                                       }
+                               }
+                               $valueret = call_user_func_array( __METHOD__, $args );
+                               if ( count( $valueret ) ) {
+                                       $ret[$key] = $valueret;
+                               }
+                       } else {
+                               foreach ( $arrays as $array ) {
+                                       if ( isset( $array[$key] ) && $array[$key] === $value ) {
+                                               continue 2;
+                                       }
+                               }
+                               $ret[$key] = $value;
+                       }
+               }
+
+               return $ret;
+       }
+}
diff --git a/includes/libs/CSSJanus.php b/includes/libs/CSSJanus.php
deleted file mode 100644 (file)
index e96baec..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-<?php
-/**
- * PHP port of CSSJanus.
- *
- * Copyright 2008 Google Inc.
- * Copyright 2010 Roan Kattouw
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @file
- */
-
-/**
- * This is a PHP port of CSSJanus, a utility that transforms CSS style sheets
- * written for LTR to RTL.
- *
- * Original code: http://code.google.com/p/cssjanus/source/browse/trunk/cssjanus.py
- *
- * @author Lindsey Simon <elsigh@google.com>
- * @author Roan Kattouw
- */
-class CSSJanus {
-       // Patterns defined as null are built dynamically by buildPatterns()
-       private static $patterns = array(
-               'tmpToken' => '`TMP`',
-               'nonAscii' => '[\200-\377]',
-               'unicode' => '(?:(?:\\[0-9a-f]{1,6})(?:\r\n|\s)?)',
-               'num' => '(?:[0-9]*\.[0-9]+|[0-9]+)',
-               'unit' => '(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)',
-               'body_selector' => 'body\s*{\s*',
-               'direction' => 'direction\s*:\s*',
-               'escape' => null,
-               'nmstart' => null,
-               'nmchar' => null,
-               'ident' => null,
-               'quantity' => null,
-               'possibly_negative_quantity' => null,
-               'color' => null,
-               'url_special_chars' => '[!#$%&*-~]',
-               'valid_after_uri_chars' => '[\'\"]?\s*',
-               'url_chars' => null,
-               'lookahead_not_open_brace' => null,
-               'lookahead_not_closing_paren' => null,
-               'lookahead_for_closing_paren' => null,
-               'lookahead_not_letter' => '(?![a-zA-Z])',
-               'lookbehind_not_letter' => '(?<![a-zA-Z])',
-               'chars_within_selector' => '[^\}]*?',
-               'noflip_annotation' => '\/\*\!?\s*@noflip\s*\*\/',
-               'noflip_single' => null,
-               'noflip_class' => null,
-               'comment' => '/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//',
-               'direction_ltr' => null,
-               'direction_rtl' => null,
-               'left' => null,
-               'right' => null,
-               'left_in_url' => null,
-               'right_in_url' => null,
-               'ltr_in_url' => null,
-               'rtl_in_url' => null,
-               'cursor_east' => null,
-               'cursor_west' => null,
-               'four_notation_quantity' => null,
-               'four_notation_color' => null,
-               'border_radius' => null,
-               'box_shadow' => null,
-               'text_shadow1' => null,
-               'text_shadow2' => null,
-               'bg_horizontal_percentage' => null,
-               'bg_horizontal_percentage_x' => null,
-       );
-
-       /**
-        * Build patterns we can't define above because they depend on other patterns.
-        */
-       private static function buildPatterns() {
-               if (!is_null(self::$patterns['escape'])) {
-                       // Patterns have already been built
-                       return;
-               }
-
-               // @codingStandardsIgnoreStart Generic.Files.LineLength.TooLong
-               $patterns =& self::$patterns;
-               $patterns['escape'] = "(?:{$patterns['unicode']}|\\[^\r\n\f0-9a-f])";
-               $patterns['nmstart'] = "(?:[_a-z]|{$patterns['nonAscii']}|{$patterns['escape']})";
-               $patterns['nmchar'] = "(?:[_a-z0-9-]|{$patterns['nonAscii']}|{$patterns['escape']})";
-               $patterns['ident'] = "-?{$patterns['nmstart']}{$patterns['nmchar']}*";
-               $patterns['quantity'] = "{$patterns['num']}(?:\s*{$patterns['unit']}|{$patterns['ident']})?";
-               $patterns['possibly_negative_quantity'] = "((?:-?{$patterns['quantity']})|(?:inherit|auto))";
-               $patterns['color'] = "(#?{$patterns['nmchar']}+|(?:rgba?|hsla?)\([ \d.,%-]+\))";
-               $patterns['url_chars'] = "(?:{$patterns['url_special_chars']}|{$patterns['nonAscii']}|{$patterns['escape']})*";
-               $patterns['lookahead_not_open_brace'] = "(?!({$patterns['nmchar']}|\r?\n|\s|#|\:|\.|\,|\+|>|\(|\)|\[|\]|=|\*=|~=|\^=|'[^']*'])*?{)";
-               $patterns['lookahead_not_closing_paren'] = "(?!{$patterns['url_chars']}?{$patterns['valid_after_uri_chars']}\))";
-               $patterns['lookahead_for_closing_paren'] = "(?={$patterns['url_chars']}?{$patterns['valid_after_uri_chars']}\))";
-               $patterns['noflip_single'] = "/({$patterns['noflip_annotation']}{$patterns['lookahead_not_open_brace']}[^;}]+;?)/i";
-               $patterns['noflip_class'] = "/({$patterns['noflip_annotation']}{$patterns['chars_within_selector']}})/i";
-               $patterns['direction_ltr'] = "/({$patterns['direction']})ltr/i";
-               $patterns['direction_rtl'] = "/({$patterns['direction']})rtl/i";
-               $patterns['left'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_not_letter']}{$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
-               $patterns['right'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_not_letter']}{$patterns['lookahead_not_closing_paren']}{$patterns['lookahead_not_open_brace']}/i";
-               $patterns['left_in_url'] = "/{$patterns['lookbehind_not_letter']}(left){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['right_in_url'] = "/{$patterns['lookbehind_not_letter']}(right){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['ltr_in_url'] = "/{$patterns['lookbehind_not_letter']}(ltr){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['rtl_in_url'] = "/{$patterns['lookbehind_not_letter']}(rtl){$patterns['lookahead_for_closing_paren']}/i";
-               $patterns['cursor_east'] = "/{$patterns['lookbehind_not_letter']}([ns]?)e-resize/";
-               $patterns['cursor_west'] = "/{$patterns['lookbehind_not_letter']}([ns]?)w-resize/";
-               $patterns['four_notation_quantity_props'] = "((?:margin|padding|border-width)\s*:\s*)";
-               $patterns['four_notation_quantity'] = "/{$patterns['four_notation_quantity_props']}{$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s*[;}])/i";
-               $patterns['four_notation_color'] = "/((?:-color|border-style)\s*:\s*){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s*[;}])/i";
-               $patterns['border_radius'] = "/(border-radius\s*:\s*)([^;}]*)/";
-               $patterns['box_shadow'] = "/(box-shadow\s*:\s*(?:inset\s*)?){$patterns['possibly_negative_quantity']}/i";
-               $patterns['text_shadow1'] = "/(text-shadow\s*:\s*){$patterns['color']}(\s*){$patterns['possibly_negative_quantity']}/i";
-               $patterns['text_shadow2'] = "/(text-shadow\s*:\s*){$patterns['possibly_negative_quantity']}/i";
-               $patterns['bg_horizontal_percentage'] = "/(background(?:-position)?\s*:\s*(?:[^:;}\s]+\s+)*?)({$patterns['quantity']})/i";
-               $patterns['bg_horizontal_percentage_x'] = "/(background-position-x\s*:\s*)(-?{$patterns['num']}%)/i";
-               // @codingStandardsIgnoreEnd
-
-       }
-
-       /**
-        * Transform an LTR stylesheet to RTL
-        * @param string $css stylesheet to transform
-        * @param $swapLtrRtlInURL Boolean: If true, swap 'ltr' and 'rtl' in URLs
-        * @param $swapLeftRightInURL Boolean: If true, swap 'left' and 'right' in URLs
-        * @return string Transformed stylesheet
-        */
-       public static function transform($css, $swapLtrRtlInURL = false, $swapLeftRightInURL = false) {
-               // We wrap tokens in ` , not ~ like the original implementation does.
-               // This was done because ` is not a legal character in CSS and can only
-               // occur in URLs, where we escape it to %60 before inserting our tokens.
-               $css = str_replace('`', '%60', $css);
-
-               self::buildPatterns();
-
-               // Tokenize single line rules with /* @noflip */
-               $noFlipSingle = new CSSJanusTokenizer(self::$patterns['noflip_single'], '`NOFLIP_SINGLE`');
-               $css = $noFlipSingle->tokenize($css);
-
-               // Tokenize class rules with /* @noflip */
-               $noFlipClass = new CSSJanusTokenizer(self::$patterns['noflip_class'], '`NOFLIP_CLASS`');
-               $css = $noFlipClass->tokenize($css);
-
-               // Tokenize comments
-               $comments = new CSSJanusTokenizer(self::$patterns['comment'], '`C`');
-               $css = $comments->tokenize($css);
-
-               // LTR->RTL fixes start here
-               $css = self::fixDirection($css);
-               if ($swapLtrRtlInURL) {
-                       $css = self::fixLtrRtlInURL($css);
-               }
-
-               if ($swapLeftRightInURL) {
-                       $css = self::fixLeftRightInURL($css);
-               }
-               $css = self::fixLeftAndRight($css);
-               $css = self::fixCursorProperties($css);
-               $css = self::fixFourPartNotation($css);
-               $css = self::fixBorderRadius($css);
-               $css = self::fixBackgroundPosition($css);
-               $css = self::fixShadows($css);
-
-               // Detokenize stuff we tokenized before
-               $css = $comments->detokenize($css);
-               $css = $noFlipClass->detokenize($css);
-               $css = $noFlipSingle->detokenize($css);
-
-               return $css;
-       }
-
-       /**
-        * Replace direction: ltr; with direction: rtl; and vice versa.
-        *
-        * The original implementation only does this inside body selectors
-        * and misses "body\n{\ndirection:ltr;\n}". This function does not have
-        * these problems.
-        *
-        * See https://code.google.com/p/cssjanus/issues/detail?id=15
-        *
-        * @param $css string
-        * @return string
-        */
-       private static function fixDirection($css) {
-               $css = preg_replace(
-                       self::$patterns['direction_ltr'],
-                       '$1' . self::$patterns['tmpToken'],
-                       $css
-               );
-               $css = preg_replace(self::$patterns['direction_rtl'], '$1ltr', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'rtl', $css);
-
-               return $css;
-       }
-
-       /**
-        * Replace 'ltr' with 'rtl' and vice versa in background URLs
-        * @param $css string
-        * @return string
-        */
-       private static function fixLtrRtlInURL($css) {
-               $css = preg_replace(self::$patterns['ltr_in_url'], self::$patterns['tmpToken'], $css);
-               $css = preg_replace(self::$patterns['rtl_in_url'], 'ltr', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'rtl', $css);
-
-               return $css;
-       }
-
-       /**
-        * Replace 'left' with 'right' and vice versa in background URLs
-        * @param $css string
-        * @return string
-        */
-       private static function fixLeftRightInURL($css) {
-               $css = preg_replace(self::$patterns['left_in_url'], self::$patterns['tmpToken'], $css);
-               $css = preg_replace(self::$patterns['right_in_url'], 'left', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'right', $css);
-
-               return $css;
-       }
-
-       /**
-        * Flip rules like left: , padding-right: , etc.
-        * @param $css string
-        * @return string
-        */
-       private static function fixLeftAndRight($css) {
-               $css = preg_replace(self::$patterns['left'], self::$patterns['tmpToken'], $css);
-               $css = preg_replace(self::$patterns['right'], 'left', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'right', $css);
-
-               return $css;
-       }
-
-       /**
-        * Flip East and West in rules like cursor: nw-resize;
-        * @param $css string
-        * @return string
-        */
-       private static function fixCursorProperties($css) {
-               $css = preg_replace(
-                       self::$patterns['cursor_east'],
-                       '$1' . self::$patterns['tmpToken'],
-                       $css
-               );
-               $css = preg_replace(self::$patterns['cursor_west'], '$1e-resize', $css);
-               $css = str_replace(self::$patterns['tmpToken'], 'w-resize', $css);
-
-               return $css;
-       }
-
-       /**
-        * Swap the second and fourth parts in four-part notation rules like
-        * padding: 1px 2px 3px 4px;
-        *
-        * Unlike the original implementation, this function doesn't suffer from
-        * the bug where whitespace is not preserved when flipping four-part rules
-        * and four-part color rules with multiple whitespace characters between
-        * colors are not recognized.
-        * See https://code.google.com/p/cssjanus/issues/detail?id=16
-        * @param $css string
-        * @return string
-        */
-       private static function fixFourPartNotation($css) {
-               $css = preg_replace(self::$patterns['four_notation_quantity'], '$1$2$3$8$5$6$7$4$9', $css);
-               $css = preg_replace(self::$patterns['four_notation_color'], '$1$2$3$8$5$6$7$4$9', $css);
-               return $css;
-       }
-
-       /**
-        * Swaps appropriate corners in border-radius values.
-        *
-        * @param $css string
-        * @return string
-        */
-       private static function fixBorderRadius($css) {
-               $css = preg_replace_callback(self::$patterns['border_radius'], function ($matches) {
-                       $pre = $matches[1];
-                       $values = $matches[2];
-                       $numValues = count(preg_split('/\s+/', trim($values)));
-                       switch ($numValues) {
-                               case 4:
-                                       $values = preg_replace('/^(\S+)(\s*)(\S+)(\s*)(\S+)(\s*)(\S+)/', '$3$2$1$4$7$6$5', $values);
-                                       break;
-                               case 3:
-                               case 2:
-                                       $values = preg_replace('/^(\S+)(\s*)(\S+)/', '$3$2$1', $values);
-                                       break;
-                       }
-                       return $pre . $values;
-               }, $css);
-
-               return $css;
-       }
-
-       /**
-        * Negates horizontal offset in box-shadow and text-shadow rules.
-        *
-        * @param $css string
-        * @return string
-        */
-       private static function fixShadows($css) {
-               // Flips the sign of a CSS value, possibly with a unit.
-               // (We can't just negate the value with unary minus due to the units.)
-               $flipSign = function ($cssValue) {
-                       // Don't mangle zeroes
-                       if (floatval($cssValue) === 0.0) {
-                               return $cssValue;
-                       } elseif ($cssValue[0] === '-') {
-                               return substr($cssValue, 1);
-                       } else {
-                               return "-" . $cssValue;
-                       }
-               };
-
-               $css = preg_replace_callback(self::$patterns['box_shadow'], function ($matches) use ($flipSign) {
-                       return $matches[1] . $flipSign($matches[2]);
-               }, $css);
-
-               $css = preg_replace_callback(self::$patterns['text_shadow1'], function ($matches) use ($flipSign) {
-                       return $matches[1] . $matches[2] . $matches[3] . $flipSign($matches[4]);
-               }, $css);
-
-               $css = preg_replace_callback(self::$patterns['text_shadow2'], function ($matches) use ($flipSign) {
-                       return $matches[1] . $flipSign($matches[2]);
-               }, $css);
-
-               return $css;
-       }
-
-       /**
-        * Flip horizontal background percentages.
-        * @param $css string
-        * @return string
-        */
-       private static function fixBackgroundPosition($css) {
-               $replaced = preg_replace_callback(
-                       self::$patterns['bg_horizontal_percentage'],
-                       array('self', 'calculateNewBackgroundPosition'),
-                       $css
-               );
-               if ($replaced !== null) {
-                       // preg_replace_callback() sometimes returns null
-                       $css = $replaced;
-               }
-               $replaced = preg_replace_callback(
-                       self::$patterns['bg_horizontal_percentage_x'],
-                       array('self', 'calculateNewBackgroundPosition'),
-                       $css
-               );
-               if ($replaced !== null) {
-                       $css = $replaced;
-               }
-
-               return $css;
-       }
-
-       /**
-        * Callback for fixBackgroundPosition()
-        * @param $matches array
-        * @return string
-        */
-       private static function calculateNewBackgroundPosition($matches) {
-               $value = $matches[2];
-               if (substr($value, -1) === '%') {
-                       $idx = strpos($value, '.');
-                       if ($idx !== false) {
-                               $len = strlen($value) - $idx - 2;
-                               $value = number_format(100 - $value, $len) . '%';
-                       } else {
-                               $value = (100 - $value) . '%';
-                       }
-               }
-               return $matches[1] . $value;
-       }
-}
-
-/**
- * Utility class used by CSSJanus that tokenizes and untokenizes things we want
- * to protect from being janused.
- * @author Roan Kattouw
- */
-class CSSJanusTokenizer {
-       private $regex;
-       private $token;
-       private $originals;
-
-       /**
-        * Constructor
-        * @param string $regex Regular expression whose matches to replace by a token.
-        * @param string $token Token
-        */
-       public function __construct($regex, $token) {
-               $this->regex = $regex;
-               $this->token = $token;
-               $this->originals = array();
-       }
-
-       /**
-        * Replace all occurrences of $regex in $str with a token and remember
-        * the original strings.
-        * @param string $str to tokenize
-        * @return string Tokenized string
-        */
-       public function tokenize($str) {
-               return preg_replace_callback($this->regex, array($this, 'tokenizeCallback'), $str);
-       }
-
-       /**
-        * @param $matches array
-        * @return string
-        */
-       private function tokenizeCallback($matches) {
-               $this->originals[] = $matches[0];
-               return $this->token;
-       }
-
-       /**
-        * Replace tokens with their originals. If multiple strings were tokenized, it's important they be
-        * detokenized in exactly the SAME ORDER.
-        * @param string $str previously run through tokenize()
-        * @return string Original string
-        */
-       public function detokenize($str) {
-               // PHP has no function to replace only the first occurrence or to
-               // replace occurrences of the same string with different values,
-               // so we use preg_replace_callback() even though we don't really need a regex
-               return preg_replace_callback(
-                       '/' . preg_quote($this->token, '/') . '/',
-                       array($this, 'detokenizeCallback'),
-                       $str
-               );
-       }
-
-       /**
-        * @param $matches
-        * @return mixed
-        */
-       private function detokenizeCallback($matches) {
-               $retval = current($this->originals);
-               next($this->originals);
-
-               return $retval;
-       }
-}
diff --git a/includes/libs/Cookie.php b/includes/libs/Cookie.php
new file mode 100644 (file)
index 0000000..56dc6ea
--- /dev/null
@@ -0,0 +1,291 @@
+<?php
+/**
+ * Cookie for HTTP requests.
+ *
+ * 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 HTTP
+ */
+
+class Cookie {
+       protected $name;
+       protected $value;
+       protected $expires;
+       protected $path;
+       protected $domain;
+       protected $isSessionKey = true;
+       // TO IMPLEMENT  protected $secure
+       // TO IMPLEMENT? protected $maxAge (add onto expires)
+       // TO IMPLEMENT? protected $version
+       // TO IMPLEMENT? protected $comment
+
+       function __construct( $name, $value, $attr ) {
+               $this->name = $name;
+               $this->set( $value, $attr );
+       }
+
+       /**
+        * Sets a cookie.  Used before a request to set up any individual
+        * cookies. Used internally after a request to parse the
+        * Set-Cookie headers.
+        *
+        * @param string $value The value of the cookie
+        * @param array $attr Possible key/values:
+        *        expires A date string
+        *        path    The path this cookie is used on
+        *        domain  Domain this cookie is used on
+        * @throws MWException
+        */
+       public function set( $value, $attr ) {
+               $this->value = $value;
+
+               if ( isset( $attr['expires'] ) ) {
+                       $this->isSessionKey = false;
+                       $this->expires = strtotime( $attr['expires'] );
+               }
+
+               if ( isset( $attr['path'] ) ) {
+                       $this->path = $attr['path'];
+               } else {
+                       $this->path = '/';
+               }
+
+               if ( isset( $attr['domain'] ) ) {
+                       if ( self::validateCookieDomain( $attr['domain'] ) ) {
+                               $this->domain = $attr['domain'];
+                       }
+               } else {
+                       throw new InvalidArgumentException( '$attr must contain a domain' );
+               }
+       }
+
+       /**
+        * Return the true if the cookie is valid is valid.  Otherwise,
+        * false.  The uses a method similar to IE cookie security
+        * described here:
+        * http://kuza55.blogspot.com/2008/02/understanding-cookie-security.html
+        * A better method might be to use a blacklist like
+        * http://publicsuffix.org/
+        *
+        * @todo fixme fails to detect 3-letter top-level domains
+        * @todo fixme fails to detect 2-letter top-level domains for single-domain use (probably
+        * not a big problem in practice, but there are test cases)
+        *
+        * @param string $domain The domain to validate
+        * @param string $originDomain (optional) the domain the cookie originates from
+        * @return bool
+        */
+       public static function validateCookieDomain( $domain, $originDomain = null ) {
+               $dc = explode( ".", $domain );
+
+               // Don't allow a trailing dot or addresses without a or just a leading dot
+               if ( substr( $domain, -1 ) == '.' ||
+                       count( $dc ) <= 1 ||
+                       count( $dc ) == 2 && $dc[0] === ''
+               ) {
+                       return false;
+               }
+
+               // Only allow full, valid IP addresses
+               if ( preg_match( '/^[0-9.]+$/', $domain ) ) {
+                       if ( count( $dc ) != 4 ) {
+                               return false;
+                       }
+
+                       if ( ip2long( $domain ) === false ) {
+                               return false;
+                       }
+
+                       if ( $originDomain == null || $originDomain == $domain ) {
+                               return true;
+                       }
+
+               }
+
+               // Don't allow cookies for "co.uk" or "gov.uk", etc, but allow "supermarket.uk"
+               if ( strrpos( $domain, "." ) - strlen( $domain ) == -3 ) {
+                       if ( ( count( $dc ) == 2 && strlen( $dc[0] ) <= 2 )
+                               || ( count( $dc ) == 3 && strlen( $dc[0] ) == "" && strlen( $dc[1] ) <= 2 ) ) {
+                               return false;
+                       }
+                       if ( ( count( $dc ) == 2 || ( count( $dc ) == 3 && $dc[0] == '' ) )
+                               && preg_match( '/(com|net|org|gov|edu)\...$/', $domain ) ) {
+                               return false;
+                       }
+               }
+
+               if ( $originDomain != null ) {
+                       if ( substr( $domain, 0, 1 ) != '.' && $domain != $originDomain ) {
+                               return false;
+                       }
+
+                       if ( substr( $domain, 0, 1 ) == '.'
+                               && substr_compare(
+                                       $originDomain,
+                                       $domain,
+                                       -strlen( $domain ),
+                                       strlen( $domain ),
+                                       true
+                               ) != 0
+                       ) {
+                               return false;
+                       }
+               }
+
+               return true;
+       }
+
+       /**
+        * Serialize the cookie jar into a format useful for HTTP Request headers.
+        *
+        * @param string $path The path that will be used. Required.
+        * @param string $domain The domain that will be used. Required.
+        * @return string
+        */
+       public function serializeToHttpRequest( $path, $domain ) {
+               $ret = '';
+
+               if ( $this->canServeDomain( $domain )
+                               && $this->canServePath( $path )
+                               && $this->isUnExpired() ) {
+                       $ret = $this->name . '=' . $this->value;
+               }
+
+               return $ret;
+       }
+
+       /**
+        * @param string $domain
+        * @return bool
+        */
+       protected function canServeDomain( $domain ) {
+               if ( $domain == $this->domain
+                       || ( strlen( $domain ) > strlen( $this->domain )
+                               && substr( $this->domain, 0, 1 ) == '.'
+                               && substr_compare(
+                                       $domain,
+                                       $this->domain,
+                                       -strlen( $this->domain ),
+                                       strlen( $this->domain ),
+                                       true
+                               ) == 0
+                       )
+               ) {
+                       return true;
+               }
+
+               return false;
+       }
+
+       /**
+        * @param string $path
+        * @return bool
+        */
+       protected function canServePath( $path ) {
+               return ( $this->path && substr_compare( $this->path, $path, 0, strlen( $this->path ) ) == 0 );
+       }
+
+       /**
+        * @return bool
+        */
+       protected function isUnExpired() {
+               return $this->isSessionKey || $this->expires > time();
+       }
+}
+
+class CookieJar {
+       private $cookie = array();
+
+       /**
+        * Set a cookie in the cookie jar. Make sure only one cookie per-name exists.
+        * @see Cookie::set()
+        * @param string $name
+        * @param string $value
+        * @param array $attr
+        */
+       public function setCookie( $name, $value, $attr ) {
+               /* cookies: case insensitive, so this should work.
+                * We'll still send the cookies back in the same case we got them, though.
+                */
+               $index = strtoupper( $name );
+
+               if ( isset( $this->cookie[$index] ) ) {
+                       $this->cookie[$index]->set( $value, $attr );
+               } else {
+                       $this->cookie[$index] = new Cookie( $name, $value, $attr );
+               }
+       }
+
+       /**
+        * @see Cookie::serializeToHttpRequest
+        * @param string $path
+        * @param string $domain
+        * @return string
+        */
+       public function serializeToHttpRequest( $path, $domain ) {
+               $cookies = array();
+
+               foreach ( $this->cookie as $c ) {
+                       $serialized = $c->serializeToHttpRequest( $path, $domain );
+
+                       if ( $serialized ) {
+                               $cookies[] = $serialized;
+                       }
+               }
+
+               return implode( '; ', $cookies );
+       }
+
+       /**
+        * Parse the content of an Set-Cookie HTTP Response header.
+        *
+        * @param string $cookie
+        * @param string $domain Cookie's domain
+        * @return null
+        */
+       public function parseCookieResponseHeader( $cookie, $domain ) {
+               $len = strlen( 'Set-Cookie:' );
+
+               if ( substr_compare( 'Set-Cookie:', $cookie, 0, $len, true ) === 0 ) {
+                       $cookie = substr( $cookie, $len );
+               }
+
+               $bit = array_map( 'trim', explode( ';', $cookie ) );
+
+               if ( count( $bit ) >= 1 ) {
+                       list( $name, $value ) = explode( '=', array_shift( $bit ), 2 );
+                       $attr = array();
+
+                       foreach ( $bit as $piece ) {
+                               $parts = explode( '=', $piece );
+                               if ( count( $parts ) > 1 ) {
+                                       $attr[strtolower( $parts[0] )] = $parts[1];
+                               } else {
+                                       $attr[strtolower( $parts[0] )] = true;
+                               }
+                       }
+
+                       if ( !isset( $attr['domain'] ) ) {
+                               $attr['domain'] = $domain;
+                       } elseif ( !Cookie::validateCookieDomain( $attr['domain'], $domain ) ) {
+                               return null;
+                       }
+
+                       $this->setCookie( $name, $value, $attr );
+               }
+       }
+}
diff --git a/includes/libs/ObjectFactory.php b/includes/libs/ObjectFactory.php
new file mode 100644 (file)
index 0000000..ee696c3
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * Construct objects from configuration instructions.
+ *
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class ObjectFactory {
+
+       /**
+        * Instantiate an object based on a specification array.
+        *
+        * The specification array must contain a 'class' key with string value
+        * that specifies the class name to instantiate or a 'factory' key with
+        * a callable (is_callable() === true). It can optionally contain
+        * an 'args' key that provides arguments to pass to the
+        * constructor/callable.
+        *
+        * Object construction using a specification having both 'class' and
+        * 'args' members will call the constructor of the class using
+        * ReflectionClass::newInstanceArgs. The use of ReflectionClass carries
+        * a performance penalty and should not be used to create large numbers of
+        * objects. If this is needed, consider introducing a factory method that
+        * can be called via call_user_func_array() instead.
+        *
+        * Values in the arguments collection which are Closure instances will be
+        * expanded by invoking them with no arguments before passing the
+        * resulting value on to the constructor/callable. This can be used to
+        * pass DatabaseBase instances or other live objects to the
+        * constructor/callable.
+        *
+        * @param array $spec Object specification
+        * @return object
+        * @throws InvalidArgumentException when object specification does not
+        * contain 'class' or 'factory' keys
+        * @throws ReflectionException when 'args' are supplied and 'class'
+        * constructor is non-public or non-existant
+        */
+       public static function getObjectFromSpec( $spec ) {
+               $args = isset( $spec['args'] ) ? $spec['args'] : array();
+
+               $args = array_map( function ( $value ) {
+                       if ( is_object( $value ) && $value instanceof Closure ) {
+                               // If an argument is a Closure, call it.
+                               return $value();
+                       } else {
+                               return $value;
+                       }
+               }, $args );
+
+               if ( isset( $spec['class'] ) ) {
+                       $clazz = $spec['class'];
+                       if ( !$args ) {
+                               $obj = new $clazz();
+                       } else {
+                               $ref = new ReflectionClass( $clazz );
+                               $obj = $ref->newInstanceArgs( $args );
+                       }
+               } elseif ( isset( $spec['factory'] ) ) {
+                       $obj = call_user_func_array( $spec['factory'], $args );
+               } else {
+                       throw new InvalidArgumentException(
+                               'Provided specification lacks both factory and class parameters.'
+                       );
+               }
+
+               return $obj;
+       }
+}
index ed0382c..99cf399 100644 (file)
@@ -1017,7 +1017,7 @@ class JSParser
 
                        case KEYWORD_CATCH:
                        case KEYWORD_FINALLY:
-                               throw $this->t->newSyntaxError($tt + ' without preceding try');
+                               throw $this->t->newSyntaxError($tt . ' without preceding try');
 
                        case KEYWORD_THROW:
                                $n = new JSNode($this->t);
old mode 100644 (file)
new mode 100755 (executable)
index 70f1f1a..5d11f84 100644 (file)
@@ -535,13 +535,29 @@ class LogEventsList extends ContextSource {
                        $pager->mLimit = $lim;
                }
 
-               $logBody = $pager->getBody();
+               $logBody = null;
+               // Check if we can avoid the DB query all together
+               if ( $page !== '' && !$param['useMaster'] ) {
+                       $title = ( $page instanceof Title ) ? $page : Title::newFromText( $page );
+                       if ( $title ) {
+                               $member = $title->getNamespace() . ':' . $title->getDBkey();
+                               if ( !BloomCache::get( 'main' )->check( wfWikiId(), 'TitleHasLogs', $member ) ) {
+                                       $logBody = '';
+                               }
+                       } else {
+                               $logBody = '';
+                       }
+               }
+
+               // Fetch the log rows and build the HTML if needed
+               $logBody = ( $logBody === null ) ? $pager->getBody() : $logBody;
+
                $s = '';
 
                if ( $logBody ) {
                        if ( $msgKey[0] ) {
                                $dir = $context->getLanguage()->getDir();
-                               $lang = $context->getLanguage()->getCode();
+                               $lang = $context->getLanguage()->getHtmlCode();
 
                                $s = Xml::openElement( 'div', array(
                                        'class' => "mw-warning-with-logexcerpt mw-content-$dir",
index 48a565f..bbe2f42 100644 (file)
@@ -322,6 +322,12 @@ class LogFormatter {
                                                break;
                                }
                                break;
+
+                       case 'merge':
+                               $text = wfMessage( 'pagemerge-logentry' )
+                                       ->rawParams( $target, $parameters['4::dest'], $parameters['5::mergepoint'] )
+                                       ->inContentLanguage()->escaped();
+                               break;
                        // case 'suppress' --private log -- aaron  (so we know who to blame in a few years :-D)
                        // default:
                }
@@ -791,26 +797,6 @@ class LegacyLogFormatter extends LogFormatter {
 
                        return $this->msg( 'parentheses' )->rawParams(
                                $this->context->getLanguage()->pipeList( $links ) )->escaped();
-               // Show unmerge link
-               } elseif ( $type == 'merge' && $subtype == 'merge' ) {
-                       if ( !$this->context->getUser()->isAllowed( 'mergehistory' ) ) {
-                               return '';
-                       }
-
-                       $params = $this->extractParameters();
-                       $revert = Linker::linkKnown(
-                               SpecialPage::getTitleFor( 'MergeHistory' ),
-                               $this->msg( 'revertmerge' )->escaped(),
-                               array(),
-                               array(
-                                       'target' => $params[3],
-                                       'dest' => $title->getPrefixedDBkey(),
-                                       'mergepoint' => $params[4],
-                                       'submitted' => 1 // show the revisions immediately
-                               )
-                       );
-
-                       return $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                }
 
                // Do nothing. The implementation is handled by the hook modifiying the
index b0b23ba..d576d74 100644 (file)
@@ -382,19 +382,6 @@ class LogPage {
                                                . Linker::userToolLinks( $id, $title->getText(), false, Linker::TOOL_LINKS_NOBLOCK );
                                }
                                break;
-                       case 'merge':
-                               $titleLink = Linker::link(
-                                       $title,
-                                       $title->getPrefixedText(),
-                                       array(),
-                                       array( 'redirect' => 'no' )
-                               );
-                               $params[0] = Linker::link(
-                                       Title::newFromText( $params[0] ),
-                                       htmlspecialchars( $params[0] )
-                               );
-                               $params[1] = $lang->timeanddate( $params[1] );
-                               break;
                        default:
                                if ( $title->isSpecialPage() ) {
                                        list( $name, $par ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
diff --git a/includes/logging/MergeLogFormatter.php b/includes/logging/MergeLogFormatter.php
new file mode 100644 (file)
index 0000000..263d37a
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Formatter for merge log entries.
+ *
+ * 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
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ * @since 1.25
+ */
+
+/**
+ * This class formats merge log entries.
+ *
+ * @since 1.25
+ */
+class MergeLogFormatter extends LogFormatter {
+       public function getPreloadTitles() {
+               $params = $this->extractParameters();
+
+               return array( Title::newFromText( $params[3] ) );
+       }
+
+       protected function getMessageParameters() {
+               $params = parent::getMessageParameters();
+               $oldname = $this->makePageLink( $this->entry->getTarget(), array( 'redirect' => 'no' ) );
+               $newname = $this->makePageLink( Title::newFromText( $params[3] ) );
+               $params[2] = Message::rawParam( $oldname );
+               $params[3] = Message::rawParam( $newname );
+               $params[4] = $this->context->getLanguage()->timeanddate( $params[4] );
+               return $params;
+       }
+
+       public function getActionLinks() {
+               if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
+                       || !$this->context->getUser()->isAllowed( 'mergehistory' )
+               ) {
+                       return '';
+               }
+
+               // Show unmerge link
+               $params = $this->extractParameters();
+               $revert = Linker::linkKnown(
+                       SpecialPage::getTitleFor( 'MergeHistory' ),
+                       $this->msg( 'revertmerge' )->escaped(),
+                       array(),
+                       array(
+                               'target' => $params[3],
+                               'dest' => $this->entry->getTarget()->getPrefixedDBkey(),
+                               'mergepoint' => $params[4],
+                               'submitted' => 1 // show the revisions immediately
+                       )
+               );
+
+               return $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
+       }
+}
index 6e50a8c..06a0865 100644 (file)
@@ -65,7 +65,7 @@ class HashBagOStuff extends BagOStuff {
                        return false;
                }
 
-               $casToken = serialize( $this->bag[$key][0] );
+               $casToken = $this->bag[$key][0];
 
                return $this->bag[$key][0];
        }
@@ -89,7 +89,7 @@ class HashBagOStuff extends BagOStuff {
         * @return bool
         */
        function cas( $casToken, $key, $value, $exptime = 0 ) {
-               if ( serialize( $this->get( $key ) ) === $casToken ) {
+               if ( $this->get( $key ) === $casToken ) {
                        return $this->set( $key, $value, $exptime );
                }
 
index 53edcdd..0e133a8 100644 (file)
@@ -145,7 +145,7 @@ class MemcachedBagOStuff extends BagOStuff {
         * TTLs higher than 30 days will be detected as absolute TTLs
         * (UNIX timestamps), and will result in the cache entry being
         * discarded immediately because the expiry is in the past.
-        * Clamp expiries >30d at 30d, unless they're >=1e9 in which
+        * Clamp expires >30d at 30d, unless they're >=1e9 in which
         * case they are likely to really be absolute (1e9 = 2011-09-09)
         * @param int $expiry
         * @return int
index 5872079..3585e57 100644 (file)
@@ -322,9 +322,7 @@ class SqlBagOStuff extends BagOStuff {
                        if ( $exptime == 0 ) {
                                $encExpiry = $this->getMaxDateTime( $db );
                        } else {
-                               if ( $exptime < 3.16e8 ) { # ~10 years
-                                       $exptime += time();
-                               }
+                               $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
                        foreach ( $serverKeys as $tableName => $tableKeys ) {
@@ -377,10 +375,7 @@ class SqlBagOStuff extends BagOStuff {
                        if ( $exptime == 0 ) {
                                $encExpiry = $this->getMaxDateTime( $db );
                        } else {
-                               if ( $exptime < 3.16e8 ) { # ~10 years
-                                       $exptime += time();
-                               }
-
+                               $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
                        // (bug 24425) use a replace if the db supports it instead of
@@ -421,9 +416,7 @@ class SqlBagOStuff extends BagOStuff {
                        if ( $exptime == 0 ) {
                                $encExpiry = $this->getMaxDateTime( $db );
                        } else {
-                               if ( $exptime < 3.16e8 ) { # ~10 years
-                                       $exptime += time();
-                               }
+                               $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
                        // (bug 24425) use a replace if the db supports it instead of
@@ -621,7 +614,8 @@ class SqlBagOStuff extends BagOStuff {
                                                                if ( $remainingSeconds > $totalSeconds ) {
                                                                        $totalSeconds = $remainingSeconds;
                                                                }
-                                                               $percent = ( $i + $remainingSeconds / $totalSeconds )
+                                                               $processedSeconds = $totalSeconds - $remainingSeconds;
+                                                               $percent = ( $i + $processedSeconds / $totalSeconds )
                                                                        / $this->shards * 100;
                                                        }
                                                        $percent = ( $percent / $this->numServers )
@@ -638,6 +632,11 @@ class SqlBagOStuff extends BagOStuff {
                return true;
        }
 
+       /**
+        * Delete content of shard tables in every server.
+        * Return true if the operation is successful, false otherwise.
+        * @return bool
+        */
        public function deleteAll() {
                for ( $serverIndex = 0; $serverIndex < $this->numServers; $serverIndex++ ) {
                        try {
index 96e315f..cf53f1d 100644 (file)
@@ -1218,7 +1218,8 @@ class Article implements Page {
                        if ( !( $user && $user->isLoggedIn() ) && !$ip ) { # User does not exist
                                $outputPage->wrapWikiMsg( "<div class=\"mw-userpage-userdoesnotexist error\">\n\$1\n</div>",
                                        array( 'userpage-userdoesnotexist-view', wfEscapeWikiText( $rootPart ) ) );
-                       } elseif ( !is_null( $block ) && $block->getType() != Block::TYPE_AUTO ) { # Show log extract if the user is currently blocked
+                       } elseif ( !is_null( $block ) && $block->getType() != Block::TYPE_AUTO ) {
+                               # Show log extract if the user is currently blocked
                                LogEventsList::showLogExtract(
                                        $outputPage,
                                        'block',
@@ -1247,16 +1248,12 @@ class Article implements Page {
                wfRunHooks( 'Article::MissingArticleConditions', array( &$conds, $logTypes ) );
 
                # Show delete and move logs
-               $member = $title->getNamespace() . ':' . $title->getDBkey();
-               // @todo: move optimization to showLogExtract()?
-               if ( BloomCache::get( 'main' )->check( wfWikiId(), 'TitleHasLogs', $member ) ) {
-                       LogEventsList::showLogExtract( $outputPage, $logTypes, $title, '',
-                               array( 'lim' => 10,
-                                       'conds' => $conds,
-                                       'showIfEmpty' => false,
-                                       'msgKey' => array( 'moveddeleted-notice' ) )
-                       );
-               }
+               LogEventsList::showLogExtract( $outputPage, $logTypes, $title, '',
+                       array( 'lim' => 10,
+                               'conds' => $conds,
+                               'showIfEmpty' => false,
+                               'msgKey' => array( 'moveddeleted-notice' ) )
+               );
 
                if ( !$this->mPage->hasViewableContent() && $wgSend404Code && !$validUserPage ) {
                        // If there's no backing content, send a 404 Not Found
@@ -1381,9 +1378,14 @@ class Article implements Page {
                        : 'revision-info';
 
                $outputPage = $this->getContext()->getOutput();
-               $outputPage->addSubtitle( "<div id=\"mw-{$infomsg}\">" . wfMessage( $infomsg,
-                       $td )->rawParams( $userlinks )->params( $revision->getID(), $tddate,
-                       $tdtime, $revision->getUserText() )->rawParams( Linker::revComment( $revision, true, true ) )->parse() . "</div>" );
+               $outputPage->addSubtitle( "<div id=\"mw-{$infomsg}\">" .
+                       wfMessage( $infomsg, $td )
+                               ->rawParams( $userlinks )
+                               ->params( $revision->getID(), $tddate, $tdtime, $revision->getUserText() )
+                               ->rawParams( Linker::revComment( $revision, true, true ) )
+                               ->parse() .
+                       "</div>"
+               );
 
                $lnk = $current
                        ? wfMessage( 'currentrevisionlink' )->escaped()
@@ -1631,10 +1633,11 @@ class Article implements Page {
                if ( $hasHistory ) {
                        $title = $this->getTitle();
 
-                       // The following can use the real revision count as this is only being shown for users that can delete
-                       // this page.
-                       // This, as a side-effect, also makes sure that the following query isn't being run for pages with a
-                       // larger history, unless the user has the 'bigdelete' right (and is about to delete this page).
+                       // The following can use the real revision count as this is only being shown for users
+                       // that can delete this page.
+                       // This, as a side-effect, also makes sure that the following query isn't being run for
+                       // pages with a larger history, unless the user has the 'bigdelete' right
+                       // (and is about to delete this page).
                        $dbr = wfGetDB( DB_SLAVE );
                        $revisions = $edits = (int)$dbr->selectField(
                                'revision',
@@ -1644,7 +1647,8 @@ class Article implements Page {
                        );
 
                        // @todo FIXME: i18n issue/patchwork message
-                       $this->getContext()->getOutput()->addHTML( '<strong class="mw-delete-warning-revisions">' .
+                       $this->getContext()->getOutput()->addHTML(
+                               '<strong class="mw-delete-warning-revisions">' .
                                wfMessage( 'historywarning' )->numParams( $revisions )->parse() .
                                wfMessage( 'word-separator' )->plain() . Linker::linkKnown( $title,
                                        wfMessage( 'history' )->escaped(),
@@ -1799,6 +1803,9 @@ class Article implements Page {
                        $loglink = '[[Special:Log/delete|' . wfMessage( 'deletionlog' )->text() . ']]';
 
                        $outputPage->addWikiMsg( 'deletedtext', wfEscapeWikiText( $deleted ), $loglink );
+
+                       wfRunHooks( 'ArticleDeleteAfterSuccess', array( $this->getTitle(), $outputPage ) );
+
                        $outputPage->returnToMain( false );
                } else {
                        $outputPage->setPageTitle(
index 9ade16e..61f0504 100644 (file)
@@ -88,11 +88,6 @@ class WikiPage implements Page, IDBAccessObject {
         */
        protected $mLinksUpdated = '19700101000000';
 
-       /**
-        * @var int|null
-        */
-       protected $mCounter = null;
-
        /**
         * Constructor and clear the article
         * @param Title $title Reference to a Title object.
@@ -247,7 +242,6 @@ class WikiPage implements Page, IDBAccessObject {
         */
        protected function clearCacheFields() {
                $this->mId = null;
-               $this->mCounter = null;
                $this->mRedirectTarget = null; // Title object if set
                $this->mLastRevision = null; // Latest revision
                $this->mTouched = '19700101000000';
@@ -284,7 +278,6 @@ class WikiPage implements Page, IDBAccessObject {
                        'page_namespace',
                        'page_title',
                        'page_restrictions',
-                       'page_counter',
                        'page_is_redirect',
                        'page_is_new',
                        'page_random',
@@ -352,8 +345,7 @@ class WikiPage implements Page, IDBAccessObject {
        }
 
        /**
-        * Set the general counter, title etc data loaded from
-        * some source.
+        * Load the object from a given source by title
         *
         * @param object|string|int $from One of the following:
         *   - A DB query result object.
@@ -419,7 +411,6 @@ class WikiPage implements Page, IDBAccessObject {
                        $this->mTitle->loadRestrictions( $data->page_restrictions );
 
                        $this->mId = intval( $data->page_id );
-                       $this->mCounter = intval( $data->page_counter );
                        $this->mTouched = wfTimestamp( TS_MW, $data->page_touched );
                        $this->mLinksUpdated = wfTimestampOrNull( TS_MW, $data->page_links_updated );
                        $this->mIsRedirect = intval( $data->page_is_redirect );
@@ -476,17 +467,6 @@ class WikiPage implements Page, IDBAccessObject {
                return $this->exists() || $this->mTitle->isAlwaysKnown();
        }
 
-       /**
-        * @return int The view count for the page
-        */
-       public function getCount() {
-               if ( !$this->mDataLoaded ) {
-                       $this->loadPageData();
-               }
-
-               return $this->mCounter;
-       }
-
        /**
         * Tests if the article content represents a redirect
         *
@@ -1183,17 +1163,10 @@ class WikiPage implements Page, IDBAccessObject {
         * @param int $oldid The revision id being viewed. If not given or 0, latest revision is assumed.
         */
        public function doViewUpdates( User $user, $oldid = 0 ) {
-               global $wgDisableCounters;
                if ( wfReadOnly() ) {
                        return;
                }
 
-               // Don't update page view counters on views from bot users (bug 14044)
-               if ( !$wgDisableCounters && !$user->isAllowed( 'bot' ) && $this->exists() ) {
-                       DeferredUpdates::addUpdate( new ViewCountUpdate( $this->getId() ) );
-                       DeferredUpdates::addUpdate( new SiteStatsUpdate( 1, 0, 0 ) );
-               }
-
                // Update newtalk / watchlist notification status
                $user->clearNotification( $this->mTitle, $oldid );
        }
@@ -1262,7 +1235,6 @@ class WikiPage implements Page, IDBAccessObject {
                        'page_id'           => $page_id,
                        'page_namespace'    => $this->mTitle->getNamespace(),
                        'page_title'        => $this->mTitle->getDBkey(),
-                       'page_counter'      => 0,
                        'page_restrictions' => '',
                        'page_is_redirect'  => 0, // Will set this shortly...
                        'page_is_new'       => 1,
@@ -2168,6 +2140,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @param array $options Array of options, following indexes are used:
         * - changed: boolean, whether the revision changed the content (default true)
         * - created: boolean, whether the revision created the page (default false)
+        * - moved: boolean, whether the page was moved (default false)
         * - oldcountable: boolean or null (default null):
         *   - boolean: whether the page was counted as an article before that
         *     revision, only used in changed is true and created is false
@@ -2178,7 +2151,12 @@ class WikiPage implements Page, IDBAccessObject {
 
                wfProfileIn( __METHOD__ );
 
-               $options += array( 'changed' => true, 'created' => false, 'oldcountable' => null );
+               $options += array(
+                       'changed' => true,
+                       'created' => false,
+                       'moved' => false,
+                       'oldcountable' => null
+               );
                $content = $revision->getContent();
 
                // Parse the text
@@ -2227,7 +2205,7 @@ class WikiPage implements Page, IDBAccessObject {
                $title = $this->mTitle->getPrefixedDBkey();
                $shortTitle = $this->mTitle->getDBkey();
 
-               if ( !$options['changed'] ) {
+               if ( !$options['changed'] && !$options['moved'] ) {
                        $good = 0;
                } elseif ( $options['created'] ) {
                        $good = (int)$this->isCountable( $editInfo );
index 355a3c1..d9f1761 100644 (file)
@@ -44,7 +44,7 @@ class CoreParserFunctions {
                        'canonicalurle', 'formatnum', 'grammar', 'gender', 'plural',
                        'numberofpages', 'numberofusers', 'numberofactiveusers',
                        'numberofarticles', 'numberoffiles', 'numberofadmins',
-                       'numberingroup', 'numberofedits', 'numberofviews', 'language',
+                       'numberingroup', 'numberofedits', 'language',
                        'padleft', 'padright', 'anchorencode', 'defaultsort', 'filepath',
                        'pagesincategory', 'pagesize', 'protectionlevel',
                        'namespacee', 'namespacenumber', 'talkspace', 'talkspacee',
@@ -379,8 +379,7 @@ class CoreParserFunctions {
                $text = $parser->doQuotes( $text );
 
                // remove stripped text (e.g. the UNIQ-QINU stuff) that was generated by tag extensions/whatever
-               $text = preg_replace( '/' . preg_quote( $parser->uniqPrefix(), '/' ) . '.*?'
-                       . preg_quote( Parser::MARKER_SUFFIX, '/' ) . '/', '', $text );
+               $text = $parser->killMarkers( $text );
 
                // list of disallowed tags for DISPLAYTITLE
                // these will be escaped even though they are allowed in normal wiki text
@@ -489,10 +488,6 @@ class CoreParserFunctions {
        public static function numberofedits( $parser, $raw = null ) {
                return self::formatRaw( SiteStats::edits(), $raw );
        }
-       public static function numberofviews( $parser, $raw = null ) {
-               global $wgDisableCounters;
-               return !$wgDisableCounters ? self::formatRaw( SiteStats::views(), $raw ) : '';
-       }
        public static function pagesinnamespace( $parser, $namespace = 0, $raw = null ) {
                return self::formatRaw( SiteStats::pagesInNs( intval( $namespace ) ), $raw );
        }
index 85920cc..9755ea9 100644 (file)
@@ -35,6 +35,7 @@ class CoreTagHooks {
                $parser->setHook( 'pre', array( __CLASS__, 'pre' ) );
                $parser->setHook( 'nowiki', array( __CLASS__, 'nowiki' ) );
                $parser->setHook( 'gallery', array( __CLASS__, 'gallery' ) );
+               $parser->setHook( 'indicator', array( __CLASS__, 'indicator' ) );
                if ( $wgRawHtml ) {
                        $parser->setHook( 'html', array( __CLASS__, 'html' ) );
                }
@@ -119,4 +120,30 @@ class CoreTagHooks {
        public static function gallery( $content, $attributes, $parser ) {
                return $parser->renderImageGallery( $content, $attributes );
        }
+
+       /**
+        * XML-style tag for page status indicators: icons (or short text snippets) usually displayed in
+        * the top-right corner of the page, outside of the main content.
+        *
+        * @param string $content
+        * @param array $attributes
+        * @param Parser $parser
+        * @param PPFrame $frame
+        * @return string
+        * @since 1.25
+        */
+       public static function indicator( $content, array $attributes, Parser $parser, PPFrame $frame ) {
+               if ( !isset( $attributes['name'] ) || trim( $attributes['name'] ) === '' ) {
+                       return '<span class="error">' .
+                               wfMessage( 'invalid-indicator-name' )->inContentLanguage()->parse() .
+                               '</span>';
+               }
+
+               $parser->getOutput()->setIndicator(
+                       trim( $attributes['name'] ),
+                       Parser::stripOuterParagraph( $parser->recursiveTagParseFully( $content, $frame ) )
+               );
+
+               return '';
+       }
 }
index ddd1f9a..e6486ff 100644 (file)
@@ -389,7 +389,7 @@ class Parser {
                 * to internalParse() which does all the real work.
                 */
 
-               global $wgUseTidy, $wgAlwaysUseTidy, $wgShowHostnames;
+               global $wgShowHostnames;
                $fname = __METHOD__ . '-' . wfGetCaller();
                wfProfileIn( __METHOD__ );
                wfProfileIn( $fname );
@@ -430,40 +430,7 @@ class Parser {
                $text = $this->internalParse( $text );
                wfRunHooks( 'ParserAfterParse', array( &$this, &$text, &$this->mStripState ) );
 
-               $text = $this->mStripState->unstripGeneral( $text );
-
-               # Clean up special characters, only run once, next-to-last before doBlockLevels
-               $fixtags = array(
-                       # french spaces, last one Guillemet-left
-                       # only if there is something before the space
-                       '/(.) (?=\\?|:|;|!|%|\\302\\273)/' => '\\1&#160;',
-                       # french spaces, Guillemet-right
-                       '/(\\302\\253) /' => '\\1&#160;',
-                       '/&#160;(!\s*important)/' => ' \\1', # Beware of CSS magic word !important, bug #11874.
-               );
-               $text = preg_replace( array_keys( $fixtags ), array_values( $fixtags ), $text );
-
-               $text = $this->doBlockLevels( $text, $linestart );
-
-               $this->replaceLinkHolders( $text );
-
-               /**
-                * The input doesn't get language converted if
-                * a) It's disabled
-                * b) Content isn't converted
-                * c) It's a conversion table
-                * d) it is an interface message (which is in the user language)
-                */
-               if ( !( $options->getDisableContentConversion()
-                       || isset( $this->mDoubleUnderscores['nocontentconvert'] ) )
-               ) {
-                       if ( !$this->mOptions->getInterfaceMessage() ) {
-                               # The position of the convert() call should not be changed. it
-                               # assumes that the links are all replaced and the only thing left
-                               # is the <nowiki> mark.
-                               $text = $this->getConverterLanguage()->convert( $text );
-                       }
-               }
+               $text = $this->internalParseHalfParsed( $text, true, $linestart );
 
                /**
                 * A converted title will be provided in the output object if title and
@@ -486,45 +453,6 @@ class Parser {
                        }
                }
 
-               $text = $this->mStripState->unstripNoWiki( $text );
-
-               wfRunHooks( 'ParserBeforeTidy', array( &$this, &$text ) );
-
-               $text = $this->replaceTransparentTags( $text );
-               $text = $this->mStripState->unstripGeneral( $text );
-
-               $text = Sanitizer::normalizeCharReferences( $text );
-
-               if ( ( $wgUseTidy && $this->mOptions->getTidy() ) || $wgAlwaysUseTidy ) {
-                       $text = MWTidy::tidy( $text );
-               } else {
-                       # attempt to sanitize at least some nesting problems
-                       # (bug #2702 and quite a few others)
-                       $tidyregs = array(
-                               # ''Something [http://www.cool.com cool''] -->
-                               # <i>Something</i><a href="http://www.cool.com"..><i>cool></i></a>
-                               '/(<([bi])>)(<([bi])>)?([^<]*)(<\/?a[^<]*>)([^<]*)(<\/\\4>)?(<\/\\2>)/' =>
-                               '\\1\\3\\5\\8\\9\\6\\1\\3\\7\\8\\9',
-                               # fix up an anchor inside another anchor, only
-                               # at least for a single single nested link (bug 3695)
-                               '/(<a[^>]+>)([^<]*)(<a[^>]+>[^<]*)<\/a>(.*)<\/a>/' =>
-                               '\\1\\2</a>\\3</a>\\1\\4</a>',
-                               # fix div inside inline elements- doBlockLevels won't wrap a line which
-                               # contains a div, so fix it up here; replace
-                               # div with escaped text
-                               '/(<([aib]) [^>]+>)([^<]*)(<div([^>]*)>)(.*)(<\/div>)([^<]*)(<\/\\2>)/' =>
-                               '\\1\\3&lt;div\\5&gt;\\6&lt;/div&gt;\\8\\9',
-                               # remove empty italic or bold tag pairs, some
-                               # introduced by rules above
-                               '/<([bi])><\/\\1>/' => '',
-                       );
-
-                       $text = preg_replace(
-                               array_keys( $tidyregs ),
-                               array_values( $tidyregs ),
-                               $text );
-               }
-
                if ( $this->mExpensiveFunctionCount > $this->mOptions->getExpensiveParserFunctionLimit() ) {
                        $this->limitationWarn( 'expensive-parserfunction',
                                $this->mExpensiveFunctionCount,
@@ -532,8 +460,6 @@ class Parser {
                        );
                }
 
-               wfRunHooks( 'ParserAfterTidy', array( &$this, &$text ) );
-
                # Information on include size limits, for the benefit of users who try to skirt them
                if ( $this->mOptions->getEnableLimitReport() ) {
                        $max = $this->mOptions->getMaxIncludeSize();
@@ -621,15 +547,26 @@ class Parser {
        }
 
        /**
-        * Recursive parser entry point that can be called from an extension tag
-        * hook.
+        * Half-parse wikitext to half-parsed HTML. This recursive parser entry point
+        * can be called from an extension tag hook.
+        *
+        * The output of this function IS NOT SAFE PARSED HTML; it is "half-parsed"
+        * instead, which means that lists and links have not been fully parsed yet,
+        * and strip markers are still present.
         *
-        * If $frame is not provided, then template variables (e.g., {{{1}}}) within $text are not expanded
+        * Use recursiveTagParseFully() to fully parse wikitext to output-safe HTML.
+        *
+        * Use this function if you're a parser tag hook and you want to parse
+        * wikitext before or after applying additional transformations, and you
+        * intend to *return the result as hook output*, which will cause it to go
+        * through the rest of parsing process automatically.
+        *
+        * If $frame is not provided, then template variables (e.g., {{{1}}}) within
+        * $text are not expanded
         *
         * @param string $text Text extension wants to have parsed
         * @param bool|PPFrame $frame The frame to use for expanding any template variables
-        *
-        * @return string
+        * @return string UNSAFE half-parsed HTML
         */
        public function recursiveTagParse( $text, $frame = false ) {
                wfProfileIn( __METHOD__ );
@@ -640,6 +577,31 @@ class Parser {
                return $text;
        }
 
+       /**
+        * Fully parse wikitext to fully parsed HTML. This recursive parser entry
+        * point can be called from an extension tag hook.
+        *
+        * The output of this function is fully-parsed HTML that is safe for output.
+        * If you're a parser tag hook, you might want to use recursiveTagParse()
+        * instead.
+        *
+        * If $frame is not provided, then template variables (e.g., {{{1}}}) within
+        * $text are not expanded
+        *
+        * @since 1.25
+        *
+        * @param string $text Text extension wants to have parsed
+        * @param bool|PPFrame $frame The frame to use for expanding any template variables
+        * @return string Fully parsed HTML
+        */
+       public function recursiveTagParseFully( $text, $frame = false ) {
+               wfProfileIn( __METHOD__ );
+               $text = $this->recursiveTagParse( $text, $frame );
+               $text = $this->internalParseHalfParsed( $text, false );
+               wfProfileOut( __METHOD__ );
+               return $text;
+       }
+
        /**
         * Expand templates and variables in the text, producing valid, static wikitext.
         * Also removes comments.
@@ -1227,7 +1189,7 @@ class Parser {
        }
 
        /**
-        * Helper function for parse() that transforms wiki markup into
+        * Helper function for parse() that transforms wiki markup into half-parsed
         * HTML. Only called for $mOutputType == self::OT_HTML.
         *
         * @private
@@ -1300,6 +1262,101 @@ class Parser {
                return $text;
        }
 
+       /**
+        * Helper function for parse() that transforms half-parsed HTML into fully
+        * parsed HTML.
+        *
+        * @param string $text
+        * @param bool $isMain
+        * @param bool $linestart
+        * @return string
+        */
+       private function internalParseHalfParsed( $text, $isMain = true, $linestart = true ) {
+               global $wgUseTidy, $wgAlwaysUseTidy;
+
+               $text = $this->mStripState->unstripGeneral( $text );
+
+               # Clean up special characters, only run once, next-to-last before doBlockLevels
+               $fixtags = array(
+                       # french spaces, last one Guillemet-left
+                       # only if there is something before the space
+                       '/(.) (?=\\?|:|;|!|%|\\302\\273)/' => '\\1&#160;',
+                       # french spaces, Guillemet-right
+                       '/(\\302\\253) /' => '\\1&#160;',
+                       '/&#160;(!\s*important)/' => ' \\1', # Beware of CSS magic word !important, bug #11874.
+               );
+               $text = preg_replace( array_keys( $fixtags ), array_values( $fixtags ), $text );
+
+               $text = $this->doBlockLevels( $text, $linestart );
+
+               $this->replaceLinkHolders( $text );
+
+               /**
+                * The input doesn't get language converted if
+                * a) It's disabled
+                * b) Content isn't converted
+                * c) It's a conversion table
+                * d) it is an interface message (which is in the user language)
+                */
+               if ( !( $this->mOptions->getDisableContentConversion()
+                       || isset( $this->mDoubleUnderscores['nocontentconvert'] ) )
+               ) {
+                       if ( !$this->mOptions->getInterfaceMessage() ) {
+                               # The position of the convert() call should not be changed. it
+                               # assumes that the links are all replaced and the only thing left
+                               # is the <nowiki> mark.
+                               $text = $this->getConverterLanguage()->convert( $text );
+                       }
+               }
+
+               $text = $this->mStripState->unstripNoWiki( $text );
+
+               if ( $isMain ) {
+                       wfRunHooks( 'ParserBeforeTidy', array( &$this, &$text ) );
+               }
+
+               $text = $this->replaceTransparentTags( $text );
+               $text = $this->mStripState->unstripGeneral( $text );
+
+               $text = Sanitizer::normalizeCharReferences( $text );
+
+               if ( ( $wgUseTidy && $this->mOptions->getTidy() ) || $wgAlwaysUseTidy ) {
+                       $text = MWTidy::tidy( $text );
+               } else {
+                       # attempt to sanitize at least some nesting problems
+                       # (bug #2702 and quite a few others)
+                       $tidyregs = array(
+                               # ''Something [http://www.cool.com cool''] -->
+                               # <i>Something</i><a href="http://www.cool.com"..><i>cool></i></a>
+                               '/(<([bi])>)(<([bi])>)?([^<]*)(<\/?a[^<]*>)([^<]*)(<\/\\4>)?(<\/\\2>)/' =>
+                               '\\1\\3\\5\\8\\9\\6\\1\\3\\7\\8\\9',
+                               # fix up an anchor inside another anchor, only
+                               # at least for a single single nested link (bug 3695)
+                               '/(<a[^>]+>)([^<]*)(<a[^>]+>[^<]*)<\/a>(.*)<\/a>/' =>
+                               '\\1\\2</a>\\3</a>\\1\\4</a>',
+                               # fix div inside inline elements- doBlockLevels won't wrap a line which
+                               # contains a div, so fix it up here; replace
+                               # div with escaped text
+                               '/(<([aib]) [^>]+>)([^<]*)(<div([^>]*)>)(.*)(<\/div>)([^<]*)(<\/\\2>)/' =>
+                               '\\1\\3&lt;div\\5&gt;\\6&lt;/div&gt;\\8\\9',
+                               # remove empty italic or bold tag pairs, some
+                               # introduced by rules above
+                               '/<([bi])><\/\\1>/' => '',
+                       );
+
+                       $text = preg_replace(
+                               array_keys( $tidyregs ),
+                               array_values( $tidyregs ),
+                               $text );
+               }
+
+               if ( $isMain ) {
+                       wfRunHooks( 'ParserAfterTidy', array( &$this, &$text ) );
+               }
+
+               return $text;
+       }
+
        /**
         * Replace special strings like "ISBN xxx" and "RFC xxx" with
         * magic external links.
@@ -2594,11 +2651,11 @@ class Parser {
                                        $t
                                );
 
-                               if ( $openmatch or $closematch ) {
+                               if ( $openmatch || $closematch ) {
                                        $paragraphStack = false;
                                        # @todo bug 5718: paragraph closed
                                        $output .= $this->closeParagraph();
-                                       if ( $preOpenMatch and !$preCloseMatch ) {
+                                       if ( $preOpenMatch && !$preCloseMatch ) {
                                                $this->mInPre = true;
                                        }
                                        $bqOffset = 0;
@@ -3155,10 +3212,6 @@ class Parser {
                        case 'numberofedits':
                                $value = $pageLang->formatNum( SiteStats::edits() );
                                break;
-                       case 'numberofviews':
-                               global $wgDisableCounters;
-                               $value = !$wgDisableCounters ? $pageLang->formatNum( SiteStats::views() ) : '';
-                               break;
                        case 'currenttimestamp':
                                $value = wfTimestamp( TS_MW, $ts );
                                break;
index 43e8d0b..428e7b2 100644 (file)
@@ -25,6 +25,7 @@ class ParserOutput extends CacheTime {
        public $mText,                       # The output text
                $mLanguageLinks,              # List of the full text of language links, in the order they appear
                $mCategories,                 # Map of category names to sort keys
+               $mIndicators = array(),       # Page status indicators, usually displayed in top-right corner
                $mTitleText,                  # title text of the chosen language variant
                $mLinks = array(),            # 2-D map of NS/DBK to ID for the links in the document. ID=zero for broken.
                $mTemplates = array(),        # 2-D map of NS/DBK to ID for the template references. ID=zero for broken.
@@ -130,6 +131,13 @@ class ParserOutput extends CacheTime {
                return $this->mCategories;
        }
 
+       /**
+        * @since 1.25
+        */
+       public function getIndicators() {
+               return $this->mIndicators;
+       }
+
        public function getTitleText() {
                return $this->mTitleText;
        }
@@ -267,6 +275,13 @@ class ParserOutput extends CacheTime {
                $this->mCategories[$c] = $sort;
        }
 
+       /**
+        * @since 1.25
+        */
+       public function setIndicator( $id, $content ) {
+               $this->mIndicators[$id] = $content;
+       }
+
        public function addLanguageLink( $t ) {
                $this->mLanguageLinks[] = $t;
        }
index 2edb79a..2cce574 100644 (file)
@@ -1043,11 +1043,17 @@ class PPFrame_DOM implements PPFrame {
                                        // Numbered parameter
                                        $index = $nameNodes->item( 0 )->attributes->getNamedItem( 'index' )->textContent;
                                        $index = $index - $indexOffset;
+                                       if ( isset( $namedArgs[$index] ) || isset( $numberedArgs[$index] ) ) {
+                                               $this->parser->addTrackingCategory( 'duplicate-args-category' );
+                                       }
                                        $numberedArgs[$index] = $value->item( 0 );
                                        unset( $namedArgs[$index] );
                                } else {
                                        // Named parameter
                                        $name = trim( $this->expand( $nameNodes->item( 0 ), PPFrame::STRIP_COMMENTS ) );
+                                       if ( isset( $namedArgs[$name] ) || isset( $numberedArgs[$name] ) ) {
+                                               $this->parser->addTrackingCategory( 'duplicate-args-category' );
+                                       }
                                        $namedArgs[$name] = $value->item( 0 );
                                        unset( $numberedArgs[$name] );
                                }
index 6376396..b4b14dc 100644 (file)
@@ -985,11 +985,17 @@ class PPFrame_Hash implements PPFrame {
                                if ( $bits['index'] !== '' ) {
                                        // Numbered parameter
                                        $index = $bits['index'] - $indexOffset;
+                                       if ( isset( $namedArgs[$index] ) || isset( $numberedArgs[$index] ) ) {
+                                               $this->parser->addTrackingCategory( 'duplicate-args-category' );
+                                       }
                                        $numberedArgs[$index] = $bits['value'];
                                        unset( $namedArgs[$index] );
                                } else {
                                        // Named parameter
                                        $name = trim( $this->expand( $bits['name'], PPFrame::STRIP_COMMENTS ) );
+                                       if ( isset( $namedArgs[$name] ) || isset( $numberedArgs[$name] ) ) {
+                                               $this->parser->addTrackingCategory( 'duplicate-args-category' );
+                                       }
                                        $namedArgs[$name] = $bits['value'];
                                        unset( $numberedArgs[$name] );
                                }
index 0ba407f..afa5cac 100644 (file)
@@ -38,7 +38,7 @@ class MWOldPassword extends ParameterizedPassword {
        public function crypt( $plaintext ) {
                global $wgPasswordSalt;
 
-               if ( $wgPasswordSalt && count( $this->args ) == 1 ) {
+               if ( $wgPasswordSalt && count( $this->args ) === 1 ) {
                        $this->hash = md5( $this->args[0] . '-' . md5( $plaintext ) );
                } else {
                        $this->args = array();
index 4d6e415..187f895 100644 (file)
@@ -83,10 +83,14 @@ abstract class ParameterizedPassword extends Password {
        }
 
        public function toString() {
-               return
-                       ':' . $this->config['type'] . ':' .
-                       implode( $this->getDelimiter(), array_merge( $this->params, $this->args ) ) .
-                       $this->getDelimiter() . $this->hash;
+               $str = ':' . $this->config['type'] . ':';
+
+               if ( count( $this->params ) || count( $this->args ) ) {
+                       $str .= implode( $this->getDelimiter(), array_merge( $this->params, $this->args ) );
+                       $str .= $this->getDelimiter();
+               }
+
+               return $str . $this->hash;
        }
 
        /**
index 48d6866..86a3fef 100644 (file)
@@ -68,6 +68,15 @@ final class PasswordFactory {
                $this->default = $type;
        }
 
+       /**
+        * Get the default password type
+        *
+        * @return string
+        */
+       public function getDefaultType() {
+               return $this->default;
+       }
+
        /**
         * Initialize the internal static variables using the global variables
         *
diff --git a/includes/profiler/ProfileSection.php b/includes/profiler/ProfileSection.php
new file mode 100644 (file)
index 0000000..ca80ebc
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Function scope profiling assistant
+ *
+ * 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 Profiler
+ */
+
+/**
+ * Class for handling function-scope profiling
+ *
+ * @since 1.22
+ */
+class ProfileSection {
+       /** @var string $name Method name */
+       protected $name;
+       /** @var boolean $enabled Is profiling enabled? */
+       protected $enabled = false;
+
+       /**
+        * Begin profiling of a function and return an object that ends profiling
+        * of the function when that object leaves scope. As long as the object is
+        * not specifically linked to other objects, it will fall out of scope at
+        * the same moment that the function to be profiled terminates.
+        *
+        * This is typically called like:
+        * <code>$section = new ProfileSection( __METHOD__ );</code>
+        *
+        * @param string $name Name of the function to profile
+        */
+       public function __construct( $name ) {
+               $this->name = $name;
+               // Use Profiler member variable directly to reduce overhead
+               if ( Profiler::$__instance === null ) {
+                       Profiler::instance();
+               }
+               if ( !( Profiler::$__instance instanceof ProfilerStub ) ) {
+                       $this->enabled = true;
+                       Profiler::$__instance->profileIn( $this->name );
+               }
+       }
+
+       function __destruct() {
+               if ( $this->enabled ) {
+                       Profiler::$__instance->profileOut( $this->name );
+               }
+       }
+}
index 418b5d4..4629691 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Base class and functions for profiling.
+ * Base class for profiling.
  *
  * 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
  */
 
 /**
- * Get system resource usage of current request context.
- * Invokes the getrusage(2) system call, requesting RUSAGE_SELF if on PHP5
- * or RUSAGE_THREAD if on HHVM. Returns false if getrusage is not available.
- *
- * @since 1.24
- * @return array|bool Resource usage data or false if no data available.
- */
-function wfGetRusage() {
-       if ( !function_exists( 'getrusage' ) ) {
-               return false;
-       } elseif ( defined ( 'HHVM_VERSION' ) ) {
-               return getrusage( 2 /* RUSAGE_THREAD */ );
-       } else {
-               return getrusage( 0 /* RUSAGE_SELF */ );
-       }
-}
-
-/**
- * Begin profiling of a function
- * @param string $functionname Name of the function we will profile
- */
-function wfProfileIn( $functionname ) {
-       if ( Profiler::$__instance === null ) { // use this directly to reduce overhead
-               Profiler::instance();
-       }
-       if ( !( Profiler::$__instance instanceof ProfilerStub ) ) {
-               Profiler::$__instance->profileIn( $functionname );
-       }
-}
-
-/**
- * Stop profiling of a function
- * @param string $functionname Name of the function we have profiled
- */
-function wfProfileOut( $functionname = 'missing' ) {
-       if ( Profiler::$__instance === null ) { // use this directly to reduce overhead
-               Profiler::instance();
-       }
-       if ( !( Profiler::$__instance instanceof ProfilerStub ) ) {
-               Profiler::$__instance->profileOut( $functionname );
-       }
-}
-
-/**
- * Class for handling function-scope profiling
- *
- * @since 1.22
- */
-class ProfileSection {
-       protected $name; // string; method name
-       protected $enabled = false; // boolean; whether profiling is enabled
-
-       /**
-        * Begin profiling of a function and return an object that ends profiling of
-        * the function when that object leaves scope. As long as the object is not
-        * specifically linked to other objects, it will fall out of scope at the same
-        * moment that the function to be profiled terminates.
-        *
-        * This is typically called like:
-        * <code>$section = new ProfileSection( __METHOD__ );</code>
-        *
-        * @param string $name Name of the function to profile
-        */
-       public function __construct( $name ) {
-               $this->name = $name;
-               if ( Profiler::$__instance === null ) { // use this directly to reduce overhead
-                       Profiler::instance();
-               }
-               if ( !( Profiler::$__instance instanceof ProfilerStub ) ) {
-                       $this->enabled = true;
-                       Profiler::$__instance->profileIn( $this->name );
-               }
-       }
-
-       function __destruct() {
-               if ( $this->enabled ) {
-                       Profiler::$__instance->profileOut( $this->name );
-               }
-       }
-}
-
-/**
- * Profiler base class that defines the interface and some trivial functionality
+ * Profiler base class that defines the interface and some trivial
+ * functionality
  *
  * @ingroup Profiler
  */
@@ -143,14 +62,10 @@ abstract class Profiler {
                        if ( is_array( $wgProfiler ) ) {
                                if ( !isset( $wgProfiler['class'] ) ) {
                                        $class = 'ProfilerStub';
-                               } elseif ( $wgProfiler['class'] === 'Profiler' ) {
-                                       $class = 'ProfilerStub'; // b/c; don't explode
                                } else {
                                        $class = $wgProfiler['class'];
                                }
                                self::$__instance = new $class( $wgProfiler );
-                       } elseif ( $wgProfiler instanceof Profiler ) {
-                               self::$__instance = $wgProfiler; // back-compat
                        } else {
                                self::$__instance = new ProfilerStub( array() );
                        }
@@ -158,14 +73,6 @@ abstract class Profiler {
                return self::$__instance;
        }
 
-       /**
-        * Set the profiler to a specific profiler instance. Mostly for dumpHTML
-        * @param Profiler $p
-        */
-       final public static function setInstance( Profiler $p ) {
-               self::$__instance = $p;
-       }
-
        /**
         * Return whether this a stub profiler
         *
@@ -218,31 +125,11 @@ abstract class Profiler {
        abstract public function profileOut( $functionname );
 
        /**
-        * Mark a DB as in a transaction with one or more writes pending
-        *
-        * Note that there can be multiple connections to a single DB.
-        *
-        * @param string $server DB server
-        * @param string $db DB name
-        * @param string $id Resource ID string of connection
+        * @return TransactionProfiler
+        * @since 1.25
         */
-       public function transactionWritingIn( $server, $db, $id = '' ) {
-               $this->trxProfiler->transactionWritingIn( $server, $db, $id );
-       }
-
-       /**
-        * Mark a DB as no longer in a transaction
-        *
-        * This will check if locks are possibly held for longer than
-        * needed and log any affected transactions to a special DB log.
-        * Note that there can be multiple connections to a single DB.
-        *
-        * @param string $server DB server
-        * @param string $db DB name
-        * @param string $id Resource ID string of connection
-        */
-       public function transactionWritingOut( $server, $db, $id = '' ) {
-               $this->trxProfiler->transactionWritingOut( $server, $db, $id );
+       public function getTransactionProfiler() {
+               return $this->trxProfiler;
        }
 
        /**
@@ -363,107 +250,3 @@ abstract class Profiler {
                }
        }
 }
-
-/**
- * Helper class that detects high-contention DB queries via profiling calls
- *
- * This class is meant to work with a Profiler, as the later already knows
- * when methods start and finish (which may take place during transactions).
- *
- * @since 1.24
- */
-class TransactionProfiler {
-       /** @var float Seconds */
-       protected $mDBLockThreshold = 3.0;
-       /** @var array DB/server name => (active trx count, time, DBs involved) */
-       protected $mDBTrxHoldingLocks = array();
-       /** @var array DB/server name => list of (function name, elapsed time) */
-       protected $mDBTrxMethodTimes = array();
-
-       /**
-        * Mark a DB as in a transaction with one or more writes pending
-        *
-        * Note that there can be multiple connections to a single DB.
-        *
-        * @param string $server DB server
-        * @param string $db DB name
-        * @param string $id ID string of transaction
-        */
-       public function transactionWritingIn( $server, $db, $id ) {
-               $name = "{$server} ({$db}) (TRX#$id)";
-               if ( isset( $this->mDBTrxHoldingLocks[$name] ) ) {
-                       wfDebugLog( 'DBPerformance', "Nested transaction for '$name' - out of sync." );
-               }
-               $this->mDBTrxHoldingLocks[$name] =
-                       array( 'start' => microtime( true ), 'conns' => array() );
-               $this->mDBTrxMethodTimes[$name] = array();
-
-               foreach ( $this->mDBTrxHoldingLocks as $name => &$info ) {
-                       $info['conns'][$name] = 1; // track all DBs in transactions for this transaction
-               }
-       }
-
-       /**
-        * Register the name and time of a method for slow DB trx detection
-        *
-        * This method is only to be called by the Profiler class as methods finish
-        *
-        * @param string $method Function name
-        * @param float $realtime Wal time ellapsed
-        */
-       public function recordFunctionCompletion( $method, $realtime ) {
-               if ( !$this->mDBTrxHoldingLocks ) {
-                       return; // short-circuit
-               // @todo hardcoded check is a tad janky (what about FOR UPDATE?)
-               } elseif ( !preg_match( '/^query-m: (?!SELECT)/', $method )
-                       && $realtime < $this->mDBLockThreshold
-               ) {
-                       return; // not a DB master query nor slow enough
-               }
-               $now = microtime( true );
-               foreach ( $this->mDBTrxHoldingLocks as $name => $info ) {
-                       // Hacky check to exclude entries from before the first TRX write
-                       if ( ( $now - $realtime ) >= $info['start'] ) {
-                               $this->mDBTrxMethodTimes[$name][] = array( $method, $realtime );
-                       }
-               }
-       }
-
-       /**
-        * Mark a DB as no longer in a transaction
-        *
-        * This will check if locks are possibly held for longer than
-        * needed and log any affected transactions to a special DB log.
-        * Note that there can be multiple connections to a single DB.
-        *
-        * @param string $server DB server
-        * @param string $db DB name
-        * @param string $id ID string of transaction
-        */
-       public function transactionWritingOut( $server, $db, $id ) {
-               $name = "{$server} ({$db}) (TRX#$id)";
-               if ( !isset( $this->mDBTrxMethodTimes[$name] ) ) {
-                       wfDebugLog( 'DBPerformance', "Detected no transaction for '$name' - out of sync." );
-                       return;
-               }
-               $slow = false;
-               foreach ( $this->mDBTrxMethodTimes[$name] as $info ) {
-                       $realtime = $info[1];
-                       if ( $realtime >= $this->mDBLockThreshold ) {
-                               $slow = true;
-                               break;
-                       }
-               }
-               if ( $slow ) {
-                       $dbs = implode( ', ', array_keys( $this->mDBTrxHoldingLocks[$name]['conns'] ) );
-                       $msg = "Sub-optimal transaction on DB(s) [{$dbs}]:\n";
-                       foreach ( $this->mDBTrxMethodTimes[$name] as $i => $info ) {
-                               list( $method, $realtime ) = $info;
-                               $msg .= sprintf( "%d\t%.6f\t%s\n", $i, $realtime, $method );
-                       }
-                       wfDebugLog( 'DBPerformance', $msg );
-               }
-               unset( $this->mDBTrxHoldingLocks[$name] );
-               unset( $this->mDBTrxMethodTimes[$name] );
-       }
-}
diff --git a/includes/profiler/ProfilerFunctions.php b/includes/profiler/ProfilerFunctions.php
new file mode 100644 (file)
index 0000000..a0d5943
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Core profiling functions. Have to exist before basically anything.
+ *
+ * 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 Profiler
+ */
+
+/**
+ * Get system resource usage of current request context.
+ * Invokes the getrusage(2) system call, requesting RUSAGE_SELF if on PHP5
+ * or RUSAGE_THREAD if on HHVM. Returns false if getrusage is not available.
+ *
+ * @since 1.24
+ * @return array|bool Resource usage data or false if no data available.
+ */
+function wfGetRusage() {
+       if ( !function_exists( 'getrusage' ) ) {
+               return false;
+       } elseif ( defined ( 'HHVM_VERSION' ) ) {
+               return getrusage( 2 /* RUSAGE_THREAD */ );
+       } else {
+               return getrusage( 0 /* RUSAGE_SELF */ );
+       }
+}
+
+/**
+ * Begin profiling of a function
+ * @param string $functionname Name of the function we will profile
+ */
+function wfProfileIn( $functionname ) {
+       // Use Profiler member variable directly to reduce overhead
+       if ( Profiler::$__instance === null ) {
+               Profiler::instance();
+       }
+       if ( !( Profiler::$__instance instanceof ProfilerStub ) ) {
+               Profiler::$__instance->profileIn( $functionname );
+       }
+}
+
+/**
+ * Stop profiling of a function
+ * @param string $functionname Name of the function we have profiled
+ */
+function wfProfileOut( $functionname = 'missing' ) {
+       // Use Profiler member variable directly to reduce overhead
+       if ( Profiler::$__instance === null ) {
+               Profiler::instance();
+       }
+       if ( !( Profiler::$__instance instanceof ProfilerStub ) ) {
+               Profiler::$__instance->profileOut( $functionname );
+       }
+}
diff --git a/includes/profiler/ProfilerMwprof.php b/includes/profiler/ProfilerMwprof.php
deleted file mode 100644 (file)
index af3c774..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-/**
- * Profiler class for Mwprof.
- *
- * 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 Profiler
- */
-
-/**
- * Profiler class for Mwprof.
- *
- * Mwprof is a high-performance MediaWiki profiling data collector, designed to
- * collect profiling data from multiple hosts running in tandem. This class
- * serializes profiling samples into MessagePack arrays and sends them to an
- * Mwprof instance via UDP.
- *
- * @see https://github.com/wikimedia/operations-software-mwprof
- * @since 1.23
- */
-class ProfilerMwprof extends Profiler {
-       /** @var array Queue of open profile calls with start data */
-       protected $mWorkStack = array();
-
-       /** @var array Map of (function name => aggregate data array) */
-       protected $mCollated = array();
-       /** @var array Cache of a standard broken collation entry */
-       protected $mErrorEntry;
-
-       // Message types
-       const TYPE_SINGLE = 1;
-       const TYPE_RUNNING = 2;
-
-       public function isStub() {
-               return false;
-       }
-
-       public function isPersistent() {
-               return true;
-       }
-
-       /**
-        * Start a profiling section.
-        *
-        * Marks the beginning of the function or code-block that should be time
-        * and logged under some specific name.
-        *
-        * @param string $inName Section to start
-        */
-       public function profileIn( $inName ) {
-               $this->mWorkStack[] = array( $inName, count( $this->mWorkStack ),
-                       $this->getTime(), $this->getTime( 'cpu' ), 0 );
-       }
-
-       /**
-        * Close a profiling section.
-        *
-        * Marks the end of the function or code-block that should be timed and
-        * logged under some specific name.
-        *
-        * @param string $outName Section to close
-        */
-       public function profileOut( $outName ) {
-               list( $inName, $inCount, $inWall, $inCpu ) = array_pop( $this->mWorkStack );
-
-               // Check for unbalanced profileIn / profileOut calls.
-               // Bad entries are logged but not sent.
-               if ( $inName !== $outName ) {
-                       $this->debugGroup( 'ProfilerUnbalanced', json_encode( array( $inName, $outName ) ) );
-                       return;
-               }
-
-               $elapsedCpu = $this->getTime( 'cpu' ) - $inCpu;
-               $elapsedWall = $this->getTime() - $inWall;
-               $this->updateRunningEntry( $outName, $elapsedCpu, $elapsedWall );
-               $this->trxProfiler->recordFunctionCompletion( $outName, $elapsedWall );
-       }
-
-       /**
-        * Update an entry with timing data.
-        *
-        * @param string $name Section name
-        * @param float $elapsedCpu Elapsed CPU time
-        * @param float $elapsedWall Elapsed wall-clock time
-        */
-       public function updateRunningEntry( $name, $elapsedCpu, $elapsedWall ) {
-               // If this is the first measurement for this entry, store plain values.
-               // Many profiled functions will only be called once per request.
-               if ( !isset( $this->mCollated[$name] ) ) {
-                       $this->mCollated[$name] = array(
-                               'cpu'   => $elapsedCpu,
-                               'wall'  => $elapsedWall,
-                               'count' => 1,
-                       );
-                       return;
-               }
-
-               $entry = &$this->mCollated[$name];
-
-               // If it's the second measurement, convert the plain values to
-               // RunningStat instances, so we can push the incoming values on top.
-               if ( $entry['count'] === 1 ) {
-                       $cpu = new RunningStat();
-                       $cpu->push( $entry['cpu'] );
-                       $entry['cpu'] = $cpu;
-
-                       $wall = new RunningStat();
-                       $wall->push( $entry['wall'] );
-                       $entry['wall'] = $wall;
-               }
-
-               $entry['count']++;
-               $entry['cpu']->push( $elapsedCpu );
-               $entry['wall']->push( $elapsedWall );
-       }
-
-       /**
-        * @return array
-        */
-       public function getRawData() {
-               // This method is called before shutdown in the footer method on Skins.
-               // If some outer methods have not yet called wfProfileOut(), work around
-               // that by clearing anything in the work stack to just the "-total" entry.
-               if ( count( $this->mWorkStack ) > 1 ) {
-                       $oldWorkStack = $this->mWorkStack;
-                       $this->mWorkStack = array( $this->mWorkStack[0] ); // just the "-total" one
-               } else {
-                       $oldWorkStack = null;
-               }
-               $this->close();
-               // If this trick is used, then the old work stack is swapped back afterwards.
-               // This means that logData() will still make use of all the method data since
-               // the missing wfProfileOut() calls should be made by the time it is called.
-               if ( $oldWorkStack ) {
-                       $this->mWorkStack = $oldWorkStack;
-               }
-
-               $totalWall = 0.0;
-               $profile = array();
-               foreach ( $this->mCollated as $fname => $data ) {
-                       if ( $data['count'] == 1 ) {
-                               $profile[] = array(
-                                       'name' => $fname,
-                                       'calls' => $data['count'],
-                                       'elapsed' => $data['wall'] * 1000,
-                                       'memory' => 0, // not supported
-                                       'min' => $data['wall'] * 1000,
-                                       'max' => $data['wall'] * 1000,
-                                       'overhead' => 0, // not supported
-                                       'periods' => array() // not supported
-                               );
-                               $totalWall += $data['wall'];
-                       } else {
-                               $profile[] = array(
-                                       'name' => $fname,
-                                       'calls' => $data['count'],
-                                       'elapsed' => $data['wall']->n * $data['wall']->getMean() * 1000,
-                                       'memory' => 0, // not supported
-                                       'min' => $data['wall']->min * 1000,
-                                       'max' => $data['wall']->max * 1000,
-                                       'overhead' => 0, // not supported
-                                       'periods' => array() // not supported
-                               );
-                               $totalWall += $data['wall']->n * $data['wall']->getMean();
-                       }
-               }
-               $totalWall = $totalWall * 1000;
-
-               foreach ( $profile as &$item ) {
-                       $item['percent'] = $totalWall ? 100 * $item['elapsed'] / $totalWall : 0;
-               }
-
-               return $profile;
-       }
-
-       /**
-        * Serialize profiling data and send to a profiling data aggregator.
-        *
-        * Individual entries are represented as arrays and then encoded using
-        * MessagePack, an efficient binary data-interchange format. Encoded
-        * entries are accumulated into a buffer and sent in batch via UDP to the
-        * profiling data aggregator.
-        */
-       public function logData() {
-               global $wgUDPProfilerHost, $wgUDPProfilerPort;
-
-               $this->close();
-
-               if ( !function_exists( 'socket_create' ) ) {
-                       return; // avoid fatal
-               }
-
-               $sock = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );
-               socket_connect( $sock, $wgUDPProfilerHost, $wgUDPProfilerPort );
-               $bufferLength = 0;
-               $buffer = '';
-               foreach ( $this->mCollated as $name => $entry ) {
-                       $count = $entry['count'];
-                       $cpu = $entry['cpu'];
-                       $wall = $entry['wall'];
-
-                       if ( $count === 1 ) {
-                               $data = array( self::TYPE_SINGLE, $name, $cpu, $wall );
-                       } else {
-                               $data = array( self::TYPE_RUNNING, $name, $count,
-                                       $cpu->m1, $cpu->m2, $cpu->min, $cpu->max,
-                                       $wall->m1, $wall->m2, $wall->min, $wall->max );
-                       }
-
-                       $encoded = MWMessagePack::pack( $data );
-                       $length = strlen( $encoded );
-
-                       // If adding this entry would cause the size of the buffer to
-                       // exceed the standard ethernet MTU size less the UDP header,
-                       // send all pending data and reset the buffer. Otherwise, continue
-                       // accumulating entries into the current buffer.
-                       if ( $length + $bufferLength > 1450 ) {
-                               socket_send( $sock, $buffer, $bufferLength, 0 );
-                               $buffer = '';
-                               $bufferLength = 0;
-                       }
-                       $buffer .= $encoded;
-                       $bufferLength += $length;
-               }
-               if ( $bufferLength !== 0 ) {
-                       socket_send( $sock, $buffer, $bufferLength, 0 );
-               }
-       }
-
-       /**
-        * Close opened profiling sections
-        */
-       public function close() {
-               while ( count( $this->mWorkStack ) ) {
-                       $this->profileOut( 'close' );
-               }
-       }
-
-       public function getOutput() {
-               return ''; // no report
-       }
-}
index 7ef0ad0..5e62f7c 100644 (file)
  * @ingroup Profiler
  */
 class ProfilerSimpleDB extends ProfilerStandard {
-       protected function collateOnly() {
-               return true;
-       }
-
        public function isPersistent() {
                return true;
        }
index 0ee7aad..d020d1f 100644 (file)
@@ -33,7 +33,6 @@
  */
 class ProfilerSimpleText extends ProfilerStandard {
        public $visible = false; /* Show as <PRE> or <!-- ? */
-       static private $out;
 
        public function __construct( $profileConfig ) {
                if ( isset( $profileConfig['visible'] ) && $profileConfig['visible'] ) {
@@ -42,41 +41,41 @@ class ProfilerSimpleText extends ProfilerStandard {
                parent::__construct( $profileConfig );
        }
 
-       protected function collateOnly() {
-               return true;
-       }
-
        public function logData() {
+               $out = '';
                if ( $this->mTemplated ) {
                        $this->close();
                        $totalReal = isset( $this->mCollated['-total'] )
                                ? $this->mCollated['-total']['real']
                                : 0; // profiling mismatch error?
-                       uasort( $this->mCollated, array( 'self', 'sort' ) );
-                       array_walk( $this->mCollated, array( 'self', 'format' ), $totalReal );
+
+                       uasort( $this->mCollated, function( $a, $b ) {
+                               // sort descending by time elapsed
+                               return $a['real'] < $b['real'];
+                       } );
+
+                       array_walk( $this->mCollated,
+                               function( $item, $key ) use ( &$out, $totalReal ) {
+                                       $perc = $totalReal ? $item['real'] / $totalReal * 100 : 0;
+                                       $out .= sprintf( "%6.2f%% %3.6f %6d - %s\n",
+                                               $perc, $item['real'], $item['count'], $key );
+                               }
+                       );
+
+                       $contentType = $this->getContentType();
                        if ( PHP_SAPI === 'cli' ) {
-                               print "<!--\n" . self::$out . "\n-->\n";
-                       } elseif ( $this->getContentType() === 'text/html' ) {
+                               print "<!--\n{$out}\n-->\n";
+                       } elseif ( $contentType === 'text/html' ) {
                                if ( $this->visible ) {
-                                       print '<pre>' . self::$out . '</pre>';
+                                       print "<pre>{$out}</pre>";
                                } else {
-                                       print "<!--\n" . self::$out . "\n-->\n";
+                                       print "<!--\n{$out}\n-->\n";
                                }
-                       } elseif ( $this->getContentType() === 'text/javascript' ) {
-                               print "\n/*\n" . self::$out . "*/\n";
-                       } elseif ( $this->getContentType() === 'text/css' ) {
-                               print "\n/*\n" . self::$out . "*/\n";
+                       } elseif ( $contentType === 'text/javascript' ) {
+                               print "\n/*\n${$out}*/\n";
+                       } elseif ( $contentType === 'text/css' ) {
+                               print "\n/*\n{$out}*/\n";
                        }
                }
        }
-
-       static function sort( $a, $b ) {
-               return $a['real'] < $b['real']; /* sort descending by time elapsed */
-       }
-
-       static function format( $item, $key, $totalReal ) {
-               $perc = $totalReal ? $item['real'] / $totalReal * 100 : 0;
-               self::$out .= sprintf( "%6.2f%% %3.6f %6d - %s\n",
-                       $perc, $item['real'], $item['count'], $key );
-       }
 }
index 2a44494..0dd4067 100644 (file)
@@ -30,10 +30,6 @@ class ProfilerSimpleTrace extends ProfilerStandard {
        protected $trace = "Beginning trace: \n";
        protected $memory = 0;
 
-       protected function collateOnly() {
-               return true;
-       }
-
        public function profileIn( $functionname ) {
                parent::profileIn( $functionname );
 
@@ -71,13 +67,14 @@ class ProfilerSimpleTrace extends ProfilerStandard {
 
        public function logData() {
                if ( $this->mTemplated ) {
+                       $contentType = $this->getContentType();
                        if ( PHP_SAPI === 'cli' ) {
                                print "<!-- \n {$this->trace} \n -->";
-                       } elseif ( $this->getContentType() === 'text/html' ) {
+                       } elseif ( $contentType === 'text/html' ) {
                                print "<!-- \n {$this->trace} \n -->";
-                       } elseif ( $this->getContentType() === 'text/javascript' ) {
+                       } elseif ( $contentType === 'text/javascript' ) {
                                print "\n/*\n {$this->trace}\n*/";
-                       } elseif ( $this->getContentType() === 'text/css' ) {
+                       } elseif ( $contentType === 'text/css' ) {
                                print "\n/*\n {$this->trace}\n*/";
                        }
                }
index 627b4de..02405af 100644 (file)
  * @ingroup Profiler
  */
 class ProfilerSimpleUDP extends ProfilerStandard {
-       protected function collateOnly() {
-               return true;
-       }
-
        public function isPersistent() {
                return true;
        }
index cc13416..ea13bfb 100644 (file)
@@ -40,8 +40,8 @@ class ProfilerStandard extends Profiler {
        protected $mCollated = array();
        /** @var bool */
        protected $mCollateDone = false;
-       /** @var bool */
-       protected $mCollateOnly = false;
+       /** @var bool Whether to collect the full stack trace or just aggregates */
+       protected $mCollateOnly = true;
        /** @var array Cache of a standard broken collation entry */
        protected $mErrorEntry;
 
@@ -51,8 +51,6 @@ class ProfilerStandard extends Profiler {
        public function __construct( array $params ) {
                parent::__construct( $params );
 
-               $this->mCollateOnly = $this->collateOnly();
-
                $this->addInitialStack();
        }
 
@@ -75,18 +73,6 @@ class ProfilerStandard extends Profiler {
                return false;
        }
 
-       /**
-        * Whether to internally just track aggregates and ignore the full stack trace
-        *
-        * Only doing collation saves memory overhead but limits the use of certain
-        * features like that of graph generation for the debug toolbar.
-        *
-        * @return bool
-        */
-       protected function collateOnly() {
-               return false;
-       }
-
        /**
         * Add the inital item in the stack.
         */
@@ -245,7 +231,6 @@ class ProfilerStandard extends Profiler {
                                $this->mStack[] = array_merge( $item,
                                        array( $realTime, $cpuTime,     memory_get_usage() ) );
                        }
-                       $this->trxProfiler->recordFunctionCompletion( $functionname, $realTime - $ortime );
                }
        }
 
index 1d3b65d..e81f579 100644 (file)
@@ -54,12 +54,6 @@ class ProfilerStub extends Profiler {
                return '';
        }
 
-       public function transactionWritingIn( $server, $db, $id = '' ) {
-       }
-
-       public function transactionWritingOut( $server, $db, $id = '' ) {
-       }
-
        public function getRawData() {
                return array();
        }
diff --git a/includes/profiler/TransactionProfiler.php b/includes/profiler/TransactionProfiler.php
new file mode 100644 (file)
index 0000000..91b7bb7
--- /dev/null
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Transaction profiling.
+ *
+ * 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 Profiler
+ * @author Aaron Schulz
+ */
+
+/**
+ * Helper class that detects high-contention DB queries via profiling calls
+ *
+ * This class is meant to work with a Profiler, as the later already knows
+ * when methods start and finish (which may take place during transactions).
+ *
+ * @since 1.24
+ */
+class TransactionProfiler {
+       /** @var float Seconds */
+       protected $mDBLockThreshold = 3.0;
+       /** @var array DB/server name => (active trx count, time, DBs involved) */
+       protected $mDBTrxHoldingLocks = array();
+       /** @var array DB/server name => list of (function name, elapsed time) */
+       protected $mDBTrxMethodTimes = array();
+
+       /**
+        * Mark a DB as in a transaction with one or more writes pending
+        *
+        * Note that there can be multiple connections to a single DB.
+        *
+        * @param string $server DB server
+        * @param string $db DB name
+        * @param string $id ID string of transaction
+        */
+       public function transactionWritingIn( $server, $db, $id ) {
+               $name = "{$server} ({$db}) (TRX#$id)";
+               if ( isset( $this->mDBTrxHoldingLocks[$name] ) ) {
+                       wfDebugLog( 'DBPerformance', "Nested transaction for '$name' - out of sync." );
+               }
+               $this->mDBTrxHoldingLocks[$name] = array(
+                       'start' => microtime( true ),
+                       'conns' => array(),
+               );
+               $this->mDBTrxMethodTimes[$name] = array();
+
+               foreach ( $this->mDBTrxHoldingLocks as $name => &$info ) {
+                       // Track all DBs in transactions for this transaction
+                       $info['conns'][$name] = 1;
+               }
+       }
+
+       /**
+        * Register the name and time of a method for slow DB trx detection
+        *
+        * This method is only to be called by the Profiler class as methods finish
+        *
+        * @param string $method Function name
+        * @param float $realtime Wall time ellapsed
+        */
+       public function recordFunctionCompletion( $method, $realtime ) {
+               if ( !$this->mDBTrxHoldingLocks ) {
+                       // Short-circuit
+                       return;
+               // @todo hardcoded check is a tad janky
+               } elseif ( !preg_match( '/^query-m: /', $method ) && $realtime < 1.0 ) {
+                       // Not a DB master query nor slow enough
+                       return;
+               }
+
+               $now = microtime( true );
+               foreach ( $this->mDBTrxHoldingLocks as $name => $info ) {
+                       // Hacky check to exclude entries from before the first TRX write
+                       if ( ( $now - $realtime ) >= $info['start'] ) {
+                               $this->mDBTrxMethodTimes[$name][] = array( $method, $realtime );
+                       }
+               }
+       }
+
+       /**
+        * Mark a DB as no longer in a transaction
+        *
+        * This will check if locks are possibly held for longer than
+        * needed and log any affected transactions to a special DB log.
+        * Note that there can be multiple connections to a single DB.
+        *
+        * @param string $server DB server
+        * @param string $db DB name
+        * @param string $id ID string of transaction
+        */
+       public function transactionWritingOut( $server, $db, $id ) {
+               $name = "{$server} ({$db}) (TRX#$id)";
+               if ( !isset( $this->mDBTrxMethodTimes[$name] ) ) {
+                       wfDebugLog( 'DBPerformance', "Detected no transaction for '$name' - out of sync." );
+                       return;
+               }
+               $slow = false;
+               foreach ( $this->mDBTrxMethodTimes[$name] as $info ) {
+                       $realtime = $info[1];
+                       if ( $realtime >= $this->mDBLockThreshold ) {
+                               $slow = true;
+                               break;
+                       }
+               }
+               if ( $slow ) {
+                       $dbs = implode( ', ', array_keys( $this->mDBTrxHoldingLocks[$name]['conns'] ) );
+                       $msg = "Sub-optimal transaction on DB(s) [{$dbs}]:\n";
+                       foreach ( $this->mDBTrxMethodTimes[$name] as $i => $info ) {
+                               list( $method, $realtime ) = $info;
+                               $msg .= sprintf( "%d\t%.6f\t%s\n", $i, $realtime, $method );
+                       }
+                       wfDebugLog( 'DBPerformance', $msg );
+               }
+               unset( $this->mDBTrxHoldingLocks[$name] );
+               unset( $this->mDBTrxMethodTimes[$name] );
+       }
+}
index d114d7e..5784f2a 100644 (file)
@@ -126,6 +126,7 @@ class DerivativeResourceLoaderContext extends ResourceLoaderContext {
        public function setUser( $user ) {
                $this->user = $user;
                $this->hash = null;
+               $this->userObj = null;
        }
 
        public function getDebug() {
index 57deb00..eecb936 100644 (file)
@@ -974,12 +974,20 @@ class ResourceLoader {
                                        case 'messages':
                                                $out .= self::makeMessageSetScript( new XmlJsCode( $messagesBlob ) );
                                                break;
+                                       case 'templates':
+                                               $out .= Xml::encodeJsCall(
+                                                       'mw.templates.set',
+                                                       array( $name, (object)$module->getTemplates() ),
+                                                       ResourceLoader::inDebugMode()
+                                               );
+                                               break;
                                        default:
                                                $out .= self::makeLoaderImplementScript(
                                                        $name,
                                                        $scripts,
                                                        $styles,
-                                                       new XmlJsCode( $messagesBlob )
+                                                       new XmlJsCode( $messagesBlob ),
+                                                       $module->getTemplates()
                                                );
                                                break;
                                }
@@ -1044,15 +1052,20 @@ class ResourceLoader {
         * @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.
+        * @param array $templates Keys are name of templates and values are the source of
+        *   the template.
         * @throws MWException
         * @return string
         */
-       public static function makeLoaderImplementScript( $name, $scripts, $styles, $messages ) {
+       public static function makeLoaderImplementScript( $name, $scripts, $styles,
+               $messages, $templates
+       ) {
                if ( is_string( $scripts ) ) {
                        $scripts = new XmlJsCode( "function ( $, jQuery ) {\n{$scripts}\n}" );
                } elseif ( !is_array( $scripts ) ) {
                        throw new MWException( 'Invalid scripts error. Array of URLs or string of code expected.' );
                }
+
                return Xml::encodeJsCall(
                        'mw.loader.implement',
                        array(
@@ -1064,7 +1077,8 @@ class ResourceLoader {
                                // PHP/json_encode() consider empty arrays to be numerical arrays and
                                // output javascript "[]" instead of "{}". This fixes that.
                                (object)$styles,
-                               (object)$messages
+                               (object)$messages,
+                               (object)$templates,
                        ),
                        ResourceLoader::inDebugMode()
                );
index 7af7b89..02744a6 100644 (file)
@@ -41,6 +41,7 @@ class ResourceLoaderContext {
        protected $version;
        protected $hash;
        protected $raw;
+       protected $userObj;
 
        /* Methods */
 
@@ -178,6 +179,31 @@ class ResourceLoaderContext {
                return $this->user;
        }
 
+       /**
+        * Get the possibly-cached User object for the specified username
+        *
+        * @since 1.25
+        * @return User|bool false if a valid object cannot be created
+        */
+       public function getUserObj() {
+               if ( $this->userObj === null ) {
+                       $username = $this->getUser();
+                       if ( $username ) {
+                               // Optimize: Avoid loading a new User object if possible
+                               global $wgUser;
+                               if ( is_object( $wgUser ) && $wgUser->getName() === $username ) {
+                                       $this->userObj = $wgUser;
+                               } else {
+                                       $this->userObj = User::newFromName( $username );
+                               }
+                       } else {
+                               $this->userObj = new User; // Anonymous user
+                       }
+               }
+
+               return $this->userObj;
+       }
+
        /**
         * @return bool
         */
index 7bbc9bb..bcef149 100644 (file)
@@ -34,6 +34,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /** @var string Remote base path, see __construct() */
        protected $remoteBasePath = '';
 
+       /** @var array Saves a list of the templates named by the modules. */
+       protected $templates = array();
+
        /**
         * @var array List of paths to JavaScript files to always include
         * @par Usage:
@@ -199,6 +202,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         *         'loaderScripts' => [file path string or array of file path strings],
         *         // Modules which must be loaded before this module
         *         'dependencies' => [module name string or array of module name strings],
+        *         'templates' => array(
+        *             [template alias with file.ext] => [file path to a template file],
+        *         ),
         *         // Styles to always load
         *         'styles' => [file path string or array of file path strings],
         *         // Styles to include in specific skin contexts
@@ -223,6 +229,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                $localBasePath = null,
                $remoteBasePath = null
        ) {
+               // Flag to decide whether to automagically add the mediawiki.template module
+               $hasTemplates = false;
                // localBasePath and remoteBasePath both have unbelievably long fallback chains
                // and need to be handled separately.
                list( $this->localBasePath, $this->remoteBasePath ) =
@@ -238,6 +246,10 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                                case 'styles':
                                        $this->{$member} = (array)$option;
                                        break;
+                               case 'templates':
+                                       $hasTemplates = true;
+                                       $this->{$member} = (array)$option;
+                                       break;
                                // Collated lists of file paths
                                case 'languageScripts':
                                case 'skinScripts':
@@ -281,6 +293,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                                        break;
                        }
                }
+               if ( $hasTemplates ) {
+                       $this->dependencies[] = 'mediawiki.template';
+               }
        }
 
        /**
@@ -535,6 +550,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                $files = array_merge(
                        $files,
                        $this->scripts,
+                       $this->templates,
                        $context->getDebug() ? $this->debugScripts : array(),
                        $this->getLanguageScripts( $context->getLanguage() ),
                        self::tryForKey( $this->skinScripts, $context->getSkin(), 'default' ),
@@ -590,6 +606,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        'dependencies',
                        'messages',
                        'targets',
+                       'templates',
                        'group',
                        'position',
                        'skipFunction',
@@ -959,4 +976,30 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        protected function getLessCompiler( ResourceLoaderContext $context = null ) {
                return ResourceLoader::getLessCompiler( $this->getConfig() );
        }
+
+       /**
+        * Takes named templates by the module and returns an array mapping.
+        *
+        * @return array of templates mapping template alias to content
+        */
+       public function getTemplates() {
+               $templates = array();
+
+               foreach ( $this->templates as $alias => $templatePath ) {
+                       // Alias is optional
+                       if ( is_int( $alias ) ) {
+                               $alias = $templatePath;
+                       }
+                       $localPath = $this->getLocalPath( $templatePath );
+                       if ( file_exists( $localPath ) ) {
+                               $content = file_get_contents( $localPath );
+                               $templates[$alias] = $content;
+                       } else {
+                               $msg = __METHOD__ . ": template file not found: \"$localPath\"";
+                               wfDebugLog( 'resourceloader', $msg );
+                               throw new MWException( $msg );
+                       }
+               }
+               return $templates;
+       }
 }
index 45eb70f..4c49fae 100644 (file)
@@ -134,6 +134,16 @@ abstract class ResourceLoaderModule {
                return '';
        }
 
+       /**
+        * Takes named templates by the module and returns an array mapping.
+        *
+        * @return array of templates mapping template alias to content
+        */
+       public function getTemplates() {
+               // Stub, override expected.
+               return array();
+       }
+
        /**
         * @return Config
         * @since 1.24
index 2f3d3f8..ee66288 100644 (file)
@@ -387,11 +387,20 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        $registrations = $this->getModuleRegistrations( $context );
                        // Fix indentation
                        $registrations = str_replace( "\n", "\n\t", trim( $registrations ) );
+                       $mwMapJsCall = Xml::encodeJsCall(
+                               'mw.Map',
+                               array( $this->getConfig()->get( 'LegacyJavaScriptGlobals' ) )
+                       );
+                       $mwConfigSetJsCall = Xml::encodeJsCall(
+                               'mw.config.set',
+                               array( $configuration )
+                       );
+
                        $out .= "var startUp = function () {\n" .
                                "\tmw.config = new " .
-                               Xml::encodeJsCall( 'mw.Map', array( $this->getConfig()->get( 'LegacyJavaScriptGlobals' ) ) ) . "\n" .
+                               $mwMapJsCall . "\n" .
                                "\t$registrations\n" .
-                               "\t" . Xml::encodeJsCall( 'mw.config.set', array( $configuration ) ) .
+                               "\t" . $mwConfigSetJsCall .
                                "};\n";
 
                        // Conditional script injection
index 40274c6..9d97eea 100644 (file)
@@ -42,8 +42,7 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
        public function getModifiedTime( ResourceLoaderContext $context ) {
                $hash = $context->getHash();
                if ( !isset( $this->modifiedTime[$hash] ) ) {
-                       global $wgUser;
-                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $wgUser->getTouched() );
+                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
                }
 
                return $this->modifiedTime[$hash];
@@ -54,13 +53,11 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
         * @return array
         */
        public function getStyles( ResourceLoaderContext $context ) {
-               global $wgUser;
-
                if ( !$this->getConfig()->get( 'AllowUserCssPrefs' ) ) {
                        return array();
                }
 
-               $options = $wgUser->getOptions();
+               $options = $context->getUserObj()->getOptions();
 
                // Build CSS rules
                $rules = array();
index 7cf1942..ee350cf 100644 (file)
@@ -37,27 +37,15 @@ class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule {
         * @return array
         */
        protected function getPages( ResourceLoaderContext $context ) {
-               global $wgUser;
-
-               $userName = $context->getUser();
-               if ( $userName === null ) {
-                       return array();
-               }
-
                $useSiteJs = $this->getConfig()->get( 'UseSiteJs' );
                $useSiteCss = $this->getConfig()->get( 'UseSiteCss' );
                if ( !$useSiteJs && !$useSiteCss ) {
                        return array();
                }
 
-               // Use $wgUser is possible; allows to skip a lot of code
-               if ( is_object( $wgUser ) && $wgUser->getName() == $userName ) {
-                       $user = $wgUser;
-               } else {
-                       $user = User::newFromName( $userName );
-                       if ( !$user instanceof User ) {
-                               return array();
-                       }
+               $user = $context->getUserObj();
+               if ( !$user || $user->isAnon() ) {
+                       return array();
                }
 
                $pages = array();
index bd97a8e..e6b07c1 100644 (file)
@@ -44,8 +44,7 @@ class ResourceLoaderUserOptionsModule extends ResourceLoaderModule {
        public function getModifiedTime( ResourceLoaderContext $context ) {
                $hash = $context->getHash();
                if ( !isset( $this->modifiedTime[$hash] ) ) {
-                       global $wgUser;
-                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $wgUser->getTouched() );
+                       $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, $context->getUserObj()->getTouched() );
                }
 
                return $this->modifiedTime[$hash];
@@ -56,9 +55,8 @@ class ResourceLoaderUserOptionsModule extends ResourceLoaderModule {
         * @return string
         */
        public function getScript( ResourceLoaderContext $context ) {
-               global $wgUser;
                return Xml::encodeJsCall( 'mw.user.options.set',
-                       array( $wgUser->getOptions() ),
+                       array( $context->getUserObj()->getOptions() ),
                        ResourceLoader::inDebugMode()
                );
        }
index 668467c..ccd1dfd 100644 (file)
@@ -37,15 +37,16 @@ class ResourceLoaderUserTokensModule extends ResourceLoaderModule {
        /**
         * Fetch the tokens for the current user.
         *
+        * @param ResourceLoaderContext $context
         * @return array List of tokens keyed by token type
         */
-       protected function contextUserTokens() {
-               global $wgUser;
+       protected function contextUserTokens( ResourceLoaderContext $context ) {
+               $user = $context->getUserObj();
 
                return array(
-                       'editToken' => $wgUser->getEditToken(),
-                       'patrolToken' => $wgUser->getEditToken( 'patrol' ),
-                       'watchToken' => $wgUser->getEditToken( 'watch' ),
+                       'editToken' => $user->getEditToken(),
+                       'patrolToken' => $user->getEditToken( 'patrol' ),
+                       'watchToken' => $user->getEditToken( 'watch' ),
                );
        }
 
@@ -55,7 +56,7 @@ class ResourceLoaderUserTokensModule extends ResourceLoaderModule {
         */
        public function getScript( ResourceLoaderContext $context ) {
                return Xml::encodeJsCall( 'mw.user.tokens.set',
-                       array( $this->contextUserTokens() ),
+                       array( $this->contextUserTokens( $context ) ),
                        ResourceLoader::inDebugMode()
                );
        }
index 2a1736d..e195cf2 100644 (file)
@@ -70,7 +70,7 @@ abstract class ResourceLoaderWikiModule extends ResourceLoaderModule {
         * In particular, it doesn't work for getting the content of JS and CSS pages. That functionality
         * will use the local DB irrespective of the return value of this method.
         *
-        * @return DatabaseBase|null
+        * @return IDatabase|null
         */
        protected function getDB() {
                return wfGetDB( DB_SLAVE );
index 59b0c31..bda10b0 100644 (file)
@@ -85,7 +85,7 @@ class SearchPostgres extends SearchDatabase {
                                if ( strtolower( $terms[2] ) === 'and' ) {
                                        $searchstring .= ' & ';
                                }
-                               elseif ( strtolower( $terms[2] ) === 'or' or $terms[2] === '|' ) {
+                               elseif ( strtolower( $terms[2] ) === 'or' || $terms[2] === '|' ) {
                                        $searchstring .= ' | ';
                                }
                                elseif ( strtolower( $terms[2] ) === 'not' ) {
index aeaba8d..2cdf9f4 100644 (file)
@@ -185,6 +185,13 @@ class SearchResult {
                return null;
        }
 
+       /**
+        * @return string Highlighted relevant category name or '' if none or not supported
+        */
+       public function getCategorySnippet() {
+               return '';
+       }
+
        /**
         * @return string Timestamp
         */
index 6dc33ac..7217000 100644 (file)
@@ -600,6 +600,37 @@ abstract class BaseTemplate extends QuickTemplate {
                return $footericons;
        }
 
+       /**
+        * Get the suggested HTML for page status indicators: icons (or short text snippets) usually
+        * displayed in the top-right corner of the page, outside of the main content.
+        *
+        * Your skin may implement this differently, for example by handling some indicator names
+        * specially with a different UI. However, it is recommended to use a `<div class="mw-indicator"
+        * id="mw-indicator-<id>" />` as a wrapper element for each indicator, for better compatibility
+        * with extensions and user scripts.
+        *
+        * The raw data is available in `$this->data['indicators']` as an associative array (keys:
+        * identifiers, values: contents) internally ordered by keys.
+        *
+        * @return string HTML
+        * @since 1.25
+        */
+       public function getIndicators() {
+               $out = "<div class=\"mw-indicators\">\n";
+               foreach ( $this->data['indicators'] as $id => $content ) {
+                       $out .= Html::rawElement(
+                               'div',
+                               array(
+                                       'id' => Sanitizer::escapeId( "mw-indicator-$id" ),
+                                       'class' => 'mw-indicator',
+                               ),
+                               $content
+                       ) . "\n";
+               }
+               $out .= "</div>\n";
+               return $out;
+       }
+
        /**
         * Output the basic end-page trail including bottomscripts, reporttime, and
         * debug stuff. This should be called right before outputting the closing
index e378278..384aeda 100644 (file)
@@ -239,25 +239,33 @@ abstract class Skin extends ContextSource {
         * Preload the existence of three commonly-requested pages in a single query
         */
        function preloadExistence() {
+               $titles = array();
+
                $user = $this->getUser();
+               $title = $this->getRelevantTitle();
 
                // User/talk link
-               $titles = array( $user->getUserPage(), $user->getTalkPage() );
+               if ( $user->isLoggedIn() || $this->showIPinHeader() ) {
+                       $titles[] = $user->getUserPage();
+                       $titles[] = $user->getTalkPage();
+               }
 
                // Other tab link
-               if ( $this->getTitle()->isSpecialPage() ) {
+               if ( $title->isSpecialPage() ) {
                        // nothing
-               } elseif ( $this->getTitle()->isTalkPage() ) {
-                       $titles[] = $this->getTitle()->getSubjectPage();
+               } elseif ( $title->isTalkPage() ) {
+                       $titles[] = $title->getSubjectPage();
                } else {
-                       $titles[] = $this->getTitle()->getTalkPage();
+                       $titles[] = $title->getTalkPage();
                }
 
                wfRunHooks( 'SkinPreloadExistence', array( &$titles, $this ) );
 
-               $lb = new LinkBatch( $titles );
-               $lb->setCaller( __METHOD__ );
-               $lb->execute();
+               if ( count( $titles ) ) {
+                       $lb = new LinkBatch( $titles );
+                       $lb->setCaller( __METHOD__ );
+                       $lb->execute();
+               }
        }
 
        /**
@@ -647,12 +655,12 @@ abstract class Skin extends ContextSource {
        function getUndeleteLink() {
                $action = $this->getRequest()->getVal( 'action', 'view' );
 
-               if ( $this->getUser()->isAllowed( 'deletedhistory' ) &&
+               if ( $this->getTitle()->userCan( 'deletedhistory', $this->getUser() ) &&
                        ( $this->getTitle()->getArticleID() == 0 || $action == 'history' ) ) {
                        $n = $this->getTitle()->isDeleted();
 
                        if ( $n ) {
-                               if ( $this->getUser()->isAllowed( 'undelete' ) ) {
+                               if ( $this->getTitle()->userCan( 'undelete', $this->getUser() ) ) {
                                        $msg = 'thisisdeleted';
                                } else {
                                        $msg = 'viewdeleted';
index 064c076..2fef220 100644 (file)
@@ -38,4 +38,34 @@ class SkinApi extends SkinTemplate {
                parent::setupSkinUserCss( $out );
                $out->addModuleStyles( 'mediawiki.skinning.interface' );
        }
+
+       // Skip work and hooks for stuff we don't use
+
+       function buildSidebar() {
+               return array();
+       }
+
+       function getNewtalks() {
+               return '';
+       }
+
+       function getSiteNotice() {
+               return '';
+       }
+
+       public function getLanguages() {
+               return array();
+       }
+
+       protected function buildPersonalUrls() {
+               return array();
+       }
+
+       protected function buildContentNavigationUrls() {
+               return array();
+       }
+
+       protected function buildNavUrls() {
+               return array();
+       }
 }
index be77c61..2062da8 100644 (file)
@@ -46,7 +46,20 @@ class SkinApiTemplate extends BaseTemplate {
 
                <?php $this->printTrail() ?>
                </body></html>
+<?php
+       }
+
+       // Skip work and hooks for stuff we don't use
+
+       function getToolbox() {
+               return array();
+       }
+
+       function getPersonalTools() {
+               return array();
+       }
 
-       <?php
+       function getSidebar( $options = array() ) {
+               return array();
        }
 }
index 603ee5c..ea94fad 100644 (file)
@@ -91,9 +91,7 @@ class SkinFallbackTemplate extends BaseTemplate {
                </form>
 
                <div class="mw-body" role="main">
-                       <h1 class="firstHeading">
-                               <span dir="auto"><?php $this->html( 'title' ) ?></span>
-                       </h1>
+                       <h1 class="firstHeading"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
 
                        <div class="mw-body-content">
                                <?php $this->html( 'bodytext' ) ?>
index c1db302..0d4e623 100644 (file)
@@ -226,7 +226,8 @@ class SkinTemplate extends Skin {
 
                $oldContext = null;
                if ( $out !== null ) {
-                       // @todo Add wfDeprecated in 1.20
+                       // Deprecated since 1.20, note added in 1.25
+                       wfDeprecated( __METHOD__, '1.25' );
                        $oldContext = $this->getContext();
                        $this->setContext( $out->getContext() );
                }
@@ -260,7 +261,7 @@ class SkinTemplate extends Skin {
         */
        protected function prepareQuickTemplate() {
                global $wgContLang, $wgScript, $wgStylePath, $wgMimeType, $wgJsMimeType,
-                       $wgDisableCounters, $wgSitename, $wgLogo, $wgMaxCredits,
+                       $wgSitename, $wgLogo, $wgMaxCredits,
                        $wgShowCreditsIfMax, $wgArticlePath,
                        $wgScriptPath, $wgServer;
 
@@ -373,19 +374,13 @@ class SkinTemplate extends Skin {
                $tpl->set( 'logo', $this->logoText() );
 
                $tpl->set( 'copyright', false );
+               // No longer used
                $tpl->set( 'viewcount', false );
                $tpl->set( 'lastmod', false );
                $tpl->set( 'credits', false );
                $tpl->set( 'numberofwatchingusers', false );
                if ( $out->isArticle() && $title->exists() ) {
                        if ( $this->isRevisionCurrent() ) {
-                               if ( !$wgDisableCounters ) {
-                                       $viewcount = $this->getWikiPage()->getCount();
-                                       if ( $viewcount ) {
-                                               $tpl->set( 'viewcount', $this->msg( 'viewcount' )->numParams( $viewcount )->parse() );
-                                       }
-                               }
-
                                if ( $wgMaxCredits != 0 ) {
                                        $tpl->set( 'credits', Action::factory( 'credits', $this->getWikiPage(),
                                                $this->getContext() )->getCredits( $wgMaxCredits, $wgShowCreditsIfMax ) );
@@ -407,7 +402,6 @@ class SkinTemplate extends Skin {
                $tpl->set( 'footerlinks', array(
                        'info' => array(
                                'lastmod',
-                               'viewcount',
                                'numberofwatchingusers',
                                'credits',
                                'copyright',
@@ -438,6 +432,8 @@ class SkinTemplate extends Skin {
                        }
                }
 
+               $tpl->set( 'indicators', $out->getIndicators() );
+
                $tpl->set( 'sitenotice', $this->getSiteNotice() );
                $tpl->set( 'bottomscripts', $this->bottomScripts() );
                $tpl->set( 'printfooter', $this->printSource() );
index b229e06..167135b 100644 (file)
@@ -60,7 +60,6 @@ abstract class QueryPage extends SpecialPage {
         * @return array
         */
        public static function getPages() {
-               global $wgDisableCounters;
                static $qp = null;
 
                if ( $qp === null ) {
@@ -102,10 +101,6 @@ abstract class QueryPage extends SpecialPage {
                                array( 'WithoutInterwikiPage', 'Withoutinterwiki' ),
                        );
                        wfRunHooks( 'wgQueryPages', array( &$qp ) );
-
-                       if ( !$wgDisableCounters ) {
-                               $qp[] = array( 'PopularPagesPage', 'Popularpages' );
-                       }
                }
 
                return $qp;
index 9a6b787..b110bda 100644 (file)
@@ -156,6 +156,7 @@ class SpecialPageFactory {
                'Booksources' => 'SpecialBookSources',
 
                // Unlisted / redirects
+               'ApiHelp' => 'SpecialApiHelp',
                'Blankpage' => 'SpecialBlankpage',
                'Diff' => 'SpecialDiff',
                'Emailuser' => 'SpecialEmailUser',
@@ -214,7 +215,7 @@ class SpecialPageFactory {
         */
        private static function getPageList() {
                global $wgSpecialPages;
-               global $wgDisableCounters, $wgDisableInternalSearch, $wgEmailAuthentication;
+               global $wgDisableInternalSearch, $wgEmailAuthentication;
                global $wgEnableEmail, $wgEnableJavaScriptTest;
                global $wgPageLanguageUseDB;
 
@@ -223,10 +224,6 @@ class SpecialPageFactory {
 
                        self::$list = self::$coreList;
 
-                       if ( !$wgDisableCounters ) {
-                               self::$list['Popularpages'] = 'PopularPagesPage';
-                       }
-
                        if ( !$wgDisableInternalSearch ) {
                                self::$list['Search'] = 'SpecialSearch';
                        }
index c8fae68..08b8761 100644 (file)
@@ -225,6 +225,7 @@ class SpecialAllPages extends IncludableSpecialPage {
                                        } else {
                                                $out .= '<li>[[' . htmlspecialchars( $s->page_title ) . "]]</li>\n";
                                        }
+                                       $n++;
                                }
                                $out .= Xml::closeElement( 'ul' );
                        } else {
diff --git a/includes/specials/SpecialApiHelp.php b/includes/specials/SpecialApiHelp.php
new file mode 100644 (file)
index 0000000..b43911f
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/**
+ * Implements Special:ApiHelp
+ *
+ * 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
+ */
+
+/**
+ * Special page to redirect to API help pages, for situations where linking to
+ * the api.php endpoint is not wanted.
+ *
+ * @ingroup SpecialPage
+ */
+class SpecialApiHelp extends UnlistedSpecialPage {
+       public function __construct() {
+               parent::__construct( 'ApiHelp' );
+       }
+
+       public function execute( $par ) {
+               if ( empty( $par ) ) {
+                       $par = 'main';
+               }
+
+               // These come from transclusions
+               $request = $this->getRequest();
+               $options = array(
+                       'action' => 'help',
+                       'nolead' => true,
+                       'submodules' => $request->getCheck( 'submodules' ),
+                       'recursivesubmodules' => $request->getCheck( 'recursivesubmodules' ),
+                       'title' => $request->getVal( 'title', $this->getPageTitle( '$1' )->getPrefixedText() ),
+               );
+
+               // These are for linking from wikitext, since url parameters are a pain
+               // to do.
+               while ( true ) {
+                       if ( substr( $par, 0, 4 ) === 'sub/' ) {
+                               $par = substr( $par, 4 );
+                               $options['submodules'] = 1;
+                               continue;
+                       }
+
+                       if ( substr( $par, 0, 5 ) === 'rsub/' ) {
+                               $par = substr( $par, 5 );
+                               $options['recursivesubmodules'] = 1;
+                               continue;
+                       }
+
+                       $moduleName = $par;
+                       break;
+               }
+
+               if ( !$this->including() ) {
+                       unset( $options['nolead'], $options['title'] );
+                       $options['modules'] = $moduleName;
+                       $link = wfAppendQuery( wfExpandUrl( wfScript( 'api' ), PROTO_CURRENT ), $options );
+                       $this->getOutput()->redirect( $link );
+                       return;
+               }
+
+               $main = new ApiMain( $this->getContext(), false );
+               try {
+                       $module = $main->getModuleFromPath( $moduleName );
+               } catch ( UsageException $ex ) {
+                       $this->getOutput()->addHTML( Html::rawElement( 'span', array( 'class' => 'error' ),
+                               $this->msg( 'apihelp-no-such-module', $moduleName )->inContentLanguage()->parse()
+                       ) );
+                       return;
+               }
+
+               ApiHelp::getHelp( $this->getContext(), $module, $options );
+       }
+
+       public function isIncludable() {
+               return true;
+       }
+}
index 3297c17..cf82b86 100644 (file)
@@ -98,6 +98,7 @@ class SpecialBlock extends FormSpecialPage {
                $form->setWrapperLegendMsg( 'blockip-legend' );
                $form->setHeaderText( '' );
                $form->setSubmitCallback( array( __CLASS__, 'processUIForm' ) );
+               $form->setSubmitDestructive();
 
                $msg = $this->alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit';
                $form->setSubmitTextMsg( $msg );
index 5631c3a..107413e 100644 (file)
@@ -485,6 +485,8 @@ class SpecialContributions extends IncludableSpecialPage {
                        $filterSelection = Html::rawElement( 'td', array( 'colspan' => 2 ), '' );
                }
 
+               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+
                $labelNewbies = Xml::radioLabel(
                        $this->msg( 'sp-contributions-newbies' )->text(),
                        'contribs',
@@ -505,9 +507,15 @@ class SpecialContributions extends IncludableSpecialPage {
                        'target',
                        $this->opts['target'],
                        'text',
-                       array( 'size' => '40', 'required' => '', 'class' => 'mw-input mw-ui-input-inline' ) +
-                               ( $this->opts['target'] ? array() : array( 'autofocus' )
-                               )
+                       array(
+                               'size' => '40',
+                               'required' => '',
+                               'class' => array(
+                                       'mw-input',
+                                       'mw-ui-input-inline',
+                                       'mw-autocomplete-user', // used by mediawiki.userSuggest
+                               ),
+                       ) + ( $this->opts['target'] ? array() : array( 'autofocus' ) )
                );
                $targetSelection = Html::rawElement(
                        'td',
index 68f2c46..e739a86 100644 (file)
@@ -315,7 +315,8 @@ class DeletedContributionsPage extends SpecialPage {
                        return;
                }
 
-               $options['limit'] = $request->getInt( 'limit', $this->getConfig()->get( 'QueryPageDefaultLimit' ) );
+               $options['limit'] = $request->getInt( 'limit',
+                       $this->getConfig()->get( 'QueryPageDefaultLimit' ) );
                $options['target'] = $target;
 
                $userObj = User::newFromName( $target, false );
@@ -533,6 +534,8 @@ class DeletedContributionsPage extends SpecialPage {
                        $f .= "\t" . Html::hidden( $name, $value ) . "\n";
                }
 
+               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+
                $f .= Xml::openElement( 'fieldset' );
                $f .= Xml::element( 'legend', array(), $this->msg( 'sp-contributions-search' )->text() );
                $f .= Xml::tags(
@@ -546,7 +549,10 @@ class DeletedContributionsPage extends SpecialPage {
                        'text',
                        array(
                                'size' => '20',
-                               'required' => ''
+                               'required' => '',
+                               'class' => array(
+                                       'mw-autocomplete-user', // used by mediawiki.userSuggest
+                               ),
                        ) + ( $options['target'] ? array() : array( 'autofocus' ) )
                ) . ' ';
                $f .= Html::namespaceSelector(
index db83019..bc63e99 100644 (file)
@@ -629,7 +629,10 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
        private function buildRemoveLine( $title ) {
                $link = Linker::link( $title );
 
-               $tools['talk'] = Linker::link( $title->getTalkPage(), $this->msg( 'talkpagelinktext' )->escaped() );
+               $tools['talk'] = Linker::link(
+                       $title->getTalkPage(),
+                       $this->msg( 'talkpagelinktext' )->escaped()
+               );
 
                if ( $title->exists() ) {
                        $tools['history'] = Linker::linkKnown(
index 269dff6..aab9c3e 100644 (file)
@@ -77,7 +77,7 @@ class SpecialExpandTemplates extends SpecialPage {
                        $options->setMaxIncludeSize( self::MAX_INCLUDE_SIZE );
 
                        if ( $this->generateXML ) {
-                               $wgParser->startExternalParse( $title, $options, OT_PREPROCESS );
+                               $wgParser->startExternalParse( $title, $options, Parser::OT_PREPROCESS );
                                $dom = $wgParser->preprocessToDom( $input );
 
                                if ( method_exists( $dom, 'saveXML' ) ) {
@@ -151,7 +151,7 @@ class SpecialExpandTemplates extends SpecialPage {
                        'contexttitle',
                        60,
                        $title,
-                       array( 'autofocus' => true )
+                       array( 'autofocus' => true, 'class' => 'mw-ui-input-inline' )
                ) . '</p>';
                $form .= '<p>' . Xml::label(
                        $this->msg( 'expand_templates_input' )->text(),
@@ -251,6 +251,7 @@ class SpecialExpandTemplates extends SpecialPage {
                ) ) );
                $out->addParserOutputContent( $pout );
                $out->addHTML( Html::closeElement( 'div' ) );
+               $out->setCategoryLinks( $pout->getCategories() );
        }
 
        protected function getGroupName() {
index 3d762aa..0831c20 100644 (file)
@@ -157,7 +157,7 @@ class SpecialImport extends SpecialPage {
                                array( 'importfailed', $source->getWikiText() )
                        );
                } else {
-                       $importer = new WikiImporter( $source->value );
+                       $importer = new WikiImporter( $source->value, $this->getConfig() );
                        if ( !is_null( $this->namespace ) ) {
                                $importer->setTargetNamespace( $this->namespace );
                        }
@@ -251,7 +251,7 @@ class SpecialImport extends SpecialPage {
                                        Xml::label( $this->msg( 'import-comment' )->text(), 'mw-import-comment' ) .
                                        "</td>
                                        <td class='mw-input'>" .
-                                       Xml::input( 'log-comment', 50, 
+                                       Xml::input( 'log-comment', 50,
                                                ( $this->sourceName == 'upload' ? $this->logcomment : '' ),
                                                array( 'id' => 'mw-import-comment', 'type' => 'text' ) ) . ' ' .
                                        "</td>
index 37edc0f..2d6213a 100644 (file)
@@ -251,6 +251,25 @@ class LinkSearchPage extends QueryPage {
                return $retval;
        }
 
+       /**
+        * 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
index 2a97abc..c68341c 100644 (file)
@@ -203,7 +203,9 @@ class ImageListPager extends TablePager {
                        } else {
                                return false;
                        }
-               } elseif ( $this->getConfig()->get( 'MiserMode' ) && $this->mShowAll /* && mUserName === null */ ) {
+               } elseif ( $this->getConfig()->get( 'MiserMode' )
+                       && $this->mShowAll /* && mUserName === null */
+               ) {
                        // no oi_timestamp index, so only alphabetical sorting in this case.
                        if ( $field === 'img_name' ) {
                                return true;
@@ -519,6 +521,7 @@ class ImageListPager extends TablePager {
                        );
                }
 
+               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
                $fields['user'] = array(
                        'type' => 'text',
                        'name' => 'user',
@@ -527,6 +530,7 @@ class ImageListPager extends TablePager {
                        'default' => $this->mUserName,
                        'size' => '40',
                        'maxlength' => '255',
+                       'cssclass' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
                );
 
                $fields['ilshowall'] = array(
@@ -541,6 +545,7 @@ class ImageListPager extends TablePager {
                unset( $query['title'] );
                unset( $query['limit'] );
                unset( $query['ilsearch'] );
+               unset( $query['ilshowall'] );
                unset( $query['user'] );
 
                $form = new HTMLForm( $fields, $this->getContext() );
index 43f5a1b..c71ef76 100644 (file)
@@ -469,11 +469,16 @@ class SpecialMergeHistory extends SpecialPage {
                        return false;
                }
                # Update our logs
-               $log = new LogPage( 'merge' );
-               $log->addEntry(
-                       'merge', $targetTitle, $this->mComment,
-                       array( $destTitle->getPrefixedText(), $timestampLimit ), $this->getUser()
-               );
+               $logEntry = new ManualLogEntry( 'merge', 'merge' );
+               $logEntry->setPerformer( $this->getUser() );
+               $logEntry->setComment( $this->mComment );
+               $logEntry->setTarget( $targetTitle );
+               $logEntry->setParameters( array(
+                       '4::dest' => $destTitle->getPrefixedText(),
+                       '5::mergepoint' => $timestampLimit
+               ) );
+               $logId = $logEntry->insert();
+               $logEntry->publish( $logId );
 
                # @todo message should use redirect=no
                $this->getOutput()->addWikiText( $this->msg( 'mergehistory-success',
index ec9593f..4cbf584 100644 (file)
@@ -549,10 +549,22 @@ class MovePageForm extends UnlistedSpecialPage {
                }
 
                # Do the actual move.
-               $error = $ot->moveTo( $nt, true, $this->reason, $createRedirect );
-               if ( $error !== true ) {
-                       $this->showForm( $error );
+               $mp = new MovePage( $ot, $nt );
+               $valid = $mp->isValidMove();
+               if ( !$valid->isOK() ) {
+                       $this->showForm( $valid->getErrorsArray() );
+                       return;
+               }
+
+               $permStatus = $mp->checkPermissions( $user, $this->reason );
+               if ( !$permStatus->isOK() ) {
+                       $this->showForm( $permStatus->getErrorsArray() );
+                       return;
+               }
 
+               $status = $mp->move( $user, $this->reason, $createRedirect );
+               if ( !$status->isOK() ) {
+                       $this->showForm( $status->getErrorsArray() );
                        return;
                }
 
index b9d1872..bc16925 100644 (file)
@@ -59,7 +59,7 @@ class SpecialNewFiles extends IncludableSpecialPage {
                if ( !$message->isDisabled() ) {
                        $this->getOutput()->addWikiText(
                                Html::rawElement( 'p',
-                                       array( 'lang' => $wgContLang->getCode(), 'dir' => $wgContLang->getDir() ),
+                                       array( 'lang' => $wgContLang->getHtmlCode(), 'dir' => $wgContLang->getDir() ),
                                        "\n" . $message->plain() . "\n"
                                ),
                                /* $lineStart */ false,
index 0b70bb7..ad1f051 100644 (file)
@@ -198,6 +198,7 @@ class SpecialNewpages extends IncludableSpecialPage {
        }
 
        protected function form() {
+               $out = $this->getOutput();
                // Consume values
                $this->opts->consumeValue( 'offset' ); // don't carry offset, DWIW
                $namespace = $this->opts->consumeValue( 'namespace' );
@@ -216,72 +217,62 @@ class SpecialNewpages extends IncludableSpecialPage {
                }
                $hidden = implode( "\n", $hidden );
 
-               $tagFilter = ChangeTags::buildTagFilterSelector( $tagFilterVal );
-               if ( $tagFilter ) {
-                       list( $tagFilterLabel, $tagFilterSelector ) = $tagFilter;
-               }
+               $form = array(
+                       'namespace' => array(
+                               'type' => 'namespaceselect',
+                               'name' => 'namespace',
+                               'label-message' => 'namespace',
+                               'default' => $namespace,
+                       ),
+                       'nsinvert' => array(
+                               'type' => 'check',
+                               'name' => 'nsinvert',
+                               'label-message' => 'invert',
+                               'default' => $nsinvert,
+                               'tooltip' => $this->msg( 'tooltip-invert' )->text(),
+                       ),
+                       'tagFilter' => array(
+                               'type' => 'tagfilter',
+                               'name' => 'tagfilter',
+                               'label-raw' => wfMessage( 'tag-filter' )->parse(),
+                               'default' => $tagFilterVal,
+                       ),
+                       'username' => array(
+                               'type' => 'text',
+                               'name' => 'username',
+                               'label-message' => 'newpages-username',
+                               'default' => $userText,
+                               'id' => 'mw-np-username',
+                               'size' => 30,
+                               'cssclass' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
+                       ),
+               );
+
+               $htmlForm = new HTMLForm( $form, $this->getContext() );
+
+               $htmlForm->setSubmitText( $this->msg( 'allpagessubmit' )->text() );
+               $htmlForm->setSubmitProgressive();
+               // The form should be visible on each request (inclusive requests with submitted forms), so
+               // return always false here.
+               $htmlForm->setSubmitCallback(
+                       function () {
+                               return false;
+                       }
+               );
+               $htmlForm->setMethod( 'get' );
+
+               $out->addHtml( Xml::fieldset( $this->msg( 'newpages' )->text() ) );
 
-               $form = Xml::openElement( 'form', array( 'action' => wfScript() ) ) .
-                       Html::hidden( 'title', $this->getPageTitle()->getPrefixedDBkey() ) .
-                       Xml::fieldset( $this->msg( 'newpages' )->text() ) .
-                       Xml::openElement( 'table', array( 'id' => 'mw-newpages-table' ) ) .
-                       '<tr>
-                               <td class="mw-label">' .
-                       Xml::label( $this->msg( 'namespace' )->text(), 'namespace' ) .
-                       '</td>
-                       <td class="mw-input">' .
-                       Html::namespaceSelector(
-                               array(
-                                       'selected' => $namespace,
-                                       'all' => 'all',
-                               ), array(
-                                       'name' => 'namespace',
-                                       'id' => 'namespace',
-                                       'class' => 'namespaceselector',
-                               )
-                       ) . '&#160;' .
-                       Xml::checkLabel(
-                               $this->msg( 'invert' )->text(),
-                               'invert',
-                               'nsinvert',
-                               $nsinvert,
-                               array( 'title' => $this->msg( 'tooltip-invert' )->text() )
+               $htmlForm->show();
+
+               $out->addHtml(
+                       Html::rawElement(
+                               'div',
+                               null,
+                               $this->filterLinks()
                        ) .
-                       '</td>
-                       </tr>' . ( $tagFilter ? (
-                       '<tr>
-                               <td class="mw-label">' .
-                               $tagFilterLabel .
-                               '</td>
-                               <td class="mw-input">' .
-                               $tagFilterSelector .
-                               '</td>
-                       </tr>' ) : '' ) .
-                       '<tr>
-                               <td class="mw-label">' .
-                                       Xml::label( $this->msg( 'newpages-username' )->text(), 'mw-np-username' ) .
-                                       '</td>
-                               <td class="mw-input">' .
-                                       Xml::input( 'username', 30, $userText, array( 'id' => 'mw-np-username' ) ) .
-                                       '</td>
-                       </tr>' .
-                       '<tr> <td></td>
-                               <td class="mw-submit">' .
-                       Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) .
-                       '</td>
-               </tr>' .
-                       '<tr>
-                               <td></td>
-                               <td class="mw-input">' .
-                       $this->filterLinks() .
-                       '</td>
-                       </tr>' .
-                       Xml::closeElement( 'table' ) .
-                       Xml::closeElement( 'fieldset' ) .
-                       $hidden .
-                       Xml::closeElement( 'form' );
-
-               $this->getOutput()->addHTML( $form );
+                       Xml::closeElement( 'fieldset' )
+               );
        }
 
        /**
diff --git a/includes/specials/SpecialPopularpages.php b/includes/specials/SpecialPopularpages.php
deleted file mode 100644 (file)
index 2a80f65..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * Implements Special:PopularPages
- *
- * 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
- */
-
-/**
- * A special page that list most viewed pages
- *
- * @ingroup SpecialPage
- */
-class PopularPagesPage extends QueryPage {
-       function __construct( $name = 'Popularpages' ) {
-               parent::__construct( $name );
-       }
-
-       function isExpensive() {
-               # page_counter is not indexed
-               return true;
-       }
-
-       function isSyndicated() {
-               return false;
-       }
-
-       function getQueryInfo() {
-               return array(
-                       'tables' => array( 'page' ),
-                       'fields' => array(
-                               'namespace' => 'page_namespace',
-                               'title' => 'page_title',
-                               'value' => 'page_counter' ),
-                       'conds' => array(
-                               'page_is_redirect' => 0,
-                               'page_namespace' => MWNamespace::getContentNamespaces()
-                       )
-               );
-       }
-
-       /**
-        * @param Skin $skin
-        * @param object $result Result row
-        * @return string
-        */
-       function formatResult( $skin, $result ) {
-               global $wgContLang;
-
-               $title = Title::makeTitleSafe( $result->namespace, $result->title );
-               if ( !$title ) {
-                       return Html::element(
-                               'span',
-                               array( 'class' => 'mw-invalidtitle' ),
-                               Linker::getInvalidTitleDescription(
-                                       $this->getContext(),
-                                       $result->namespace,
-                                       $result->title )
-                       );
-               }
-
-               $link = Linker::linkKnown(
-                       $title,
-                       htmlspecialchars( $wgContLang->convert( $title->getPrefixedText() ) )
-               );
-               $nv = $this->msg( 'nviews' )->numParams( $result->value )->escaped();
-
-               return $this->getLanguage()->specialList( $link, $nv );
-       }
-
-       protected function getGroupName() {
-               return 'wiki';
-       }
-}
index daa5e82..b1baf67 100644 (file)
@@ -426,15 +426,18 @@ class SpecialSearch extends SpecialPage {
                        return;
                }
 
+               $messageName = 'searchmenu-new-nocreate';
                $linkClass = 'mw-search-createlink';
-               if ( $title->isKnown() ) {
-                       $messageName = 'searchmenu-exists';
-                       $linkClass = 'mw-search-exists';
-               } elseif ( $title->quickUserCan( 'create', $this->getUser() ) ) {
-                       $messageName = 'searchmenu-new';
-               } else {
-                       $messageName = 'searchmenu-new-nocreate';
+
+               if ( !$title->isExternal() ) {
+                       if ( $title->isKnown() ) {
+                               $messageName = 'searchmenu-exists';
+                               $linkClass = 'mw-search-exists';
+                       } elseif ( $title->quickUserCan( 'create', $this->getUser() ) ) {
+                               $messageName = 'searchmenu-new';
+                       }
                }
+
                $params = array(
                        $messageName,
                        wfEscapeWikiText( $title->getPrefixedText() ),
@@ -583,7 +586,7 @@ class SpecialSearch extends SpecialPage {
 
                $title = $result->getTitle();
 
-               $titleSnippet = $result->getTitleSnippet( $terms );
+               $titleSnippet = $result->getTitleSnippet();
 
                if ( $titleSnippet == '' ) {
                        $titleSnippet = null;
@@ -615,11 +618,12 @@ class SpecialSearch extends SpecialPage {
 
                // format redirects / relevant sections
                $redirectTitle = $result->getRedirectTitle();
-               $redirectText = $result->getRedirectSnippet( $terms );
+               $redirectText = $result->getRedirectSnippet();
                $sectionTitle = $result->getSectionTitle();
-               $sectionText = $result->getSectionSnippet( $terms );
-               $redirect = '';
+               $sectionText = $result->getSectionSnippet();
+               $categorySnippet = $result->getCategorySnippet();
 
+               $redirect = '';
                if ( !is_null( $redirectTitle ) ) {
                        if ( $redirectText == '' ) {
                                $redirectText = null;
@@ -632,7 +636,6 @@ class SpecialSearch extends SpecialPage {
                }
 
                $section = '';
-
                if ( !is_null( $sectionTitle ) ) {
                        if ( $sectionText == '' ) {
                                $sectionText = null;
@@ -644,6 +647,13 @@ class SpecialSearch extends SpecialPage {
                                "</span>";
                }
 
+               $category = '';
+               if ( $categorySnippet ) {
+                       $category = "<span class='searchalttitle'>" .
+                               $this->msg( 'search-category' )->rawParams( $categorySnippet )->text() .
+                               "</span>";
+               }
+
                // format text extract
                $extract = "<div class='searchresult'>" . $result->getTextSnippet( $terms ) . "</div>";
 
@@ -688,7 +698,7 @@ class SpecialSearch extends SpecialPage {
                                                $thumb->toHtml( array( 'desc-link' => true ) ) .
                                                '</td>' .
                                                '<td style="vertical-align: top;">' .
-                                               "{$link} {$redirect} {$section} {$fileMatch}" .
+                                               "{$link} {$redirect} {$category} {$section} {$fileMatch}" .
                                                $extract .
                                                "<div class='mw-search-result-data'>{$desc} - {$date}</div>" .
                                                '</td>' .
@@ -709,7 +719,7 @@ class SpecialSearch extends SpecialPage {
                        &$html
                ) ) ) {
                        $html = "<li><div class='mw-search-result-heading'>" .
-                               "{$link} {$redirect} {$section} {$fileMatch}</div> {$extract}\n" .
+                               "{$link} {$redirect} {$category} {$section} {$fileMatch}</div> {$extract}\n" .
                                "<div class='mw-search-result-data'>{$size} - {$date}</div>" .
                                "</li>\n";
                }
@@ -885,10 +895,7 @@ class SpecialSearch extends SpecialPage {
                // be arranged nicely while still accommodating different screen widths
                $namespaceTables = '';
                for ( $i = 0; $i < $numRows; $i += 4 ) {
-                       $namespaceTables .= Xml::openElement(
-                               'table',
-                               array( 'cellpadding' => 0, 'cellspacing' => 0 )
-                       );
+                       $namespaceTables .= Xml::openElement( 'table' );
 
                        for ( $j = $i; $j < $i + 4 && $j < $numRows; $j++ ) {
                                $namespaceTables .= Xml::tags( 'tr', null, $rows[$j] );
@@ -1062,7 +1069,8 @@ class SpecialSearch extends SpecialPage {
                $out .= Html::hidden( 'fulltext', 'Search' ) . "\n";
                $out .= Html::submitButton(
                        $this->msg( 'searchbutton' )->text(),
-                       array(), array( 'mw-ui-progressive' )
+                       array( 'class' => 'mw-ui-button mw-ui-progressive' ),
+                       array( 'mw-ui-progressive' )
                ) . "\n";
 
                // Results-info
index f0e360e..1bbc2f3 100644 (file)
@@ -28,7 +28,7 @@
  * @ingroup SpecialPage
  */
 class SpecialStatistics extends SpecialPage {
-       private $views, $edits, $good, $images, $total, $users,
+       private $edits, $good, $images, $total, $users,
                $activeUsers = 0;
 
        public function __construct() {
@@ -38,13 +38,11 @@ class SpecialStatistics extends SpecialPage {
        public function execute( $par ) {
                global $wgMemc;
 
-               $disableCounters = $this->getConfig()->get( 'DisableCounters' );
                $miserMode = $this->getConfig()->get( 'MiserMode' );
 
                $this->setHeaders();
                $this->getOutput()->addModuleStyles( 'mediawiki.special' );
 
-               $this->views = SiteStats::views();
                $this->edits = SiteStats::edits();
                $this->good = SiteStats::articles();
                $this->images = SiteStats::images();
@@ -53,12 +51,6 @@ class SpecialStatistics extends SpecialPage {
                $this->activeUsers = SiteStats::activeUsers();
                $this->hook = '';
 
-               # Staticic - views
-               $viewsStats = '';
-               if ( !$disableCounters ) {
-                       $viewsStats = $this->getViewsStats();
-               }
-
                # Set active user count
                if ( !$miserMode ) {
                        $key = wfMemcKey( 'sitestats', 'activeusers-updated' );
@@ -83,12 +75,6 @@ class SpecialStatistics extends SpecialPage {
 
                # Statistic - usergroups
                $text .= $this->getGroupStats();
-               $text .= $viewsStats;
-
-               # Statistic - popular pages
-               if ( !$disableCounters && !$miserMode ) {
-                       $text .= $this->getMostViewedPages();
-               }
 
                # Statistic - other
                $extraStats = array();
@@ -237,63 +223,6 @@ class SpecialStatistics extends SpecialPage {
                return $text;
        }
 
-       private function getViewsStats() {
-               return Xml::openElement( 'tr' ) .
-                       Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-views' )->parse() ) .
-                       Xml::closeElement( 'tr' ) .
-                               $this->formatRow( $this->msg( 'statistics-views-total' )->parse(),
-                                       $this->getLanguage()->formatNum( $this->views ),
-                                               array( 'class' => 'mw-statistics-views-total' ), 'statistics-views-total-desc' ) .
-                               $this->formatRow( $this->msg( 'statistics-views-peredit' )->parse(),
-                                       $this->getLanguage()->formatNum( sprintf( '%.2f', $this->edits ?
-                                               $this->views / $this->edits : 0 ) ),
-                                               array( 'class' => 'mw-statistics-views-peredit' ) );
-       }
-
-       private function getMostViewedPages() {
-               $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 ) );
-                               }
-                       }
-                       $res->free();
-               }
-
-               return $text;
-       }
-
        /**
         * Conversion of external statistics into an internal representation
         * Following a ([<header-message>][<item-message>] = number) pattern
index 552031f..7684c05 100644 (file)
@@ -56,6 +56,71 @@ class SpecialTrackingCategories extends SpecialPage {
                        </tr></thead>"
                );
 
+               $trackingCategories = $this->prepareTrackingCategoriesData();
+
+               $batch = new LinkBatch();
+               foreach ( $trackingCategories as $catMsg => $data ) {
+                       $batch->addObj( $data['msg'] );
+                       foreach ( $data['cats'] as $catTitle ) {
+                               $batch->addObj( $catTitle );
+                       }
+               }
+               $batch->execute();
+
+               foreach ( $trackingCategories as $catMsg => $data ) {
+                       $allMsgs = array();
+                       $catDesc = $catMsg . '-desc';
+
+                       $catMsgTitleText = Linker::link(
+                               $data['msg'],
+                               htmlspecialchars( $catMsg )
+                       );
+
+                       foreach ( $data['cats'] as $catTitle ) {
+                               $catTitleText = Linker::link(
+                                       $catTitle,
+                                       htmlspecialchars( $catTitle->getText() )
+                               );
+                               $allMsgs[] = $catTitleText;
+                       }
+
+                       # Extra message, when no category was found
+                       if ( !count( $allMsgs ) ) {
+                               $allMsgs[] = $this->msg( 'trackingcategories-disabled' )->parse();
+                       }
+
+                       /*
+                        * Show category description if it exists as a system message
+                        * as category-name-desc
+                        */
+                       $descMsg = $this->msg( $catDesc );
+                       if ( $descMsg->isBlank() ) {
+                               $descMsg = $this->msg( 'trackingcategories-nodesc' );
+                       }
+
+                       $this->getOutput()->addHTML(
+                               Html::openElement( 'tr' ) .
+                               Html::openElement( 'td', array( 'class' => 'mw-trackingcategories-name' ) ) .
+                                       $this->getLanguage()->commaList( array_unique( $allMsgs ) ) .
+                               Html::closeElement( 'td' ) .
+                               Html::openElement( 'td', array( 'class' => 'mw-trackingcategories-msg' ) ) .
+                                       $catMsgTitleText .
+                               Html::closeElement( 'td' ) .
+                               Html::openElement( 'td', array( 'class' => 'mw-trackingcategories-desc' ) ) .
+                                       $descMsg->parse() .
+                               Html::closeElement( 'td' ) .
+                               Html::closeElement( 'tr' )
+                       );
+               }
+               $this->getOutput()->addHTML( Html::closeElement( 'table' ) );
+       }
+
+       /**
+        * Read the global and extract title objects from the corresponding messages
+        * @return array Array( 'msg' => Title, 'cats' => Title[] )
+        */
+       private function prepareTrackingCategoriesData() {
+               $trackingCategories = array();
                foreach ( $this->getConfig()->get( 'TrackingCategories' ) as $catMsg ) {
                        /*
                         * Check if the tracking category varies by namespace
@@ -63,16 +128,11 @@ class SpecialTrackingCategories extends SpecialPage {
                         * If it does vary, show pages considering all namespaces
                         */
                        $msgObj = $this->msg( $catMsg )->inContentLanguage();
-                       $allMsgs = array();
-                       $catDesc = $catMsg . '-desc';
+                       $allCats = array();
                        $catMsgTitle = Title::makeTitleSafe( NS_MEDIAWIKI, $catMsg );
                        if ( !$catMsgTitle ) {
                                continue;
                        }
-                       $catMsgTitleText = Linker::link(
-                               $catMsgTitle,
-                               htmlspecialchars( $catMsg )
-                       );
 
                        // Match things like {{NAMESPACE}} and {{NAMESPACENUMBER}}.
                        // False positives are ok, this is just an efficiency shortcut
@@ -88,11 +148,7 @@ class SpecialTrackingCategories extends SpecialPage {
                                        if ( $catName !== '-' ) {
                                                $catTitle = Title::makeTitleSafe( NS_CATEGORY, $catName );
                                                if ( $catTitle ) {
-                                                       $catTitleText = Linker::link(
-                                                               $catTitle,
-                                                               htmlspecialchars( $catName )
-                                                       );
-                                                       $allMsgs[] = $catTitleText;
+                                                       $allCats[] = $catTitle;
                                                }
                                        }
                                }
@@ -102,44 +158,17 @@ class SpecialTrackingCategories extends SpecialPage {
                                if ( $catName !== '-' ) {
                                        $catTitle = Title::makeTitleSafe( NS_CATEGORY, $catName );
                                        if ( $catTitle ) {
-                                               $catTitleText = Linker::link(
-                                                       $catTitle,
-                                                       htmlspecialchars( $catName )
-                                               );
-                                               $allMsgs[] = $catTitleText;
+                                               $allCats[] = $catTitle;
                                        }
                                }
                        }
-
-                       # Extra message, when no category was found
-                       if ( !count( $allMsgs ) ) {
-                               $allMsgs[] = $this->msg( 'trackingcategories-disabled' )->parse();
-                       }
-
-                       /*
-                        * Show category description if it exists as a system message
-                        * as category-name-desc
-                        */
-                       $descMsg = $this->msg( $catDesc );
-                       if ( $descMsg->isBlank() ) {
-                               $descMsg = $this->msg( 'trackingcategories-nodesc' );
-                       }
-
-                       $this->getOutput()->addHTML(
-                               Html::openElement( 'tr' ) .
-                               Html::openElement( 'td', array( 'class' => 'mw-trackingcategories-name' ) ) .
-                                       $this->getLanguage()->commaList( array_unique( $allMsgs ) ) .
-                               Html::closeElement( 'td' ) .
-                               Html::openElement( 'td', array( 'class' => 'mw-trackingcategories-msg' ) ) .
-                                       $catMsgTitleText .
-                               Html::closeElement( 'td' ) .
-                               Html::openElement( 'td', array( 'class' => 'mw-trackingcategories-desc' ) ) .
-                                       $descMsg->parse() .
-                               Html::closeElement( 'td' ) .
-                               Html::closeElement( 'tr' )
+                       $trackingCategories[$catMsg] = array(
+                               'cats' => $allCats,
+                               'msg' => $catMsgTitle,
                        );
                }
-               $this->getOutput()->addHTML( Html::closeElement( 'table' ) );
+
+               return $trackingCategories;
        }
 
        protected function getGroupName() {
index c3e871b..a1f48e9 100644 (file)
@@ -1628,7 +1628,9 @@ class SpecialUndelete extends SpecialPage {
        }
 
        function undelete() {
-               if ( $this->getConfig()->get( 'UploadMaintenance' ) && $this->mTargetObj->getNamespace() == NS_FILE ) {
+               if ( $this->getConfig()->get( 'UploadMaintenance' )
+                       && $this->mTargetObj->getNamespace() == NS_FILE
+               ) {
                        throw new ErrorPageError( 'undelete-error', 'filedelete-maintenance' );
                }
 
index 51dd7bd..77ad9aa 100644 (file)
@@ -746,7 +746,7 @@ class SpecialUpload extends SpecialPage {
         *
         * @todo What about non-BitmapHandler handled files?
         */
-       static public function rotationEnabled() {
+       public static function rotationEnabled() {
                $bitmapHandler = new BitmapHandler();
                return $bitmapHandler->autoRotateEnabled();
        }
@@ -903,7 +903,7 @@ class UploadForm extends HTMLForm {
                                        $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['url'] )
                                )->parse() .
                                        $this->msg( 'word-separator' )->escaped() .
-                                       $this->msg( 'upload_source_url' )->escaped(),
+                                       $this->msg( 'upload_source_url' )->parse(),
                                'checked' => $selectedSourceType == 'url',
                        );
                }
index edd1a60..b6a3be2 100644 (file)
@@ -105,9 +105,27 @@ class LoginForm extends SpecialPage {
         * @param WebRequest $request
         */
        public function __construct( $request = null ) {
+               global $wgUseMediaWikiUIEverywhere;
                parent::__construct( 'Userlogin' );
 
                $this->mOverrideRequest = $request;
+               // Override UseMediaWikiEverywhere to true, to force login and create form to use mw ui
+               $wgUseMediaWikiUIEverywhere = true;
+       }
+
+       /**
+        * Returns an array of all valid error messages.
+        *
+        * @return array
+        */
+       public static function getValidErrorMessages() {
+               static $messages = null;
+               if ( !$messages ) {
+                       $messages = self::$validErrorMessages;
+                       wfRunHooks( 'LoginFormValidErrorMessages', array( &$messages ) );
+               }
+
+               return $messages;
        }
 
        /**
@@ -172,13 +190,13 @@ class LoginForm extends SpecialPage {
 
                // Only show valid error or warning messages.
                if ( $entryError->exists()
-                       && in_array( $entryError->getKey(), self::$validErrorMessages )
+                       && in_array( $entryError->getKey(), self::getValidErrorMessages() )
                ) {
                        $this->mEntryErrorType = 'error';
                        $this->mEntryError = $entryError->rawParams( $loginreqlink )->escaped();
 
                } elseif ( $entryWarning->exists()
-                       && in_array( $entryWarning->getKey(), self::$validErrorMessages )
+                       && in_array( $entryWarning->getKey(), self::getValidErrorMessages() )
                ) {
                        $this->mEntryErrorType = 'warning';
                        $this->mEntryError = $entryWarning->rawParams( $loginreqlink )->escaped();
index cefdad0..6ca57aa 100644 (file)
@@ -415,6 +415,8 @@ class UserrightsPage extends SpecialPage {
         * Output a form to allow searching for a user
         */
        function switchForm() {
+               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+
                $this->getOutput()->addHTML(
                        Html::openElement(
                                'form',
@@ -433,7 +435,10 @@ class UserrightsPage extends SpecialPage {
                                'username',
                                30,
                                str_replace( '_', ' ', $this->mTarget ),
-                               array( 'autofocus' => true )
+                               array(
+                                       'autofocus' => true,
+                                       'class' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
+                               )
                        ) . ' ' .
                        Xml::submitButton( $this->msg( 'editusergroup' )->text() ) .
                        Html::closeElement( 'fieldset' ) .
index 6b9173f..97b2f9b 100644 (file)
@@ -808,7 +808,7 @@ class SpecialVersion extends SpecialPage {
                $html .= Html::rawElement( 'td', array( 'class' => 'mw-version-ext-description' ), $description );
                $html .= Html::rawElement( 'td', array( 'class' => 'mw-version-ext-authors' ), $authors );
 
-               $html .= Html::closeElement( 'td' );
+               $html .= Html::closeElement( 'tr' );
 
                return $html;
        }
@@ -1203,7 +1203,7 @@ class SpecialVersion extends SpecialPage {
                $language = $this->getLanguage();
                $thAttribures = array(
                        'dir' => $language->getDir(),
-                       'lang' => $language->getCode()
+                       'lang' => $language->getHtmlCode()
                );
                $out = Html::element(
                                'h2',
index 7becfaa..421840f 100644 (file)
@@ -288,7 +288,9 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                );
        }
 
-       protected function runMainQueryHook( &$tables, &$fields, &$conds, &$query_options, &$join_conds, $opts ) {
+       protected function runMainQueryHook( &$tables, &$fields, &$conds, &$query_options,
+               &$join_conds, $opts
+       ) {
                return parent::runMainQueryHook( $tables, $fields, $conds, $query_options, $join_conds, $opts )
                        && wfRunHooks(
                                'SpecialWatchlistQuery',
@@ -367,7 +369,9 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                                $updated = false;
                        }
 
-                       if ( $this->getConfig()->get( 'RCShowWatchingUsers' ) && $user->getOption( 'shownumberswatching' ) ) {
+                       if ( $this->getConfig()->get( 'RCShowWatchingUsers' )
+                               && $user->getOption( 'shownumberswatching' )
+                       ) {
                                $rc->numberofWatchingusers = $dbr->selectField( 'watchlist',
                                        'COUNT(*)',
                                        array(
@@ -503,7 +507,9 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        $form .= $this->msg( 'nowatchlist' )->parse() . "\n";
                } else {
                        $form .= $this->msg( 'watchlist-details' )->numParams( $numItems )->parse() . "\n";
-                       if ( $this->getConfig()->get( 'EnotifWatchlist' ) && $user->getOption( 'enotifwatchlistpages' ) ) {
+                       if ( $this->getConfig()->get( 'EnotifWatchlist' )
+                               && $user->getOption( 'enotifwatchlistpages' )
+                       ) {
                                $form .= $this->msg( 'wlheader-enotif' )->parse() . "\n";
                        }
                        if ( $showUpdatedMarker ) {
index 7dc6da1..e373cff 100644 (file)
@@ -431,9 +431,9 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
 
                $f .= Xml::fieldset( $this->msg( 'whatlinkshere' )->text() );
 
-               # Target input
+               # Target input (.mw-searchInput enables suggestions)
                $f .= Xml::inputLabel( $this->msg( 'whatlinkshere-page' )->text(), 'target',
-                       'mw-whatlinkshere-target', 40, $target );
+                       'mw-whatlinkshere-target', 40, $target, array( 'class' => 'mw-searchInput' ) );
 
                $f .= ' ';
 
index d435615..4eea01c 100644 (file)
@@ -258,6 +258,7 @@ class UsercreateTemplate extends BaseTemplate {
                                        $this->getMsg( $this->data['loggedin'] ? 'createacct-another-submit' : 'createacct-submit' ),
                                        $attrs = array(
                                                'id' => 'wpCreateaccount',
+                                               'name' => 'wpCreateaccount',
                                                'tabindex' => $tabIndex++
                                        ),
                                        array(
index 99fe218..2a9badf 100644 (file)
@@ -150,6 +150,7 @@ class UserloginTemplate extends BaseTemplate {
                                <?php
                                $attrs = array(
                                        'id' => 'wpLoginAttempt',
+                                       'name' => 'wpLoginAttempt',
                                        'tabindex' => '6',
                                );
                                $modifiers = array(
index 808b323..a278652 100644 (file)
@@ -778,13 +778,20 @@ abstract class UploadBase {
                $sizes = $wgUploadThumbnailRenderMap;
                rsort( $sizes );
 
+               $file = $this->getLocalFile();
+
                foreach ( $sizes as $size ) {
-                       $jobs[] = new ThumbnailRenderJob( $this->getLocalFile()->getTitle(), array(
-                               'transformParams' => array( 'width' => $size ),
-                       ) );
+                       if ( $file->isVectorized()
+                               || $file->getWidth() > $size ) {
+                                       $jobs[] = new ThumbnailRenderJob( $file->getTitle(), array(
+                                               'transformParams' => array( 'width' => $size ),
+                                       ) );
+                       }
                }
 
-               JobQueueGroup::singleton()->push( $jobs );
+               if ( $jobs ) {
+                       JobQueueGroup::singleton()->push( $jobs );
+               }
        }
 
        /**
index 7d80b44..52ce4d3 100644 (file)
@@ -151,6 +151,7 @@ class UploadStash {
 
                if ( !$this->files[$key]->exists() ) {
                        wfDebug( __METHOD__ . " tried to get file at $key, but it doesn't exist\n" );
+                       // @todo Is this not an UploadStashFileNotFoundException case?
                        throw new UploadStashBadPathException( "path doesn't exist" );
                }
 
diff --git a/includes/utils/ArrayUtils.php b/includes/utils/ArrayUtils.php
deleted file mode 100644 (file)
index 1e521cb..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-/**
- * Methods to play with arrays.
- *
- * 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
- */
-
-/**
- * A collection of static methods to play with arrays.
- *
- * @since 1.21
- */
-class ArrayUtils {
-       /**
-        * Sort the given array in a pseudo-random order which depends only on the
-        * given key and each element value. This is typically used for load
-        * balancing between servers each with a local cache.
-        *
-        * Keys are preserved. The input array is modified in place.
-        *
-        * Note: Benchmarking on PHP 5.3 and 5.4 indicates that for small
-        * strings, md5() is only 10% slower than hash('joaat',...) etc.,
-        * since the function call overhead dominates. So there's not much
-        * justification for breaking compatibility with installations
-        * compiled with ./configure --disable-hash.
-        *
-        * @param array $array Array to sort
-        * @param string $key
-        * @param string $separator A separator used to delimit the array elements and the
-        *     key. This can be chosen to provide backwards compatibility with
-        *     various consistent hash implementations that existed before this
-        *     function was introduced.
-        */
-       public static function consistentHashSort( &$array, $key, $separator = "\000" ) {
-               $hashes = array();
-               foreach ( $array as $elt ) {
-                       $hashes[$elt] = md5( $elt . $separator . $key );
-               }
-               uasort( $array, function ( $a, $b ) use ( $hashes ) {
-                       return strcmp( $hashes[$a], $hashes[$b] );
-               } );
-       }
-
-       /**
-        * Given an array of non-normalised probabilities, this function will select
-        * an element and return the appropriate key
-        *
-        * @param array $weights
-        * @return bool|int|string
-        */
-       public static function pickRandom( $weights ) {
-               if ( !is_array( $weights ) || count( $weights ) == 0 ) {
-                       return false;
-               }
-
-               $sum = array_sum( $weights );
-               if ( $sum == 0 ) {
-                       # No loads on any of them
-                       # In previous versions, this triggered an unweighted random selection,
-                       # but this feature has been removed as of April 2006 to allow for strict
-                       # separation of query groups.
-                       return false;
-               }
-               $max = mt_getrandmax();
-               $rand = mt_rand( 0, $max ) / $max * $sum;
-
-               $sum = 0;
-               foreach ( $weights as $i => $w ) {
-                       $sum += $w;
-                       # Do not return keys if they have 0 weight.
-                       # Note that the "all 0 weight" case is handed above
-                       if ( $w > 0 && $sum >= $rand ) {
-                               break;
-                       }
-               }
-
-               return $i;
-       }
-
-       /**
-        * Do a binary search, and return the index of the largest item that sorts
-        * less than or equal to the target value.
-        *
-        * @since 1.23
-        *
-        * @param array $valueCallback A function to call to get the value with
-        *     a given array index.
-        * @param int $valueCount The number of items accessible via $valueCallback,
-        *     indexed from 0 to $valueCount - 1
-        * @param array $comparisonCallback A callback to compare two values, returning
-        *     -1, 0 or 1 in the style of strcmp().
-        * @param string $target The target value to find.
-        *
-        * @return int|bool The item index of the lower bound, or false if the target value
-        *     sorts before all items.
-        */
-       public static function findLowerBound( $valueCallback, $valueCount,
-               $comparisonCallback, $target
-       ) {
-               if ( $valueCount === 0 ) {
-                       return false;
-               }
-
-               $min = 0;
-               $max = $valueCount;
-               do {
-                       $mid = $min + ( ( $max - $min ) >> 1 );
-                       $item = call_user_func( $valueCallback, $mid );
-                       $comparison = call_user_func( $comparisonCallback, $target, $item );
-                       if ( $comparison > 0 ) {
-                               $min = $mid;
-                       } elseif ( $comparison == 0 ) {
-                               $min = $mid;
-                               break;
-                       } else {
-                               $max = $mid;
-                       }
-               } while ( $min < $max - 1 );
-
-               if ( $min == 0 ) {
-                       $item = call_user_func( $valueCallback, $min );
-                       $comparison = call_user_func( $comparisonCallback, $target, $item );
-                       if ( $comparison < 0 ) {
-                               // Before the first item
-                               return false;
-                       }
-               }
-               return $min;
-       }
-
-       /**
-        * Do array_diff_assoc() on multi-dimensional arrays.
-        *
-        * Note: empty arrays are removed.
-        *
-        * @since 1.23
-        *
-        * @param array $array1 The array to compare from
-        * @param array $array2,... More arrays to compare against
-        * @return array An array containing all the values from array1
-        *               that are not present in any of the other arrays.
-        */
-       public static function arrayDiffAssocRecursive( $array1 ) {
-               $arrays = func_get_args();
-               array_shift( $arrays );
-               $ret = array();
-
-               foreach ( $array1 as $key => $value ) {
-                       if ( is_array( $value ) ) {
-                               $args = array( $value );
-                               foreach ( $arrays as $array ) {
-                                       if ( isset( $array[$key] ) ) {
-                                               $args[] = $array[$key];
-                                       }
-                               }
-                               $valueret = call_user_func_array( __METHOD__, $args );
-                               if ( count( $valueret ) ) {
-                                       $ret[$key] = $valueret;
-                               }
-                       } else {
-                               foreach ( $arrays as $array ) {
-                                       if ( isset( $array[$key] ) && $array[$key] === $value ) {
-                                               continue 2;
-                                       }
-                               }
-                               $ret[$key] = $value;
-                       }
-               }
-
-               return $ret;
-       }
-}
index 3a0492d..9fb4c19 100644 (file)
 
 class MWFunction {
 
-       /**
-        * @deprecated since 1.22; use call_user_func()
-        * @param callable $callback
-        * @return mixed
-        */
-       public static function call( $callback ) {
-               wfDeprecated( __METHOD__, '1.22' );
-               $args = func_get_args();
-
-               return call_user_func_array( 'call_user_func', $args );
-       }
-
-       /**
-        * @deprecated since 1.22; use call_user_func_array()
-        * @param callable $callback
-        * @param array $argsarams
-        * @return mixed
-        */
-       public static function callArray( $callback, $argsarams ) {
-               wfDeprecated( __METHOD__, '1.22' );
-
-               return call_user_func_array( $callback, $argsarams );
-       }
-
        /**
         * @param string $class
         * @param array $args
index b35967b..c32bd3a 100644 (file)
--- a/index.php
+++ b/index.php
@@ -34,7 +34,7 @@
 # has structures (try/catch, foo()->bar(), etc etc) which throw parse errors in
 # PHP 4. Setup.php and ObjectCache.php have structures invalid in PHP 5.0 and
 # 5.1, respectively.
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) {
+if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
        // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
        require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
        wfPHPVersionError( 'index.php' );
index ad149ad..4a41b42 100644 (file)
@@ -41,6 +41,7 @@
        'aa' => 'Qafár af',    # Afar
        'ab' => 'Аҧсшәа', # Abkhaz
        'ace' => 'Acèh',       # Aceh
+       'aeb' => 'زَوُن',  # Tunisian Arabic
        'af' => 'Afrikaans',    # Afrikaans
        'ak' => 'Akan',         # Akan
        'aln' => 'Gegë',       # Gheg Albanian
@@ -85,6 +86,7 @@
        'br' => 'brezhoneg',    # Breton
        'brh' => 'Bráhuí',    # Brahui
        'bs' => 'bosanski',             # Bosnian
+       'bto' => 'Iriga Bicolano',      # Rinconada Bikol
        'bug' => 'ᨅᨔ ᨕᨘᨁᨗ', # Buginese
        'bxr' => 'буряад',        # Buryat (Russia)
        'ca' => 'català',      # Catalan
        'sdc' => 'Sassaresu',   # Sassarese
        'se' => 'sámegiella',  # Northern Sami
        'sei' => 'Cmique Itom', # Seri
+       'ses' => 'Koyraboro Senni',     # Koyraboro Senni
        'sg' => 'Sängö',              # Sango/Sangho
        'sgs' => 'žemaitėška', # Samogitian
        'sh' => 'srpskohrvatski / српскохрватски', # Serbocroatian
index aafc393..1ed6a51 100644 (file)
@@ -2,14 +2,6 @@
 <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
 <supplementalData>
        <plurals>
-               <!-- Lower Sorbian (Dolnoserbski) and  Upper Sorbian (Hornjoserbsce). Not present in CLDR -->
-               <pluralRules locales="dsb hsb">
-                       <pluralRule count="one">n % 100 = 1 @integer 1, 101, 201, 301, …</pluralRule>
-                       <pluralRule count="two">n % 100 = 2 @integer 2, 102, 202, 302, …</pluralRule>
-                       <pluralRule count="few">n % 100 = 3..4 @integer 3~4, 103~104, …</pluralRule>
-                       <pluralRule count="other"> @integer 5, 6, 7, 8, 9, 10, 105, 206, 307, …</pluralRule>
-               </pluralRules>
-
                <!-- Belarusian in Taraškievica orthography (Беларуская тарашкевіца). Copied from "be" -->
                <pluralRules locales="be-tarask">
                        <pluralRule count="one">n % 10 = 1 and n % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …</pluralRule>
index fd4eaf6..e364f1b 100644 (file)
@@ -6,71 +6,148 @@ CLDR data files are interpreted according to the LDML specification (http://unic
 For terms of use, see http://www.unicode.org/copyright.html
 -->
 <supplementalData>
-    <version number="$Revision: 9369 $"/>
-    <generation date="$Date: 2013-09-14 01:26:08 +0530 (ശ, 14 സെപ് 2013) $"/>
+    <version number="$Revision: 10807 $"/>
+    <generation date="$Date: 2014-08-14 14:43:27 -0500 (Thu, 14 Aug 2014) $"/>
     <plurals type="cardinal">
         <!-- For a canonicalized list, use GeneratedPluralSamples -->
-        <!-- if locale is known to have no plurals, there are no rules -->
-        <pluralRules locales="ar">
-            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
-            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
-            <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
-            <pluralRule count="few">n % 100 = 3..10 @integer 3~10, 103~110, 1003, … @decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 103.0, 1003.0, …</pluralRule>
-            <pluralRule count="many">n % 100 = 11..99 @integer 11~26, 111, 1011, … @decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …</pluralRule>
-            <pluralRule count="other"> @integer 100~102, 200~202, 300~302, 400~402, 500~502, 600, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+
+        <!-- 1: other -->
+
+        <pluralRules locales="bm bo dz id ig ii in ja jbo jv jw kde kea km ko lkt lo ms my nqo root sah ses sg th to vi wo yo zh">
+            <pluralRule count="other"> @integer 0~15, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="he iw">
+
+        <!-- 2: one,other -->
+
+        <pluralRules locales="am bn fa gu hi kn mr zu">
+            <pluralRule count="one">i = 0 or n = 1 @integer 0, 1 @decimal 0.0~1.0, 0.00~0.04</pluralRule>
+            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 1.1~2.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ff fr hy kab">
+            <pluralRule count="one">i = 0,1 @integer 0, 1 @decimal 0.0~1.5</pluralRule>
+            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ast ca de en et fi fy gl it ji nl sv sw ur yi">
             <pluralRule count="one">i = 1 and v = 0 @integer 1</pluralRule>
-            <pluralRule count="two">i = 2 and v = 0 @integer 2</pluralRule>
-            <pluralRule count="many">v = 0 and n != 0..10 and n % 10 = 0 @integer 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
-            <pluralRule count="other"> @integer 0, 3~17, 101, 1001, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="af asa ast az bem bez bg brx cgg chr ckb dv ee el eo es eu fo fur fy gsw ha haw hu jgo jmc ka kaj kcg kk kkj kl ks ksb ku ky lb lg mas mgo ml mn nah nb nd ne nn nnh no nr ny nyn om or os pap ps rm rof rwk saq seh sn so sq ss ssy st syr ta te teo tig tk tn tr ts uz ve vo vun wae xh xog">
-            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        <pluralRules locales="si">
+            <pluralRule count="one">n = 0,1 or i = 0 and f = 1 @integer 0, 1 @decimal 0.0, 0.1, 1.0, 0.00, 0.01, 1.00, 0.000, 0.001, 1.000, 0.0000, 0.0001, 1.0000</pluralRule>
+            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.2~0.9, 1.1~1.8, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
         <pluralRules locales="ak bh guw ln mg nso pa ti wa">
             <pluralRule count="one">n = 0..1 @integer 0, 1 @decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000</pluralRule>
             <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="ff fr hy kab">
-            <pluralRule count="one">i = 0,1 @integer 0, 1 @decimal 0.0~1.5</pluralRule>
-            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        <pluralRules locales="tzm">
+            <pluralRule count="one">n = 0..1 or n = 11..99 @integer 0, 1, 11~24 @decimal 0.0, 1.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0</pluralRule>
+            <pluralRule count="other"> @integer 2~10, 100~106, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="pt">
+            <pluralRule count="one">n = 0..2 and n != 2 @integer 0, 1 @decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000</pluralRule>
+            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="af asa az bem bez bg brx cgg chr ckb dv ee el eo es eu fo fur gsw ha haw hu jgo jmc ka kaj kcg kk kkj kl ks ksb ku ky lb lg mas mgo ml mn nah nb nd ne nn nnh no nr ny nyn om or os pap ps rm rof rwk saq seh sn so sq ss ssy st syr ta te teo tig tk tn tr ts ug uz ve vo vun wae xh xog">
+            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
+            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="pt_PT">
+            <pluralRule count="one">n = 1 and v = 0 @integer 1</pluralRule>
+            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="da">
+            <pluralRule count="one">n = 1 or t != 0 and i = 0,1 @integer 1 @decimal 0.1~1.6</pluralRule>
+            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 2.0~3.4, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="is">
+            <pluralRule count="one">t = 0 and i % 10 = 1 and i % 100 != 11 or t != 0 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 0.1~1.6, 10.1, 100.1, 1000.1, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="mk">
+            <pluralRule count="one">v = 0 and i % 10 = 1 or f % 10 = 1 @integer 1, 11, 21, 31, 41, 51, 61, 71, 101, 1001, … @decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 2~10, 12~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 0.2~1.0, 1.2~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="fil tl">
+            <pluralRule count="one">v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9 @integer 0~3, 5, 7, 8, 10~13, 15, 17, 18, 20, 21, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.3, 0.5, 0.7, 0.8, 1.0~1.3, 1.5, 1.7, 1.8, 2.0, 2.1, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="other"> @integer 4, 6, 9, 14, 16, 19, 24, 26, 104, 1004, … @decimal 0.4, 0.6, 0.9, 1.4, 1.6, 1.9, 2.4, 2.6, 10.4, 100.4, 1000.4, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="lv">
+
+        <!-- 3: zero,one,other -->
+
+        <pluralRules locales="lv prg">
             <pluralRule count="zero">n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19 @integer 0, 10~20, 30, 40, 50, 60, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
             <pluralRule count="one">n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 0.1, 1.0, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …</pluralRule>
             <pluralRule count="other"> @integer 2~9, 22~29, 102, 1002, … @decimal 0.2~0.9, 1.2~1.9, 10.2, 100.2, 1000.2, …</pluralRule>
         </pluralRules>
+        <pluralRules locales="lag">
+            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
+            <pluralRule count="one">i = 0,1 and n != 0 @integer 1 @decimal 0.1~1.6</pluralRule>
+            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ksh">
+            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
+            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
+            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+
+        <!-- 3: one,two,other -->
+
         <pluralRules locales="iu kw naq se sma smi smj smn sms">
             <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
             <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
             <pluralRule count="other"> @integer 0, 3~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="ga">
-            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
-            <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
-            <pluralRule count="few">n = 3..6 @integer 3~6 @decimal 3.0, 4.0, 5.0, 6.0, 3.00, 4.00, 5.00, 6.00, 3.000, 4.000, 5.000, 6.000, 3.0000, 4.0000, 5.0000, 6.0000</pluralRule>
-            <pluralRule count="many">n = 7..10 @integer 7~10 @decimal 7.0, 8.0, 9.0, 10.0, 7.00, 8.00, 9.00, 10.00, 7.000, 8.000, 9.000, 10.000, 7.0000, 8.0000, 9.0000, 10.0000</pluralRule>
-            <pluralRule count="other"> @integer 0, 11~25, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+
+        <!-- 3: one,few,other -->
+
+        <pluralRules locales="shi">
+            <pluralRule count="one">i = 0 or n = 1 @integer 0, 1 @decimal 0.0~1.0, 0.00~0.04</pluralRule>
+            <pluralRule count="few">n = 2..10 @integer 2~10 @decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00</pluralRule>
+            <pluralRule count="other"> @integer 11~26, 100, 1000, 10000, 100000, 1000000, … @decimal 1.1~1.9, 2.1~2.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
         <pluralRules locales="mo ro">
             <pluralRule count="one">i = 1 and v = 0 @integer 1</pluralRule>
             <pluralRule count="few">v != 0 or n = 0 or n != 1 and n % 100 = 1..19 @integer 0, 2~16, 101, 1001, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
             <pluralRule count="other"> @integer 20~35, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="lt">
-            <pluralRule count="one">n % 10 = 1 and n % 100 != 11..19 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …</pluralRule>
-            <pluralRule count="few">n % 10 = 2..9 and n % 100 != 11..19 @integer 2~9, 22~29, 102, 1002, … @decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 22.0, 102.0, 1002.0, …</pluralRule>
-            <pluralRule count="many">f != 0   @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.1, 1000.1, …</pluralRule>
-            <pluralRule count="other"> @integer 0, 10~20, 30, 40, 50, 60, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        <pluralRules locales="bs hr sh sr">
+            <pluralRule count="one">v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …</pluralRule>
+            <pluralRule count="few">v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … @decimal 0.2~0.4, 1.2~1.4, 2.2~2.4, 3.2~3.4, 4.2~4.4, 5.2, 10.2, 100.2, 1000.2, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 0.5~1.0, 1.5~2.0, 2.5~2.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="be">
-            <pluralRule count="one">n % 10 = 1 and n % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …</pluralRule>
-            <pluralRule count="few">n % 10 = 2..4 and n % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … @decimal 2.0, 3.0, 4.0, 22.0, 23.0, 24.0, 32.0, 33.0, 102.0, 1002.0, …</pluralRule>
-            <pluralRule count="many">n % 10 = 0 or n % 10 = 5..9 or n % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-            <pluralRule count="other">   @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.1, 1000.1, …</pluralRule>
+
+        <!-- 4: one,two,few,other -->
+
+        <pluralRules locales="gd">
+            <pluralRule count="one">n = 1,11 @integer 1, 11 @decimal 1.0, 11.0, 1.00, 11.00, 1.000, 11.000, 1.0000</pluralRule>
+            <pluralRule count="two">n = 2,12 @integer 2, 12 @decimal 2.0, 12.0, 2.00, 12.00, 2.000, 12.000, 2.0000</pluralRule>
+            <pluralRule count="few">n = 3..10,13..19 @integer 3~10, 13~19 @decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 3.00</pluralRule>
+            <pluralRule count="other"> @integer 0, 20~34, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="sl">
+            <pluralRule count="one">v = 0 and i % 100 = 1 @integer 1, 101, 201, 301, 401, 501, 601, 701, 1001, …</pluralRule>
+            <pluralRule count="two">v = 0 and i % 100 = 2 @integer 2, 102, 202, 302, 402, 502, 602, 702, 1002, …</pluralRule>
+            <pluralRule count="few">v = 0 and i % 100 = 3..4 or v != 0 @integer 3, 4, 103, 104, 203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="dsb hsb">
+            <pluralRule count="one">v = 0 and i % 100 = 1 or f % 100 = 1 @integer 1, 101, 201, 301, 401, 501, 601, 701, 1001, … @decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …</pluralRule>
+            <pluralRule count="two">v = 0 and i % 100 = 2 or f % 100 = 2 @integer 2, 102, 202, 302, 402, 502, 602, 702, 1002, … @decimal 0.2, 1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 10.2, 100.2, 1000.2, …</pluralRule>
+            <pluralRule count="few">v = 0 and i % 100 = 3..4 or f % 100 = 3..4 @integer 3, 4, 103, 104, 203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … @decimal 0.3, 0.4, 1.3, 1.4, 2.3, 2.4, 3.3, 3.4, 4.3, 4.4, 5.3, 5.4, 6.3, 6.4, 7.3, 7.4, 10.3, 100.3, 1000.3, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 0.5~1.0, 1.5~2.0, 2.5~2.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        </pluralRules>
+
+        <!-- 4: one,two,many,other -->
+
+        <pluralRules locales="he iw">
+            <pluralRule count="one">i = 1 and v = 0 @integer 1</pluralRule>
+            <pluralRule count="two">i = 2 and v = 0 @integer 2</pluralRule>
+            <pluralRule count="many">v = 0 and n != 0..10 and n % 10 = 0 @integer 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 3~17, 101, 1001, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
+
+        <!-- 4: one,few,many,other -->
+
         <pluralRules locales="cs sk">
             <pluralRule count="one">i = 1 and v = 0 @integer 1</pluralRule>
             <pluralRule count="few">i = 2..4 and v = 0 @integer 2~4</pluralRule>
@@ -83,11 +160,17 @@ For terms of use, see http://www.unicode.org/copyright.html
             <pluralRule count="many">v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
             <pluralRule count="other">   @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="sl">
-            <pluralRule count="one">v = 0 and i % 100 = 1 @integer 1, 101, 201, 301, 401, 501, 601, 701, 1001, …</pluralRule>
-            <pluralRule count="two">v = 0 and i % 100 = 2 @integer 2, 102, 202, 302, 402, 502, 602, 702, 1002, …</pluralRule>
-            <pluralRule count="few">v = 0 and i % 100 = 3..4 or v != 0 @integer 3, 4, 103, 104, 203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-            <pluralRule count="other"> @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
+        <pluralRules locales="be">
+            <pluralRule count="one">n % 10 = 1 and n % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …</pluralRule>
+            <pluralRule count="few">n % 10 = 2..4 and n % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … @decimal 2.0, 3.0, 4.0, 22.0, 23.0, 24.0, 32.0, 33.0, 102.0, 1002.0, …</pluralRule>
+            <pluralRule count="many">n % 10 = 0 or n % 10 = 5..9 or n % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="other">   @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.1, 1000.1, …</pluralRule>
+        </pluralRules>
+        <pluralRules locales="lt">
+            <pluralRule count="one">n % 10 = 1 and n % 100 != 11..19 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …</pluralRule>
+            <pluralRule count="few">n % 10 = 2..9 and n % 100 != 11..19 @integer 2~9, 22~29, 102, 1002, … @decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 22.0, 102.0, 1002.0, …</pluralRule>
+            <pluralRule count="many">f != 0   @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.1, 1000.1, …</pluralRule>
+            <pluralRule count="other"> @integer 0, 10~20, 30, 40, 50, 60, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
         <pluralRules locales="mt">
             <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
@@ -95,28 +178,15 @@ For terms of use, see http://www.unicode.org/copyright.html
             <pluralRule count="many">n % 100 = 11..19 @integer 11~19, 111~117, 1011, … @decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …</pluralRule>
             <pluralRule count="other"> @integer 20~35, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="mk">
-            <pluralRule count="one">v = 0 and i % 10 = 1 or f % 10 = 1 @integer 1, 11, 21, 31, 41, 51, 61, 71, 101, 1001, … @decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~10, 12~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 0.2~1.0, 1.2~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="cy">
-            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
-            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
-            <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
-            <pluralRule count="few">n = 3 @integer 3 @decimal 3.0, 3.00, 3.000, 3.0000</pluralRule>
-            <pluralRule count="many">n = 6 @integer 6 @decimal 6.0, 6.00, 6.000, 6.0000</pluralRule>
-            <pluralRule count="other"> @integer 4, 5, 7~20, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="lag">
-            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
-            <pluralRule count="one">i = 0,1 and n != 0 @integer 1 @decimal 0.1~1.6</pluralRule>
-            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 2.0~3.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="shi">
-            <pluralRule count="one">i = 0 or n = 1 @integer 0, 1 @decimal 0.0~1.0, 0.00~0.04</pluralRule>
-            <pluralRule count="few">n = 2..10 @integer 2~10 @decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00</pluralRule>
-            <pluralRule count="other"> @integer 11~26, 100, 1000, 10000, 100000, 1000000, … @decimal 1.1~1.9, 2.1~2.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        <pluralRules locales="ru uk">
+            <pluralRule count="one">v = 0 and i % 10 = 1 and i % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …</pluralRule>
+            <pluralRule count="few">v = 0 and i % 10 = 2..4 and i % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …</pluralRule>
+            <pluralRule count="many">v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
+            <pluralRule count="other">   @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
+
+        <!-- 5: one,two,few,many,other -->
+
         <pluralRules locales="br">
             <pluralRule count="one">n % 10 = 1 and n % 100 != 11,71,91 @integer 1, 21, 31, 41, 51, 61, 81, 101, 1001, … @decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 81.0, 101.0, 1001.0, …</pluralRule>
             <pluralRule count="two">n % 10 = 2 and n % 100 != 12,72,92 @integer 2, 22, 32, 42, 52, 62, 82, 102, 1002, … @decimal 2.0, 22.0, 32.0, 42.0, 52.0, 62.0, 82.0, 102.0, 1002.0, …</pluralRule>
@@ -124,77 +194,38 @@ For terms of use, see http://www.unicode.org/copyright.html
             <pluralRule count="many">n != 0 and n % 1000000 = 0 @integer 1000000, … @decimal 1000000.0, 1000000.00, 1000000.000, …</pluralRule>
             <pluralRule count="other"> @integer 0, 5~8, 10~20, 100, 1000, 10000, 100000, … @decimal 0.0~0.9, 1.1~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="ksh">
-            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
+        <pluralRules locales="ga">
             <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
-            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="tzm">
-            <pluralRule count="one">n = 0..1 or n = 11..99 @integer 0, 1, 11~24 @decimal 0.0, 1.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0</pluralRule>
-            <pluralRule count="other"> @integer 2~10, 100~106, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
+            <pluralRule count="few">n = 3..6 @integer 3~6 @decimal 3.0, 4.0, 5.0, 6.0, 3.00, 4.00, 5.00, 6.00, 3.000, 4.000, 5.000, 6.000, 3.0000, 4.0000, 5.0000, 6.0000</pluralRule>
+            <pluralRule count="many">n = 7..10 @integer 7~10 @decimal 7.0, 8.0, 9.0, 10.0, 7.00, 8.00, 9.00, 10.00, 7.000, 8.000, 9.000, 10.000, 7.0000, 8.0000, 9.0000, 10.0000</pluralRule>
+            <pluralRule count="other"> @integer 0, 11~25, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
         <pluralRules locales="gv">
-            <pluralRule count="one">n % 10 = 1 @integer 1, 11, 21, 31, 41, 51, 61, 71, 101, 1001, … @decimal 1.0, 11.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 101.0, 1001.0, …</pluralRule>
-            <pluralRule count="two">n % 10 = 2 @integer 2, 12, 22, 32, 42, 52, 62, 72, 102, 1002, … @decimal 2.0, 12.0, 22.0, 32.0, 42.0, 52.0, 62.0, 72.0, 102.0, 1002.0, …</pluralRule>
-            <pluralRule count="few">n % 100 = 0,20,40,60 @integer 0, 20, 40, 60, 100, 120, 140, 160, 1000, 10000, 100000, 1000000, … @decimal 0.0, 20.0, 40.0, 60.0, 100.0, 120.0, 140.0, 160.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-            <pluralRule count="other"> @integer 3~10, 13~19, 23, 103, 1003, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.1, 1000.1, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="gd">
-            <pluralRule count="one">n = 1,11 @integer 1, 11 @decimal 1.0, 11.0, 1.00, 11.00, 1.000, 11.000, 1.0000</pluralRule>
-            <pluralRule count="two">n = 2,12 @integer 2, 12 @decimal 2.0, 12.0, 2.00, 12.00, 2.000, 12.000, 2.0000</pluralRule>
-            <pluralRule count="few">n = 3..10,13..19 @integer 3~10, 13~19 @decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 3.00</pluralRule>
-            <pluralRule count="other"> @integer 0, 20~34, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="bm bo dz id ig ii in ja jbo jv jw kde kea km ko lkt lo ms my nqo sah ses sg th to vi wo yo zh">
-            <pluralRule count="other"> @integer 0~15, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="fil tl">
-            <pluralRule count="one">i = 0..1 and v = 0 @integer 0, 1</pluralRule>
-            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="ca de en et fi gl it ji nl sv sw ur yi">
-            <pluralRule count="one">i = 1 and v = 0 @integer 1</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="pt">
-            <pluralRule count="one">i = 1 and v = 0 or i = 0 and t = 1 @integer 1 @decimal 0.1, 0.01, 0.10, 0.001, 0.010, 0.100, 0.0001, 0.0010, 0.0100, 0.1000</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 0.2~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="da">
-            <pluralRule count="one">n = 1 or t != 0 and i = 0,1 @integer 1 @decimal 0.1~1.6</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 2.0~3.4, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="pt_PT">
-            <pluralRule count="one">n = 1 and v = 0 @integer 1</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="am bn fa gu hi kn mr zu">
-            <pluralRule count="one">i = 0 or n = 1 @integer 0, 1 @decimal 0.0~1.0, 0.00~0.04</pluralRule>
-            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 1.1~2.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="is">
-            <pluralRule count="one">t = 0 and i % 10 = 1 and i % 100 != 11 or t != 0 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 0.1~1.6, 10.1, 100.1, 1000.1, …</pluralRule>
-            <pluralRule count="other"> @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="si">
-            <pluralRule count="one">n = 0,1 or i = 0 and f = 1 @integer 0, 1 @decimal 0.0, 0.1, 1.0, 0.00, 0.01, 1.00, 0.000, 0.001, 1.000, 0.0000, 0.0001, 1.0000</pluralRule>
-            <pluralRule count="other"> @integer 2~17, 100, 1000, 10000, 100000, 1000000, … @decimal 0.2~0.9, 1.1~1.8, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
-        </pluralRules>
-        <pluralRules locales="bs hr sh sr">
-            <pluralRule count="one">v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … @decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …</pluralRule>
-            <pluralRule count="few">v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … @decimal 0.2~0.4, 1.2~1.4, 2.2~2.4, 3.2~3.4, 4.2~4.4, 5.2, 10.2, 100.2, 1000.2, …</pluralRule>
-            <pluralRule count="other"> @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0, 0.5~1.0, 1.5~2.0, 2.5~2.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="one">v = 0 and i % 10 = 1 @integer 1, 11, 21, 31, 41, 51, 61, 71, 101, 1001, …</pluralRule>
+            <pluralRule count="two">v = 0 and i % 10 = 2 @integer 2, 12, 22, 32, 42, 52, 62, 72, 102, 1002, …</pluralRule>
+            <pluralRule count="few">v = 0 and i % 100 = 0,20,40,60,80 @integer 0, 20, 40, 60, 80, 100, 120, 140, 1000, 10000, 100000, 1000000, …</pluralRule>
+            <pluralRule count="many">v != 0   @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+            <pluralRule count="other"> @integer 3~10, 13~19, 23, 103, 1003, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="ru">
-            <pluralRule count="one">v = 0 and i % 10 = 1 and i % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …</pluralRule>
-            <pluralRule count="many">v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
-            <pluralRule count="other"> @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+
+        <!-- 6: zero,one,two,few,many,other -->
+
+        <pluralRules locales="ar">
+            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
+            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
+            <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
+            <pluralRule count="few">n % 100 = 3..10 @integer 3~10, 103~110, 1003, … @decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 103.0, 1003.0, …</pluralRule>
+            <pluralRule count="many">n % 100 = 11..99 @integer 11~26, 111, 1011, … @decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …</pluralRule>
+            <pluralRule count="other"> @integer 100~102, 200~202, 300~302, 400~402, 500~502, 600, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.1, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
-        <pluralRules locales="uk">
-            <pluralRule count="one">v = 0 and i % 10 = 1 and i % 100 != 11 @integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …</pluralRule>
-            <pluralRule count="few">v = 0 and i % 10 = 2..4 and i % 100 != 12..14 @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …</pluralRule>
-            <pluralRule count="many">v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …</pluralRule>
-            <pluralRule count="other">   @decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
+        <pluralRules locales="cy">
+            <pluralRule count="zero">n = 0 @integer 0 @decimal 0.0, 0.00, 0.000, 0.0000</pluralRule>
+            <pluralRule count="one">n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000</pluralRule>
+            <pluralRule count="two">n = 2 @integer 2 @decimal 2.0, 2.00, 2.000, 2.0000</pluralRule>
+            <pluralRule count="few">n = 3 @integer 3 @decimal 3.0, 3.00, 3.000, 3.0000</pluralRule>
+            <pluralRule count="many">n = 6 @integer 6 @decimal 6.0, 6.00, 6.000, 6.0000</pluralRule>
+            <pluralRule count="other"> @integer 4, 5, 7~20, 100, 1000, 10000, 100000, 1000000, … @decimal 0.1~0.9, 1.1~1.7, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …</pluralRule>
         </pluralRules>
     </plurals>
 </supplementalData>
index aae2255..41f3556 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Comp1089",
-            "Mzhiba",
-            "Temuri rajavi",
-            "ОйЛ"
-        ]
-    },
-    "sunday": "амҽыш",
-    "monday": "ашәахь",
-    "tuesday": "аҩаш",
-    "wednesday": "ахаш",
-    "thursday": "аҧшьаш",
-    "friday": "ахәуаш",
-    "saturday": "асабш",
-    "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": "ҧхҷ",
-    "pagecategories": "{{PLURAL:$1|1=Акатегориа|Акатегориақәа}}",
-    "article": "Адаҟьа",
-    "mytalk": "Сахцәажәара",
-    "navigation": "Анавигациа",
-    "qbfind": "Аҧшаара",
-    "qbedit": "Ариашара",
-    "qbpageoptions": "Ари адаҟьа",
-    "vector-action-move": "Ахьӡ аҧсахра",
-    "vector-view-create": "Арҿиара",
-    "vector-view-edit": "Ариашамҭа",
-    "vector-view-history": "Аҭоурых",
-    "vector-view-view": "Аҧхьара",
-    "vector-view-viewsource": "Ахәаҧшра",
-    "help": "Ацхыраара",
-    "search": "Аҧшаара",
-    "searchbutton": "Аҧшаара",
-    "searcharticle": "Адаҟьа",
-    "history": "Аҭоурых",
-    "history_short": "Аҭоурых",
-    "printableversion": "Акьыҧхьразы аверсиа",
-    "permalink": "Еисымшатәи ахьарҧш",
-    "edit": "Ариашамҭа",
-    "create": "Арҿиара",
-    "create-this-page": "Ариашара ари адаҟьа",
-    "newpage": "Адаҟьа Ҿыц",
-    "talkpagelinktext": "Ахцәажәара",
-    "specialpage": "Цастәи адаҟьа",
-    "talk": "Ахцәажәара",
-    "toolbox": "Амаҵыругақәа",
-    "otherlanguages": "Абызшәақәа",
-    "lastmodifiedat": "Ацыхәтәантәи аҧсахрақәа абри адаҟьа аҟны: $2, $1.",
-    "jumptonavigation": "Анавигациа",
-    "jumptosearch": "Аҧшаара",
-    "aboutsite": "{{SITENAME}} иазкны",
-    "currentevents": "Ииасуа ахҭысқәа",
-    "mainpage": "Ихадоу Адаҟьа",
-    "mainpage-description": "Ихадоу адаҟьа",
-    "privacy": "Аконфиденциалтә аполитика",
-    "privacypage": "Project: Аконфиденциалтә аполитика",
-    "youhavenewmessages": "Уара $1 уауит ($2).",
-    "editsection": "ариашамҭа",
-    "editold": "ариашара",
-    "editlink": "ариашара",
-    "nstab-main": "Адаҟьа",
-    "nstab-user": "Алахәыла",
-    "nstab-special": "Цастәи адаҟьа",
-    "nstab-image": "Афаил",
-    "nstab-template": "Ашаблон",
-    "nstab-help": "Ацхыраара",
-    "nstab-category": "Акатегориа",
-    "viewsource": "Ахәаҧшра",
-    "login": "Урдырра",
-    "nav-login-createaccount": "Урдырра / Арегистрациара",
-    "userlogin": "Урдырра/Арегистрациара",
-    "logout": "Асеанс дәылҵра",
-    "userlogout": "Асеанс дәылҵра",
-    "loginlanguagelabel": "Абызшәа: $1",
-    "summary": "Описание изменений:",
-    "savearticle": "Адаҟьа ахьчара",
-    "editing": "Ариашамҭа: $1",
-    "searchresults-title": "Аҧшаара «$1»",
-    "preferences": "Архиарақәа",
-    "mypreferences": "Архиарақәа",
-    "searchresultshead": "Аҧшаара",
-    "uid": "Алахәыла ID:",
-    "yourlanguage": "Абызшәа:",
-    "prefs-signature": "Анапынҵамҭа",
-    "group-user": "Алахәылацәа",
-    "group-user-member": "{{GENDER:$1|алахәыла}}",
-    "grouppage-sysop": "{{ns:project}}:Администраторцәа",
-    "recentchanges": "Арҽеира ҿыцқәа",
-    "recentchanges-legend-newpage": "$1 — адаҟьа ҿыц",
-    "newpageletter": "Ҿ",
-    "recentchangeslinked": "Еимадоу ариашарақәа",
-    "recentchangeslinked-feed": "Еимадоу ариашарақәа",
-    "recentchangeslinked-toolbox": "Еимадоу ариашарақәа",
-    "upload": "Афаил аҭагалара",
-    "filehist-user": "Алахәыла",
-    "randompage": "Машәырлатәи аҩымҭа",
-    "brokenredirects-edit": "ариашамҭа",
-    "newpages-username": "Алахәыла:",
-    "move": "Ахьӡ аҧсахра",
-    "movethispage": "Ахьӡ аҧсахра ари адаҟьа",
-    "specialloguserlabel": "Алахәыла:",
-    "alphaindexline": "$1 ... $2",
-    "linksearch-ok": "Аҧшаара",
-    "watchlist": "Ашклаҧшра асна",
-    "mywatchlist": "Ашклаҧшра асна",
-    "restriction-edit": "Ариашамҭа",
-    "mycontris": "Салагала",
-    "contribsub2": "Алагала $1 ($2)",
-    "sp-contributions-talk": "ахцәажәара",
-    "sp-contributions-submit": "Аҧшаара",
-    "whatlinkshere": "Арахьтәи ахьарҧшқәа",
-    "whatlinkshere-page": "Адаҟьа:",
-    "contribslink": "алагала",
-    "movearticle": "Ахьӡ аҧсахра:",
-    "allmessages-language": "Абызшәа:",
-    "ilsubmit": "Аҧшаара",
-    "watchlistall2": "зегьы",
-    "namespacesall": "зегьы",
-    "monthsall": "зегьы",
-    "fileduplicatesearch-submit": "Аҧшаара",
-    "specialpages": "Цастәи адаҟьақәа",
-    "specialpages-group-login": "Урдырра / Арегистрациара"
+       "@metadata": {
+               "authors": [
+                       "Comp1089",
+                       "Mzhiba",
+                       "Temuri rajavi",
+                       "ОйЛ"
+               ]
+       },
+       "sunday": "амҽыш",
+       "monday": "ашәахь",
+       "tuesday": "аҩаш",
+       "wednesday": "ахаш",
+       "thursday": "аҧшьаш",
+       "friday": "ахәуаш",
+       "saturday": "асабш",
+       "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": "ҧхҷ",
+       "pagecategories": "{{PLURAL:$1|1=Акатегориа|Акатегориақәа}}",
+       "article": "Адаҟьа",
+       "mytalk": "Сахцәажәара",
+       "navigation": "Анавигациа",
+       "qbfind": "Аҧшаара",
+       "qbedit": "Ариашара",
+       "qbpageoptions": "Ари адаҟьа",
+       "help": "Ацхыраара",
+       "search": "Аҧшаара",
+       "searchbutton": "Аҧшаара",
+       "searcharticle": "Адаҟьа",
+       "history": "Аҭоурых",
+       "history_short": "Аҭоурых",
+       "printableversion": "Акьыҧхьразы аверсиа",
+       "permalink": "Еисымшатәи ахьарҧш",
+       "edit": "Ариашамҭа",
+       "create": "Арҿиара",
+       "create-this-page": "Ариашара ари адаҟьа",
+       "newpage": "Адаҟьа Ҿыц",
+       "talkpagelinktext": "Ахцәажәара",
+       "specialpage": "Цастәи адаҟьа",
+       "talk": "Ахцәажәара",
+       "toolbox": "Амаҵыругақәа",
+       "otherlanguages": "Абызшәақәа",
+       "lastmodifiedat": "Ацыхәтәантәи аҧсахрақәа абри адаҟьа аҟны: $2, $1.",
+       "jumptonavigation": "Анавигациа",
+       "jumptosearch": "Аҧшаара",
+       "aboutsite": "{{SITENAME}} иазкны",
+       "currentevents": "Ииасуа ахҭысқәа",
+       "mainpage": "Ихадоу Адаҟьа",
+       "mainpage-description": "Ихадоу адаҟьа",
+       "privacy": "Аконфиденциалтә аполитика",
+       "privacypage": "Project: Аконфиденциалтә аполитика",
+       "youhavenewmessages": "Уара $1 уауит ($2).",
+       "editsection": "ариашамҭа",
+       "editold": "ариашара",
+       "editlink": "ариашара",
+       "nstab-main": "Адаҟьа",
+       "nstab-user": "Алахәыла",
+       "nstab-special": "Цастәи адаҟьа",
+       "nstab-image": "Афаил",
+       "nstab-template": "Ашаблон",
+       "nstab-help": "Ацхыраара",
+       "nstab-category": "Акатегориа",
+       "viewsource": "Ахәаҧшра",
+       "login": "Урдырра",
+       "nav-login-createaccount": "Урдырра / Арегистрациара",
+       "userlogin": "Урдырра/Арегистрациара",
+       "logout": "Асеанс дәылҵра",
+       "userlogout": "Асеанс дәылҵра",
+       "loginlanguagelabel": "Абызшәа: $1",
+       "summary": "Описание изменений:",
+       "savearticle": "Адаҟьа ахьчара",
+       "editing": "Ариашамҭа: $1",
+       "searchresults-title": "Аҧшаара «$1»",
+       "preferences": "Архиарақәа",
+       "mypreferences": "Архиарақәа",
+       "searchresultshead": "Аҧшаара",
+       "yourlanguage": "Абызшәа:",
+       "prefs-signature": "Анапынҵамҭа",
+       "group-user": "Алахәылацәа",
+       "group-user-member": "{{GENDER:$1|алахәыла}}",
+       "grouppage-sysop": "{{ns:project}}:Администраторцәа",
+       "recentchanges": "Арҽеира ҿыцқәа",
+       "recentchanges-legend-newpage": "$1 — адаҟьа ҿыц",
+       "newpageletter": "Ҿ",
+       "recentchangeslinked": "Еимадоу ариашарақәа",
+       "recentchangeslinked-feed": "Еимадоу ариашарақәа",
+       "recentchangeslinked-toolbox": "Еимадоу ариашарақәа",
+       "upload": "Афаил аҭагалара",
+       "filehist-user": "Алахәыла",
+       "randompage": "Машәырлатәи аҩымҭа",
+       "brokenredirects-edit": "ариашамҭа",
+       "newpages-username": "Алахәыла:",
+       "move": "Ахьӡ аҧсахра",
+       "movethispage": "Ахьӡ аҧсахра ари адаҟьа",
+       "specialloguserlabel": "Алахәыла:",
+       "linksearch-ok": "Аҧшаара",
+       "watchlist": "Ашклаҧшра асна",
+       "mywatchlist": "Ашклаҧшра асна",
+       "restriction-edit": "Ариашамҭа",
+       "mycontris": "Салагала",
+       "contribsub2": "Алагала $1 ($2)",
+       "sp-contributions-talk": "ахцәажәара",
+       "sp-contributions-submit": "Аҧшаара",
+       "whatlinkshere": "Арахьтәи ахьарҧшқәа",
+       "whatlinkshere-page": "Адаҟьа:",
+       "contribslink": "алагала",
+       "movearticle": "Ахьӡ аҧсахра:",
+       "allmessages-language": "Абызшәа:",
+       "ilsubmit": "Аҧшаара",
+       "namespacesall": "зегьы",
+       "monthsall": "зегьы",
+       "fileduplicatesearch-submit": "Аҧшаара",
+       "specialpages": "Цастәи адаҟьақәа",
+       "specialpages-group-login": "Урдырра / Арегистрациара"
 }
index 84c5108..89638d5 100644 (file)
        "uncategorizedtemplates": "Seunaleuëk hana kawan",
        "unusedcategories": "Kawan hana geungui",
        "unusedimages": "Beureukaih hana geungui",
-       "popularpages": "Laman jithèë",
        "wantedcategories": "Kawan geuh'eut",
        "wantedpages": "Laman geuh‘eut",
        "wantedpages-badtitle": "Nan hana sah lam kawan hasé: $1",
index 3d74ea2..cb582a1 100644 (file)
        "mergehistory-same-destination": "صفحتا المصدر والهدف لا يمكن أن تكونا نفس الشيء",
        "mergehistory-reason": "السبب:",
        "mergelog": "سجل الدمج",
-       "pagemerge-logentry": "دمج [[$1]] إلى [[$2]] (المراجعات حتى $3)",
        "revertmerge": "إلغاء الدمج",
        "mergelogpagetext": "بالأسفل قائمة بأحدث عمليات الدمج لتاريخ صفحة ما إلى أخرى.",
        "history-title": " «$1»: تاريخ المراجعة",
index d8b9f6a..70c29aa 100644 (file)
        "mergehistory-same-destination": "Die oorsprong en bestemming kan nie dieselfde wees nie",
        "mergehistory-reason": "Rede:",
        "mergelog": "Versmeltingslogboek",
-       "pagemerge-logentry": "versmelt [[$1]] met [[$2]] (weergawes tot en met $3)",
        "revertmerge": "Samesmelting ongedaan maak",
        "mergelogpagetext": "Hieronder is 'n lys van die mees onlangse versmeltings van een bladsy se geskiedenis na 'n ander.",
        "history-title": "$1: weergawegeskiedenis",
        "statistics": "Statistieke",
        "statistics-header-pages": "Bladsystatistiek",
        "statistics-header-edits": "Wysigingstatistiek",
-       "statistics-header-views": "Wys statistieke",
        "statistics-header-users": "Gebruikerstatistiek",
        "statistics-header-hooks": "Ander statistieke",
        "statistics-articles": "Inhoudelike bladsye",
        "statistics-files": "Opgelaaide lêers",
        "statistics-edits": "Wysigings sedert {{SITENAME}} begin is",
        "statistics-edits-average": "Gemiddelde wysigings per bladsy",
-       "statistics-views-total": "Totale aantal bladsye vertoon",
-       "statistics-views-total-desc": "Die wys van nie-bestaande bladsye en spesiale bladsye is nie ingesluit nie",
-       "statistics-views-peredit": "Bladsye besigtig per wysiging",
        "statistics-users": "Geregistreerde [[Special:ListUsers|gebruikers]]",
        "statistics-users-active": "Aktiewe gebruikers",
        "statistics-users-active-desc": "Gebruikers wat in die afgelope {{PLURAL:$1|dag|$1 dae}} 'n handeling uitgevoer het",
-       "statistics-mostpopular": "Mees bekykte bladsye",
        "pageswithprop": "Blaaie met 'n bladsy-eienskap",
        "pageswithprop-legend": "Blaaie met 'n bladsy-eienskap",
        "pageswithprop-text": "Hierdie bladsy lys blaaie met 'n bepaalde blady-eienskap.",
        "uncategorizedtemplates": "Ongekategoriseerde sjablone",
        "unusedcategories": "Ongebruikte kategorieë",
        "unusedimages": "Ongebruikte lêers",
-       "popularpages": "Gewilde bladsye",
        "wantedcategories": "Gesoekte kategorieë",
        "wantedpages": "Gesoekte bladsye",
        "wantedpages-badtitle": "Ongeldige bladsynaam in resultate: $1",
        "pageinfo-robot-policy": "Status vir soekenjins",
        "pageinfo-robot-index": "Toegestaan",
        "pageinfo-robot-noindex": "Nie toegestaan",
-       "pageinfo-views": "Aantal kere gewys",
        "pageinfo-watchers": "Aantal dophouers",
        "pageinfo-few-watchers": "Minder as {{PLURAL:$1|dophouer|$1 dophouers}}",
        "pageinfo-redirects-name": "Aantal aansture na die bladsy",
index 3d3cfad..cc09e7d 100644 (file)
@@ -1,66 +1,66 @@
 {
-    "@metadata": {
-        "authors": [
-            "Kasahorow",
-            "Natsubee",
-            "Paa.kwesi",
-            "Riches4christ"
-        ]
-    },
-    "tog-underline": "Twa lenk nyina ase:",
-    "tog-hideminor": "Suma nsesae a wɔakɔ so a wɔnnkyɛree koraa",
-    "tog-hidepatrolled": "Suma nsesae a wɔapatrole wɔn ndansa yi ara",
-    "tog-newpageshidepatrolled": "Suma nkrataafa a wɔapatrole wɔn fi krataafa-foforo lest no so",
-    "tog-extendwatchlist": "San list-nhwɛso no mu ama wo ehu nsesae nyinara a wɔakɔ so",
-    "tog-usenewrc": "Fa ndansa nsesae a woetu mpon fa di dwuma (wo hia JavaScript)",
-    "tog-numberheadings": "Ma ti-nsɛm no ara ankasa mma wɔn ho nɔmba",
-    "tog-showtoolbar": "Kyerɛ tulbaa a wɔde yɛ nsesa (wo hia JavaScript)",
-    "tog-editondblclick": "Sesa nkrataafa sɛ womia klik mpɛn mienu a (wo hia JavaScript)",
-    "sunday": "Kwasiada",
-    "monday": "Ɛdwoada",
-    "tuesday": "Ɛbenada",
-    "wednesday": "Wukuada",
-    "thursday": "Yawoada",
-    "friday": "Efiada",
-    "saturday": "Memeneda",
-    "january": "Ɔpɛpɔn",
-    "february": "Ɔgyefuo",
-    "march": "Ɔbenem",
-    "april": "Oforisuo",
-    "may_long": "Kɔtonimma",
-    "june": "Ayɛwohomumu",
-    "july": "Kutawonsa",
-    "august": "Ɔsannaa",
-    "september": "Ɛbɔ",
-    "october": "Ahinime",
-    "november": "Obubuo",
-    "december": "Ɔpenimma",
-    "listingcontinuesabbrev": "toa so",
-    "search": "Hwehwɛ",
-    "searchbutton": "Hwehwɛ",
-    "go": "Kɔ",
-    "searcharticle": "Kɔ",
-    "history": "Krataafa abakɔsɛm",
-    "history_short": "Abakɔsɛm",
-    "talkpagelinktext": "Kasa",
-    "talk": "Nkɔmbɔ",
-    "jumptosearch": "hwehwɛ",
-    "aboutsite": "Fa {{SITENAME}} ho",
-    "mainpage": "Krataafa Titiriw",
-    "editsection": "sesa",
-    "editsectionhint": "Sesa sɛkhyɛn: $1",
-    "red-link-title": "$1 (krataafa nni hɔ)",
-    "nstab-main": "kratafa",
-    "login": "Bra mu",
-    "nav-login-createaccount": "Bra mu / yɛ akawnt",
-    "userlogin": "Bra mu / yɛ akawnt",
-    "logout": "Pue",
-    "userlogout": "Pue",
-    "notloggedin": "Mmbaa mu",
-    "nologin": "Wo nni akawnt anaa? $1.",
-    "searchresultshead": "Hwehwɛ",
-    "hist": "abakɔsɛm",
-    "watch": "Hwɛ",
-    "sp-contributions-talk": "Kasa",
-    "contribslink": "ntoboa"
+       "@metadata": {
+               "authors": [
+                       "Kasahorow",
+                       "Natsubee",
+                       "Paa.kwesi",
+                       "Riches4christ"
+               ]
+       },
+       "tog-underline": "Twa lenk nyina ase:",
+       "tog-hideminor": "Suma nsesae a wɔakɔ so a wɔnnkyɛree koraa",
+       "tog-hidepatrolled": "Suma nsesae a wɔapatrole wɔn ndansa yi ara",
+       "tog-newpageshidepatrolled": "Suma nkrataafa a wɔapatrole wɔn fi krataafa-foforo lest no so",
+       "tog-extendwatchlist": "San list-nhwɛso no mu ama wo ehu nsesae nyinara a wɔakɔ so",
+       "tog-usenewrc": "Fa ndansa nsesae a woetu mpon fa di dwuma (wo hia JavaScript)",
+       "tog-numberheadings": "Ma ti-nsɛm no ara ankasa mma wɔn ho nɔmba",
+       "tog-showtoolbar": "Kyerɛ tulbaa a wɔde yɛ nsesa (wo hia JavaScript)",
+       "tog-editondblclick": "Sesa nkrataafa sɛ womia klik mpɛn mienu a (wo hia JavaScript)",
+       "sunday": "Kwasiada",
+       "monday": "Ɛdwoada",
+       "tuesday": "Ɛbenada",
+       "wednesday": "Wukuada",
+       "thursday": "Yawoada",
+       "friday": "Efiada",
+       "saturday": "Memeneda",
+       "january": "Ɔpɛpɔn",
+       "february": "Ɔgyefuo",
+       "march": "Ɔbenem",
+       "april": "Oforisuo",
+       "may_long": "Kɔtonimma",
+       "june": "Ayɛwohomumu",
+       "july": "Kutawonsa",
+       "august": "Ɔsannaa",
+       "september": "Ɛbɔ",
+       "october": "Ahinime",
+       "november": "Obubuo",
+       "december": "Ɔpenimma",
+       "listingcontinuesabbrev": "toa so",
+       "search": "Hwehwɛ",
+       "searchbutton": "Hwehwɛ",
+       "go": "Kɔ",
+       "searcharticle": "Kɔ",
+       "history": "Krataafa abakɔsɛm",
+       "history_short": "Abakɔsɛm",
+       "talkpagelinktext": "Kasa",
+       "talk": "Nkɔmbɔ",
+       "jumptosearch": "hwehwɛ",
+       "aboutsite": "Fa {{SITENAME}} ho",
+       "mainpage": "Krataafa Titiriw",
+       "editsection": "sesa",
+       "editsectionhint": "Sesa sɛkhyɛn: $1",
+       "red-link-title": "$1 (krataafa nni hɔ)",
+       "nstab-main": "kratafa",
+       "login": "Bra mu",
+       "nav-login-createaccount": "Bra mu / yɛ akawnt",
+       "userlogin": "Bra mu / yɛ akawnt",
+       "logout": "Pue",
+       "userlogout": "Pue",
+       "notloggedin": "Mmbaa mu",
+       "nologin": "Wo nni akawnt anaa? $1.",
+       "searchresultshead": "Hwehwɛ",
+       "hist": "abakɔsɛm",
+       "watch": "Hwɛ",
+       "sp-contributions-talk": "Kasa",
+       "contribslink": "ntoboa"
 }
index d4710b8..4ed68bc 100644 (file)
        "mergehistory-comment": "U bashkua [[:$1]] në [[:$2]]: $3",
        "mergehistory-same-destination": "Burimi dhe faqja e përcaktimit nuk mund të jenë të njëjta",
        "mergelog": "Regjistri i bashkimeve",
-       "pagemerge-logentry": "u bashkua [[$1]] në [[$2]] (versione deri më $3)",
        "revertmerge": "Çkape",
        "mergelogpagetext": "Më poshtë jepet një listë e bashkimeve së fundmi nga historiku i një faqeje në historikun e një faqeje tjetër.",
        "history-title": "Historiku i redaktimeve për \"$1\"",
index f186bbb..b74b682 100644 (file)
        "mergehistory-same-destination": "መነሻና መድረሻ ገጾች አንድላይ ሊሆኑ አይቻልም",
        "mergehistory-reason": "ምክንያቱ፦",
        "mergelog": "የመዋሐድ መዝገብ",
-       "pagemerge-logentry": "[[$1]]ን ወደ [[$2]] አዋሐደ (እትሞች እስከ $3 ድረስ)",
        "revertmerge": "መዋሐዱን ለመገልበጥ",
        "mergelogpagetext": "የአንድ ገጽ ታሪክ ወደ ሌላው ሲዋሐድ ከዚህ ታች ያለው ዝርዝር ያሳያል።",
        "history-title": "የ«$1» እትሞች ታሪክ",
        "statistics-users": "አባልነት የገቡ [[Special:ListUsers|ተጠቃሚዎች]]",
        "statistics-users-active": "ተግባራዊ ተጠቃሚዎች",
        "statistics-users-active-desc": "ባለፈው {{PLURAL:$1|ቀን|$1 ቀን}} ማንኛውንም ድርጊት የሠሩት ተጠቃሚዎች",
-       "statistics-mostpopular": "ከሁሉ የታዩት ገጾች",
        "doubleredirects": "ድርብ መምሪያ መንገዶች",
        "doubleredirectstext": "ይህ ድርብ መምሪያ መንገዶች ይዘርዘራል።\n\nድርብ መምሪያ መንገድ ካለ ወደ መጨረሻ መያያዣ እንዲሄድ ቢስተካከል ይሻላል።",
        "double-redirect-fixed-move": "[[$1]] ተዛውራልና አሁን ለ[[$2]] መምሪያ መንገድ ነው።",
        "uncategorizedtemplates": "ያልተመደቡ መለጠፊያዎች",
        "unusedcategories": "ባዶ መደቦች",
        "unusedimages": "ያልተያያዙ ፋይሎች",
-       "popularpages": "የሚወደዱ ገጾች",
        "wantedcategories": "ቀይ መያያዣዎች የበዙላቸው መደቦች",
        "wantedpages": "ቀይ መያያዣዎች የበዙላቸው አርእስቶች",
        "wantedfiles": "የተፈለጉ ፋይሎች",
index 7c710c7..ee38c93 100644 (file)
        "mergehistory-same-destination": "As pachinas d'orichen y destín han d'estar diferents",
        "mergehistory-reason": "Razón:",
        "mergelog": "Rechistro d'unions",
-       "pagemerge-logentry": "s'ha fusionato [[$1]] con [[$2]] (revisions dica o $3)",
        "revertmerge": "Desfer a fusión",
        "mergelogpagetext": "Contino s'amuestra una lista d'as pachinas más recients que os suyos historials s'han fusionato con o d'atra pachina.",
        "history-title": "Historial de versions de \"$1\"",
        "statistics": "Estatisticas",
        "statistics-header-pages": "Estatisticas de pachinas",
        "statistics-header-edits": "Estatisticas d'edicions",
-       "statistics-header-views": "Estatisticas de vesitas",
        "statistics-header-users": "Estatisticas d'usuarios",
        "statistics-header-hooks": "Atras estatisticas",
        "statistics-articles": "Pachinas de contenito",
        "statistics-files": "Fichers cargatos",
        "statistics-edits": "Edicions en pachinas dende que se debantó {{SITENAME}}",
        "statistics-edits-average": "Meya d'edicions por pachina",
-       "statistics-views-total": "Total de vesitas",
-       "statistics-views-total-desc": "No s'inclui as vesitas a pachinas inexistents ni a pachinas especials",
-       "statistics-views-peredit": "Vesitas por edición",
        "statistics-users": "[[Special:ListUsers|Usuarios]] rechistratos",
        "statistics-users-active": "Usuarios activos",
        "statistics-users-active-desc": "Usuarios que han feito qualsiquier acción en {{PLURAL:$1|o zaguer día|os zaguers $1 días}}",
-       "statistics-mostpopular": "Pachinas más vistas",
        "doubleredirects": "Reendreceras dobles",
        "doubleredirectstext": "En ista pachina s'amuestran as pachinas que son reendreceras enta atras pachinas reendrezatas.\nCada ringlera contién o vinclo t'a primer y segunda reendreceras, y tamién o destino d'a segunda reendrecera, que ye a ormino a pachina obchectivo \"reyal\" a la que a primer pachina habría d'endrezar.",
        "double-redirect-fixed-move": "S'ha tresladau [[$1]], agora ye una endrecera ta [[$2]]",
        "uncategorizedtemplates": "Plantillas sin categorizar",
        "unusedcategories": "Categorías sin emplegar",
        "unusedimages": "Imachens sin uso",
-       "popularpages": "Pachinas populars",
        "wantedcategories": "Categorías requiestas",
        "wantedpages": "Pachinas requiestas",
        "wantedpages-badtitle": "Títol no conforme en o conchunto de resultaus: $1",
        "simpleantispam-label": "Preba anti-spam.\n'''NO''' replene esto!",
        "pageinfo-title": "Información ta «$1»",
        "pageinfo-header-edits": "Edicions",
-       "pageinfo-views": "Numero de vistas",
        "pageinfo-watchers": "Numero d'usuarios que la cosiran",
        "pageinfo-edits": "Numero d'edicions",
        "pageinfo-authors": "Numero d'autors diferents",
index 2615fe3..d176033 100644 (file)
        "statistics-articles": "Innunge trametas",
        "statistics-pages": "Trametas",
        "statistics-users-active": "Hwate brūcendas",
-       "statistics-mostpopular": "Gesawenoste trametas",
        "doubleredirects": "Twifealda edlǣdunga",
        "brokenredirects": "Gebrocena edlǣdunga",
        "brokenredirectstext": "Þā folgiendan edlǣdunga gāþ tō æfweardum trametum.",
        "specialpage-empty": "Nis þǣr nāht þe āh cȳðan þes tramet.",
        "lonelypages": "Ealdorlēase trametas",
        "unusedimages": "Īdela ymelan",
-       "popularpages": "Folclīce trametas",
        "wantedcategories": "Gewilnode floccas",
        "wantedpages": "Gewilnode trametas",
        "mostlinked": "Trametas mid þǣm mǣstan rīme hlencena",
index 66d7617..1ecde6a 100644 (file)
        "pager-older-n": "{{PLURAL:$1|पुराना 1|पुरानॊ सीनी $1}}",
        "booksources": "पुस्तक स्रोत",
        "booksources-search-legend": "पुस्तक स्रोत खोजॊ",
-       "booksources-go": "जा",
        "log": "लॉग सूची",
        "allpages": "सब्भे पन्ना",
        "prevpage": "पिछला पन्ना ($1)",
        "watchthispage": "ई पन्ना ध्यानसूची में डालॊ",
        "unwatch": "ध्यान हटाबॊ",
        "watchlist-details": "वार्ता पन्ना केरॊ अलावा {{PLURAL:$1|$1 पन्ना|$1 पन्ने}} आपने के ध्यानसूची मॆं छै.",
-       "wlshowlast": "पिछला $1 घंटा $2 दिन $3 देखॊ",
+       "wlshowlast": "पिछला $1 घंटा $2 दिन  देखॊ",
        "watchlist-options": "ध्यानसूची विकल्प",
        "watching": "ध्यान दय रहलॊ छै...",
        "unwatching": "ध्यान हटाय रहलॊ छियै...",
        "metadata-expand": "अतिरिक्त जानकारी दिखाबॊ",
        "metadata-collapse": "विस्तारित जानकारी छुपाबॊ",
        "metadata-fields": "इ सूची मॆं देलॊ गेलॊ जानकारी फ़ाईल केरॊ नीचे मेटाडाटा जानकारी मॆं हमेशा दिखतै.\nबचलॊ जानकारी हमेशा छुपलॊ रहतै\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "सब्भे",
        "namespacesall": "सब्भे",
        "monthsall": "सब्भे",
        "watchlisttools-view": "प्रासंगिक बदलाव देखॊ",
index 4e86dcc..75bfc34 100644 (file)
@@ -45,7 +45,8 @@
                        "아라",
                        "Test Create account",
                        "Kuwaity26",
-                       "Calak"
+                       "Calak",
+                       "Omda4wady"
                ]
        },
        "tog-underline": "سطر تحت الوصلات:",
        "mergehistory-same-destination": "صفحتا المصدر والهدف لا يمكن أن تكونا نفس الشيء",
        "mergehistory-reason": "السبب:",
        "mergelog": "سجل الدمج",
-       "pagemerge-logentry": "دمج [[$1]] إلى [[$2]] (المراجعات حتى $3)",
        "revertmerge": "إلغاء الدمج",
        "mergelogpagetext": "بالأسفل قائمة بأحدث عمليات الدمج لتاريخ صفحة ما إلى أخرى.",
        "history-title": "تاريخ \"$1\"",
        "searchall": "الكل",
        "showingresults": "معروض بالأسفل {{PLURAL:$1|'''1''' نتيجة|'''$1''' نتيجة}} بدءا من رقم '''$2'''.",
        "showingresultsinrange": "بالأسفل {{PLURAL:$1|نتيجة واحدة|<strong>$1</strong> نتائج|<strong>$1</strong> نتيجة}} في النطاق من <strong>$2</strong> إلى <strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|النتائج <strong>$1</strong> من <strong>$3</strong>|النتائج <strong>$1 - $2</strong> من أصل <strong>$3</strong>}}",
        "search-nonefound": "لا توجد نتائج تطابق الاستعلام.",
        "powersearch-legend": "بحث متقدم",
        "powersearch-ns": "بحث في النطاقات:",
        "randomincategory": "صفحة عشوائية في التصنيف",
        "randomincategory-invalidcategory": "\"$1\" ليس اسم تصنيف صالح.",
        "randomincategory-nopages": "لا توجد صفحات في التصنيف [[:Category:$1|$1]].",
+       "randomincategory-category": "التصنيف:",
+       "randomincategory-legend": "صفحة عشوائية في التصنيف",
        "randomredirect": "تحويلة عشوائية",
        "randomredirect-nopages": "لا توجد تحويلات في النطاق \"$1\".",
        "statistics": "إحصاءات",
        "statistics-header-pages": "إحصاءات الصفحات",
        "statistics-header-edits": "إحصاءات التعديلات",
-       "statistics-header-views": "إحصاءات المشاهدة",
        "statistics-header-users": "إحصاءات المستخدمين",
        "statistics-header-hooks": "إحصاءات أخرى",
        "statistics-articles": "صفحات المحتوى",
        "statistics-files": "الملفات المرفوعة",
        "statistics-edits": "تعديلات الصفحات منذ تنصيب {{SITENAME}}",
        "statistics-edits-average": "متوسط التعديلات لكل صفحة",
-       "statistics-views-total": "إجمالي المشاهدات",
-       "statistics-views-total-desc": "مشاهدات الصفحات غير الموجودة والصفحات الخاصة غير مشمولة.",
-       "statistics-views-peredit": "المشاهدات لكل تعديل",
        "statistics-users": "[[Special:ListUsers|مستخدمون]] مسجلون",
        "statistics-users-active": "مستخدمون نشطون",
        "statistics-users-active-desc": "المستخدمون الذين قاموا بفعل في آخر {{PLURAL:$1||يوم|يومين|$1 أيام|$1 يوماً|$1 يوم}}",
-       "statistics-mostpopular": "أكثر الصفحات مشاهدة",
        "pageswithprop": "صفحات مع خاصية الصفحة",
        "pageswithprop-legend": "صفحات مع خاصية الصفحة",
        "pageswithprop-text": "تسرد هذه الصفحة الصفحات التي تستخدم خاصية صفحة معينة.",
        "uncategorizedtemplates": "قوالب غير مصنفة",
        "unusedcategories": "تصنيفات غير مستخدمة",
        "unusedimages": "ملفات غير مستخدمة",
-       "popularpages": "صفحات مشهورة",
        "wantedcategories": "تصنيفات مطلوبة",
        "wantedpages": "صفحات مطلوبة",
        "wantedpages-badtitle": "عنوان غير صحيح في مجموعة النتائج: $1",
        "booksources": "مصادر كتاب",
        "booksources-search-legend": "البحث عن مصادر الكتب",
        "booksources-isbn": "ردمك:",
+       "booksources-search": "بحث",
        "booksources-text": "توجد أدناه قائمة بوصلات لمواقع أخرى تبيع الكتب الجديدة والمستعملة، أيضا يمكنك أن تحصل على معلومات إضافية عن الكتب التي تبحث عنها من هناك:",
        "booksources-invalid-isbn": "رقم ISBN المعطى لا يبدو صحيحا؛ تحقق من أخطاء النسخ من المصدر الأصلي.",
        "specialloguserlabel": "المؤدي:",
        "wlheader-enotif": "الإخطار بالبريد الإلكتروني مُفعّل.",
        "wlheader-showupdated": "الصفحات التي تم تحريرها بعد مطالعتك إياها آخر مرة عناوينها بالخط '''الغليظ'''",
        "wlnote": "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
-       "wlshowlast": "عرض آخر $1 ساعات $2 أيام",
+       "wlshowlast": "عرض آخر $1 ساعات $2 يوما",
        "watchlist-options": "خيارات قائمة المراقبة",
        "watching": "يراقب...",
        "unwatching": "إزالة المراقبة...",
        "isimage": "وصلة ملف",
        "whatlinkshere-prev": "{{PLURAL:$1|السابق|ال$1 السابقة}}",
        "whatlinkshere-next": "{{PLURAL:$1|القادمة|ال$1 القادمة}}",
-       "whatlinkshere-links": "← وصلات",
+       "whatlinkshere-links": "وصلات",
        "whatlinkshere-hideredirs": "$1 التحويلات",
        "whatlinkshere-hidetrans": "$1 التضمينات",
        "whatlinkshere-hidelinks": "$1 الوصلات",
        "pageinfo-robot-policy": "فهرسة الروبوتات",
        "pageinfo-robot-index": "مسموحة",
        "pageinfo-robot-noindex": "غير مسموحة",
-       "pageinfo-views": "عدد المشاهدات",
        "pageinfo-watchers": "عدد المراقبين",
        "pageinfo-few-watchers": "أقل من {{PLURAL:$1||مراقب واحد|مراقبين اثنين|$1 مراقبين|$1 مراقباً|$1 مراقب}}",
        "pageinfo-redirects-name": "عدد التحويلات إلى هذه الصفحة",
        "pagelang-select-lang": "اختر اللغة",
        "right-pagelang": "تغيير لغة الصفحة",
        "action-pagelang": "تغيير لغة الصفحة",
-       "log-name-pagelang": "تغيير سجل الصفحة"
+       "log-name-pagelang": "تغيير سجل الصفحة",
+       "mediastatistics-header-video": "مقاطع الفيديو",
+       "json-error-syntax": "خطأ صياغة"
 }
index 6c96052..5dde327 100644 (file)
        "mergehistory-comment": "ܚܒܛ [[:$1]] ܒ [[:$2]]: $3",
        "mergehistory-reason": "ܥܠܬܐ:",
        "mergelog": "ܣܓܠܐ ܕܚܒܛܐ",
-       "pagemerge-logentry": "ܚܒܛ [[$1]] ܒ [[$2]] (ܬܢܝܬ̈ܐ ܥܕܡܐ ܠ $3)",
        "revertmerge": "ܒܛܘܠ ܚܒܛܐ",
        "history-title": "\"$1\": ܬܫܥܝܬܐ ܕܬܢܝܬܐ",
        "difference-title": "«$1»: ܦܘܪܫܐ ܒܝܢܝ ܬܢܝܬ̈ܐ",
        "statistics": "ܚܒܝܫܘܬ ܡܢܝܢܐ",
        "statistics-header-pages": "ܚܒܝܫܘܬ ܡܢܝܢ̈ܐ ܕܦܐܬܐ",
        "statistics-header-edits": "ܚܒܝܫܘܬ ܡܢܝܢܐ ܕܫܘܚܠܦ̈ܐ",
-       "statistics-header-views": "ܚܒܝܫܘܬ ܡܢܝܢܐ ܕܚܙܝܐ",
        "statistics-header-users": "ܚܒܝܫܘܬ ܡܢܝܢܐ ܕܡܦܠܚܢܐ",
        "statistics-header-hooks": "ܚܒܝܫܘܬ ܡܢܝܢܐ ܐܚܪܢܐ",
        "statistics-articles": "ܦܐܬܬ̈ܐ ܕܚܒܝܫܬ̈ܐ",
        "statistics-pages": "ܦܐܬܬ̈ܐ",
        "statistics-edits": "ܫܘܚܠܦ̈ܐ ܕܦܐܬܬ̈ܐ ܡܢ ܫܘܪܝܐ ܕ {{SITENAME}}",
        "statistics-edits-average": "ܡܨܥܐ ܕܫܘܚܠܦ̈ܐ ܠܟܠ ܦܐܬܐ",
-       "statistics-views-total": "ܣܘܝܟܐ ܕܚܙܝܐ",
-       "statistics-views-peredit": "ܚܘܘܝ̈ܐ ܠܟܠ ܫܘܚܠܦܐ",
        "statistics-users": "[[Special:ListUsers|ܡܦܠܚܢ̈ܐ]] ܡܣܓܠ̈ܐ",
        "statistics-users-active": "ܡܦܠܚܢ̈ܐ ܙܪ̄ܝܙܐ",
-       "statistics-mostpopular": "ܦܐܬܬ̈ܐ ܚܙܝ̈ܐ ܝܬܝܪ ܡܢ ܟܠ",
        "pageswithprop": "ܦܐܬܬ̈ܐ ܥܡ ܕܝܠܝܬܐ ܕܦܐܬܐ",
        "pageswithprop-legend": "ܦܐܬܬ̈ܐ ܥܡ ܕܝܠܝܬܐ ܕܦܐܬܐ",
        "pageswithprop-prop": "ܫܡܐ ܕܕܝܠܝܬܐ",
        "uncategorizedtemplates": "ܩܠܒ̈ܐ ܠܐ ܣܕܝܪ̈ܐ",
        "unusedcategories": "ܣܕܪ̈ܐ ܠܐ ܦܠܝܚ̈ܐ",
        "unusedimages": "ܠܦܦ̈ܐ ܠܐ ܦܠܝܚ̈ܐ",
-       "popularpages": "ܦܐܬܬ̈ܐ ܡܫܡܗܬ̈ܐ",
        "wantedcategories": "ܣܕܪ̈ܐ ܒܥܝ̈ܐ",
        "wantedpages": "ܦܐܬܬ̈ܐ ܣܢܝܩܬ̈ܐ",
        "wantedfiles": "ܠܦܦ̈ܐ ܣܢܝܩ̈ܐ",
        "pageinfo-robot-policy": "ܫܘܘܕܥܐ ܒܝܕ ܪ̈ܘܒܘܛܐ",
        "pageinfo-robot-index": "ܡܬܦܣܣܢܐ",
        "pageinfo-robot-noindex": "ܠܐ ܡܬܦܣܣܢܐ",
-       "pageinfo-views": "ܡܢܝܢܐ ܕܚܙܝܬ̈ܐ",
        "pageinfo-watchers": "ܡܢܝܢܐ ܕܪ̈ܗܝܐ",
        "pageinfo-redirects-name": "ܡܢܝܢܐ ܕܨܘܝܒ̈ܐ ܠܦܐܬܐ ܗܕܐ",
        "pageinfo-subpages-name": "ܦܐܬܬ̈ܐ ܦܪ̈ܥܝܐ ܕܦܐܬܐ ܗܕܐ",
index de81f16..f408d43 100644 (file)
        "mergehistory-same-destination": "ma ymkn-ċ tkon ṣ-ṣfḫa l-mosṫhdafa hia l-mṣḍṛ braso",
        "mergehistory-reason": "sabab:",
        "mergelog": "sjl damj",
-       "pagemerge-logentry": "[[$1]] ṫdmjaṫ f-[[$2]] (morajaĝaṫ ĝṫṫa l-$3)",
        "revertmerge": "Ḫiyyed ṫ-ṫeĥlat.",
        "history-title": "Ṫ-Ṫariĥ dyal lé-vérsyon dyal \"$1\"",
        "difference-multipage": "(l-fṛq bin ṣ-ṣfaḫi)",
        "statistics": "Staṫisṫik",
        "statistics-header-pages": "ihsa'at sfahi",
        "statistics-header-edits": "ihsa'at taadilat",
-       "statistics-header-views": "ihsa'at lmochahada",
        "statistics-header-users": "ihsa'at lmstkhdimin",
        "statistics-header-hooks": "ihsa'at khra",
        "statistics-articles": "sfht mohtawa",
        "statistics-pages": "ṣfaḫi",
        "statistics-files": "Ṣifet ci fiċyé",
        "statistics-edits-average": "otawassit taadilat lkol sfha",
-       "statistics-views-total": "chof total",
-       "statistics-views-peredit": "l-moċahadaĝ l-koll ṫĝdil",
        "statistics-users-active": "mostakhdimon nachtin",
-       "statistics-mostpopular": "aktar sfahi mochahada",
        "doubleredirects": "ṫḫwila mḍoḅla",
        "double-redirect-fixed-move": "[[$1]] ṫnqlaṫ.\ndaba ka ṫḫwwal l-[[$2]].",
        "double-redirect-fixed-maintenance": "iṣlaḫ ṫḫwil mḍobl mon [[$1]] l-[[$2]].",
        "uncategorizedtemplates": "qwalb mamsnfinch",
        "unusedcategories": "tsnifat mabqatch mstaamla",
        "unusedimages": "milfat mamstkhdmach",
-       "popularpages": "sfahi mchhora",
        "wantedcategories": "tsnifat mtloba",
        "wantedpages": "sfahi mtloba",
        "wantedpages-badtitle": "ĝonwan ma ṣḫiḫ-ċ f-mjmoĝṫ n-naṫa'ij: $1",
        "spambot_username": "tandif spam mediawiki",
        "pageinfo-title": "mĝlomaṫ l-\"$1\"",
        "pageinfo-header-edits": "ṫĝdilaṫ",
-       "pageinfo-views": "ĝadad l-moċahadaṫ",
        "pageinfo-watchers": "ĝadad l-moraqibin",
        "pageinfo-edits": "ĝadad ṫ-ṫĝdilaṫ",
        "pageinfo-authors": "ĝadad l-mo'llifin l-mĥṫalfin",
index 781f216..65f556f 100644 (file)
        "mergehistory-same-destination": "صفحتا المصدر والهدف لا يمكن أن تكونا نفس الشىء",
        "mergehistory-reason": "السبب:",
        "mergelog": "سجل الدمج",
-       "pagemerge-logentry": "دمج [[$1]] لـ [[$2]] (النسخ حتى $3)",
        "revertmerge": "استرجاع الدمج",
        "mergelogpagetext": "فى تحت لستة بأحدث عمليات الدمج لتاريخ صفحة فى التانية.",
        "history-title": " «$1»: تاريخ التعديل",
        "statistics": "احصائيات",
        "statistics-header-pages": "إحصاءات الصفحات",
        "statistics-header-edits": "إحصاءات التعديلات",
-       "statistics-header-views": "إحصاءات المشاهدة",
        "statistics-header-users": "الاحصاءات بتاعة اليوزر",
        "statistics-header-hooks": "احصائيات تانيه",
        "statistics-articles": "صفحات المحتوى",
        "statistics-files": "الملفات المتحملة",
        "statistics-edits": "تعديلات الصفحات من بداية {{SITENAME}}",
        "statistics-edits-average": "متوسط التعديلات لكل صفحة",
-       "statistics-views-total": "إجمالى المشاهدات",
-       "statistics-views-peredit": "المشاهدات لكل تعديل",
        "statistics-users": "[[Special:ListUsers|يوزرز]] مسجلين",
        "statistics-users-active": "يوزرز نشطين",
        "statistics-users-active-desc": "اليوزرز اللى نفذو عمليه فى الـ {{PLURAL:$1|يوم|$1 ايام}} اللى فاتو",
-       "statistics-mostpopular": "اكتر صفحات اتشافت",
        "doubleredirects": "تحويلات مزدوجه",
        "doubleredirectstext": "الصفحة دى فيها لستة الصفحات اللى فيها تحويلة لصفحة تانية فيها تحويلة.\nكل سطر فى اللستة دى  فيه لينك للتحويلة الأولانية والتانية و كمان للصفحة بتاعة التحويلة التانية و اللى غالبا هى الصفحة الاصلية اللى المفروض التحويلة الاولانية توصل ليها.\n<del>Crossed out</del> اتحلت.",
        "double-redirect-fixed-move": "[[$1]] اتنقلت، هى دلوقتى تحويله ل [[$2]]",
        "uncategorizedtemplates": "قوالب مش متصنفه",
        "unusedcategories": "تصانيف مش  مستعمله",
        "unusedimages": "صور مش مستعمله",
-       "popularpages": "صفحات مشهورة",
        "wantedcategories": "تصانيف مطلوبه",
        "wantedpages": "صفحات مطلوبه",
        "wantedpages-badtitle": "عنوان مش صحيح فى مجموعة النتايج: $1",
index ae3f3cf..6b0eb78 100644 (file)
        "mergehistory-same-destination": "উৎস আৰু গন্তব্য পৃষ্ঠা একে হ'ব নোৱাৰে",
        "mergehistory-reason": "কাৰণ:",
        "mergelog": "অভিলেখ একত্ৰীকৰণ",
-       "pagemerge-logentry": "[[$1]] [[$2]]-ত মিলোৱা হ'ল (সংশোধনসমূহ $3-লৈ)",
        "revertmerge": "একত্ৰীকৰণ বাতিল কৰক",
        "mergelogpagetext": "এটা পৃষ্ঠাৰ ইতিহাস আন এখনৰ লগত কৰা একত্ৰীকৰণৰ সকলোতকৈ শেহতীয়া তালিকা তলত দিয়া হ’ল ।",
        "history-title": "\"$1\" ৰ সংশোধনৰ ইতিহাস",
        "statistics": "পৰিসংখ্যা",
        "statistics-header-pages": "পৃষ্ঠা পৰিসংখ্যা",
        "statistics-header-edits": "পৰিসংখ্যা সম্পাদনা কৰক",
-       "statistics-header-views": "পৰিসংখ্যা দেখুৱাওক",
        "statistics-header-users": "ব্যৱহাৰকাৰীৰ পৰিসংখ্যা",
        "statistics-header-hooks": "অন্য পৰিসংখ্যা",
        "statistics-articles": "বিষয়বস্তুৰ পৃষ্ঠা",
        "statistics-files": "আপল’ড কৰা ফাইলসমূহ",
        "statistics-edits": "{{SITENAME}} স্থাপন কৰাৰেপৰা পৃষ্ঠা সম্পাদনাসমূহ",
        "statistics-edits-average": "প্ৰতি পৃষ্ঠাৰ গড় সম্পাদনা",
-       "statistics-views-total": "সৰ্বমুঠ প্ৰদৰ্শন",
-       "statistics-views-total-desc": "অস্তিত্বহীন পৃষ্ঠা আৰু বিশেষ পৃষ্ঠাসমূহৰ দৰ্শন ইয়াত ভুক্ত নহয়",
-       "statistics-views-peredit": "সম্পাদনা প্ৰতি দৰ্শন",
        "statistics-users": "পঞ্জীভূত [[Special:ListUsers|সদস্যসমূহ]]",
        "statistics-users-active": "সক্ৰিয় সদস্য",
        "statistics-users-active-desc": "শেষ {{PLURAL:$1|দিনত|$1 দিনত}} কোনো কাম কৰা সদস্যসমূহ",
-       "statistics-mostpopular": "সৰ্বোচ্চ দৰ্শন কৰা পৃষ্ঠাসমূহ",
        "pageswithprop": "পৃষ্ঠা উপাদান সম্বলিত পৃষ্ঠাসমূহ",
        "pageswithprop-legend": "পৃষ্ঠা উপাদান সম্বলিত পৃষ্ঠাসমূহ",
        "pageswithprop-text": "বিশেষ পৃষ্ঠা উপাদান ব্যৱহাৰ কৰা পৃষ্ঠাসমূহ ইয়াত তালিকাভুক্ত কৰা হৈছে।",
        "uncategorizedtemplates": "অশ্ৰেণীকৃত সাঁচসমূহ",
        "unusedcategories": "অব্যৱহৃত শ্ৰেণীসমূহ",
        "unusedimages": "অব্যৱহৃত ফাইলসমূহ",
-       "popularpages": "জনপ্ৰিয় পৃষ্ঠাসমূহ",
        "wantedcategories": "কাম্য শ্ৰেণীসমূহ",
        "wantedpages": "কাম্য পৃষ্ঠাসমূহ",
        "wantedpages-badtitle": "ফলাফল তালিকাত অবৈধ শিৰোনামা: $1",
        "pageinfo-robot-policy": "ৰ'ব'টৰ জৰিয়তে ইন্‌ডেক্সিং কৰা হৈছে",
        "pageinfo-robot-index": "অনুমোদিত",
        "pageinfo-robot-noindex": "অনুমোদন অগ্ৰাহ্য",
-       "pageinfo-views": "দৰ্শনৰ সংখ্যা",
        "pageinfo-watchers": "পৃষ্ঠা নিৰীক্ষকৰ সংখ্যা",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|তকৈ কম নিৰীক্ষক}}",
        "pageinfo-redirects-name": "এই পৃষ্ঠালৈ থকা পুনৰ্নিৰ্দেশৰ সংখ্যা",
index ce2c3c2..0bae445 100644 (file)
        "otherlanguages": "N'otres llingües",
        "redirectedfrom": "(Redirixío dende $1)",
        "redirectpagesub": "Páxina de redireición",
+       "redirectto": "Redirixe a:",
        "lastmodifiedat": "L'últimu cambiu d'esta páxina foi el $1, a les $2.",
        "viewcount": "Esta páxina visitóse {{PLURAL:$1|una vegada|$1 vegaes}}.",
        "protectedpage": "Páxina protexida",
        "createaccount-text": "Daquién creó una cuenta cola to direición de corréu electrónicu en {{SITENAME}} ($4) col nome «$2», y cola contraseña «$3».\nAgora tendríes d'aniciar sesión y camudar la contraseña.\n\nPues escaecer esti mensaxe si esta cuenta creóse por error.",
        "login-throttled": "Ficisti demasiaos intentos d'aniciu de sesión recientes.\nPor favor espera $1 enantes d'intentalo otra vuelta.",
        "login-abort-generic": "Falló la identificación - Encaboxao",
+       "login-migrated-generic": "La to cuenta migróse ya'l to nome d'usuariu yá nun esiste nesta wiki.",
        "loginlanguagelabel": "Llingua: $1",
        "suspicious-userlogout": "La to solicitú de zarrar sesión refugose porque paez qu'unvióla un restolador frañíu o un proxy de caché.",
        "createacct-another-realname-tip": "El nome real ye opcional.\nSi decide conseñalu, va usase p'atribuir el trabayu al usuariu.",
        "showpreview": "Amosar previsualización",
        "showdiff": "Amosar cambeos",
        "blankarticle": "<strong>Atención:</strong> La páxina que tas a piques de crear ta balera.\nSi vuelves a facer click en «{{int:savearticle}}», crearáse la páxina ensin conteníu dengún.",
-       "anoneditwarning": "<strong>Avisu:</strong> Nun anició sesión.\nLa direición IP quedará grabada nel historial d'edición d'esta páxina.",
+       "anoneditwarning": "<strong>Avisu:</strong> Nun aniciasti sesión. La direición IP sedrá visible en público si faes dalguna edición. Si <strong>[$1 anicies sesión]</strong> o <strong>[$2 crees una cuenta]</strong>, les ediciones atribuiránse al to nome d'usuariu, xunto con otros beneficios.",
        "anonpreviewwarning": "''Nun aniciasti sesión. Al guardar quedará rexistrada la to direición IP nel historial d'edición d'esta páxina.''",
        "missingsummary": "'''Recordatoriu:''' Nun conseñasti un resume d'edición.\nSi calques nuevamente \"{{int:savearticle}}\", la to edición guardaráse ensin nengún resume.",
        "missingcommenttext": "Por favor, escribi un comentariu abaxo.",
        "mergehistory-same-destination": "Les páxines d'orixe y destín nun puen ser la mesma",
        "mergehistory-reason": "Motivu:",
        "mergelog": "Rexistru de fusiones",
-       "pagemerge-logentry": "[[$1]] foi fusionada en [[$2]] (hasta la revisión $3)",
        "revertmerge": "Dixebrar",
        "mergelogpagetext": "Abaxo amuésase una llista de les fusiones más recientes d'un historial de páxina con otru.",
        "history-title": "Historial de revisiones de «$1»",
        "searchall": "toos",
        "showingresults": "Abaxo {{PLURAL:$1|amuésase '''un''' resultáu|amuésense '''$1''' resultaos}}, entamando col #'''$2'''.",
        "showingresultsinrange": "Más abaxo s'{{PLURAL:$1|amuesa|amuesen}} fasta {{PLURAL:$1|<strong>1</strong> resultáu|<strong>$1</strong> resultaos}} nel rangu ente #<strong>$2</strong> y #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Resultáu <strong>$1</strong> de <strong>$3</strong>|Resultaos <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "Nun hebo resultaos que casaren cola consulta.",
        "powersearch-legend": "Busca avanzada",
        "powersearch-ns": "Buscar nos espacios de nome:",
        "prefs-tokenwatchlist": "Pase",
        "prefs-diffs": "Diferencies",
        "prefs-help-prefershttps": "Esta preferencia aplicaráse nel siguiente aniciu de sesión.",
+       "prefswarning-warning": "Ficisti cambios nes tos preferencies qu'inda nun se guardaron.\nSi abandones esta páxina ensin calcar \"$1\" les preferencies nun s'anovarán.",
        "prefs-tabs-navigation-hint": "Gabitu: pue usar les tecles de flecha izquierda y drecha pa navegar peles llingüetes de la llista.",
        "email-address-validity-valid": "La direición de corréu paez válida",
        "email-address-validity-invalid": "Escribi una direición de corréu válida",
        "statistics": "Estadístiques",
        "statistics-header-pages": "Estadístiques de páxines",
        "statistics-header-edits": "Estadístiques d'ediciones",
-       "statistics-header-views": "Estadístiques de visites",
        "statistics-header-users": "Estadístiques d'usuariu",
        "statistics-header-hooks": "Otres estadístiques",
        "statistics-articles": "Páxines de conteníu",
        "statistics-files": "Archivos xubíos",
        "statistics-edits": "Ediciones de páxines dende qu'entamó {{SITENAME}}",
        "statistics-edits-average": "Media d'ediciones por páxina",
-       "statistics-views-total": "Visites totales",
-       "statistics-views-total-desc": "Nun s'incluyen les visites a les páxines inesistentes y especiales",
-       "statistics-views-peredit": "Visites por edición",
        "statistics-users": "[[Special:ListUsers|Usuarios]] rexistraos",
        "statistics-users-active": "Usuarios activos",
        "statistics-users-active-desc": "Usuarios que realizaron una aición {{PLURAL:$1|nel caberu día|nos caberos $1 díes}}",
-       "statistics-mostpopular": "Páxines más vistes",
        "pageswithprop": "Páxines con una propiedá de páxina",
        "pageswithprop-legend": "Páxines con una propiedá de páxina",
        "pageswithprop-text": "Esta páxina llista les páxines qu'usen una propiedá de páxina determinada.",
        "uncategorizedtemplates": "Plantíes non categorizaes",
        "unusedcategories": "Categoríes non usaes",
        "unusedimages": "Imáxenes non usaes",
-       "popularpages": "Páxines populares",
        "wantedcategories": "Categoríes buscaes",
        "wantedpages": "Páxines buscaes",
        "wantedpages-badtitle": "Títulu inválidu nel conxuntu de resultaos: $1",
        "querypage-disabled": "Esta páxina especial ta desactivada por razones de rindimientu.",
        "booksources": "Fontes de llibros",
        "booksources-search-legend": "Busca de fontes de llibros",
+       "booksources-search": "Buscar",
        "booksources-text": "Esta ye una llista d'enllaces a otros sitios que vienden llibros nuevos y usaos, y que puen tener más información sobre los llibros que ta buscando:",
        "booksources-invalid-isbn": "El códigu ISBN que puxisti nun paez que valga; mira que te vien copiáu de la fonte orixinal.",
        "specialloguserlabel": "Fecho por:",
        "wlheader-enotif": "La notificación per corréu electrónicu ta activada.",
        "wlheader-showupdated": "Les páxines que camudaron dende que les visitasti anteriormente amuesense en '''negrina'''",
        "wlnote": "Abaxo {{PLURAL:$1|tá'l caberu cambiu|tan los caberos <strong>$1</strong> cambios}} {{PLURAL:$2|na cabera hora|nes caberes <strong>$2</strong> hores}}, a día $3, a les $4.",
-       "wlshowlast": "Amosar les últimes $1 hores $2 díes",
+       "wlshowlast": "Amosar les últimes $1 hores, los últimos $2 díes",
        "watchlist-options": "Opciones de la llista de siguimientu",
        "watching": "Vixilando...",
        "unwatching": "Dexando de vixilar...",
        "protect-othertime": "Otru periodu:",
        "protect-othertime-op": "otru periodu",
        "protect-existing-expiry": "Caducidá actual: $2, $3",
+       "protect-existing-expiry-infinity": "Tiempu de caducidá esistente: infinitu",
        "protect-otherreason": "Motivu distintu/adicional:",
        "protect-otherreason-op": "Otru motivu",
        "protect-dropdown": "*Motivos comunes de proteición\n** Vandalismu escomanáu\n** Spamming escesivu\n** Guerra d'ediciones contraproducente\n** Páxina de tráficu altu",
        "unblocked": "[[User:$1|$1]] desbloquióse.",
        "unblocked-range": "$1 se desbloquió",
        "unblocked-id": "Desaniciose'l bloquéu $1.",
+       "unblocked-ip": "Desbloquióse a [[Special:Contributions/$1|$1]].",
        "blocklist": "Usuarios bloquiaos",
        "ipblocklist": "Usuarios bloquiaos",
        "ipblocklist-legend": "Atopar un usuariu bloquiáu",
        "pageinfo-robot-policy": "Indexación por robots",
        "pageinfo-robot-index": "Permitío",
        "pageinfo-robot-noindex": "Torgao",
-       "pageinfo-views": "Númberu de visites",
        "pageinfo-watchers": "Númberu de vixilantes de la páxina",
        "pageinfo-few-watchers": "Menos de $1 {{PLURAL:$1|vixilante|vixilantes}}",
        "pageinfo-redirects-name": "Númberu de redireiciones a esta páxina",
        "log-name-pagelang": "Rexistru de cambios de llingua",
        "log-description-pagelang": "Esti ye un rexistru de los cambios de llingua de les páxines.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} la llingua de la páxina $3 del $4 al $5.",
-       "default-skin-not-found": "¡Coime! L'aspeutu predetermináu pa la to wiki (<code>$wgDefaultSkin</code>), <code>$1</code> nun ta disponible.\n\nLa to instalación paez qu'incluye los siguientes aspeutos. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activalos y escoyer el predetermináu.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code>skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar les llinies siguientes en <code>LocalSettings.php</code> p'activar tolos aspeutos instalaos actualmente:\n\n<pre>$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
-       "default-skin-not-found-no-skins": "¡Coime! L'aspeutu predetermináu pa la to wiki (<code>$wgDefaultSkin</code>), <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code>skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
+       "default-skin-not-found": "L'aspeutu predetermináu pa la to wiki, definíu en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nLa to instalación paez qu'incluye los siguientes aspeutos. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activalos y escoyer el predetermináu.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar les llinies siguientes en <code>LocalSettings.php</code> p'activar tolos aspeutos instalaos actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
+       "default-skin-not-found-no-skins": "L'aspeutu predetermináu pa la to wiki, definíu en <code>$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activáu)",
-       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactiváu''')"
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactiváu''')",
+       "mediastatistics": "Estadístiques de multimedia",
+       "mediastatistics-summary": "Estadístiques sobro los tipos de ficheros xubíos. Esto sólo incluye la versión más nueva d'un ficheru. Escluyense les versiones antigües o desaniciaes de los ficheros.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "Tipu MIME",
+       "mediastatistics-table-extensions": "Estensiones posibles",
+       "mediastatistics-table-count": "Númberu de ficheros",
+       "mediastatistics-table-totalbytes": "Tamañu combináu",
+       "mediastatistics-header-unknown": "Desconocíu",
+       "mediastatistics-header-bitmap": "Imaxes de mapa de bits",
+       "mediastatistics-header-drawing": "Dibuxos (imaxes vectoriales)",
+       "mediastatistics-header-audio": "Soníu",
+       "mediastatistics-header-video": "Videos",
+       "mediastatistics-header-multimedia": "Multimedia enriquecida",
+       "mediastatistics-header-office": "Oficina",
+       "mediastatistics-header-text": "Testual",
+       "mediastatistics-header-executable": "Executables",
+       "mediastatistics-header-archive": "Formatos comprimíos",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|coma al final desanicióse|comes al final desaniciáronse}} de JSON",
+       "json-error-unknown": "Hebo un problema col JSON. Error: $1",
+       "json-error-depth": "Pasóse de la fondura máxima de la pila",
+       "json-error-state-mismatch": "JSON inválidu o incorreutu",
+       "json-error-ctrl-char": "Error de caráuter de control, seique codificáu incorreutamente",
+       "json-error-syntax": "Error de sintaxis",
+       "json-error-utf8": "Carauteres UTF-8 con errores de formatu, seique codificaos incorreutamente",
+       "json-error-recursion": "Una o más referencies recursives nel valor a codificar",
+       "json-error-inf-or-nan": "Unu o más valores NAN (númberu nun conseñáu) o INF (infinitu) nel valor a codificar",
+       "json-error-unsupported-type": "Diose un valor d'un tipu que nun pue codificase"
 }
index 249d6a1..2bacf2a 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Amikeco",
-            "Amire80",
-            "MF-Warburg",
-            "MONARCH79",
-            "Phoebe",
-            "Умар"
-        ]
-    },
-    "sunday": "ГьатӀан",
-    "monday": "Итни",
-    "tuesday": "Талат",
-    "wednesday": "АрбагӀ",
-    "thursday": "Хамиз",
-    "friday": "Рузман",
-    "saturday": "Шаммат",
-    "mytalk": "Дур бахlс",
-    "and": "&#32;ва",
-    "vector-view-edit": "Хисизабизе",
-    "errorpagetitle": "Гъалатl",
-    "help": "Кумек",
-    "history": "Хиса-басазул тарих",
-    "printableversion": "КутӀизе версия",
-    "permalink": "Кидаго букӀунеб рехсей",
-    "edit": "Хисизабе",
-    "talkpage": "Гьумералда тlасан бахlс",
-    "talk": "Бахlс",
-    "toolbox": "Алатал",
-    "userpage": "ГӀахьалчиясул гьумер",
-    "otherlanguages": "Цойги мацӀазда",
-    "currentevents": "Жакъасел лъугьа-бахъинал",
-    "mainpage": "БетӀераб гьумер",
-    "mainpage-description": "БетӀераб гьумер",
-    "portal": "Майдан",
-    "portal-url": "Project:Майдан",
-    "editsection": "хисизабизе",
-    "nstab-help": "Кумек",
-    "error": "Гъалатl",
-    "internalerror": "Жанисеб гъалатl",
-    "viewsource": "Код бихьи",
-    "userlogin": "ЦIар бице",
-    "userlogout": "Къватlиве лъугьине",
-    "savearticle": "Хъвай-хъвай цӀунизе",
-    "preferences": "Рекъезаби",
-    "localtime": "Бакlалъул заман",
-    "userrights-user-editname": "ГӀахьалчиясул цӀар хъвай:",
-    "recentchanges": "ЦӀиял хиса-басал",
-    "rcshowhideminor": "$1 гӀиси-микъинал хиса-басал",
-    "rcshowhidebots": "$1 бот",
-    "rcshowhideliu": "$1 цӀар рагьарал гӀахьалчагӀи",
-    "rcshowhideanons": "$1 цӀаргьечӀ",
-    "rcshowhidemine": "$1 дир хиса-басал",
-    "diff": "батӀалъи",
-    "hide": "Бахчизе",
-    "show": "Бихьизабизе",
-    "minoreditletter": "гӀ.-м.",
-    "newpageletter": "ЦӀ",
-    "recentchangeslinked": "Рухьарал хиса-басиял",
-    "recentchangeslinked-feed": "Рухьарал хиса-басиял",
-    "recentchangeslinked-toolbox": "Рухьарал хиса-басиял",
-    "uploadnologin": "Дуца цӀар бицун гьечӀо",
-    "randompage": "Цебе ккараб гьумер",
-    "shortpages": "Къокъал макъалаби",
-    "longpages": "Кlудиял гьумерал",
-    "listusers": "Гlахьалчагlазул сияхl",
-    "specialloguserlabel": "ГӀахьалчи:",
-    "allarticles": "Киналго макъалаби",
-    "watchlist": "Дур халгьабиялъул сияхl",
-    "watch": "хал гьабизе",
-    "contributions": "ГӀахьалчиясул хӀалтӀи",
-    "mycontris": "Дур гlахьаллъи",
-    "whatlinkshere": "Рехсей гьанибе",
-    "move-page-legend": "Гьумералъул цlар хисизе",
-    "movearticle": "Гьумералъул цӀар хисизе",
-    "movepagebtn": "Гьумералъул цlар хисизе",
-    "specialpages": "Хассал гьумерал"
+       "@metadata": {
+               "authors": [
+                       "Amikeco",
+                       "Amire80",
+                       "MF-Warburg",
+                       "MONARCH79",
+                       "Phoebe",
+                       "Умар",
+                       "Gazimagomedov",
+                       "Kaganer",
+                       "Аль-Гимравий"
+               ]
+       },
+       "tog-underline": "Линкал гъоркьмухъизе",
+       "tog-hideminor": "ЧIахIиял хиса-басиязул сияхIалда дагьа-макъал хиса-басиял рахчизе",
+       "tog-showtoolbar": "Хиса-басиял гьарулеб мехалда тIасияб алатазул панель бихьизабизе",
+       "tog-editondblclick": "КIиго щелчоказдалъун гьемералъул хиса-баси гьабизе",
+       "tog-oldsig": "Гьанжесеб гъулбас",
+       "underline-always": "Кидаго",
+       "underline-never": "Киданиги",
+       "sunday": "ГьатӀан",
+       "monday": "Итни",
+       "tuesday": "Талат",
+       "wednesday": "АрбагӀ",
+       "thursday": "Хамиз",
+       "friday": "Рузман",
+       "saturday": "Шаммат",
+       "sun": "ГьатI",
+       "mon": "Итн",
+       "tue": "Тал",
+       "wed": "Арб",
+       "thu": "Хам",
+       "fri": "Руз",
+       "sat": "Шам",
+       "january": "Январ",
+       "february": "Феврал",
+       "march": "Март",
+       "april": "Апрел",
+       "may_long": "Май",
+       "june": "Июн",
+       "july": "Июл",
+       "august": "Август",
+       "september": "Сентябр",
+       "october": "Октябр",
+       "november": "Ноябр",
+       "december": "Декабр",
+       "january-gen": "Январ",
+       "february-gen": "Феврал",
+       "march-gen": "Март",
+       "april-gen": "Апрел",
+       "may-gen": "Май",
+       "june-gen": "Июн",
+       "july-gen": "Июл",
+       "august-gen": "Август",
+       "september-gen": "Сентябр",
+       "october-gen": "Октябр",
+       "november-gen": "Ноябр",
+       "december-gen": "Декабр",
+       "jan": "Янв",
+       "feb": "Фев",
+       "mar": "Мар",
+       "apr": "Апр",
+       "may": "Май",
+       "jun": "Июн",
+       "jul": "Июл",
+       "aug": "Авг",
+       "sep": "Сен",
+       "oct": "Окт",
+       "nov": "Ноя",
+       "dec": "Дек",
+       "january-date": "Январ $1",
+       "february-date": "Феврал $1",
+       "march-date": "Март $1",
+       "april-date": "Апрел $1",
+       "may-date": "Май $1",
+       "june-date": "Июн $1",
+       "july-date": "Июл $1",
+       "august-date": "Август $1",
+       "september-date": "Сентябр $1",
+       "october-date": "Октябр $1",
+       "november-date": "Ноябр $1",
+       "december-date": "Декабр $1",
+       "pagecategories": "{{PLURAL:$1|1=Категория|Категориял}}",
+       "category_header": "Категориялда «$1» гьумер",
+       "subcategories": "Подкатегориял",
+       "category-media-header": "Категориялда «$1» файл",
+       "category-empty": "\"ГьабсагIаталъ гьаб категория чIобого буго.\"",
+       "hidden-categories": "{{PLURAL:$1|1=Бахчараб категория|Рахчарал категориял}}",
+       "hidden-category-category": "Рахчарал категориял",
+       "listingcontinuesabbrev": "(жеги)",
+       "about": "Программаялъул хIакъалъулъ",
+       "cancel": "НахъчIвазе",
+       "moredotdotdot": "Жеги...",
+       "morenotlisted": "Гьаб сияхI цIураб гьечIо",
+       "mypage": "Гьумер",
+       "mytalk": "Бахlс",
+       "navigation": "Навигация",
+       "and": "&#32;ва",
+       "qbfind": "ЦIехезе",
+       "qbbrowse": "Балагьизе",
+       "qbedit": "Хисизабизе",
+       "qbpageoptions": "Гьемералъул рекъезаби",
+       "qbmyoptions": "Дур рекъезаби",
+       "faq": "FAQ",
+       "errorpagetitle": "Гъалатl",
+       "tagline": "{{grammar:genitive|{{SITENAME}}}} сайталдасан материал",
+       "help": "Кумек",
+       "search": "ЦIехезе",
+       "searchbutton": "ЦIехезе",
+       "go": "Ине",
+       "searcharticle": "Ине",
+       "history": "Хиса-басазул тарих",
+       "history_short": "Тарих",
+       "printableversion": "КутӀизе версия",
+       "permalink": "Кидагояб линк",
+       "print": "КIутIизе",
+       "view": "Балагьи",
+       "view-foreign": "$1 сайталда балагьизе",
+       "edit": "Хисизабизе",
+       "create": "Гьабизе",
+       "editthispage": "Гьаб гьубер хисизабизе",
+       "create-this-page": "Гьаб гьаб гьумер гьабизе",
+       "delete": "БацIцIине",
+       "deletethispage": "Гьаб гьумер бацIине",
+       "undeletethispage": "Гьаб гьумер цӀигьабизе",
+       "undelete_short": "{{PLURAL:$1|$1 хиса-баси|1=Хиса-баси}} цӀигьабизе",
+       "viewdeleted_short": "{{PLURAL:$1|$1 бацӀцӀараб хиса-баси|$1 рацӀцӀарал хиса-басиязда|бацӀцӀараб хиса-баси}} балагьизе",
+       "protect": "Хиса-басияздасан цIунизе",
+       "protect_change": "хисизе",
+       "unprotect": "ЦӀуни хисизе",
+       "unprotectthispage": "Гьаб гьумералъул цӀуни хисизабизе",
+       "newpage": "ЦIияб гьумер",
+       "talkpage": "БахӀс",
+       "talkpagelinktext": "Бахlс",
+       "specialpage": "Хъулухъияб гьумер",
+       "personaltools": "Дур алатал",
+       "articlepage": "Балагьизе макъалаялда",
+       "talk": "Бахlс",
+       "views": "Балагьиял",
+       "toolbox": "Алатал",
+       "userpage": "ГӀахьалчиясул гьумер",
+       "imagepage": "Файлалъул гьумер балагьизе",
+       "mediawikipage": "Кагъаталъул гьумер балагьизе",
+       "otherlanguages": "Цоги мацӀазда",
+       "redirectpagesub": "Цоги гьумералда сверизабураб гьумер",
+       "lastmodifiedat": "Ахирисеб нухалъ гьаб гьумералъул хиса-баси гьабуна:  $2, $1.",
+       "protectedpage": "ЦӀунараб гьумер",
+       "jumpto": "КӀанцӀизе:",
+       "jumptonavigation": "Навигация",
+       "jumptosearch": "цIехезе",
+       "pool-errorunknown": "Лъалареб гъалатӀ",
+       "aboutsite": "{{grammar:genitive|{{SITENAME}}}} хӀакъалъулъ",
+       "currentevents": "Жакъасел лъугьа-бахъинал",
+       "edithelp": "Хисизабиялъе кумек",
+       "mainpage": "БетӀераб гьумер",
+       "mainpage-description": "БетӀераб гьумер",
+       "policy-url": "Project:КъагӀидаби",
+       "portal": "ЖамагIаталъул портал",
+       "portal-url": "Project:Майдан",
+       "privacy": "Конфиденциальносталъул сиясат",
+       "privacypage": "Project:Конфиденциальносталъул сиясат",
+       "badaccess": "Ихтияразул гъалатӀ",
+       "ok": "OK",
+       "retrievedfrom": "Босараб бакӀ — «$1»",
+       "youhavenewmessages": "Духъе $1 бачӀана ($2).",
+       "youhavenewmessagesmanyusers": "Духъе $1 бачӀана чамалиго гӀахьалчиясухъан ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|цӀияб кагъат|999=цӀиял кагътал}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|ахирисеб хиса-баси|999=ахирисел хиса-басиял}}",
+       "youhavenewmessagesmulti": "Духъе цӀиял кагътал рачӀана $1",
+       "editsection": "хисизабизе",
+       "editold": "хисизабизе",
+       "viewsourceold": "вики-текст балагьизе",
+       "editlink": "хисизабизе",
+       "viewsourcelink": "вики-текст балагьизе",
+       "editsectionhint": "$1 бутӀа хисизабизе",
+       "toc": "Жаниб бугеб жо",
+       "showtoc": "бихьизабизе",
+       "hidetoc": "бахчизе",
+       "collapsible-collapse": "Кьуризабизе",
+       "collapsible-expand": "Рагьизе",
+       "confirmable-confirm": "{{GENDER:$1|Мун}} унгойищ?",
+       "confirmable-yes": "У",
+       "confirmable-no": "Гуро",
+       "viewdeleted": "$1 балагьизеищ?",
+       "nstab-main": "Гьумер",
+       "nstab-user": "ГIахьалчи",
+       "nstab-media": "Мультимедиа",
+       "nstab-special": "Хъулухъияб гьумер",
+       "nstab-project": "Проект хIакъалъулъ",
+       "nstab-image": "Файл",
+       "nstab-mediawiki": "Кагъат",
+       "nstab-template": "Шаблон",
+       "nstab-help": "Кумек",
+       "nstab-category": "Категория",
+       "error": "Гъалатl",
+       "databaseerror-error": "ГъалатI: $1",
+       "internalerror": "Жанисеб гъалатl",
+       "badtitle": "Бегьулареб цIар",
+       "viewsource": "Вики-текст балагьизе",
+       "viewsource-title": "$1 гьумералъул вики-текст балагьизе",
+       "exception-nologin": "Мун жаниве лъугьун гьечIо",
+       "exception-nologin-text": "Жаниве лъугьине ккола.",
+       "yourname": "ХӀалтӀизабулчиясул цӀар:",
+       "userlogin-yourname": "ХӀалтӀизабулчиясул цӀар",
+       "userlogin-yourname-ph": "Дур аккаунталъул цӀар хъвае",
+       "createacct-another-username-ph": "ГӀахьалчиясул цӀар хъвай",
+       "yourpassword": "Пароль:",
+       "userlogin-yourpassword": "Пароль",
+       "userlogin-yourpassword-ph": "Дур пароль хъвае",
+       "createacct-yourpassword-ph": "Дур пароль хъвае",
+       "yourpasswordagain": "Пароль такрар гьабе:",
+       "userlogin-remembermypassword": "Системалда чӀезе",
+       "yourdomainname": "Дур домен:",
+       "login": "Жаниве лъугьине",
+       "nav-login-createaccount": "Жаниве лъугьине / аккаунт гьабизе",
+       "userlogin": "Жаниве лъугьине / аккаунт гьабизе",
+       "userloginnocreate": "Жаниве лъугьине",
+       "logout": "Къватlиве вачIизе",
+       "userlogout": "Къватlиве лъугьине",
+       "notloggedin": "Мун жаниве лъугьун гьечIо",
+       "userlogin-noaccount": "Дур аккаунт гьечIебищ?",
+       "nologin": "Дур аккаунт гьечIебищ? $1.",
+       "nologinlink": "Аккаунт гьабизе",
+       "createaccount": "Аккаунт гьабизе",
+       "gotaccount": "Дур аккаунт бугиш? $1.",
+       "gotaccountlink": "Жаниве лъугьине",
+       "loginsuccesstitle": "Жаниве лъугьана",
+       "resettokens-tokens": "Токенал:",
+       "media_tip": "Файлалъе линк",
+       "sig_tip": "Дур гъулбас ва гьабсагӀаталъ заман",
+       "summary": "Хиса-басиязул куц:",
+       "subject": "Тема/бетӀер",
+       "minoredit": "Дагьа-макъаб хиса-баси",
+       "watchthis": "Гьаб гьумералда хадуб хал кквезе",
+       "savearticle": "Хъвай-хъвай цӀунизе",
+       "preview": "ЦIебесеб",
+       "showpreview": "Цин балагьизе",
+       "showdiff": "Хисараб жо балагьизе",
+       "updated": "(ЦӀигьабуна)",
+       "note": "<strong>ХӀужа:</strong>",
+       "previewnote": "<strong>КӀочоге, мун гьабсагӀаталъ балагьула вуго макъалаялъул букӀине бугеб куцалъухъ.</strong>\nДуца гьарурал хиса-басиял цӀунун гьечӀо!",
+       "continue-editing": "Жегиги хисизабизе",
+       "editing": "Хисизаби $1",
+       "creating": "Гьабула буго цӀияб гьумер - $1",
+       "editingsection": "$1 (бутӀа) хисизаби",
+       "editingcomment": "$1 (цӀияб бутӀа) хисизаби",
+       "editconflict": "Хисизабиялул дагӀба:",
+       "yourdiff": "БатӀалъи",
+       "template-protected": "(цӀунун буго)",
+       "template-semiprotected": "(цо-цо бакӀал цунун руго)",
+       "next": "хадуб",
+       "last": "цебе",
+       "page_first": "тӀоцебесеб",
+       "page_last": "ахирисеб",
+       "histfirst": "некӀсиял",
+       "histlast": "бищун цӀиял",
+       "historysize": "($1 {{PLURAL:$1|байт|байт|байт}})",
+       "historyempty": "(чӀобого буго)",
+       "history-feed-title": "Хиса-басиязул тарих",
+       "rev-showdeleted": "бихьизабизе",
+       "revdelete-show-file-submit": "У",
+       "revdelete-reasonotherlist": "Цоги гӀила",
+       "mergehistory-reason": "ГӀила:",
+       "editundo": "нахъчIвазе",
+       "diff-empty": "(БатӀалъи гьечӀо)",
+       "preferences": "Рекъезаби",
+       "mypreferences": "Рекъезаби",
+       "localtime": "Бакlалъул заман",
+       "userrights-user-editname": "ГӀахьалчиясул цӀар хъвай:",
+       "recentchanges": "ЦӀиял хиса-басиял",
+       "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-show": "Бихьизабизе",
+       "rcshowhidepatr-hide": "Бахчизе",
+       "rcshowhidemine": "$1 дир хиса-басиял",
+       "rcshowhidemine-show": "Бихьизабизе",
+       "rcshowhidemine-hide": "Бахчизе",
+       "diff": "батӀалъи",
+       "hide": "Бахчизе",
+       "show": "Бихьизабизе",
+       "minoreditletter": "гӀ.-м.",
+       "newpageletter": "ЦӀ",
+       "recentchangeslinked": "Рухьарал хиса-басиял",
+       "recentchangeslinked-feed": "Рухьарал хиса-басиял",
+       "recentchangeslinked-toolbox": "Рухьарал хиса-басиял",
+       "upload": "Файл цIазе",
+       "uploadnologin": "Дуца цӀар бицун гьечӀо",
+       "randompage": "Цебе ккараб гьумер",
+       "shortpages": "Къокъал макъалаби",
+       "longpages": "Кlудиял гьумерал",
+       "listusers": "Гlахьалчагlазул сияхl",
+       "newpages": "ЦIиял гьумерал",
+       "specialloguserlabel": "ГӀахьалчи:",
+       "allarticles": "Киналго макъалаби",
+       "watchlist": "Дур халгьабиялъул сияхl",
+       "watch": "Хал кквезе",
+       "contributions": "{{GENDER:$1|ГӀахьалчиясул}} хӀалтӀи",
+       "mycontris": "Дур гlахьаллъи",
+       "whatlinkshere": "Гьанире линкал",
+       "move-page-legend": "Гьумералъул цlар хисизе",
+       "movearticle": "Гьумералъул цӀар хисизе:",
+       "movepagebtn": "Гьумералъул цlар хисизе",
+       "lastmodifiedatby": "Ахирисеб нухалъ гьаб гьумералъул хиса-баси гьабуна:  $2, $1. Хисизабуна гьас: $3.",
+       "specialpages": "Хассал гьумерал"
 }
index b237edb..40b39fc 100644 (file)
        "mergehistory-same-destination": "Buklita is bugraskaxo vol rotid milafo",
        "mergehistory-reason": "Lazava",
        "mergelog": "Va \"log\" joara",
-       "pagemerge-logentry": "joara va [[$1]] ko [[$2]] (betaks yo kali $3)",
        "revertmerge": "Voljoara",
        "mergelogpagetext": "Vleveon tir vexala dem tel lonoeltafa joara se va buizvot ko ar.",
        "history-title": "Va \"$1\" betarizvot",
        "statistics": "Enkopaca yo",
        "statistics-header-pages": "Buenkopaceem",
        "statistics-header-edits": "Betarenkopaceem",
-       "statistics-header-views": "Wirenkopaceem",
        "statistics-header-users": "Enkopaca yo va favesik",
        "statistics-pages": "Bueem",
        "statistics-files": "Kalvajayan iyeltakeem",
        "statistics-edits-average": "Mialukafa bubetarota",
        "statistics-users-active": "Tegiraf pakesikeem",
-       "statistics-mostpopular": "Tel lorupen bueem",
        "doubleredirects": "Jontolafa graskara",
        "doubleredirectstext": "<b>Attention:</b> cette liste peut contenir des « faux positifs ». Dans ce cas, c'est probablement la page du premier #REDIRECT contient aussi du texte.<br />Chaque ligne contient les liens à la 1re et 2e page de redirection, ainsi que la première ligne de cette dernière, qui donne normalement la « vraie » destination. Le premier #REDIRECT devrait lier vers cette destination.",
        "double-redirect-fixed-move": "arrundayan [[$1]], dure graskan kal [[$2]]",
        "uncategorizedtemplates": "Lomiskaf tezeem",
        "unusedcategories": "Mefaven lomeem",
        "unusedimages": "Avuwikaf ewaveem",
-       "popularpages": "Tel lorupen bueem",
        "wantedcategories": "Eruna loma",
        "wantedpages": "Tel loderun bueem",
        "wantedfiles": "Erun iyeltak",
index e5fa216..d3b45fa 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Alhen",
-            "Diego Grez",
-            "Erebedhel",
-            "Kanon6917"
-        ]
-    },
-    "tog-underline": "Sipita siqiraña",
-    "tog-hideminor": "Jichha jaqukipawina sullka askiptawix imantaña",
-    "tog-hidepatrolled": "Jichhnaki jaqukipawina askiptawix unch'ukita imantaña",
-    "tog-newpageshidepatrolled": "Machaqa uñstawix waruchatat uñstawix unch'ukita imantaña",
-    "tog-extendwatchlist": "Sarayawi jaqukipaw uñachayasuñatakiw unch'ukit waruch aqatatayaña",
-    "tog-usenewrc": "Jichhnaki jaqukipawi waliptäta (JavaScript munawiwa)",
-    "tog-numberheadings": "Titulun chinu achuraña",
-    "tog-showtoolbar": "Turkawit irnaqañ täta tisi uñachayaña (JavaScript munawiwa)",
-    "tog-editondblclick": "Uñstawi turkayaña päsuxuqiña (JavaScript munawiwa)",
-    "tog-editsectiononrightclick": "(JavaScript munawiwa) titulxat tuqina kupi suxuqiñampi tuqitaki turkawi luräña",
-    "tog-rememberpassword": "Akax jasanchirin imt'awija amtaña (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "tog-watchcreations": "Unch'ukit waruchatajana nayaxa uñstawix uñstayawajata yapxataña",
-    "tog-watchdefault": "Unch'ukit waruchatajana nayaxa uñstawix turkajata yapxataña",
-    "tog-watchmoves": "Unch'ukit waruchatajana nayaxa uñstawix sutiyarajata yapxataña",
-    "tog-watchdeletion": "Unch'ukit waruchatajana nayaxa uñstawix phiskhurajata yapxataña",
-    "tog-minordefault": "Sullka askiptawpacha chimpuriña",
-    "tog-previewontop": "Askiptawit llataxa nayraxa uñtawikar uñachayaña",
-    "tog-previewonfirst": "Mayïri askiptawina uñtawikar uñachayaña",
-    "tog-enotifwatchlistpages": "Nayaru chaski jalayiriña ukja unch'ukit waruchatana mäuñstawi turkañäna",
-    "tog-enotifusertalkpages": "Nayaru chaski jalayiriña ukja tuqisiwit uñstawija turkañäna",
-    "tog-enotifminoredits": "Nayaru chaski jalayiriña uñstawina sullka askiptawimpiraki",
-    "tog-enotifrevealaddr": "Yatiyawita chaski jalayirinakana chaski jalayirit untjäwija uñachayaña",
-    "tog-shownumberswatching": "Qawqha apnaqirinaka uñch'ukiskar uñacht'ayaña",
-    "tog-fancysig": "Mayaxta rixt'a (sipitarachayatawisa)",
-    "tog-uselivepreview": "Uñtawikach'ukix mirq'iña (JavaScript munawiwa) (yant'awiwaki)",
-    "tog-forceeditsummary": "Nayaru yatiyaña ukja ch'usa askiptawit juk'aptayawi apantaskaña",
-    "tog-watchlisthideown": "Unch'ukit waruchatana askiptawijax imantaña",
-    "tog-watchlisthidebots": "Unch'ukit waruchatana bot-ta askiptawipax imantaña",
-    "tog-watchlisthideminor": "Unch'ukit waruchatana sullka askiptawix imantaña",
-    "tog-watchlisthideliu": "Unch'ukit waruchatana qillqt'ayasita apnaqirina askiptawipax imantaña",
-    "tog-watchlisthideanons": "Unch'ukit waruchatana sutiwisa apnaqirina askiptawipax imantaña",
-    "tog-watchlisthidepatrolled": "Unch'ukit waruchatana unch'ukit askiptawix imantaña",
-    "tog-ccmeonemails": "Chaski jalayirija nayax yaqhar apayayäta qillqaqawix nayaru apayaña",
-    "tog-diffonly": "Manqha diff-nakax uñstawit yati utjawi janiw uñachayaña",
-    "tog-showhiddencats": "Imantata patawix uñachayaña",
-    "underline-always": "Wiñaya",
-    "underline-never": "Janipini",
-    "sunday": "tuminku",
-    "monday": "lunisa",
-    "tuesday": "martisa",
-    "wednesday": "mirkulisa",
-    "thursday": "juywisa",
-    "friday": "wirnisa",
-    "saturday": "sawaru",
-    "sun": "tum",
-    "mon": "lun",
-    "tue": "mar",
-    "wed": "mir",
-    "thu": "juy",
-    "fri": "wir",
-    "sat": "saw",
-    "january": "chichu phaxsi",
-    "february": "anata phaxsi",
-    "march": "achuqa phaxsi",
-    "april": "yapu apthapi phaxsi",
-    "may_long": "llamayu phaxsi",
-    "june": "juyphi phaxsi",
-    "july": "huillka kuti phaxsi",
-    "august": "thaya phaxsi",
-    "september": "llamp'u phaxsi",
-    "october": "taypi sata phaxsi",
-    "november": "awti phaxsi",
-    "december": "jallu qallta phaxsi",
-    "january-gen": "chichu phaxsi",
-    "february-gen": "anata phaxsi",
-    "march-gen": "achuqa phaxsi",
-    "april-gen": "yapu apthapi phaxsi",
-    "may-gen": "llamayu phaxsi",
-    "june-gen": "juyphi phaxsi",
-    "july-gen": "huillka kuti phaxsi",
-    "august-gen": "thaya phaxsi",
-    "september-gen": "llamp'u phaxsi",
-    "october-gen": "taypi sata phaxsi",
-    "november-gen": "awti phaxsi",
-    "december-gen": "jallu qallta phaxsi",
-    "jan": "chi",
-    "feb": "ana",
-    "mar": "ach",
-    "apr": "yap",
-    "may": "llam",
-    "jun": "juy",
-    "jul": "hui",
-    "aug": "tha",
-    "sep": "llmp",
-    "oct": "tay",
-    "nov": "awt",
-    "dec": "jall",
-    "article": "Amtachinu",
-    "cancel": "Jan saña",
-    "moredotdotdot": "Yapa...",
-    "mypage": "Uñstawija",
-    "navigation": "Wampuña",
-    "and": "&#32;-mpi",
-    "qbfind": "Thaqaña",
-    "qbbrowse": "Wampuña",
-    "qbedit": "Turkaña",
-    "qbpageoptions": "Uñstawitaki ajllita",
-    "qbmyoptions": "Ajllitanakaja",
-    "errorpagetitle": "Pantja",
-    "help": "Yanapaña",
-    "search": "Thaqaña",
-    "searchbutton": "Thaqaña",
-    "go": "Saraña",
-    "searcharticle": "Saraña",
-    "history": "Nayra qillqata",
-    "history_short": "Nayra qillqata",
-    "edit": "Turkaña",
-    "create": "Uñstayaña",
-    "editthispage": "Aka uñstawi turkaña",
-    "create-this-page": "Aka uñstawi uñstayaña",
-    "delete": "Pichaña",
-    "deletethispage": "Aka uñstawi phiskhuraña",
-    "undelete_short": "{{PLURAL:$1|mayaskiptawi|$1 askiptanakawi}} kutt'ayxaña",
-    "protect": "Jark'aña",
-    "protect_change": "turkaña",
-    "protectthispage": "Aka uñstawi jark'aña",
-    "unprotect": "Jark'ch'ukiña",
-    "unprotectthispage": "Aka uñstawi jark'ch'ukiña",
-    "newpage": "Machaqa uñstawi",
-    "talkpage": "Aka uñstawxat tuqisiña",
-    "talkpagelinktext": "Kutkatasiña",
-    "specialpage": "Ajalla Uñstawi",
-    "talk": "Tuqisiwi",
-    "otherlanguages": "Yaqha arunaka",
-    "protectedpage": "Uñstawi jark'ata",
-    "jumptonavigation": "wampuña",
-    "jumptosearch": "thaqaña",
-    "currentevents": "Jichha pacha",
-    "currentevents-url": "Project:Jichha pacha",
-    "mainpage": "Nayriri Uñstawi",
-    "mainpage-description": "Nayriri Uñstawi",
-    "portal": "Jayma punku",
-    "portal-url": "Project:Jayma punku",
-    "editsection": "turkaña",
-    "editold": "turkaña",
-    "editlink": "trukaña",
-    "toc": "Utjirinaka",
-    "showtoc": "uñachayaña",
-    "site-rss-feed": "$1 RSS jalsuri",
-    "site-atom-feed": "$1 Atom jalsuri",
-    "page-rss-feed": "\"$1\" RSS jalsuri",
-    "page-atom-feed": "\"$1\" Atom jalsuri",
-    "nstab-main": "Amtachinu",
-    "nstab-user": "Apnaqiri",
-    "nstab-image": "Q'ipi",
-    "nstab-help": "Yanapaña",
-    "nstab-category": "Patawi",
-    "error": "Pantja",
-    "login": "Qillqt'ayasiña",
-    "userlogin": "Qillqt'ayasiña",
-    "logout": "Mistuña",
-    "userlogout": "Mistuña",
-    "loginlanguagelabel": "Aru: $1",
-    "summary": "Juk’aptayäwi:",
-    "subject": "Yatsuwi/titulu:",
-    "minoredit": "Akax janiw taqpachäkiti",
-    "yourdiff": "Jalaqtatanaka",
-    "preferences": "Amtajarjama",
-    "prefs-rc": "Jichha kutikiptatanaka",
-    "yourlanguage": "Aru:",
-    "email": "Chaski jalayiri",
-    "recentchanges": "Jichha kutikiptatanaka",
-    "show": "uñachayaña",
-    "fileuploadsummary": "Uñt’ayawi:",
-    "license": "Iyawsawi:",
-    "license-header": "Iyawsawi:",
-    "listfiles_date": "Uru jakhu",
-    "listfiles_user": "Apnaqiri",
-    "listfiles_description": "Uñt’ayawi",
-    "file-anchor-link": "Q'ipi",
-    "filehist-user": "Apnaqiri",
-    "move": "Qillqaraña",
-    "booksources-go": "Saraña",
-    "specialloguserlabel": "Apnaqiri:",
-    "speciallogtitlelabel": "Titulu:",
-    "listusers-submit": "Uñachayaña",
-    "watch": "Uñjaña",
-    "restriction-move": "Qillqaraña",
-    "undelete-search-submit": "Thaqaña",
-    "sp-contributions-talk": "Kutkatasiña",
-    "sp-contributions-submit": "Thaqaña",
-    "ipblocklist-submit": "Thaqaña",
-    "tooltip-p-logo": "Nayriri Uñstawi",
-    "others": "yaqha",
-    "confirm_purge_button": "Iyawa saña",
-    "imgmultigo": "¡Saraña!",
-    "table_pager_limit_submit": "Saraña"
+       "@metadata": {
+               "authors": [
+                       "Alhen",
+                       "Diego Grez",
+                       "Erebedhel",
+                       "Kanon6917"
+               ]
+       },
+       "tog-underline": "Sipita siqiraña",
+       "tog-hideminor": "Jichha jaqukipawina sullka askiptawix imantaña",
+       "tog-hidepatrolled": "Jichhnaki jaqukipawina askiptawix unch'ukita imantaña",
+       "tog-newpageshidepatrolled": "Machaqa uñstawix waruchatat uñstawix unch'ukita imantaña",
+       "tog-extendwatchlist": "Sarayawi jaqukipaw uñachayasuñatakiw unch'ukit waruch aqatatayaña",
+       "tog-usenewrc": "Jichhnaki jaqukipawi waliptäta (JavaScript munawiwa)",
+       "tog-numberheadings": "Titulun chinu achuraña",
+       "tog-showtoolbar": "Turkawit irnaqañ täta tisi uñachayaña (JavaScript munawiwa)",
+       "tog-editondblclick": "Uñstawi turkayaña päsuxuqiña (JavaScript munawiwa)",
+       "tog-editsectiononrightclick": "(JavaScript munawiwa) titulxat tuqina kupi suxuqiñampi tuqitaki turkawi luräña",
+       "tog-watchcreations": "Unch'ukit waruchatajana nayaxa uñstawix uñstayawajata yapxataña",
+       "tog-watchdefault": "Unch'ukit waruchatajana nayaxa uñstawix turkajata yapxataña",
+       "tog-watchmoves": "Unch'ukit waruchatajana nayaxa uñstawix sutiyarajata yapxataña",
+       "tog-watchdeletion": "Unch'ukit waruchatajana nayaxa uñstawix phiskhurajata yapxataña",
+       "tog-minordefault": "Sullka askiptawpacha chimpuriña",
+       "tog-previewontop": "Askiptawit llataxa nayraxa uñtawikar uñachayaña",
+       "tog-previewonfirst": "Mayïri askiptawina uñtawikar uñachayaña",
+       "tog-enotifwatchlistpages": "Nayaru chaski jalayiriña ukja unch'ukit waruchatana mäuñstawi turkañäna",
+       "tog-enotifusertalkpages": "Nayaru chaski jalayiriña ukja tuqisiwit uñstawija turkañäna",
+       "tog-enotifminoredits": "Nayaru chaski jalayiriña uñstawina sullka askiptawimpiraki",
+       "tog-enotifrevealaddr": "Yatiyawita chaski jalayirinakana chaski jalayirit untjäwija uñachayaña",
+       "tog-shownumberswatching": "Qawqha apnaqirinaka uñch'ukiskar uñacht'ayaña",
+       "tog-fancysig": "Mayaxta rixt'a (sipitarachayatawisa)",
+       "tog-uselivepreview": "Uñtawikach'ukix mirq'iña (JavaScript munawiwa) (yant'awiwaki)",
+       "tog-forceeditsummary": "Nayaru yatiyaña ukja ch'usa askiptawit juk'aptayawi apantaskaña",
+       "tog-watchlisthideown": "Unch'ukit waruchatana askiptawijax imantaña",
+       "tog-watchlisthidebots": "Unch'ukit waruchatana bot-ta askiptawipax imantaña",
+       "tog-watchlisthideminor": "Unch'ukit waruchatana sullka askiptawix imantaña",
+       "tog-watchlisthideliu": "Unch'ukit waruchatana qillqt'ayasita apnaqirina askiptawipax imantaña",
+       "tog-watchlisthideanons": "Unch'ukit waruchatana sutiwisa apnaqirina askiptawipax imantaña",
+       "tog-watchlisthidepatrolled": "Unch'ukit waruchatana unch'ukit askiptawix imantaña",
+       "tog-ccmeonemails": "Chaski jalayirija nayax yaqhar apayayäta qillqaqawix nayaru apayaña",
+       "tog-diffonly": "Manqha diff-nakax uñstawit yati utjawi janiw uñachayaña",
+       "tog-showhiddencats": "Imantata patawix uñachayaña",
+       "underline-always": "Wiñaya",
+       "underline-never": "Janipini",
+       "sunday": "tuminku",
+       "monday": "lunisa",
+       "tuesday": "martisa",
+       "wednesday": "mirkulisa",
+       "thursday": "juywisa",
+       "friday": "wirnisa",
+       "saturday": "sawaru",
+       "sun": "tum",
+       "mon": "lun",
+       "tue": "mar",
+       "wed": "mir",
+       "thu": "juy",
+       "fri": "wir",
+       "sat": "saw",
+       "january": "chichu phaxsi",
+       "february": "anata phaxsi",
+       "march": "achuqa phaxsi",
+       "april": "yapu apthapi phaxsi",
+       "may_long": "llamayu phaxsi",
+       "june": "juyphi phaxsi",
+       "july": "huillka kuti phaxsi",
+       "august": "thaya phaxsi",
+       "september": "llamp'u phaxsi",
+       "october": "taypi sata phaxsi",
+       "november": "awti phaxsi",
+       "december": "jallu qallta phaxsi",
+       "january-gen": "chichu phaxsi",
+       "february-gen": "anata phaxsi",
+       "march-gen": "achuqa phaxsi",
+       "april-gen": "yapu apthapi phaxsi",
+       "may-gen": "llamayu phaxsi",
+       "june-gen": "juyphi phaxsi",
+       "july-gen": "huillka kuti phaxsi",
+       "august-gen": "thaya phaxsi",
+       "september-gen": "llamp'u phaxsi",
+       "october-gen": "taypi sata phaxsi",
+       "november-gen": "awti phaxsi",
+       "december-gen": "jallu qallta phaxsi",
+       "jan": "chi",
+       "feb": "ana",
+       "mar": "ach",
+       "apr": "yap",
+       "may": "llam",
+       "jun": "juy",
+       "jul": "hui",
+       "aug": "tha",
+       "sep": "llmp",
+       "oct": "tay",
+       "nov": "awt",
+       "dec": "jall",
+       "article": "Amtachinu",
+       "cancel": "Jan saña",
+       "moredotdotdot": "Yapa...",
+       "mypage": "Uñstawija",
+       "navigation": "Wampuña",
+       "and": "&#32;-mpi",
+       "qbfind": "Thaqaña",
+       "qbbrowse": "Wampuña",
+       "qbedit": "Turkaña",
+       "qbpageoptions": "Uñstawitaki ajllita",
+       "qbmyoptions": "Ajllitanakaja",
+       "errorpagetitle": "Pantja",
+       "help": "Yanapaña",
+       "search": "Thaqaña",
+       "searchbutton": "Thaqaña",
+       "go": "Saraña",
+       "searcharticle": "Saraña",
+       "history": "Nayra qillqata",
+       "history_short": "Nayra qillqata",
+       "edit": "Turkaña",
+       "create": "Uñstayaña",
+       "editthispage": "Aka uñstawi turkaña",
+       "create-this-page": "Aka uñstawi uñstayaña",
+       "delete": "Pichaña",
+       "deletethispage": "Aka uñstawi phiskhuraña",
+       "undelete_short": "{{PLURAL:$1|mayaskiptawi|$1 askiptanakawi}} kutt'ayxaña",
+       "protect": "Jark'aña",
+       "protect_change": "turkaña",
+       "protectthispage": "Aka uñstawi jark'aña",
+       "unprotect": "Jark'ch'ukiña",
+       "unprotectthispage": "Aka uñstawi jark'ch'ukiña",
+       "newpage": "Machaqa uñstawi",
+       "talkpage": "Aka uñstawxat tuqisiña",
+       "talkpagelinktext": "Kutkatasiña",
+       "specialpage": "Ajalla Uñstawi",
+       "talk": "Tuqisiwi",
+       "otherlanguages": "Yaqha arunaka",
+       "protectedpage": "Uñstawi jark'ata",
+       "jumptonavigation": "wampuña",
+       "jumptosearch": "thaqaña",
+       "currentevents": "Jichha pacha",
+       "currentevents-url": "Project:Jichha pacha",
+       "mainpage": "Nayriri Uñstawi",
+       "mainpage-description": "Nayriri Uñstawi",
+       "portal": "Jayma punku",
+       "portal-url": "Project:Jayma punku",
+       "editsection": "turkaña",
+       "editold": "turkaña",
+       "editlink": "trukaña",
+       "toc": "Utjirinaka",
+       "showtoc": "uñachayaña",
+       "site-rss-feed": "$1 RSS jalsuri",
+       "site-atom-feed": "$1 Atom jalsuri",
+       "page-rss-feed": "\"$1\" RSS jalsuri",
+       "page-atom-feed": "\"$1\" Atom jalsuri",
+       "nstab-main": "Amtachinu",
+       "nstab-user": "Apnaqiri",
+       "nstab-image": "Q'ipi",
+       "nstab-help": "Yanapaña",
+       "nstab-category": "Patawi",
+       "error": "Pantja",
+       "login": "Qillqt'ayasiña",
+       "userlogin": "Qillqt'ayasiña",
+       "logout": "Mistuña",
+       "userlogout": "Mistuña",
+       "loginlanguagelabel": "Aru: $1",
+       "summary": "Juk’aptayäwi:",
+       "subject": "Yatsuwi/titulu:",
+       "minoredit": "Akax janiw taqpachäkiti",
+       "yourdiff": "Jalaqtatanaka",
+       "preferences": "Amtajarjama",
+       "prefs-rc": "Jichha kutikiptatanaka",
+       "yourlanguage": "Aru:",
+       "email": "Chaski jalayiri",
+       "recentchanges": "Jichha kutikiptatanaka",
+       "show": "uñachayaña",
+       "fileuploadsummary": "Uñt’ayawi:",
+       "license": "Iyawsawi:",
+       "license-header": "Iyawsawi:",
+       "listfiles_date": "Uru jakhu",
+       "listfiles_user": "Apnaqiri",
+       "listfiles_description": "Uñt’ayawi",
+       "file-anchor-link": "Q'ipi",
+       "filehist-user": "Apnaqiri",
+       "move": "Qillqaraña",
+       "specialloguserlabel": "Apnaqiri:",
+       "speciallogtitlelabel": "Titulu:",
+       "listusers-submit": "Uñachayaña",
+       "watch": "Uñjaña",
+       "restriction-move": "Qillqaraña",
+       "undelete-search-submit": "Thaqaña",
+       "sp-contributions-talk": "Kutkatasiña",
+       "sp-contributions-submit": "Thaqaña",
+       "ipblocklist-submit": "Thaqaña",
+       "tooltip-p-logo": "Nayriri Uñstawi",
+       "others": "yaqha",
+       "confirm_purge_button": "Iyawa saña",
+       "imgmultigo": "¡Saraña!",
+       "table_pager_limit_submit": "Saraña"
 }
index 55d44b4..eb4226a 100644 (file)
        "mergehistory-same-destination": "Mənbə və hədəf səhifələri eyni ola bilməz",
        "mergehistory-reason": "Səbəb:",
        "mergelog": "Birləşdirmə qeydi",
-       "pagemerge-logentry": "[[$1]] [[$2]]-yə birləşdirildi ($3-ə qədər)",
        "revertmerge": "Ayır",
        "history-title": "\"$1\" səhifəsinin tarixçəsi",
        "difference-title": "\"$1\" səhifəsinin versiyaları arasındakı fərqlər",
        "statistics": "Statistika",
        "statistics-header-pages": "Səhifə statistikası",
        "statistics-header-edits": "Redaktə statistikası",
-       "statistics-header-views": "Statistikaya bax",
        "statistics-header-users": "İstifadəçi statistika",
        "statistics-header-hooks": "Digər statistikalar",
        "statistics-articles": "Məqalələr",
        "statistics-files": "Yüklənmiş fayllar",
        "statistics-edits": "{{SITENAME}} yaranandan bəri edilən səhifə dəyişiklikləri",
        "statistics-edits-average": "Hər səhifədəki orta hesabla dəyişiklik",
-       "statistics-views-total": "Cəmi göstərmə",
-       "statistics-views-total-desc": "Mövcud olmayan və xüsusi səhifələrin göstərilmələri daxil edilməmişdir.",
-       "statistics-views-peredit": "Redaktə başına göstərmə",
        "statistics-users": "Qeydiyyatdan keçmiş [[Special:ListUsers|istifadəçilər]]",
        "statistics-users-active": "Aktiv istifadəçilər",
        "statistics-users-active-desc": "Son {{PLURAL:$1|gün|$1 gündə}} iş görən istifadəçilər",
-       "statistics-mostpopular": "Ən çox baxılan səhifələr",
        "doubleredirects": "İkiqat istiqamətləndirmələr",
        "double-redirect-fixed-move": "[[$1]] dəyişdirilib.\nHazırda [[$2]]-yə istiqamətlənib.",
        "double-redirect-fixed-maintenance": "[[$1]]-dən [[$2]]-yə ikiqat istiqamətlənmə düzəldilir.",
        "uncategorizedtemplates": "Kateqoriyasız şablonlar",
        "unusedcategories": "İstifadə edilməmiş kateqoriyalar",
        "unusedimages": "İstifadə edilməmiş fayllar",
-       "popularpages": "Məşhur səhifələr",
        "wantedcategories": "Təlabat olunan kateqoriyalar",
        "wantedpages": "Tələb olunan səhifələr",
        "wantedpages-badtitle": "Müraciət zamantı yanlış başlıq: $1",
        "pageinfo-header-edits": "Redaktələr",
        "pageinfo-header-restrictions": "Səhifə mühafizəsi",
        "pageinfo-header-properties": "Səhifə xüsusiyyətləri",
-       "pageinfo-views": "Göstərmə səhifəsi",
        "pageinfo-watchers": "Baxış sayı",
        "pageinfo-firstuser": "Səhifəni yaradan",
        "pageinfo-firsttime": "Səhifənin yaranma tarixi",
index 7a95258..493f818 100644 (file)
@@ -11,7 +11,8 @@
                        "Mousa",
                        "Shirayuki",
                        "Microchip08",
-                       "아라"
+                       "아라",
+                       "Koroğlu"
                ]
        },
        "tog-underline": "باغلانتیلارین آلتینی خطله:",
        "cancel": "وازگئچ",
        "moredotdotdot": "داها...",
        "morenotlisted": "بۇ لیست کامل دئییل.",
-       "mypage": "صحیفه",
+       "mypage": "صفحه",
        "mytalk": "دانیشیق",
        "anontalk": "بو آی‌پی آدرسینه دانیشیق",
        "navigation": "دوْلانماق",
        "qbfind": "تاپ",
        "qbbrowse": "گؤزدن گئچیرت",
        "qbedit": "دَییشدیر",
-       "qbpageoptions": "بۇ صحیفه‌‌",
-       "qbmyoptions": "صحیفه‌‌لریم",
+       "qbpageoptions": "بۇ صفحه‌‌",
+       "qbmyoptions": "صفحه‌‌لریم",
        "faq": "چوْخ سوْروشولان سوْال‌لار",
        "faqpage": "Project:چوْخ سوْروشولان سوْال‌لار",
        "actions": "چالیشمالار",
        "searchbutton": "آختار",
        "go": "گئت",
        "searcharticle": "گئت",
-       "history": "صحیفه‌‌نین گئچمیشی",
+       "history": "صفحه‌‌نین گئچمیشی",
        "history_short": "گئچمیش",
        "updatedmarker": "سوْن باخیشیمدان سوْنرا یئنی‌لنیب‌دیر",
        "printableversion": "یازدیریرا بیلن نۆسخه",
        "newpage": "يئنی صحیفه‌‌",
        "talkpage": "بۇ صحیفه‌نی دانیش",
        "talkpagelinktext": "دانیشیق",
-       "specialpage": "اؤزل صحیفه",
+       "specialpage": "اؤزل صفحه",
        "personaltools": "شخصی آراجلار",
        "articlepage": "ایچری‌لی صحیفه‌یه باخ",
        "talk": "دانیشیق",
        "disclaimers": "رد ائتمک",
        "disclaimerpage": "Project:عمومی رد ائتمک",
        "edithelp": "ديَیشتیرمک یاردیمی",
-       "mainpage": "آنا صحیفه",
-       "mainpage-description": "آنا صحیفه",
+       "mainpage": "آنا صفحه",
+       "mainpage-description": "آنا صفحه",
        "policy-url": "Project:قایدالار",
        "portal": "توْپلوم پوْرتالی",
        "portal-url": "Project:توْپلوم پوْرتالی",
        "red-link-title": "$1 (صحیفه یوْخدور)",
        "sort-descending": "آزالان سیرالاماق",
        "sort-ascending": "چوْخالان سیرالاماق",
-       "nstab-main": "صحیفه",
+       "nstab-main": "صفحه",
        "nstab-user": "ایستیفاده‌چی صحیفه‌سی",
        "nstab-media": "مئدیا صحیفه‌سی",
        "nstab-special": "اؤزل صحیفه",
        "mergehistory-same-destination": "قایناق و مقصد صحیفه‌لر، بیر اولانمازلار",
        "mergehistory-reason": "ندن",
        "mergelog": "بیرلشدیرمه سیاهی‌سی",
-       "pagemerge-logentry": "[[$1]]، [[$2]] ایله بیرلشدیریلدی (نوسخه‌لر $3-ه قدر)",
        "revertmerge": "آيیر",
        "mergelogpagetext": "آشاغدی‌دا، ان سون صحیفه بیرلشدیریلمه‌لری گؤستریلیر.",
        "history-title": "«$1»-ین گئچمیشی",
        "statistics": "آمارلار",
        "statistics-header-pages": "صحیفه آمارلاری",
        "statistics-header-edits": "دَییشمه آمارلاری",
-       "statistics-header-views": "باخما آمارلاری",
        "statistics-header-users": "ایستیفاده‌چی آمارلاری",
        "statistics-header-hooks": "باشقا آمارلار",
        "statistics-articles": "مقاله‌لر",
        "statistics-files": "یوکلنمیش فایل‌لار",
        "statistics-edits": "{{SITENAME}} یولا دوشندن بَری صحیفه دَییشیکلیکلری",
        "statistics-edits-average": "هر صحیفه‌ده اورتا دَییشیکلیک سایی",
-       "statistics-views-total": "گؤرونوشلر جمعی",
-       "statistics-views-total-desc": "اولمایان صحیفه‌لر و اؤزل صحیفه‌لره گؤرونوشلر، داخیل ائدیلمه‌ییب‌دیر",
-       "statistics-views-peredit": "دَییشیکلیگه گؤرونوشلر",
        "statistics-users": "یازیلمیش [[Special:ListUsers|ایستیفاده‌چیلر]]",
        "statistics-users-active": "چالیشقان ایستیفاده‌چیلر",
        "statistics-users-active-desc": "سون {{PLURAL:$1|بیر|$1}} گون‌ده بیر ایش گؤرن ایستیفاده‌چیلر",
-       "statistics-mostpopular": "ان چوخ گؤرونموش صحیفه‌لر",
        "pageswithprop": "صحیفه اؤزل‌لیگی اولان صحیفه‌لر",
        "pageswithprop-legend": "صحیفه اؤزل‌لیگی اولان صحیفه‌لر",
        "pageswithprop-text": "بو صحیفه‌ده، بیر خاص صحیفه اؤزل‌لیگی ایشلدن صحیفه‌لرین لیستی واردیر.",
        "uncategorizedtemplates": "بؤلمه‌سیز شابلون‌لار",
        "unusedcategories": "ایستیفاده ائدیلمه‌میش بؤلمه‌لر",
        "unusedimages": "ایشلنمه‌میش فایل‌لار",
-       "popularpages": "سئویلن صحیفه‌لر",
        "wantedcategories": "یسته نن بؤلمه‌لر",
        "wantedpages": "ایسته‌نیلن صحیفه‌لر",
        "wantedpages-badtitle": "مراجعت زامانتی يانلیش باشلیق: $1",
        "tooltip-search": "{{SITENAME}}-دا آختار",
        "tooltip-search-go": "اولورسا بو آددا بیر صحیفه‌یه گئت",
        "tooltip-search-fulltext": "بو یازی اولان صحیفه‌لری آختار",
-       "tooltip-p-logo": "آنا صحیفه‌یه باخ",
+       "tooltip-p-logo": "آنا صفحه‌یه باخ",
        "tooltip-n-mainpage": "آنا صحیفه‌‌یه باخین",
-       "tooltip-n-mainpage-description": "آنا صحیفه‌یه باخین",
+       "tooltip-n-mainpage-description": "آنا صفحه‌یه باخ",
        "tooltip-n-portal": "پروژه‌ یه گؤره، سیز نه ایش گوره بیلرسیز، هاردا نه‌لری تاپا بیلرسیز",
        "tooltip-n-currentevents": "ایندیکی اولایلارا ایلگیلی بیلگیلر تاپ",
        "tooltip-n-recentchanges": "بو ویکی‌ده سون دَییشیکلرین لیستی",
        "pageinfo-robot-policy": "آختاریش سیستمین دورومو",
        "pageinfo-robot-index": "سییاهه آلینیشی",
        "pageinfo-robot-noindex": "ایندِکسله‌نه بیلمز",
-       "pageinfo-views": "گؤسترمه صحیفه‌سی",
        "pageinfo-watchers": "صحیفه‌نین تاماشا‌چی سایی",
        "pageinfo-few-watchers": "$1-دن آز {{PLURAL:$1|ایزله‌ین}}",
        "pageinfo-redirects-name": "بو صحیفه‌یه یول‌لاندیرمالار",
index ffc411f..af8a98c 100644 (file)
        "createacct-another-submit": "Тағы бер иҫәп яҙмаһын булдырырға",
        "createacct-benefit-heading": "{{SITENAME}} һеҙҙең кеүек үк кешеләр тарафынан булдырылған",
        "createacct-benefit-body1": "{{PLURAL:$1|үҙгәртеү}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|мәҡәлә|мәҡәләнең|мәҡәлә}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|мәҡәлә|мәҡәлә|мәҡәләнең}}",
        "createacct-benefit-body3": "һуңғы ваҡытта {{PLURAL:$1|ҡатнашыусы}}",
        "badretype": "Һеҙ кереткән серһүҙҙәр тап килмәй.",
        "userexists": "Керетелгән исем ҡулланыла инде.\nЗинһар, башҡа исем һайлағыҙ.",
        "mergehistory-same-destination": "Сығанаҡ һәм маҡсат бит бер иш булырға тейеш түгел",
        "mergehistory-reason": "Сәбәп:",
        "mergelog": "Берләштереүҙәр яҙмаһы",
-       "pagemerge-logentry": "[[$1]] менән [[$2]] берлештерелде ($3 тиклемге версиялар)",
        "revertmerge": "Бүлергә",
        "mergelogpagetext": "Түбәндә һуңғы биттәр үҙгәртеү тарихтарын берләштереүҙәр исемлеге килтерелгән.",
        "history-title": "$1 битенең үҙгәртеү тарихы",
        "statistics": "Статистика",
        "statistics-header-pages": "Бит статистикаһы",
        "statistics-header-edits": "Мөхәррирләү статистикаһы",
-       "statistics-header-views": "Ҡарау статистикаһы",
        "statistics-header-users": "Ҡулланыусы статистикаһы",
        "statistics-header-hooks": "Башҡа статистика",
        "statistics-articles": "Мәҡәләләр",
        "statistics-files": "Рәсем йәки тауыш эстәлекле күсереп яҙылған файлдар",
        "statistics-edits": "{{SITENAME}} проекты булдырылған ваҡыттан башлап үҙгәртеүҙәр һаны",
        "statistics-edits-average": "Уртаса бер биткә тура килгән төҙәтеүҙәр һаны",
-       "statistics-views-total": "Ҡарап сығыуҙар",
-       "statistics-views-total-desc": "Булмаған биттәрҙе һәм махсус биттәрҙе ҡарап сығыуҙарҙы үҙ эсенә алмай",
-       "statistics-views-peredit": "Бер үҙгәртеүгә ҡарап сығыуҙар",
        "statistics-users": "Теркәлгән [[Special:ListUsers|ҡатнашыусылар]]",
        "statistics-users-active": "Әүҙем ҡатнашыусылар",
        "statistics-users-active-desc": "Һуңғы {{PLURAL:$1|1=көндә|$1 көндә}} ниндәйҙер эшмәкәрлек башҡарған ҡатнашыусылар",
-       "statistics-mostpopular": "Иң күп ҡаралған биттәр",
        "pageswithprop": "Үҙенсәлектәре ҡайтанан билдәләнгән биттәр",
        "pageswithprop-legend": "Үҙенсәлектәре ҡайтанан билдәләнгән биттәр",
        "pageswithprop-text": "Бында айырым үҙенсәлектәре ҡулдан яңыртып билдәләнгән биттәр һанала.",
        "uncategorizedtemplates": "Категорияланмаған ҡалыптар",
        "unusedcategories": "Ҡулланылмаған категориялар",
        "unusedimages": "Ҡулланылмаған файлдар",
-       "popularpages": "Популяр биттәр",
        "wantedcategories": "Кәрәкле категориялар",
        "wantedpages": "Кәрәкле биттәр",
        "wantedpages-badtitle": "Һорау һөҙөмтәләрендә дөрөҫ булмаған исем: $1",
        "pageinfo-robot-policy": "Эҙләү роботтары тарафынан индексацияланыу",
        "pageinfo-robot-index": "Рөхсәт ителгән",
        "pageinfo-robot-noindex": "Рөхсәт ителмәй",
-       "pageinfo-views": "Ҡарау һаны",
        "pageinfo-watchers": "Битте күҙәтеүселәр һаны",
        "pageinfo-few-watchers": "Күп тигәндә $1 {{PLURAL:$1|күҙәтеүсе}}",
        "pageinfo-redirects-name": "Был биткә йүнәлтеүҙәр һаны",
        "duration-minutes": "$1 {{PLURAL:$1|1=минут|минут}}",
        "duration-hours": "$1 {{PLURAL:$1|1=сәғәт|сәғәт}}",
        "duration-days": "$1 {{PLURAL:$1|1=көн|көн}}",
-       "duration-weeks": "$1 {{PLURAL:$1|аҙна|аҙна|аҙналар}}",
+       "duration-weeks": "$1 {{PLURAL:$1|аҙна|аҙналар|аҙна}}",
        "duration-years": "$1 {{PLURAL:$1|1=йыл|йылдар}}",
        "duration-decades": "$1 {{PLURAL:$1|1=ун көнлөк|ун көнлөктәр}}",
        "duration-centuries": "$1 {{PLURAL:$1|1=быуат|быуаттар}}",
index bdf4172..daada20 100644 (file)
        "statistics-files": "Aufféglooderne Daatein",
        "statistics-edits": "Seitenbeorweitungen",
        "statistics-edits-average": "Beorweitungen pró Seiten im Durchschnit",
-       "statistics-views-total": "Seitenaufruaff gsåmmt",
-       "statistics-mostpopular": "Dé am moastbsuachten Seiten",
        "doubleredirects": "Doppede Weidaloatunga",
        "doubleredirectstext": "Af dea Seitn stengan Weidaloatunga, de wo af Weidaloatunga zoang.\n\nA <del>duachgstrichane</del> Eidrog is scho repariad worn.",
        "double-redirect-fixed-maintenance": "Doppede Weidaloatunga vo [[$1]] af [[$2]] mid oana Aktion reparian.",
        "uncategorizedtemplates": "Néd kategorisirde Vurlong",
        "unusedcategories": "Néd bnutzde Kategorien",
        "unusedimages": "Néd bnutzde Daatein",
-       "popularpages": "Dé bliabtersten Seiten",
        "wantedcategories": "Bnutzde, ower néd åglégte Kategorien",
        "wantedpages": "Gwynschde Seiten",
        "wantedpages-badtitle": "Ungütiger Titel im Ergeewnis: $1",
index 829e636..6ecfcb3 100644 (file)
        "passwordreset-username": "Goar pamangke",
        "passwordreset-domain": "Domain:",
        "changeemail-none": "(Ndada)",
-       "changeemail-cancel": "Sundati",
        "bold_sample": "Surat tobal",
        "bold_tip": "Surat na hapal",
        "italic_sample": "Guratan Italic",
        "search-suggest": "On do ra maksudmu: $1",
        "searchrelated": "marpandomuan",
        "searchall": "sude",
-       "showingresultsheader": "{{PLURAL:$5|Hasil '''$1''' sian '''$3'''|Hasil '''$1 - $2''' sian '''$3'''}} tu '''$4'''",
        "search-nonefound": "Ndang adong hasil na suman tu pangidoan",
        "powersearch-toggleall": "Sude",
        "powersearch-togglenone": "Ndang adong",
        "move": "Paorot",
        "pager-newer-n": "{{PLURAL:$1|na imbaru|na imbaru $1}}",
        "pager-older-n": "{{PLURAL:$1|na leleng|$1 na lumeleng}}",
-       "booksources-go": "Torushon",
        "log": "Angka log",
        "allpages": "Sude alaman",
        "allarticles": "Sude alaman",
        "watchlistfor2": "Laho tu $1 $2",
        "watch": "Parrohahon",
        "unwatch": "Sundat mamarrohahon",
-       "wlshowlast": "Pataridahon $1 jom $2 ari $3 na parpudi",
+       "wlshowlast": "Pataridahon $1 jom $2 ari  na parpudi",
        "actioncomplete": "Sae ulaon",
        "actionfailed": "Ulaon sundat",
        "dellogpage": "Log pasesaan",
        "metadata-fields": "Angka bidang metadata gombar na dipajojor di bagasan tona on naeng dipamasuk di hataridaan ni alaman gombar tingki tabel metadata dipametmet. Data na asing gabe dibunihon songon naung ditontuhon.\n * make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Bolak",
        "exif-imagelength": "Timbo",
-       "watchlistall2": "Sasude",
        "namespacesall": "sude",
        "monthsall": "Sasude",
        "watchlisttools-edit": "Pataridahon jala patota daftar siparrohahonon",
index 3d2573b..f038e86 100644 (file)
@@ -27,6 +27,7 @@
        "tog-watchdefault": "منی اصلاح کتگین فایل و پیجانء چارگ لیستء توکا هوار کن",
        "tog-watchmoves": "منی سُرینتگین فایل و پیجانء چارگ لیستء توکا هوار کن",
        "tog-watchdeletion": "منی حذف کتگین فایل و پیجانء چارگ لیستء توکا هوار بکن",
+       "tog-watchrollback": "آ دیمانی آڈ کورتین که آوانا برگردان کورته اون په منی پیگیری لیستی هاتیرا",
        "tog-minordefault": "په طور پیش فرض کل اصلاحات آ په داب جزی مشخص کن",
        "tog-previewontop": "بازبین پیش دار پیش چه جعبه اصلاح",
        "tog-previewonfirst": "ته اولین اصلاح بازبینی پیش دار",
        "editfont-monospace": "فۆنت گۆن مالومێن پاسلگ",
        "editfont-sansserif": "بئ گۆشگێن فۆنت",
        "editfont-serif": "گۆشه دارێن فۆنت",
-       "sunday": "Û\8cÚ© Ø´Ù\86بÙ\87",
-       "monday": "دÙ\88Ø´Ù\86بÙ\87",
-       "tuesday": "سی شنبه",
-       "wednesday": "Ú\86ارشÙ\86بÙ\87",
-       "thursday": "Ù¾Ù\86Ú\86 Ø´Ù\86بÙ\87",
-       "friday": "آدینگ",
-       "saturday": "Ø´Ù\86بÙ\87",
-       "sun": "ی.شنبه",
-       "mon": "د.شنبه",
-       "tue": "س.شنبه",
-       "wed": "چ.شنبه",
-       "thu": "پ.شنبه",
-       "fri": "آدینگ",
-       "sat": "Ø´Ù\86بÙ\87",
-       "january": "ژانویه",
-       "february": "Ù\81Ù\88رÛ\8cÙ\87",
-       "march": "مارس",
+       "sunday": "Û\8cÚ© Ø´Ù\85بÛ\8c",
+       "monday": "دÙ\88Ø´Ù\85بÛ\8c",
+       "tuesday": "سئه شمبی",
+       "wednesday": "Ú\86ارشÙ\85بÛ\8c",
+       "thursday": "Ù¾Ù\86Ú\86 Ø´Ù\85بÛ\8c",
+       "friday": "آدینگ ٬جوما",
+       "saturday": "Ø´Ù\85بÛ\8c",
+       "sun": "یک شمی",
+       "mon": "دو شمبی",
+       "tue": "سئه شمبی",
+       "wed": "چار شمبی",
+       "thu": "پنچ شمبی",
+       "fri": "آدینگ٬ جوما",
+       "sat": "Ø´Ù\85بÛ\8c",
+       "january": "جنوری",
+       "february": "Ù¾Û\8cبرÙ\88رÛ\8c",
+       "march": "مارچ",
        "april": "آپریل",
        "may_long": "می",
        "june": "جون",
        "july": "جولای",
        "august": "آگوست",
-       "september": "سپتامبر",
-       "october": "اکتبر",
-       "november": "نومبر",
+       "september": "سپٹامبر",
+       "october": "اکتوبر",
+       "november": "نوامبر",
        "december": "دسمبر",
-       "january-gen": "ژانویه",
-       "february-gen": "Ù\81Ù\88رÛ\8cÙ\87",
-       "march-gen": "مارس",
+       "january-gen": "جنوری",
+       "february-gen": "Ù¾Û\8cبرÙ\88رÛ\8c",
+       "march-gen": "مارچ",
        "april-gen": "آپریل",
        "may-gen": "می",
        "june-gen": "جون",
        "july-gen": "جولای",
        "august-gen": "آگوست",
-       "september-gen": "سپتمبر",
-       "october-gen": "اکتبر",
-       "november-gen": "نومبر",
+       "september-gen": "سپٹامبر",
+       "october-gen": "اکتوبر",
+       "november-gen": "نوامبر",
        "december-gen": "دسمبر",
-       "jan": "جن",
-       "feb": "Ù\81ب",
-       "mar": "ما",
-       "apr": "آپر",
+       "jan": "جنوری",
+       "feb": "Ù¾Û\8cبرÙ\88رÛ\8c",
+       "mar": "مارچ",
+       "apr": "آپریل",
        "may": "می",
        "jun": "جون",
-       "jul": "جول",
-       "aug": "آگ",
-       "sep": "سپت",
-       "oct": "اکت",
-       "nov": "نو",
-       "dec": "دس",
-       "january-date": "جانری، بهارگاه $1",
-       "february-date": "Ù\81براری، اۆستپان $1",
+       "jul": "جولای",
+       "aug": "آگوست",
+       "sep": "سپٹ\tامبر",
+       "oct": "اکتوبر",
+       "nov": "نوامبر",
+       "dec": "دسمبر",
+       "january-date": "جنوری، بهارگاه $1",
+       "february-date": "Ù¾Û\8cبرÙ\88ری، اۆستپان $1",
        "march-date": "مارچ، مۆلمان $1",
        "april-date": "اپریل، کرا $1",
        "may-date": "مئ، سۆچکان $1",
        "june-date": "جون، جلکان $1",
-       "july-date": "جÙ\88Ù\84ئ، سهێل $1",
-       "august-date": "اگست، ساچان $1",
-       "september-date": "سپتمبر، تۆمشان $1",
+       "july-date": "جÙ\88Ù\84اÛ\8c، سهێل $1",
+       "august-date": "اگوست، ساچان $1",
+       "september-date": "سپٹامبر، تۆمشان $1",
        "october-date": "اکتۆبر، سارتان $1",
-       "november-date": "نومبر، گۆپشان $1",
-       "december-date": "دسمبر، تاکشان $1",
+       "november-date": "نوامبر، گۆپشان $1",
+       "december-date": "دسمبر، تۆمشان $1",
        "pagecategories": "{{PLURAL:$1|دسته|دسته جات}}",
        "category_header": "صفحات ته دسته \"$1\"",
        "subcategories": "زیردسته جات",
        "article": "محتوا صفحه",
        "newwindow": "(ته نوکین پنچره ی پچ کن)",
        "cancel": "کنسل",
-       "moredotdotdot": "گیشتر...",
+       "moredotdotdot": "گیشتیر...",
        "morenotlisted": "ائ لیست پکا نه انت",
-       "mypage": "تاک",
+       "mypage": "دÛ\8cÙ\85 Û\8cا ØªØ§Ú©",
        "mytalk": "گپ",
        "anontalk": "گپ کن گون ای آی پی",
        "navigation": "گردگ",
        "and": "&#32;و",
-       "qbfind": "درگیزگ",
+       "qbfind": "ودی کورتین",
        "qbbrowse": "بروز",
-       "qbedit": "اصلاح",
-       "qbpageoptions": "صÙ\81Ø­Ù\87",
-       "qbmyoptions": "Ù\85Ù\86Û\8c ØµÙ\81حات",
+       "qbedit": "ایڈیٹ",
+       "qbpageoptions": "اÛ\8c Ø¯Û\8cÙ\85",
+       "qbmyoptions": "Ù\85Ù\86Û\8c Ø¯Û\8cÙ\85اÙ\86",
        "faq": "ب.ج.س",
        "faqpage": "Project:ب.ج.س",
        "actions": "کاران",
        "variants": "گوشگان",
        "navigation-heading": "منوء ناویگ",
        "errorpagetitle": "حطا",
-       "returnto": "تررگ Ø¨Ù\87 $1.",
-       "tagline": "چه {{SITENAME}}",
-       "help": "کمک",
+       "returnto": "Ø´Ù\88تÛ\8cÙ\86 Ø¨Û\8c $1.",
+       "tagline": "شه {{SITENAME}}",
+       "help": "Ú©Ù\88Ù\85Ú©",
        "search": "گردگ",
        "searchbutton": "گردگ",
-       "go": "برو",
-       "searcharticle": "برو",
-       "history": "تارÛ\8cØ­ ØµÙ\81Ø­Ù\87",
-       "history_short": "تارÛ\8cØ­",
+       "go": "برا",
+       "searcharticle": "برا",
+       "history": "دÛ\8cÙ\85Û\8c ØªØ§Ø±Û\8cØ®",
+       "history_short": "دپتر",
        "updatedmarker": "په روچ بیتگین چه منی اهری  اهری  چارگ",
        "printableversion": "نسخه چهاپی",
        "permalink": "دایمی لینک",
        "print": "چهاپ",
-       "view": "چارگ",
-       "view-foreign": "بÚ\86ار Ù\85اÙ\86 $1",
-       "edit": "اصلاح",
-       "edit-local": "لوکال دسکریپشنء اصلاح کن",
-       "create": "شرکتن",
-       "create-local": "لوکال دسکریپشنء هوار کن",
-       "editthispage": "اÛ\8c ØµÙ\81Ø­Ù\87 Ø§ØµÙ\84اح Ú©ن",
-       "create-this-page": "اÛ\8c ØµÙ\81Ø­Ù\87 Ø´Ø±Ú©ØªÙ\86 Ú©ن",
-       "delete": "حذف",
-       "deletethispage": "اÛ\8c ØµÙ\81Ø­Ù\87 Ø­Ø°Ù\81 Ú©ن",
-       "undeletethispage": "ائ تاکء دلیت مکن",
-       "undelete_short": "حذف مکن {{PLURAL:$1|one edit|$1 edits}}",
-       "viewdeleted_short": "چارگ {{باز،زیاتیگ:$1|یکین حذف بوتگین اصلاح|$1 اصلاح کتگانء حذف بکن}}",
-       "protect": "Ø­Ù\81اظت",
-       "protect_change": "عÙ\88ض Ú©ن",
-       "protectthispage": "اÛ\8c ØµÙ\81Ø­Ù\87 Ø­Ù\81اظت Ú©Ù\86",
+       "view": "دیستین",
+       "view-foreign": "بگÛ\8cÙ\86د Ø¨Û\8c $1",
+       "edit": "ایڈیٹ",
+       "edit-local": "لوکال دسکریپشنء ایڈیٹ کورتین",
+       "create": "جÙ\88Ú\91 Ú©Ù\88رتÛ\8cن",
+       "create-local": "لوکال دسکریپشنء اڈ کورتین",
+       "editthispage": "اÛ\8c Ø¯Û\8cÙ\85ا Ø§Û\8cÚ\88Û\8cÙ¹ Ú©Ù\88رتÛ\8cن",
+       "create-this-page": "اÛ\8c Ø¯Û\8cÙ\85Û\8c Ø¬Ù\88Ú\91 Ú©Ù\88رتÛ\8cن",
+       "delete": "پاک کورتین",
+       "deletethispage": "اÛ\8c Ø¯Û\8cÙ\85Û\8c Ù¾Ø§Ú© Ú©Ù\88رتÛ\8cن",
+       "undeletethispage": "ای دیما پاک مکن",
+       "undelete_short": "پاک مکن {{PLURAL:$1|one edit|$1 edits}}",
+       "viewdeleted_short": "نمایش داتین {{PLURAL:$1|یک پاک بوتینوکین ای\tڈیٹی |$1 پاک بوتینوکین ای\tڈیٹ}}",
+       "protect": "ساتÛ\8cتÛ\8cÙ\86",
+       "protect_change": "بدÙ\84 Ú©Ù\88رتÛ\8cن",
+       "protectthispage": "اÛ\8c Ø¯Û\8cÙ\85ا Ø¨Ø³Ø§Øª",
        "unprotect": "پروتکشنء ٹگل بدئ",
        "unprotectthispage": "ائ تاکء پروتکشنء ٹگل بدئ",
-       "newpage": "Ù\86Ù\88Ú©Û\8cÙ\86 ØµÙ\81Ø­Ù\87",
-       "talkpage": "اÛ\8c ØµÙ\81Ø­Ù\87 بحث کن",
+       "newpage": "Ù\86Ù\88Ú©Û\8cÙ\86 Ø¯Û\8cÙ\85",
+       "talkpage": "اÛ\8c Ø¯Û\8cÙ\85ا بحث کن",
        "talkpagelinktext": "گپ کن",
-       "specialpage": "حاصین صفحه",
+       "specialpage": "هاسین دیم",
        "personaltools": "شخصی وسایل",
        "articlepage": "محتوا صفحه به گند",
-       "talk": "بحث",
+       "talk": "گپ",
        "views": "چارگان",
        "toolbox": "ابزار",
        "userpage": "به گند صفحه کاربر",
        "projectpage": "به گند صفحه",
-       "imagepage": "به چار فایل صفحه ءَ",
-       "mediawikipage": "به گند صفحه کوله",
-       "templatepage": "به گند صفحه تمپلت آ",
-       "viewhelppage": "به گند صفحه کمک آ",
-       "categorypage": "به گند صفحه دسته آ",
+       "imagepage": "بگیند پایلی دیما",
+       "mediawikipage": "بگیند پیامی دیما",
+       "templatepage": "بگیند تیملیتی دیما",
+       "viewhelppage": "بگیند کومکی دیما",
+       "categorypage": "بگیند کتیگوریی دیما",
        "viewtalkpage": "به گند بحث آ",
-       "otherlanguages": "تÙ\87 Ø¯Ú¯Ø± Ø²Ø¨Ø§Ù\86",
+       "otherlanguages": "بÛ\8c Ø¯Ú¯Ù\87 Ø²Ø¨Ø§Ù\86اÙ\86Û\8c ØªØ§",
        "redirectedfrom": "(غیر مستقیم بوتگ چه $1)",
        "redirectpagesub": "صفحه غیر مستقیم",
+       "redirectto": "مسیری ٹگل داتین بی:",
        "lastmodifiedat": "  $2, $1.ای صفحه اهری تغییر دهگ بیته",
        "viewcount": "ای صفحه دسترسی بیتگ {{PLURAL:$1|بار|$1رند}}.",
        "protectedpage": "صفحه محافظتی",
        "disclaimers": "بی میاری گیان",
        "disclaimerpage": "Project:عمومی بی میاریگان",
        "edithelp": "کمک اصلاح",
-       "mainpage": "صÙ\81Ø­Ù\87 Ø§ØµÙ\84Û\8c",
-       "mainpage-description": "صÙ\81Ø­Ù\87 Ø§ØµÙ\84Û\8c",
+       "mainpage": "بÙ\8fÙ\86Û\8cادÛ\8c Ø¯Û\8cÙ\85",
+       "mainpage-description": "بÙ\8fÙ\86Û\8cادÛ\8c Ø¯Û\8cÙ\85",
        "policy-url": "Project:سیاست",
        "portal": "پرتال انجمن",
        "portal-url": "Project:پرتال انجمن",
        "newmessageslinkplural": "{{PLURAL:$1|نوکین کله|999=نوکین کله هان}}",
        "newmessagesdifflinkplural": "$1 {{PLURAL:$1|ٹگل داتن|پهکین ٹگل}}",
        "youhavenewmessagesmulti": "شما را نوکین کوله یان هست ته   $1",
-       "editsection": "اصلاح",
-       "editold": "اصلاح",
+       "editsection": "ایڈیٹ",
+       "editold": "ایڈیٹ",
        "viewsourceold": "به گند منبع ا",
-       "editlink": "اصلاح",
+       "editlink": "ایڈیٹ",
        "viewsourcelink": "چارگ منبع",
        "editsectionhint": ": $1اصلاح انتخاب",
        "toc": "محتوا",
        "showtoc": "پیش دار",
-       "hidetoc": "پناه کن",
-       "collapsible-collapse": "چیر داتن",
+       "hidetoc": "چیهر داتین",
+       "collapsible-collapse": "چیهر داتین",
        "collapsible-expand": "تچک کتن",
        "confirmable-confirm": "آیا {{GENDER:$1|شما}} مطمعین ویت?",
        "confirmable-yes": "هان",
        "page-atom-feed": "منبع \"$1\" Atom",
        "feed-atom": "اتم",
        "feed-rss": "ار اس اس",
-       "red-link-title": "$1 (هنگت  نیستن)",
+       "red-link-title": "$1 (ای دیم وجود نداریت)",
        "sort-descending": "نزولی نز آرتن",
        "sort-ascending": "صعودی نز آرتن",
-       "nstab-main": "صÙ\81Ø­Ù\87",
-       "nstab-user": "صفحه کاربر",
-       "nstab-media": "صفحه مدیا",
-       "nstab-special": "حاصین صفحات",
-       "nstab-project": "صفحه پروژه",
-       "nstab-image": "Ù\81ایل",
+       "nstab-main": "دÛ\8cÙ\85 Û\8cا ØªØ§Ú©",
+       "nstab-user": "کار زوروکی دیم",
+       "nstab-media": "میڈیای دیم",
+       "nstab-special": "هاسین تاکدیم",
+       "nstab-project": "پروژه یی تاکدیم",
+       "nstab-image": "Ù¾ایل",
        "nstab-mediawiki": "کوله",
-       "nstab-template": "تمپلت",
-       "nstab-help": "صÙ\81Ø­Ù\87 Ú©Ù\85Ú©",
-       "nstab-category": "دستÙ\87",
+       "nstab-template": "تراشوان",
+       "nstab-help": "رÙ\87Ù\86Ù\85اÛ\8cÛ\8c ØªØ§Ú©Ø¯Û\8cÙ\85",
+       "nstab-category": "تÙ\87ر",
        "nosuchaction": "نی چشین عمل",
        "nosuchactiontext": "ای کاری که گون اای یو ار ال مشخص بیتت نامشخص انت.\nشما بلکین یو‌ارال شر ننوشتت یا رند چه هرابیت لینکی اتکگیت\nشی بلکین یک خطایی ته برنامه سایت {{SITENAME}} پیش داریت.",
        "nosuchspecialpage": "نی چشین حاصین صفحه",
        "invalidtitle-knownnamespace": "نامهتبرین عنوان گون نامء جاگاه «$2» ءُ تکست «$3»",
        "invalidtitle-unknownnamespace": "نامهتبرین نام گون ناشناسین نامء جاگاه نمبر $1 ءُ تکست «$2»",
        "exception-nologin": "مان نبیتگ ات",
-       "exception-nologin-text": "دزبندی انت سیستمء تها [[Special:Userlogin|مان بئیت]] تانکه بتوان ات ائ تاکء بگند ات.",
+       "exception-nologin-text": "مهربانی بکنیت بی سامانه یی [[Special:Userlogin|لوگین بیبیت]] تا که بتوانیت بی ای دیما دسترسی داشته به ئیت.",
        "exception-nologin-text-manual": "دزبندی انت  $1  تانکه شمارء پر ائ تاک یانکه اکشنء دزرس ببیت انت.",
        "virus-badscanner": "تنظیم بد: ناشناسین اسکنر ویروس: ''$1''",
        "virus-scanfailed": "اسکن پروش وارت(کد $1)",
        "logouttext": "''' شما انیگء در شُت ات'''\nبزان که تانکه شمئی بروزرء چیرداتگین هافظه پهک مبیت، لهتئ چه تاکان ممکن انت رندا هم هنچوش پیش دارگ ببنت که انگار شما لاگین کتگ ات.",
        "welcomeuser": "وشاتک ات $1!",
        "welcomecreation-msg": "انیگء شمئی اکانت اڈ بیتگ انت.\nمشموش ات که وتی [[Special:Preferences|ترجیحات {{SITENAME}}]] رء ٹگل دئیت.",
-       "yourname": "نام کاربری",
-       "userlogin-yourname": "اکانتء نام",
+       "yourname": "کار زوروکی نام:",
+       "userlogin-yourname": "کار زوروکی نام",
        "userlogin-yourname-ph": "وتی یوزرنامء بلک ات",
        "createacct-another-username-ph": "وتی یوزرنامء بلک ات",
        "yourpassword": "کلمه رمز",
        "nav-login-createaccount": "ورود/شرکتن حساب",
        "userlogin": "ورود/شرکتن حساب",
        "userloginnocreate": "لاگین",
-       "logout": "در بیگ",
-       "userlogout": "در بیگ",
+       "logout": "در بوتین",
+       "userlogout": "در بوتین",
        "notloggedin": "وارد نهت",
        "userlogin-noaccount": "شما رء اکانت نه انت؟",
        "userlogin-joinproject": "مان {{SITENAME}} ناملکی بکن ات!",
        "nologin": "حسابء  نیستن؟ '''$1'''.",
-       "nologinlink": "شرکتن یک حساب",
+       "nologinlink": "یک حسابی جوڑ کورتین",
        "createaccount": "حساب شرکن",
        "gotaccount": "یک حساب الان هست؟'''$1'''.",
        "gotaccountlink": "ورود",
        "createacct-another-email-ph": "ایمیلء ادرسء بلک ات",
        "createaccountmail": "کارمرز چه وتکارین موقتین پسورد ءُ رندا آئی دیم داتن پر مالومین ایمیل",
        "createacct-realname": "شمئی اصلیگین نام (ایهتیاری)",
+       "createaccountreason": "دلیل:",
+       "createacct-reason": "دلیل:",
        "createacct-reason-ph": "پرچا شما ادگر نوکین اکانتء اڈ کن ات",
        "createacct-captcha": "سکیوریتی چک",
        "createacct-imgcaptcha-ph": "برزین سیاهگء ادان بلک ات",
        "createaccount-text": "یکی یک حساب په شمی آدرس ایمیل ته  {{SITENAME}} گون نام ($4)  \"$2\"، گون کلمه رمز \"$3\" شرکتت.\nشما بایدن وارد بیت و وتی کلمه رمز الان عوض کنیت.\n\nشما شاید ای پیام شموشیت اگه ای ای حساب گون حطا شر بوتت.",
        "login-throttled": "شما انیگ پر لاگین کتنء چنت بار جهد کتگ ات. دزبندی انت پیسر چه پدایین جهدء $1 موه بداریت.",
        "login-abort-generic": "شمئی لاگینء پکا نبیت - Aborted",
+       "login-migrated-generic": "شمی کاربرین حساب منتکل بوته ، و شمی کاربری نام دیگه ای ویکی تا وجود نداریت .",
        "loginlanguagelabel": "زبان: $1",
        "suspicious-userlogout": "شمئی لوٹ پر در شتن چه سیستمء رد بوت پرچا که چوش که پیداگ انت ائ لوٹ چه هرابین بروزر یانکه پراکسیء راهیگ بیتگ انت.",
        "createacct-another-realname-tip": "اصلیگین نام ایهتیاری انت.\nاگان آئرا بلک ات رهشونء درگتء پر شمئی سیاهگان چه اصلیگین نام کارمرز بیت انت.",
        "passwordreset-legend": "نوکین پسوردء بلوٹ",
        "passwordreset-disabled": "پسوردء واتر کتن مان ائ ویکیء نافعال بیتگ انت.",
        "passwordreset-emaildisabled": "ایمیلء حالتان مان ائ ویکیء نافعال بیتگ انت.",
-       "passwordreset-username": "یوزرنام:",
+       "passwordreset-username": "کار زوروکی نام:",
        "passwordreset-domain": "دامین:",
        "passwordreset-capture": "آسریگین ایمیل پیش دارگ بیت؟",
        "passwordreset-capture-help": "اگان ائ گزینگ رء نشانیگ بهل ات، یک ایمیلء (گون موکتین پسوردء) شما رء پیش دارگ بیت ءُ هنچوش پر کاربرء راهیگ بیت انت.",
        "subject": "موضوع/سرخط:",
        "minoredit": "ای شی یک هوردین اصلاحیت",
        "watchthis": "ای صفحه بچار",
-       "savearticle": "صÙ\81Ø­Ù\87 Ø°Ø®Û\8cرÙ\87 Ú©ن",
-       "preview": "بازبین",
+       "savearticle": "تاکدÛ\8cÙ\85Ù\90 Ø°Ø®Û\8cرÙ\87 Ú©Ù\88رتÛ\8cن",
+       "preview": "دÛ\8cستین",
        "showpreview": "بازبین پیش دار",
        "showdiff": "تغییرات پیش دار",
-       "anoneditwarning": "'''هوژاری:''' شما وارد نه بیتگیت.\nشمی آی پی ته تاریح اصلاح ای صفحه ثبت بیت.",
+       "blankarticle": "<strong>هشتار:</strong> شما بی یک هالی دیمی جوڑ\t کورتینا ئالاتا ویت.\nاگه \"{{int:savearticle}}\" ها پدا کلیک کنیت، بدون مئتواین دیمی جوڑ\tا بیت .",
+       "anoneditwarning": "<strong>هشتار:</strong> شما لوگین نه بوته ایت . شمی آی پی نشانی په موچان دیستینی وڑ\tا بیت اگه هر \tٹگلی جوڑ\t بداریت . اگه <strong>[$1 لوگین بئیت]</strong> یا <strong>[$2 یک کاربرین حسابی جوڑ بکنیت]</strong>، شمی ایڈیت بی شمی کاربرین نام نسبت داته آ بینت، لوڑ گون دیگرین مزایایان .",
        "anonpreviewwarning": "''شما مان سیستمء لاگین نکتگ. ذخیره کتنء حالت شمئی آی‌پیء نشانیگ مان ائ پیجء هاپزگ سبت بیت انت.''",
        "missingsummary": "'''یادآوری:''' شما یک خلاصه چه اصلاح وارد نه کرت.\nاگر دگه کلیک کنیت ذخیره آ، شمی اصلاح به بی آی ذخیره بنت.",
        "missingcommenttext": "لطفا یک نظری وارد کنیت جهل آ",
        "edit-gone-missing": "نه تونیت صفحهء په روچی کنت.\nچوش که جاه کیت آیی حذف بوتگت.",
        "edit-conflict": "جنگ اصلاحی",
        "edit-no-change": "شمی اصلاح نادید گرگ بوت، په چی که هچ تغییری په متن دهگ نه بوت.",
-       "postedit-confirmation-created": "تاک اڈ بوت.",
+       "postedit-confirmation-created": "تاکدیم جوڑ بوت.",
        "postedit-confirmation-restored": "تاک واتر بوت.",
        "postedit-confirmation-saved": "شمئی ادیت ذخیرگ بوت.",
        "edit-already-exists": "نه تونیت یک نوکین صفحه ای شر کنت.\nهنو شی هستن.",
        "content-model-text": "سادگین سیاهگ",
        "content-model-javascript": "جاوا اسکریپٹ",
        "content-model-css": "سی اس اس",
+       "duplicate-args-category": "آ دیمان که گٹ زورته بوته انت گون تکرارین دلیلان بی تماس تیمپلیتی تا",
        "expensive-parserfunction-warning": "هوژاری: ای صفحه شامل بازگین توار عملگر تجریه کنوک سنگیننت.\nآیی بایدن کمتر چه  $2{{PLURAL:$2|توار|توار}}, داشته بیت ادان هنو  $1 هست.",
        "expensive-parserfunction-category": " صفحات گونبازگین توار عملگر تجریه کنوک",
        "post-expand-template-inclusion-warning": "هوژاری: اندازه شامل تمپلت باز مزننت.\nلهتی تمپلتان هور نه بینت.",
        "parser-template-recursion-depth-warning": "محدودیت عمق تررگ رد بوت ($1)",
        "language-converter-depth-warning": "چه محدودیت عمق زبانانی کارمرز گؤست ات ($1)",
        "node-count-exceeded-category": "پیج انی که گیش چه مکسیمم تعداد گره بیتگ انت",
-       "node-count-exceeded-category-desc": "کتگوری پر پیج انی که مان آهان ساب کنوگ برزتر شتگ انت.",
-       "node-count-exceeded-warning": "پیج چه مکسیمم تعداد گره گیش شُت",
+       "node-count-exceeded-category-desc": "ای دیم شه ئادین ئالا گیشتیر مشکل داریت .",
+       "node-count-exceeded-warning": "دیم شه مکسیمم اندازه ها گیشتیر گره  شُت",
        "expansion-depth-exceeded-category": "پیج انی که چه مکسیمم تچک کتنء امک (عمق) گیش شتگ انت",
-       "expansion-depth-exceeded-category-desc": "کتگری پر پیج انی که مان آهان تچک کتنء امک(عمق) گیش شتگ انت.",
+       "expansion-depth-exceeded-category-desc": "کتگوری په دیمان که آوانی تا پرش بوتینی  جولی  گیشتیر شُته گنت.",
        "expansion-depth-exceeded-warning": "پیج چه مکسیمم تچک کتنء امک(عمق) گیش شُت",
        "parser-unstrip-loop-warning": "حلقهء unstrip ودی بوت",
        "parser-unstrip-recursion-limit": "چه مکسیمم ارجاع مان دستور unstrip گیش شُت ات($1)",
        "rev-deleted-event": "(کار آمار زورگ بیتت)",
        "rev-deleted-user-contribs": "[یوزرنام یانکه یانکه آی پی ادرس هزپ بیتگ انت  - ویرایش چیرداتگین مان هواربیتگان]",
        "rev-deleted-text-permission": "ائ ویرایش چه ائ پیج '''هزپ بیتگ انت'''.\nبلکین اطلاعات گون آئی همگرنچء مان [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} هزپانی سیاهگ] موجوت بیت انت.",
+       "rev-suppressed-text-permission": "ای ایڈیٹ شه ای دیما '''ڈیلیٹ بوته '''.\nشما توانیت آیرا بگیندیت ؛ ممکن اینت که آیی مربوتین مئلومات بی [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ڈیلیٹی سیاه چالگی] تا موجود بیت.",
        "rev-deleted-text-unhide": "ائ ویرایش چه ائ پیج '''هزپ بیتگ انت'''.\nبلکین اطلاعات گون آئی همگرنچء مان [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} هزپانی سیاهگ] موجوت بیت انت.\nشما هنچوش اگان بلوٹ ات توان ات [$1 ائ نسخگء بچار ات].",
        "rev-suppressed-text-unhide": "ائ ویرایش چه ائ پیج '''دیم داشت''' بوت.\nبلکین اطلاعات گون آئی همگرنچء مان [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} دیم داشتانی سیاهگ]. موجوت بیت انت.\nشما هنچوش اگان بلوٹ ات توان ات [$1 ائ نسخگء بچار ات].",
        "rev-deleted-text-view": "ائ ویرایش چه ائ پیج '''هزپ بیتگ انت'''.\nبلکین اطلاعات گون آئی همگرنچء مان [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} هزپانی سیاهگ]. موجوت بیت انت.",
        "mergehistory-same-destination": "صفحهٔ مبدأ و مقصد نمی‌تواند یکی باشد",
        "mergehistory-reason": "دلیل:",
        "mergelog": "آمار چن وبند",
-       "pagemerge-logentry": "چن و بند بوت [[$1]] په  [[$2]] (بازبینی ان تا$3)",
        "revertmerge": "بی چن وبند",
        "mergelogpagetext": "جهلء یک لیست چه نوکترین چن وبندان یکی تاریح صفحه په دگری هست.",
        "history-title": "$1: ویرایش انی دپتر",
        "search-result-category-size": "{{PLURAL:$1|یک عضو|$1 عضو}} ({{PLURAL:$2|یک جهلرده|$2 جهلرده}}، {{PLURAL:$3|یک فایل|$3 فایل}})",
        "search-redirect": "(غیر مستقیم $1 )",
        "search-section": "(بخش $1 )",
+       "search-category": "(تهر  $1)",
        "search-file-match": "(فایلء محتواء همجندی)",
        "search-suggest": "شما را منظور ات: $1",
        "search-interwiki-caption": "پروژه آن گوهار",
        "searchall": "کل",
        "showingresults": "جهل پیش دارگنت تا  {{PLURAL:$1|'''1'''نتیجه|'''$1''' نتایج}} شروع بنت گون #'''$2'''.",
        "showingresultsinrange": "پیش دارگ مان جهلء تان {{PLURAL:$1|<strong>1</strong> نتیجگ|<strong>$1</strong> نتیجگ}} in range #<strong>$2</strong> تان #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|نتایج <strong>$1</strong> شه <strong>$3</strong>|نتایج <strong>$1 - $2</strong> شه <strong>$3</strong>}}",
        "search-nonefound": "نتیجه هم دپ په درخواست نیست",
        "powersearch-legend": "گردگ پیشرفته",
        "powersearch-ns": "گردگ ته نام فضا آن",
        "preferences": "ترجیحات",
        "mypreferences": "ترجیحات",
        "prefs-edits": "تعداد اصلاحات:",
-       "prefsnologintext2": "دزبندی انت  $1  پر ترجیحاتء تنظیم کتن.",
+       "prefsnologintext2": "منتوارون شمی که په ٹگل داتین تنزیماتانی هاتبرا لوگین بئیت .",
        "prefs-skin": "پوست",
        "skin-preview": "بازین",
        "datedefault": "هچ ترجیح",
        "yourlanguage": "زبان:",
        "yourvariant": "زبان محتواء گؤشگ:",
        "prefs-help-variant": "شمئی درچتگین گؤشگ پر تاکانی محتواء پیش دارگ مان ائ ویکی.",
-       "yournick": "امضا:",
+       "yournick": "نوکین دسنام:",
        "prefs-help-signature": "نبشتگین کامنت ان مان ترانء تاک پیکن گون «<nowiki>~~~~</nowiki>» ایمزا به بنت؛ ائ نشانیگ گون وتکارین حالت پر شمئی ایمزا و وهدستامپء کنورتء بیت انت.",
        "badsig": "نامعتبرین حامین امضا تگان HTML چک کن",
        "badsiglength": "شمل امضا باز مزنتت.\nآی بایدن   $1 {{PLURAL:$1|کارکاتر|کاراکتران}} مزن تر مبیت",
        "yourgender": "لوٹ ات که چونکا توصیف به بیت؟",
        "gender-unknown": "ترجیحء دیان که نامالوم به بیت",
-       "gender-male": "مردین",
-       "gender-female": "جنین",
+       "gender-male": "مردین زاگ",
+       "gender-female": "جنین زاگ",
        "prefs-help-gender": "ائ تنظیمء کارمرز کتن ایهتیاری انت.\nسفتور چه ائ انداجگ پر درستین اشارگ پر شمئی اکانت گون زبانء گرامرء بهر زیر ات.\nائ اطلاهات عام انت.",
        "email": "ایمیل",
        "prefs-help-realname": "راستین  نام اهتیاریتن. اگه شما یکی انتخاب کنیت شی په شمی کارء نشان هلگ په روت.",
        "prefs-help-email-required": "آدرس ایمیل نیازنت.",
        "prefs-info": "اولگین اطلاعات",
        "prefs-i18n": "بین المللی کتن",
-       "prefs-signature": "اÙ\85ضا",
+       "prefs-signature": "دسÙ\86اÙ\85",
        "prefs-dateformat": "تاریح داب",
-       "prefs-timeoffset": "وهد بنگیج",
+       "prefs-timeoffset": "بنگیج بوتینِ وهد",
        "prefs-advancedediting": "عمومی تنظیمات",
        "prefs-editor": "اصلاح کنوک",
        "prefs-preview": "پیشچارگ",
        "prefs-tokenwatchlist": "نشانگ",
        "prefs-diffs": "پرک",
        "prefs-help-prefershttps": "ائ ترجیحء تاثیر رند چه شمئی رندی لاگینء کارمرز بیت انت.",
+       "prefswarning-warning": "شمی ٹگل داتینوکین ترجیئات تا انون زاپاس نه بوته انت .\nاگه ای دیم بدون شه کلیک کورتینا بی «$1» ایلا بیت شمی ترجیئات زاپاسا نه بیینت .",
        "prefs-tabs-navigation-hint": "بزان: شما توان ات چه چپی و راستی پیشداروکین بٹن ان  پر حرکت زبانگ انی توکا مان زبانگانی لیست کارمرز بکن ات.",
        "email-address-validity-valid": "شمئی ایمیل ادرس پر درستی پیداگ انت",
        "email-address-validity-invalid": "مهتبرین ایمیل ادرسء بلک ات",
        "right-createtalk": "شرکتن صفحات بحث",
        "right-createaccount": "شرکتن نوکین حسابان کاربری",
        "right-minoredit": "نشان کن اصلاحات په داب هوردین",
-       "right-move": "جاه په جاه کن صفحات",
+       "right-move": "جاه بی جاه کن تاکدیمانا",
        "right-move-subpages": "جاه په جاه کن صفحات گون زیرصفحاتش",
        "right-move-rootuserpages": "جاه په جاه کتن صفحات کاربری اصلی",
        "right-move-categorypages": "انتقال مان کتگوریء پیج ان",
        "right-nominornewtalk": "نداشتن هوردین اصلاح ته صفحات بحث یک نوکین کوله یانی پیش داریت",
        "right-apihighlimits": "استفاده کن چه بالاترین محدویتان ته جوستان API",
        "right-writeapi": "استفاده چه نوشتن API",
-       "right-delete": "حذÙ\81 ØµÙ\81حات",
+       "right-delete": "تاکدÛ\8cÙ\85اÙ\86Ù\90 Ù¾Ø§Ú© Ú©Ù\88رتÛ\8cÙ\86",
        "right-bigdelete": "حذف صفحات گون درازین تاریح",
        "right-deletelogentry": "هزپ و واتر چه خاصین مدخل چه سیاهه",
        "right-deleterevision": "حذف و حذف نه کتن مخصوصین بازبینی آن صفحات",
        "right-browsearchive": "گردگ صفحات حذفی",
        "right-undelete": "حذف مکن یک صفحه ایء",
        "right-suppressrevision": "بازبینی و ترینگ بازبینی آن پناهین چه مدیران سیستم",
+       "right-viewsuppressed": "دیستین آ نسهه هانی که شه کار زوروکان چیهر داته بوته انت",
        "right-suppressionlog": "به گند خصوصی آماران",
        "right-block": "دگ کابران چه اصلاح محدود کن",
        "right-blockemail": "یک کاربری چه ایمیل دیم دهگ منع کن",
        "recentchanges-label-plusminus": "تاکء سایز همگرنچ گون ائ بایت انی انداجگ ٹگل وارتگ انت",
        "recentchanges-legend-heading": "'''اختصاران:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (هنچوش پر [[Special:NewPages|نوکین تاکانء فهرست]] بچار ات)",
-       "rcnotefrom": "جÙ\87Ù\84Û\8cگء ØªØºÛ\8cÛ\8cرات Ú\86Ù\87 <strong>$2</strong> (تاÙ\86 <strong>$1</strong> Ù¾Û\8cØ´ Ø¯Ø§Ø±Ú¯ Ø¨Û\8cتگ Ø§Ù\86ت).",
+       "rcnotefrom": "بÛ\8c Ø¬Ù\87Ù\84گا Ù¹Ú¯Ù\84اÙ\86 Ø´Ù\87 <strong>$3, $4</strong> (تا <strong>$1</strong> {{PLURAL:$5|Ù\86شاÙ\86 Ø¯Ø§ØªÙ\87 Ø¨Ù\88تÙ\87 Ø§Ù\86ت|Ù\86شاÙ\86 Ø¯Ø§ØªÙ\87 Ø¨Ù\88تÙ\87 Ø§Ù\86ت}}).",
        "rclistfrom": "پیش دار نوکین تغییراتآ چه $3 $2",
        "rcshowhideminor": "$1 هوردین تغییرات",
        "rcshowhideminor-show": "پیش دارگ",
        "recentchangeslinked-toolbox": "مربوطین تغییرات",
        "recentchangeslinked-title": "تغییراتی مربوط په \"$1\"",
        "recentchangeslinked-summary": "شی یک لیستی چه تغییراتی هستنت که نوکی اعمال بوتگنت په صفحاتی که چه یک صفحه خاصی لینک بوته( یا په اعضای یک خاصین دسته).\nصفحات ته [[Special:Watchlist| شمی لیست چارگ]] '''' پررنگنت''''",
-       "recentchangeslinked-page": "صÙ\81Ø­Ù\87 نام:",
+       "recentchangeslinked-page": "تاکدÛ\8cÙ\85Ù\90 نام:",
        "recentchangeslinked-to": "پیش دار تغییرات په صفحاتی که لینک بوتگنت به جاه داتگین صفحه",
        "upload": "آپلود کتن فایل",
        "uploadbtn": "آپلود فایل",
        "reuploaddesc": "کنسل آپلودء و ترر په فرم آپلود",
        "upload-tryagain": "فایلء ٹگا وارتگین توضیحاتء راهیگ بکن ات",
        "uploadnologin": "وارد نهیت",
-       "uploadnologintext": "شما بایدن [[Special:UserLogin|واردبیت]] په آپلود کتن فایل.",
+       "uploadnologintext": "په اپلوڈ\t کورتین پایلی هاتیرا باید $1.",
        "upload_directory_missing": "مسیر آپلود ($1)  گارنت و گون وب سرور شر گنگ نه بیت.",
        "upload_directory_read_only": "مسیر آپلود ($1)  قابل نوشتن گون وب سرور نهنت.",
        "uploaderror": "حطا آپلود",
+       "upload-recreate-warning": "'''هشتار: پایلی بی ناما ڈ\tیلیت یا اینتیکال بوته .'''\n\nپه آسانی هاتیرا، ڈ\tیلیتی چالگ و انتیکالی دیم بی جهلگا آته :",
        "uploadtext": "چه جهلگین فرم په آپلود فایلان استفاده کنت.\nپه دیستن یا گشتن پیشگین آپلودی فایلان برو  [[Special:FileList|لیست فایلان آپلودی]], آپلودان و حذفیات هنچو هستن ته [[Special:Log/upload|آمار آپلود]].\n\nپه وارد کتن فایل ته یک صفحه ای، چه لینک ته فرم استفاده کن\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' په استفاده چه نسخه کامل فایل\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' په استفاده چه ۲۰۰ پیکسل پهنات ته یک جعبه ته چپ\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''  په مسیری لینک دهگ په فایل بی پیش دارگ فایل",
        "upload-permitted": "مجازین نوع فایل:  $1.",
        "upload-preferred": "ترجیحی نوع فایل:  $1.",
        "ignorewarnings": "هردابین هوژاری شموش",
        "minlength1": "نام فایل باید یک حرفی حداقل بیت",
        "illegalfilename": "نام فایل  \"$1\"  شامل کاراکترانی انت که مجاز نهنت ته ای عناوین صفحه.\nلطفا نام فایل بدل کنیت و دگه آپلود آزمایش کنیت.",
+       "filename-toolong": "پایلی نام نباید شه ۲۴۰ بایتا تچکتیر بیت .",
        "badfilename": "نام فایل عوض بوتت په \"$1\".",
+       "filetype-mime-mismatch": "پایلی پدوند «$1.‎» گون آیی  MIME رکما ($2) متابیکت نداریت.",
        "filetype-badmime": "فایلان نوع مایم  \"$1\" مجاز په آپلود بیگ نهنت.",
        "filetype-bad-ie-mime": "نه تونیت ای فایلءَ آپلود کنیت په چی که اینترنت ایکسپلورر آییءَ په دا ب \"$1\" جاه کاریت که شی غیرمجازین نوع فایلینت و حطرناک انت.",
        "filetype-unwanted-type": "'''\".$1\"' یک نه لوٹتگین نوع فایل انت. انواع فایل ترجیحی  $2 انت.\nنوع ترجیحی {{PLURAL:$3|نوع فایلنت|انواع فایلان انت}} $2.",
        "filetype-banned-type": "'''\".$1\"''' یک نوع مجازی ان فایلی نهنت. مجازین {{PLURAL:$3|نوع فایل|انواع فایلان}}  $2.",
        "filetype-missing": " (په داب \".jpg\").فایل هچ بندی نیست",
+       "empty-file": "پایلی که دیم داتیت هالی اینت.",
+       "file-too-large": "پایلی که دیم داته ایت باز ٹو اینت .",
+       "filename-tooshort": "پایلی نام بی شه اندازهگا گونڈ اینت.",
+       "filetype-banned": "ای رکمی پایل اجازه نداریت.",
+       "verification-error": "پایل شه تائید تستا در نه بوت.",
        "large-file": "توصیه بیت که فایلان مزنتر چه  $1 مبنت;\nای فایل $2 انت.",
        "largefileserver": "ای فایل مزنتر چه حدی انت که سرور تنظیم بوتت په اجازه دهگ.",
        "emptyfile": "فایلی که شما آپلود کتت هالیک انت. شاید شی په خاطر اشتباه نه نام فایل بیت.\nلطفا کتنرل کنیت که آیا واقعا شما لوٹیت ای فایلء آپلود کنیت.",
        "uploadwarning": "هوژاری آپلود",
        "savefile": "ذخیره فایل",
        "uploaddisabled": "آپ.د غبر فعال انت",
+       "copyuploaddisabled": "بارگذاری از طریق نشانی اینترنتی غیرفعال است.",
        "uploaddisabledtext": "آپلود فایل غیر فعال انت.",
        "php-uploaddisabledtext": "آپلود کتن فایل ته پی‌اچ‌پی فعال نهنت. تنظیم file_uploads کنترل کنیت.",
        "uploadscripted": "ای فایل شامل کد HTML یا اسکریپت انت که شاید گون وب بروزر اشتباهی وانگ بیت.",
+       "uploadscriptednamespace": "این پوشه اس‌وی‌جی شامل فضای نام غیرقانونی '$1' است",
+       "uploadinvalidxml": "XML در پروندهٔ بارگذاری‌شده نمی‌تواند تجزیه شود.",
        "uploadvirus": "فایل یک ویروسی داریتن! جزییات: $1",
+       "uploadjava": "این پرونده یک پرونده زیپ است که حاوی پرونده‌ای از نوع ‎‎.class جاوا است.\nبارگذاری پرونده‌های جاوا مجاز نیست، چرا که ممکن است اجازه دور زدن محدودیت‌های امنیتی را بدهند.",
+       "upload-source": "پرونده منبع",
        "sourcefilename": "منبع نام فایل:",
+       "sourceurl": "نشانی منبع:",
        "destfilename": "مقصد نام فایل",
        "upload-maxfilesize": "آهرین هد اندازه فایل : $1",
+       "upload-description": "توضیحات پرونده",
+       "upload-options": "گزینه‌های بارگذاری",
        "watchthisupload": "ای فایل بچار",
        "filewasdeleted": "یک فایلی گو ای نام پیشتر آپلود بوتت و رندا حذف بوت.\nشما بایدن کنترل کنیت  $1 پیش چه شی که دگه آپلود کنیت.",
        "filename-bad-prefix": "نام  فایلی که آپلود بیت شروع بیت گون '''\"$1\"''', که یک نام بی توضیحی هنچکا اتوماتیکی گون دوربین دیجیتال دهگ بوتت.\nلطفا یک تشریحی ترین نامی په وتی فایل بزرویت.",
        "filename-prefix-blacklist": "#<!-- leave this line exactly as it is --> <pre>\n# Syntax is as follows:\n#   * Everything from a \"#\" character to the end of the line is a comment\n#   * Every non-blank line is a prefix for typical file names assigned automatically by digital cameras\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # some mobil phones\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
        "upload-success-subj": "آپلود موفق",
+       "upload-success-msg": "بارگذاری شما از [$2] موفق بود. این پرونده در اینجا قابل دسترسی است: [[:{{ns:file}}:$1]]",
+       "upload-failure-subj": "مشکل در بارگذاری",
+       "upload-failure-msg": "مشکلی در بارگذاری شما از [$2] وجود داشت:\n\n$1",
+       "upload-warning-subj": "هشدار بارگذاری",
+       "upload-warning-msg": "فرم بارگذاری مشکلی داشت [$2]. شما می‌توانید به [[Special:Upload/stash/$1|فرم بارگذاری]] بازگردید تا این اشکال را رفع کنید.",
        "upload-proto-error": "اشتباه پروتوکل",
        "upload-proto-error-text": "آپلود دراین نیاز په URL آنی داریت که شروع بیت گون  <code>http://</code> یا <code>ftp://</code>.",
        "upload-file-error": "حطا درونی",
        "upload-misc-error-text": "یک ناشناسین حطا وهد آپلود کتن پیش آتک.\nلطفا تایید کنیت که URL معتبرانت و دسترسی بیت و دگه سعی کنیت.\nاگر مشکل ادامه داشت، گون [[Special:ListUsers/sysop|مدیر]]ء تماس گریت.",
        "upload-too-many-redirects": "ای لینک بازگین غیرمستقیم ی هستن",
        "upload-http-error": "یک ارور اچ‌تی‌تی‌پی پیش آتک : $1",
+       "upload-copy-upload-invalid-domain": "بارگذاری کپی پرونده‌ها از این دامنه امکان‌پذیر نیست.",
+       "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 اطلاعات نوشت چون بزرگتر از {{PLURAL:$2|یک بایت|$2 بایت}} است.",
+       "backend-fail-readonly": "پشتیبان «$1» درحال حاضر در وضیت فقط خواندنی است. دلیل ارائه شده چنین است: «$2»",
+       "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 وجود نداشت چرا که سطح دسترسی کافی نیست یا شاخه/محفظهٔ مورد نظر وجود ندارد.",
+       "filejournal-fail-dbconnect": "امکان وصل شدن به پایگاه داده دفترخانه برای پشتیبان ذخیره‌سازی «$1» وجود نداشت.",
+       "filejournal-fail-dbquery": "امکان به روز کردن پایگاه داده دفترخانه برای پشتیبان ذخیره‌سازی «$1» وجود نداشت.",
+       "lockmanager-notlocked": "نمی‌توان قفل «$1» را گشود؛ چون قفل نشده‌است.",
+       "lockmanager-fail-closelock": "امکان بستن پرونده قفل شده \"$1\" وجود ندارد.",
+       "lockmanager-fail-deletelock": "امکان حذف پرونده قفل شده \"$1\" وجود ندارد.",
+       "lockmanager-fail-acquirelock": "نمی‌توان قفل «$1» را کسب کرد.",
+       "lockmanager-fail-openlock": "امکان باز کردن پرونده قفل شده \"$1\" وجود ندارد.",
+       "lockmanager-fail-releaselock": "نمی‌توان قفل «$1» را گشود.",
+       "lockmanager-fail-db-bucket": "امکان ارتباط با تعداد کافی پایگاه داده قفل‌ها در محفظه $1 وجود نداشت.",
+       "lockmanager-fail-db-release": "بازکردن قفل‌های پایگاه دادهٔ $1 ممکن نیست.",
+       "lockmanager-fail-svr-acquire": "امکان گرفتن قفل‌های سرور $1 وجود ندارد.",
+       "lockmanager-fail-svr-release": "امکان باز کردن قفل‌های سرور $1 وجود ندارد.",
+       "zip-file-open-error": "در هنگام باز کردن پرونده زیپ برای بررسی محتوای آن خطایی رخ داد.",
+       "zip-wrong-format": "پرونده مشخص شده یک پرونده زیپ نیست.",
+       "zip-bad": "پرونده زیپ خراب یا غیر قابل خواندن است.\nنمی‌توان محتوای آن را از نظر امنیت به درستی بررسی کرد.",
+       "zip-unsupported": "پرونده زیپ از ویژگی‌هایی استفاده می‌کند که توسط مدیاویکی پشتیبانی نمی‌شوند.\nنمی‌توان محتوای آن را از نظر امنیت به درستی بررسی کرد.",
+       "uploadstash": "اپلوڈی سٹاش",
+       "uploadstash-summary": "این صفحه دسترسی به پرونده‌هایی که بارگذاری شده‌اند (یا در حال بارگذاری هستند) اما هنوز در ویکی منتشر نشده‌اند را فراهم می‌کند. این پرونده‌ها توسط هیچ کاربری به جز کسی که آن‌ها را بارگذاری کرده قابل دیدن نیستند.",
+       "uploadstash-clear": "پاک‌کردن پرونده‌های انبارشده",
+       "uploadstash-nofiles": "شما هیچ پروندهٔ انبارشده‌ای ندارید.",
+       "uploadstash-badtoken": "انجام این اقدام ناموفق بود، احتمالاً به این دلیل که اعتبار ویرایش شما به اتمام رسیده است. دوباره امتحان کنید.",
+       "uploadstash-errclear": "پاک‌کردن پرونده‌ها ناموفق بود.",
+       "uploadstash-refresh": "تازه‌کردن فهرست پرونده‌ها",
+       "invalid-chunk-offset": "جابجایی نامعتبر قطعه",
+       "img-auth-accessdenied": "منع دسترسی",
+       "img-auth-nopathinfo": "PATH_INFO موجود نیست.\nسرور شما برای ردکردن این مقدار تنظیم نشده‌است.\nممکن است مبتنی بر سی‌جی‌آی باشد و از img_auth پشتیبانی نکند.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization را ببینید.",
+       "img-auth-notindir": "مسیر درخواست شده در شاخهٔ بارگذاری تنظیم‌شده قرار ندارد.",
+       "img-auth-badtitle": "امکان ایجاد یک عنوان مجاز از «$1» وجود ندارد.",
+       "img-auth-nologinnWL": "شما به سامانه وارد نشده‌اید و «$1» در فهرست سفید قرار ندارد.",
+       "img-auth-nofile": "پایلی «$1» وجود نداریت.",
+       "img-auth-isdir": "شما تلاش کرده‌اید به شاخهٔ «$1» دسترسی پیدا کنید.\nتنها دسترسی به پرونده مجاز است.",
+       "img-auth-streaming": "در حال جاری ساختن «$1».",
+       "img-auth-public": "عملکرد img_auth.php برونداد پرونده‌ها از یک ویکی خصوصی است.\nاین ویکی به عنوان یک ویکی عمومی تنظیم شده‌است.\nبرای امنیت بهینه، img_auth.php غیرفعال است.",
+       "img-auth-noread": "کاربر دسترسی خواندن «$1» را ندارد.",
+       "http-invalid-url": "نشانی نامعتبر: $1",
+       "http-invalid-scheme": "نشانی‌های اینترنتی با طرح «$1» پشتیبانی نمی‌شوند.",
+       "http-request-error": "درخواست اچ‌تی‌تی‌پی به علت خطایی ناشناخته، ناموفق بود.",
+       "http-read-error": "خطای خواندن اچ‌تی‌تی‌پی.",
+       "http-timed-out": "مهلت درخواست اچ‌تی‌تی‌پی به سر رسید.",
+       "http-curl-error": "خطا در آوردن نشانی اینترنتی: $1",
+       "http-bad-status": "در حین درخواست اچ‌تی‌تی‌پی خطایی رخ داد: $1 $2",
        "upload-curl-error6": "نه تونیت په URL برسیت",
        "upload-curl-error6-text": "داتگین URL دسترسی نه بیت.\nلطفا دگه کنترل کنیت که URL درستنت و سایت په راه انت.",
        "upload-curl-error28": "وهد آپلود هلت",
        "upload-curl-error28-text": "سایت باز وهدی بورت په جواب دهگء.\nلطفا کنترل کنیت که سایت روشننت، کمی صبر کنیت و دگه سعی کنیت.\nشاید شما یک وهد حلوت تری کوشش کنیت.",
        "license": "لیسانس کنت:",
-       "license-header": "لیسانس کنت:",
+       "license-header": "اجازه‌نامه",
        "nolicense": "هچ یک انتخاب نه بوتت",
+       "licenses-edit": "گزینه‌های مجوز ویرایش",
        "license-nopreview": "(بازبین موجود نهنت)",
-       "upload_source_url": "(یک متعبرین، عمومی دسترسی انت URL)",
-       "upload_source_file": "(یک فایل ته شمی کامپیوتر)",
-       "listfiles-summary": "ای حاصین صفحه کل آپلودی فایلانء پیش داریت.\nبه طور پیش فرض اهری فایل آپلودی ته بالاد لیست پیش دارگ بیت.\nیک کلیکی بالاد ستون ترتیب عوض کنت.",
+       "upload_source_url": "(شما یک پرونده انتخاب از یک URL معتبر و دسترس عموم انتخاب کردید)",
+       "upload_source_file": "(پرونده‌ای از رایانهٔ شما انتخاب شده‌است)",
+       "listfiles-delete": "پاک کورتین",
+       "listfiles-summary": "این صفحهٔ ویژه تمام پرونده‌های بارگذاری‌شده را نمایش می‌دهد.",
        "listfiles_search_for": "گردگ په  مدیا:",
        "imgfile": "فایل",
        "listfiles": "لیست فایل",
+       "listfiles_thumb": "نائونی",
        "listfiles_date": "تاریح",
        "listfiles_name": "نام",
        "listfiles_user": "کاربر",
        "listfiles_size": "اندازه",
        "listfiles_description": "توضیح",
        "listfiles_count": "نسخ",
+       "listfiles-show-all": "شامل نسخه‌های قدیمی عکس‌ها",
+       "listfiles-latestversion": "انونین ویرژن",
+       "listfiles-latestversion-yes": "هان",
+       "listfiles-latestversion-no": "نه",
        "file-anchor-link": "فایل",
        "filehist": "تاریح فایل",
        "filehist-help": "اور تاریح/زمان کلیک کنیت دان فایلا په داب هما تاریح بگندیت",
        "filehist-dimensions": "جنبه یان",
        "filehist-filesize": "اندازه فایل",
        "filehist-comment": "نظر",
-       "imagelinks": "Ù\84Û\8cÙ\86Ú© Ù\81اÛ\8cÙ\84",
+       "imagelinks": "پاÛ\8cÙ\84Û\8c Ù¾Ù\87 Ú©Ø§Ø± Ú©Û\8cپتÛ\8cÙ\86",
        "linkstoimage": "جهلیگین {{PLURAL:$1|صفحه |$1 صفحات لینک}} پی ای فایل",
        "linkstoimage-more": "گیشتر چه  $1 {{PLURAL:$1|صفحه لینکان|صفحات لینک}} پی ای فایل.\nجهلگین لیست {{PLURAL:$1|اولین لینک صفحه|اولین $1 لینکان صفحه ی}} پی ای فایل فقط پیش داریت.\nیک [[Special:WhatLinksHere/$2|لیست کامل]] موجودنت.",
        "nolinkstoimage": "هچ صفحه ای نیست که به ای فایل لینک بوت.",
        "morelinkstoimage": "View [[Special:WhatLinksHere/$1|گیشتر لینکان]]به ای فایل",
+       "linkstoimage-redirect": "$1 (تغییرمسیر پرونده) $2",
        "duplicatesoffile": "جهلیگین {{PLURAL:$1|فایل یک کپی انت|$2 فایلان کپی انت}} چه هی فایل ([[Special:FileDuplicateSearch/$2|گیشترین اطلاعات]]):",
        "sharedupload": "ای فایل چه $1 انت و شاید گون دگه پروژه یان استفاده بیت.",
        "sharedupload-desc-there": "ای پرونده در $1 انت و ممکن انت ته دگه پروژه‌ها هم استفاده ببیت.\nپه اطلاعات گیشتذ لطفاً [$2 صفحهٔ توضیحات پرونده] را بچاریت.",
        "sharedupload-desc-here": "ای پرونده ته $1 هستن و ممکن انت ته دگه پروژه‌هان هم استفاده ببیت.\nتوضیحات موجود ته [$2 صفحهٔ توضیحات پرونده] ته ادان،جهل پیش دارگ بنت.",
+       "sharedupload-desc-edit": "این پرونده از $1 است و می‌تواند توسط پروژه‌های دیگر هم استفاده شود.\nاگر خواستید می‌توانید توضیحات پرونده را از [$2 صفحهٔ توضیحاتش] در آنجا ویرایش کنید.",
+       "sharedupload-desc-create": "این پرونده از $1 است و می‌تواند توسط پروژه‌های دیگر هم استفاده شود.\nاگر خواستید می‌توانید توضیحات پرونده را از [$2 صفحهٔ توضیحاتش] در آنجا ویرایش کنید.",
        "filepage-nofile": "هچ فایلی گون ای نام نیستن",
        "filepage-nofile-link": "هی فایلی گوپن ای نام نیستن، بله شما تونیت [آی ءَ $1 بار کنیت]",
        "uploadnewversion-linktext": "یک نوکین نسخه ای چه ای فایل آپلود کن",
-       "shared-repo-from": "چه $1",
+       "shared-repo-from": "شه $1",
        "shared-repo": "هورین مخزن",
+       "upload-disallowed-here": "متأسفانه شما نمی‌توانید این پرونده را بازنویس کنید.",
        "filerevert": "ترین $1",
        "filerevert-legend": "ترینگ فایل",
        "filerevert-intro": " شما په ترینگء '''[[Media:$1|$1]]''' په  [$4 نسخه ای په داب چه $3, $2].",
-       "filerevert-comment": "نظر:",
+       "filerevert-comment": "دلیل:",
        "filerevert-defaultcomment": "تررت په نسخه په داب $2, $1",
        "filerevert-submit": "تررگ",
        "filerevert-success": "''[[Media:$1|$1]]'''  بدل بوتت په [$4 نسخه په داب چه $3, $2].",
        "filedelete-reason-otherlist": "دگ دلیل",
        "filedelete-reason-dropdown": "*متداول این دلایل حذف\n** نقص حق کپی\n** فایل کپی",
        "filedelete-edit-reasonlist": "اصلاح دلایل حذف",
+       "filedelete-maintenance": "حذف و احیای پرونده‌ها در مدت نگهداری به طور موقت غیرفعال است.",
+       "filedelete-maintenance-title": "نمی‌تواند پرونده را حذف کند",
        "mimesearch": "گردگ په مایم",
-       "mimesearch-summary": "اÛ\8c ØµÙ\81Ø­Ù\87 Ù\81Û\8cÙ\84تر Ú©ØªÙ\86 Ù\81اÛ\8cÙ\84اÙ\86 Ù¾Ù\87 Ø§Ø³Ø§Ø³ Ù\86Ù\88ع Ù\85اÛ\8cÙ\85 Ø§Ø´ Ù\81عاÙ\84 Ú©Ù\86ت.\nÙ\88رÙ\88دÛ\8c\85تحÙ\88اÙ\86Ù\88ع/زÛ\8cرÙ\86Ù\88عØ\8cÙ\85Ø«Ù\84<code>image/jpeg</code>.",
+       "mimesearch-summary": "با Ú©Ù\85Ú© Ø§Û\8cÙ\86 ØµÙ\81Ø­Ù\87 Ø´Ù\85ا Ù\85Û\8câ\80\8cتÙ\88اÙ\86Û\8cد Ù¾Ø±Ù\88Ù\86دÙ\87â\80\8cÙ\87اÛ\8cÛ\8c Ú©Ù\87 Û\8cÚ© Ù\86Ù\88ع MIME Ø¨Ù\87 Ø®ØµÙ\88ص Ø¯Ø§Ø±Ù\86د Ø±Ø§ Ù¾Û\8cدا Ú©Ù\86Û\8cد.\nÙ\88رÙ\88دÛ\8c: Ø¨Ù\87 ØµÙ\88رت contenttype/subtype Û\8cا contenttype/*&lrm;Ø\8c Ù\86ظÛ\8cر <code>image/jpeg</code>.",
        "mimetype": "نوع مایم:",
        "download": "آیرگیزگ",
        "unwatchedpages": "نه چارتگین صفحات",
        "listredirects": "لیست غیر مستقیمان",
+       "listduplicatedfiles": "فهرست همهٔ پرونده‌ها به‌همراه تکراری‌ها",
+       "listduplicatedfiles-summary": "این فهرست پرونده‌هایی با نسخه‌های اخیر این پرونده تکراری است که نسخه‌های اخبر سایر پرونده‌ها است. فقط پرونده‌های محلی در نظر گرفته شده‌اند.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]][[$3|{{PLURAL:$2|یک تکرار|$2 تکرار}}]] دارد.",
        "unusedtemplates": "تمپلتان بی استفاده",
        "unusedtemplatestext": "ای صفحه لیست کن کل صفحات ته {{ns:template}} نام فضا که ته دگه صفحه نهنت.\nمه شموش تا کنترل کنیت په دگه لینکان ته تمپلتان پیش چه حذف کتن آیان.",
        "unusedtemplateswlh": "دگر لینکان",
        "randompage": "تصادفی صفحه",
-       "randompage-nopages": "\"$1\" هچ صفحه ای ته ای نام فضا نیست.",
+       "randompage-nopages": "هیچ صفحه‌ای در این {{PLURAL:$2|فضای نام|فضاهای نام}} موجود نیست: $1.",
+       "randomincategory": "بی اهتیارین تاکدیم بی تهرِ تا",
+       "randomincategory-invalidcategory": "«$1» نامی معتبر برای یک ردهٔ نیست.",
+       "randomincategory-nopages": "هیچ تاکدیمی بی ای تهرِ تا [[:Category:$1|$1]] وجود نداریت.",
+       "randomincategory-category": "تهر:",
+       "randomincategory-legend": "بی اهتیارین تاکدیم بی تهرِ تا",
        "randomredirect": "تصادفی غیر مستقیم",
        "randomredirect-nopages": "\"$1\"هچ غیر مستقیمی ته ای نام فضا نیست.",
        "statistics": "آمار",
        "statistics-header-pages": "صفحه ی آمار",
        "statistics-header-edits": "اصلاح آمار",
-       "statistics-header-views": "چارگ آمار",
        "statistics-header-users": "آمار کاربر",
+       "statistics-header-hooks": "دیگرین آمار",
        "statistics-articles": "صفحات محتوا",
-       "statistics-pages": "صÙ\81حات",
+       "statistics-pages": "تاکدÛ\8cÙ\85اÙ\86",
        "statistics-pages-desc": "کل صفحات ته ویکی په داب صفحات بحث ،غیر مستقیمان و دگه چیز.",
        "statistics-files": "آپلود بیتگین فایلان",
        "statistics-edits": "اصلاح صفحات چه وهدی که {{SITENAME}} شر بوتت",
        "statistics-edits-average": "میانگین اصلاحات ته هر صفحه ای",
-       "statistics-views-total": "چارگان کل",
-       "statistics-views-peredit": "چارگ ته هر اصلاح",
        "statistics-users": "ثبت نامی [[Special:ListUsers|users]]",
        "statistics-users-active": "فعالین کاربر",
        "statistics-users-active-desc": "کاربرانی که ته پیشگین {{PLURAL:$1|روچ|$1 روچان}} کاری اش کتت",
-       "statistics-mostpopular": "باز چار تگین صفحات",
+       "pageswithprop": "آ تاکدیمان که بی تاکدیمی رکما انت",
+       "pageswithprop-legend": "آ تاکدیمان که بی تاکدیمی رکما انت",
+       "pageswithprop-text": "این صفحه فهرستی است از صفحه‌هایی که از یک خاصیت صفحهٔ خاص استفاده می‌کنند.",
+       "pageswithprop-prop": "هاسیئتی نام:",
+       "pageswithprop-submit": "برا",
+       "pageswithprop-prophidden-long": "جزییات مخفی متن طولانی ($1)",
+       "pageswithprop-prophidden-binary": "جزییات مقدار مخفی باینری ($1)",
        "doubleredirects": "دوبل غیر مستقیم",
        "doubleredirectstext": "ای صفحه لیست کنت صفحاتی که غیر مستقیم رونت په دگه صفحات. هر ردیف شامل لینکانی انت به اولی و دومی غیر مستقیم، و هدف دومی غیر مستقیم، که معمولا استفاده بیت \"real\" صفحه هدف، که بایدن اولی غیر مستقیم پیش داریت.",
        "double-redirect-fixed-move": "[[$1]] انتقال دهگ بوتت، و الان تغییر مسیری په [[$2]] انت",
+       "double-redirect-fixed-maintenance": "رفع خودکار تغییرمسیر دوتایی از [[$1]] به [[$2]] در روند نگهداری.",
        "double-redirect-fixer": "تعمیرکنوک غیر مستقیم",
        "brokenredirects": "پروشتگین غیر مستقیمان",
        "brokenredirectstext": "جهلیگین غیر مستقیم لینک بوتگن په صفحات نیستن:",
        "fewestrevisions": "صفحات گون کمترین بازبینی",
        "nbytes": "$1 {{PLURAL:$1|بایت|بایت}}",
        "ncategories": "$1 {{PLURAL:$1|دسته|دسته جات}}",
+       "ninterwikis": "$1 {{PLURAL:$1|میان‌ویکی|میان‌ویکی}}",
        "nlinks": "$1 {{PLURAL:$1|link|لینک}}",
        "nmembers": "$1 {{PLURAL:$1|member|اعضا}}",
+       "nmemberschanged": "$1 → $2   {{PLURAL:$2| عضو|عضو}}",
        "nrevisions": "$1 {{PLURAL:$1|بازبینی|بازبینی ان}}",
        "nviews": "$1 {{PLURAL:$1|دیستن|دیستن}}",
+       "nimagelinks": "$1 × $2, $3 {{PLURAL:$3|صفحه|صفحات}}",
+       "ntransclusions": "بی $1 {{PLURAL:$1|تاکدیم|تاکدیم}} استپاده بوته",
        "specialpage-empty": "په ای گزارش هچ نتیجه ای نیست ان.",
        "lonelypages": "صفحات یتیم",
        "lonelypagestext": "جهلیگین صفحات چه دگه صفحات لینک یا داهل نه بوتگنت ته {{SITENAME}}.",
        "uncategorizedtemplates": "تمپلتان بی دسته",
        "unusedcategories": "بی استفاده این دسته جات",
        "unusedimages": "بی استفاده این فایلان",
-       "popularpages": "مردمی صفحات",
        "wantedcategories": "لوٹتگین دسته جات",
        "wantedpages": "لوٹتگین صفحات",
        "wantedpages-badtitle": "عنوان غیر مجازین ته جمع نتایج: $1",
        "wantedfiles": "لوٹتگین فایلان",
+       "wantedfiletext-cat": "پرونده‌های زیر استفاده می‌شوند اما موجود نیستند. همچنین ممکن است پرونده‌های مخازن خارجی با وجود موجود بودن در اینجا فهرست شوند. هرگونه رتبه مثبت کاذب <del>خط خواهد خورد.</del> علاوه بر این، صفحاتی که پرونده‌هایی ناموجود را در خود جای داده‌اند در [[:$1]] فهرست شده‌اند.",
        "wantedtemplates": "لوٹتگین تمپلت",
        "mostlinked": "صفحاتی که گیشنر لینک دیگ بیتگنت",
        "mostlinkedcategories": "دسته جاتی که گیشتر لینک دیگ بیتگنت",
        "protectedpages-indef": "فقط محافظت نامحدود",
        "protectedpages-cascade": "محافظتان آبشاری فقط",
        "protectedpagesempty": "هچ صفحه ای گون ای پارامترآن",
+       "protectedpages-page": "تاکدیم",
+       "protectedpages-unknown-timestamp": "ناشناس",
+       "protectedpages-unknown-performer": "نا زانتین کار زوروک",
        "protectedtitles": "عناوین محافظتی",
+       "protectedtitles-summary": "این صفحه فهرست صفحات موجود است که در حال حاضر محافظت از ساخت شده‌اند. برای فهرست عنوان‌هایی که محافظت از ویرایش شده‌اند، به [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] مراجعه کنید.",
        "protectedtitlesempty": "هچ عنوانی هنو گو ای پارامتران محافظت نهنت.",
        "listusers": "لیست کاربر",
        "listusers-editsonly": "فقط کاربرانی که اصلاحاتش هست پیش بدار",
        "booksources": "منابع کتاب",
        "booksources-search-legend": "گردگ په منابع کتاب",
        "booksources-isbn": "شابک:",
+       "booksources-search": "گردگ",
        "booksources-text": "چهلا یک لیستی چه لینکان په دگه سایتان هست که نوکین  یا مستعمل این کتاب بها کنند و شما شاید گیشترین اطلاعات آی کتابانی باره که پرش گردیت در گیزیت:",
        "booksources-invalid-isbn": "داتگین شماره کتاب چوش که جاه کیت درست نهنت, خطایانءِ بچار چه اصلی جاگاه کپی کن",
-       "specialloguserlabel": "کاربر:",
+       "specialloguserlabel": "Ú¯Ù\88Ø´Û\8cÙ\86دÙ\87:",
        "speciallogtitlelabel": "عنوان:",
        "log": "ورودان",
        "all-logs-page": "کل ورودان",
        "allpagesto": "پیش بدار صفحاتی که هلنت گون:",
        "allarticles": "کل صفحات",
        "allinnamespace": "کل صفحات($1 نام فضا)",
-       "allpagessubmit": "برو",
+       "allpagessubmit": "برا",
        "allpagesprefix": "صفحات پیش دار گون پیشوند:",
        "allpagesbadtitle": "داتگین عنوان صفحه نامعتبر انت یا  یک پیشوند بین ویکی یا یبن زبانی سحتی هستت.\nشاید شامل یک یا گیشتر کاراکتر بیت که ته عنوانین استفاده نه بیت.",
        "allpages-bad-ns": "{{SITENAME}} فضانامی نیست \"$1\".",
-       "categories": "دستÙ\87 Û\8cان",
+       "categories": "تÙ\87رئان",
        "categoriespagetext": "جهلیگین {{PLURAL:$1|دسته شامل|دسته جات شامل}} صفحات یا مدیا انت\n[[Special:UnusedCategories|دسته جات بی استفاده]] ادان پیشدارگ نه بنت.\n هنچوش بچار[[Special:WantedCategories|لوٹتگین دسته]].",
        "categoriesfrom": "پیشدار دسته جات که شروع بنت گون:",
        "special-categories-sort-count": "ترتیب په اساس شمار",
        "noemailtitle": "هچ آدرس ایمیل",
        "noemailtext": "ای کاربر یک آدرس ایمیل معتبری مشخص نه کتت.",
        "nowikiemailtext": "ای کاربر نه لوٹیت چه دگه کاربران ایمیل بگیرت.",
+       "emailusername": "کار زوروکی نام:",
+       "emailusernamesubmit": "دیم دی",
        "email-legend": "یک ایمیلی په دگه کاربر {{SITENAME}} دیم دی",
-       "emailfrom": ":چه",
-       "emailto": "به:",
+       "emailfrom": "شه:",
+       "emailto": "بی:",
        "emailsubject": "موضوع:",
        "emailmessage": "کوله:",
        "emailsend": "دیم دی",
        "addedwatchtext": "صفحه  \"[[:$1]]\"  په شمی [[Special:Watchlist|watchlist]] هور بیت.\nدیمگی تغییرات په ای صفحه و آیاء صفحه گپ ادان لیست بنت، و صفحه پررنگ جاه کیت ته [[Special:RecentChanges|لیست نوکیت تغییرات]] په راحتر کتن شی که آی زورگ بیت.",
        "removedwatchtext": "صفحه\"[[:$1]]\"  چه [[Special:Watchlist|شمی لیست چارگ]]. دربیت.",
        "watch": "به چار",
-       "watchthispage": "اÛ\8c ØµÙ\81Ø­Ù\87 Û\8c Ø¨Ú\86ار",
+       "watchthispage": "اÛ\8c ØªØ§Ú©Ø¯Û\8cÙ\85ا Ø¨Ú¯Û\8cÙ\86د",
        "unwatch": "نه چارگ",
        "unwatchthispage": "چارگ بند کن",
        "notanarticle": "یک صفحه محتوا نهت",
        "enotif_body": "آزیزین $WATCHINGUSERNAME،\n\nصفحه {{SITENAME}} $PAGETITLE بوتت $CHANGEDORCREATED ته  $PAGEEDITDATE گون $PAGEEDITOR، بچار $PAGETITLE_URL په هنوکین نسخه.\n\n$NEWPAGE\n\nخلاصهء اصلاح کنوک:$PAGESUMMARY $PAGEMINOREDIT\n\nتماس گر گون اصلاح کنوک:\nایمیل:$PAGEEDITOR_EMAIL\nویکی: $PAGEEDITOR_WIKI\n\nدگه گیشترین اخطار په تغییرات دگه دیم دهگ نه بوت مگر شی که شما ای صفحه بچاریت.\nشما تونیت هنچوش نشانآن اخطارء ته وتی لیست چارگ په کلی چارتگین صفحات تنظیم کنیت.\n\nشمی دوستین سیستم اخطار {{SITENAME}}\n\n--\nپه عوض کتن تنظیمات وتی لیست چارگ،به چار\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nنظرات و گیشترین کمک:\n$HELPPAGE",
        "created": "شربوتت",
        "changed": "عوض بوت.",
-       "deletepage": "حذÙ\81 ØµÙ\81Ø­Ù\87",
+       "deletepage": "تاکدÛ\8cÙ\85Ù\90 Ù¾Ø§Ú© Ú©Ù\88رتÛ\8cÙ\86",
        "confirm": "تایید",
        "excontent": "محتوا هستنت:  '$1'",
        "excontentauthor": "محتوا ات: '$1' (و  فقط شرکت کنندگان انت '[[Special:Contributions/$2|$2]]')",
        "undelete-show-file-submit": "بله",
        "namespace": "فاصله نام",
        "invert": "برگردینگ انتخاب",
-       "blanknamespace": "(اصÙ\84ی)",
+       "blanknamespace": "(بÙ\8fÙ\86Û\8cادی)",
        "contributions": "مشارکتان کاربر",
        "contributions-title": "مشارکتان کاربر په $1",
        "mycontris": "می مشارکتان",
        "exportcuronly": "فقط شامل هنوکین بازبینی، نه تاریح کامل",
        "exportnohistory": "----\n'''توجه:''' گردگ تاریح کامل صفحات چه طریق ای فرم په خاطر دلایل اجرایی غیر فعال بوتت.",
        "export-submit": "درگیزگ",
-       "export-addcattext": "چه دسته صفحات اضافه کن:",
+       "export-addcattext": "تاکدیمانِ اڈ کورتین شه تهر آ :",
        "export-addcat": "اضافه کن",
        "export-addnstext": "صفحاتی چه نام‌فضا هورکن:",
        "export-addns": "هورکن",
        "allmessages-filter-modified": "عوض بیتگ",
        "allmessages-prefix": "فیلتر گون پیشوند:",
        "allmessages-language": "زبان:",
-       "allmessages-filter-submit": "برو",
+       "allmessages-filter-submit": "برا",
        "thumbnail-more": "مزن",
        "filemissing": "فایل گارنت",
        "thumbnail_error": "خطا ته شرکتن هوردوکین$1",
        "tooltip-search": "گردگ {{SITENAME}}",
        "tooltip-search-go": "برو به یک صفحه گون همی نامی اگر که هستن",
        "tooltip-search-fulltext": "گرد صفحات په ای متن",
-       "tooltip-p-logo": "صÙ\81Ø­Ù\87 Ø§ØµÙ\84ی",
-       "tooltip-n-mainpage": "صÙ\81Ø­Ù\87 Ø§ØµÙ\84Û\8c Ø¨Ú\86ار",
+       "tooltip-p-logo": "دÛ\8cستÛ\8cÙ\86 Ø¨Ù\8fÙ\86Û\8cادÛ\8c Ø¯Û\8cÙ\85ی",
+       "tooltip-n-mainpage": "دÛ\8cستÛ\8cÙ\86 Ø¨Ù\8fÙ\86Û\8cادÛ\8c Ø¯Û\8cÙ\85Û\8c",
        "tooltip-n-mainpage-description": "دیستن صفحه اصلی",
        "tooltip-n-portal": "پروژه ی باره: هرچی که شما تونیت انجام دهیت، جاهی که چیزانا درگیزیت",
        "tooltip-n-currentevents": "در گیزگ اطلاعات پیش زمینه ته هنوکین رویدادآن",
        "spam_reverting": "عوض کتن په آهری نسحه که شامل لینکان می بیت په $1",
        "spam_blanking": "کل بازبینی آن شامل لینکان په $1, بوتت  هالیکی",
        "simpleantispam-label": "کنترل ضد اسپم.\nای شیء پر ''مکن''",
+       "pageinfo-firstuser": "تاکدیمی جوڑ کنوک",
+       "pageinfo-category-info": "تهرِ مئلومات",
        "markaspatrolleddiff": "نشان کن په داب نظارت بوتگین",
        "markaspatrolledtext": "ای صفحه نشان کن په داب نظارت بوتگین",
        "markedaspatrolled": "نشاننت په داب نظارتی",
        "seconds-abbrev": "$1س",
        "minutes-abbrev": "$1م",
        "hours-abbrev": "$1ه",
+       "just-now": "همی انون",
+       "hours-ago": "$1 سائت دیمتیرا",
+       "minutes-ago": "$1 دکیکه دیمتیرا",
+       "seconds-ago": "$1 {{PLURAL:$1|سانیه|سانیه}} دیمتیرا",
+       "monday-at": "دوشمبی $1",
+       "tuesday-at": "سئه شمبی $1",
+       "wednesday-at": "چارشمبی $1",
+       "thursday-at": "پنج‌شمبی $1",
+       "friday-at": "جوما",
+       "saturday-at": "شمبی",
+       "sunday-at": "یک‌شمبی $1",
+       "yesterday-at": "زئ بی $1",
        "bad_image_list": "فرمت په داب جهلیگی انت:\n\nفقط ایتمان لیست چارگ بنت(خطانی که گون * شروع بنت).\nاولین لینک ته یک خط باید یک لینکی په یک بدین فایلی بیت.\nهر لینکی که کیت ته هما خط اسنثتا بینت.",
        "variantname-zh-hans": "هانس",
        "variantname-zh-hant": "هانت",
        "metadata-help": "ای فایل شامل مزیدین اطلاعاتنیت، شاید چه یک دوربین یا اسکنر په شرکتن و دیجیتالی کتن هور بیتت.\nاگه فایل چه اولیگین حالتی تغییر داته بوته شاید لهتی کل جزییات شر پیش مداریت.",
        "metadata-expand": "پیش دار گیشترین جزییات",
        "metadata-collapse": "پناه کن مزیدین جزییاتا",
-       "metadata-fields": "EXIF Ù\85تادÛ\8cتا Ù\81Û\8cÙ\84داÙ\86 Ù\84سÛ\8cت Ø¨Ù\88تگÙ\86 ØªÙ\87 Ø§Û\8c Ú©Ù\88Ù\84Ù\87 Ø´Ø§Ù\85Ù\84 Ø¨Û\8cÙ\86ت ØªØ¹  Ø¹کس  صفحه پیش داریت وهخهدی کهجدول متادیتا is هراب بیت.\nدگران پناه بنت په طور پیش فرض.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "EXIF Ù\85تادÛ\8cتا Ù\81Û\8cÙ\84داÙ\86 Ù\84سÛ\8cت Ø¨Ù\88تگÙ\86 ØªÙ\87 Ø§Û\8c Ú©Ù\88Ù\84Ù\87 Ø´Ø§Ù\85Ù\84 Ø¨Û\8cÙ\86ت ØªØ¹  Ø§کس  صفحه پیش داریت وهخهدی کهجدول متادیتا is هراب بیت.\nدگران پناه بنت په طور پیش فرض.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "پهنات",
        "exif-imagelength": "بلندی",
        "exif-bitspersample": "بیت ته جز",
        "exif-gpsareainformation": "نام منطقه جی پی اس",
        "exif-gpsdatestamp": "تاریح جی پی اس",
        "exif-gpsdifferential": "اصلاح متفاوت جی پی اس",
+       "exif-countrydest": "نشان داته بوته گین ملک",
+       "exif-countrycodedest": "نشان داته بوته گین ملکِ کود",
+       "exif-provinceorstatedest": "نشان داته بوته گین ولایت یا ایالت",
+       "exif-citydest": "نشان داته بوته گین شار",
+       "exif-sublocationdest": "نشان داته بوته گین مئل",
+       "exif-writer": "نویسوک",
+       "exif-languagecode": "زبان",
+       "exif-iimcategory": "تهر",
        "exif-compression-1": "کمپرس نه بوتت",
        "exif-compression-6": "جیی پی ای جی",
        "exif-photometricinterpretation-2": "آی جی بی",
        "colon-separator": ":&#32;",
        "imgmultipageprev": "← پیشگین صفحه",
        "imgmultipagenext": "صفحه بعدی →",
-       "imgmultigo": "برو!",
+       "imgmultigo": "برا!",
        "imgmultigoto": "برو به صفحه  $1",
        "ascending_abbrev": "بالادی",
        "descending_abbrev": "جهلادی",
        "table_pager_first": "اولی صفحه",
        "table_pager_last": "اهری صفحه",
        "table_pager_limit": "پیش دار  $1  ایتم ته هر صفحه",
-       "table_pager_limit_submit": "برو",
+       "table_pager_limit_submit": "برا",
        "table_pager_empty": "بی نتیجه",
        "autosumm-blank": "هالیکین صفحه",
        "autosumm-replace": "جاه په جاه کتن صفحه گون '$1'",
        "version-software": "نصبین برنامه",
        "version-software-product": "محصول",
        "version-software-version": "نسخه",
+       "redirect-submit": "برا",
        "fileduplicatesearch": "گردگ په کپی  فایلان",
        "fileduplicatesearch-summary": "گردگ په کپی فایلان په اساس درهمین ارزش.",
        "fileduplicatesearch-legend": "گردگ په  کپی",
        "revdelete-unrestricted": "به زور چه مدیران سیستم محدودیتان",
        "rightsnone": "(هچ یک)",
        "revdelete-summary": "خلاصه اصلاح",
+       "limitreport-templateargumentsize": "تراشوانِ ارگومینت اندازه",
        "expandtemplates": "پچ کن تمپلیت آنء",
-       "expand_templates_intro": "اÛ\8c ØµÙ\81Ø­Ù\87 حاص لهتی متنء گریت و کل تمپلتان ته آییء برگشتی مزنش کنت.\nآیی هنچوش عمگر تجزیه کنوکء مزن کنت په داب\n<nowiki>{{</nowiki>#language:…}}, و متغییرانی په داب\n<nowiki>{{</nowiki>CURRENTDAY}}&mdash; در حقیقت هر چیزی که ته دو براکتن.\nآیی ای کارء گون توار کنگ تجزیه کنوک مناسب چه مدیا وی کی وت انجام دنت.",
+       "expand_templates_intro": "اÛ\8c ØªØ§Ú© حاص لهتی متنء گریت و کل تمپلتان ته آییء برگشتی مزنش کنت.\nآیی هنچوش عمگر تجزیه کنوکء مزن کنت په داب\n<nowiki>{{</nowiki>#language:…}}, و متغییرانی په داب\n<nowiki>{{</nowiki>CURRENTDAY}}&mdash; در حقیقت هر چیزی که ته دو براکتن.\nآیی ای کارء گون توار کنگ تجزیه کنوک مناسب چه مدیا وی کی وت انجام دنت.",
        "expand_templates_title": "عنوان متن په {{FULLPAGENAME}} و دگه.:",
        "expand_templates_input": "ورودی متن",
        "expand_templates_output": "نتیجه",
index ba2b274..f72e846 100644 (file)
        "mergehistory-same-destination": "Gikanan asin destinasyong mga pahina dae puwedeng magkapareho",
        "mergehistory-reason": "Rason:",
        "mergelog": "Talaan kan pagtiripon",
-       "pagemerge-logentry": "pinagtiripon [[$1]] na magin [[$2]] (mga pagbabago sagkod sa $3)",
        "revertmerge": "Suruwayón",
        "mergelogpagetext": "Sa ibaba yaon an sarong listahan kan pinakahuring mga pagtitiripon kan sarong pahinang historiya sagkod sa iba pa.",
        "history-title": "Pagbabagong historiya kan \"$1\"",
        "statistics": "Mga Estadistiko",
        "statistics-header-pages": "Estadistikong pahina",
        "statistics-header-edits": "Estadistiko nin pagliwat",
-       "statistics-header-views": "Estadistiko nin pagmansay",
        "statistics-header-users": "Mga estadistiko nin parágamit",
        "statistics-header-hooks": "Iba pang estadistiko",
        "statistics-articles": "Laman na mga pahina",
        "statistics-files": "Pinagkargang mga sagunson",
        "statistics-edits": "Mga pagliwat sa pahina magpoon pa na an {{SITENAME}} pinagmukna.",
        "statistics-edits-average": "Katahaw kan mga pagliliwat sa kada pahina",
-       "statistics-views-total": "Mga Kamansayan sa kabilogan",
-       "statistics-views-total-desc": "Mga kamansayan sa dae pa eksistidong mga pahina asin espesyal na mga pahina bakong kabali",
-       "statistics-views-peredit": "Mga kamansayan kada pagliwat",
        "statistics-users": "Rehistrado [[Special:ListUsers|users]]",
        "statistics-users-active": "Mga Aktibong Paragamit",
        "statistics-users-active-desc": "Mga paragamit na may ginibong aksyon sa nakaaging {{PLURAL:$1|aldaw|$1 mga aldaw}}",
-       "statistics-mostpopular": "mga pinaka pighiling na pahina",
        "pageswithprop": "Mga pahina na igwang pahina nin kagrugaring",
        "pageswithprop-legend": "Mga pahina na igwang pahina nin kagrugaring",
        "pageswithprop-text": "Ining mahina naglilista kan mga pahina na minagamit nin partikular na pahina nin kagrugaring.",
        "uncategorizedtemplates": "Mga templatong mayong kategorya",
        "unusedcategories": "Dai gamit na mga kategorya",
        "unusedimages": "Mga dokumentong dai nagamit",
-       "popularpages": "Mga popular na páhina",
        "wantedcategories": "Mga hinahanap na kategorya",
        "wantedpages": "Mga hinahanap na pahina",
        "wantedpages-badtitle": "Imbalidong titulo sa resultang kinaag: $1",
        "pageinfo-robot-policy": "Pinaghuhukdo sa paagi nin mga robot",
        "pageinfo-robot-index": "Pinagtutugotan",
        "pageinfo-robot-noindex": "Dae pinagtutugotan",
-       "pageinfo-views": "Numero kan mga patanaw",
        "pageinfo-watchers": "Numero kan parabantay nin pahina",
        "pageinfo-few-watchers": "Kadikiton kesa $1{{PLURAL:$1|parabantay|mga parabantay}}",
        "pageinfo-redirects-name": "Numero kan mga palikwat kaining pahina",
index 1e54ace..745fb35 100644 (file)
        "pagetitle": "$1 — {{SITENAME}}",
        "retrievedfrom": "Атрымана з «$1»",
        "youhavenewmessages": "Вы атрымалі $1 ($2).",
-       "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы}} атрымалі $1 ад {{PLURAL:$3|1=іншага ўдзельніка|$3 удзельнікаў}} ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы}} атрымалі $1 ад $3 {{PLURAL:$3|удзельніка|удзельнікаў}} ($2).",
        "youhavenewmessagesmanyusers": "Вы атрымалі $1 ад некалькіх удзельнікаў ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|1=новае паведамленьне|999=новыя паведамленьні}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|1=апошняя зьмена|999=апошнія зьмены}}",
        "sort-ascending": "Сартаваць па ўзрастаньні",
        "nstab-main": "Старонка",
        "nstab-user": "Старонка {{GENDER:{{BASEPAGENAME}}|ўдзельніка|ўдзельніцы}}",
-       "nstab-media": "Мэдыя",
+       "nstab-media": "Ð\9cÑ\83лÑ\8cÑ\82Ñ\8bмÑ\8dдÑ\8bÑ\8f",
        "nstab-special": "Спэцыяльная старонка",
        "nstab-project": "Старонка праекту",
        "nstab-image": "Файл",
        "viewsourcetext": "Вы можаце праглядаць і капіяваць крынічны тэкст гэтай старонкі:",
        "viewyourtext": "Вы можаце праглядзець і скапіяваць крынічны тэкст '''вашых рэдагаваньняў''' на гэтую старонку:",
        "protectedinterface": "Гэтая старонка ўтрымлівае інтэрфэйснае паведамленьне праграмнага забесьпячэньня, і яе зьмена забаронена. Каб дадаць ці зьмяніць пераклад ва ўсіх праектах, зьвярніцеся на [//translatewiki.net/ translatewiki.net], праект для перакладу MediaWiki.",
-       "editinginterface": "'''Увага:''' Вы рэдагуеце старонку, якая ўтрымлівае сыстэмнае паведамленьне MediaWiki.\nЯе зьмена паўплывае на вонкавы выгляд інтэрфэйсу іншых удзельнікаў у гэтай вікі.\nКаб дадаць ці зьмяніць пераклад ва ўсіх праектах, зьвярніцеся на [//translatewiki.net/wiki/Main_Page?setlang=be-tarask translatewiki.net] — праект для лякалізацыі MediaWiki.",
+       "editinginterface": "<strong>Увага:</strong> Вы рэдагуеце старонку, якая ўтрымлівае тэкст інтэрфэйсу праграмнага забесьпячэньня.\nЯе зьмена паўплывае на вонкавы выгляд інтэрфэйсу іншых удзельнікаў у гэтай вікі.",
+       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, крыстаецеся [//translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
        "cascadeprotected": "Гэтая старонка абароненая ад рэдагаваньня, таму што яна ўключаная ў {{PLURAL:$1|1=наступную старонку, якая была абароненая|наступныя старонкі, якія былі абароненыя}} з актывізаванай опцыяй «каскаднай абароны»:\n$2",
        "namespaceprotected": "Вы ня маеце правоў на рэдагаваньне старонак у прасторы назваў '''$1'''.",
        "customcssprotected": "Вы ня маеце правоў на рэдагаваньне гэтай CSS-старонкі, таму што яна ўтрымлівае пэрсанальныя налады іншага ўдзельніка.",
        "content-model-text": "просты тэкст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Старонкі, на якіх у шаблёнах выкарыстоўваюцца парамэтры-дублікаты",
+       "duplicate-args-category-desc": "Старонкі, якія ўтрымліваюць шаблёны з парамэтрамі-дублікатамі, напрыклад, <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> або <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Папярэджаньне: гэтая старонка ўтрымлівае зашмат працаёмістых зваротаў да функцыяў парсэра.\n\nПавінна быць ня болей за $2 {{PLURAL:$2|зварот|звароты|зваротаў}}, а цяпер ўтрымліваецца {{PLURAL:$1|$1 зварот|$1 звароты|$1 зваротаў}}.",
        "expensive-parserfunction-category": "Старонкі, якія ўтрымліваюць зашмат працаёмістых зваротаў да функцыяў парсэра",
        "post-expand-template-inclusion-warning": "Папярэджаньне: Памер уключаемых шаблёнаў занадта вялікі.\nНекаторыя шаблёны ня будуць уключаныя.",
        "mergehistory-same-destination": "Крынічная і мэтавая старонкі ня могуць супадаць",
        "mergehistory-reason": "Прычына:",
        "mergelog": "Журнал аб’яднаньняў",
-       "pagemerge-logentry": "аб’яднаная [[$1]] ў [[$2]] (гісторыя рэдагаваньняў да $3)",
        "revertmerge": "Разьяднаць",
        "mergelogpagetext": "Ніжэй знаходзіцца сьпіс апошніх аб'яднаньняў гісторыяў старонак.",
        "history-title": "$1 — гісторыя зьменаў",
        "search-result-category-size": "$1 {{PLURAL:$1|элемэнт|элемэнты|элемэнтаў}} ($2 {{PLURAL:$2|падкатэгорыя|падкатэгорыі|падкатэгорыяў}}, $3 {{PLURAL:|файл|файлы|файлаў}})",
        "search-redirect": "(перанакіраваньне $1)",
        "search-section": "(сэкцыя $1)",
+       "search-category": "(катэгорыя $1)",
        "search-file-match": "(супадае зь зьмесьцівам файла)",
        "search-suggest": "Магчыма, вы мелі на ўвазе: $1",
        "search-interwiki-caption": "Сумежныя праекты",
        "gender-female": "Яна рэдагуе вікістаронкі",
        "prefs-help-gender": "Вызначаць гэта неабавязкова.\nАпраграмаваньне выкарыстоўвае гэтае значэньне толькі для граматычна карэктнага звароту да вас.\nГэтая інфармацыя будзе агульнадаступнай.",
        "email": "Электронная пошта",
-       "prefs-help-realname": "Сапраўднае імя паведамляць неабавязкова.\nКалі Вы яго пазначыце, яно будзе выкарыстоўвацца для пазначэньня Вашай працы.",
+       "prefs-help-realname": "Сапраўднае імя паведамляць неабавязковае.\nКалі Вы яго пазначыце, яно можа быць выкарыстанае для пазначэньня Вашай працы.",
        "prefs-help-email": "Адрас электроннай пошты неабавязковы, але ён дае магчымасьць даслаць Вам пароль, калі Вы забылі яго.",
        "prefs-help-email-others": "Вы можаце таксама дазволіць іншым удзельнікам кантактаваць з Вамі праз Вашую асабістую старонку гутарак безь неабходнасьці раскрыцьця адрасу электроннай пошты.",
        "prefs-help-email-required": "Патрабуецца адрас электроннай пошты.",
        "statistics": "Статыстыка",
        "statistics-header-pages": "Статыстыка старонак",
        "statistics-header-edits": "Статыстыка рэдагаваньняў",
-       "statistics-header-views": "Статыстыка праглядаў",
        "statistics-header-users": "Статыстыка ўдзелу",
        "statistics-header-hooks": "Іншая статыстыка",
        "statistics-articles": "Колькасьць старонак са зьместам",
        "statistics-files": "Колькасьць загружаных файлаў",
        "statistics-edits": "Агульная колькасьць рэдагаваньняў",
        "statistics-edits-average": "Сярэдняя колькасьць рэдагаваньняў на старонку",
-       "statistics-views-total": "Агульная колькасьць праглядаў",
-       "statistics-views-total-desc": "Прагляды неіснуючых старонак і спэцыяльных старонак не ўлічаныя",
-       "statistics-views-peredit": "Колькасьць праглядаў на рэдагаваньне",
        "statistics-users": "[[Special:ListUsers|Зарэгістраваныя ўдзельнікі]]",
        "statistics-users-active": "Актыўныя ўдзельнікі",
        "statistics-users-active-desc": "Удзельнікі, якія выканалі нейкае дзеяньне цягам {{PLURAL:$1|апошняга $1 дня|апошніх $1 дзён|апошніх $1 дзён}}",
-       "statistics-mostpopular": "Найпапулярнейшыя старонкі",
        "pageswithprop": "Старонкі з уласьцівасьцямі старонак",
        "pageswithprop-legend": "Старонкі з уласьцівасьцямі старонак",
        "pageswithprop-text": "На гэтай старонцы адлюстроўваюцца старонкі, якія ўжываюць пэўныя ўласьцівасьці старонак",
        "uncategorizedtemplates": "Некатэгарызаваныя шаблёны",
        "unusedcategories": "Катэгорыі, якія не выкарыстоўваюцца",
        "unusedimages": "Файлы, якія не выкарыстоўваюцца",
-       "popularpages": "Папулярныя старонкі",
        "wantedcategories": "Запатрабаваныя катэгорыі",
        "wantedpages": "Запатрабаваныя старонкі",
        "wantedpages-badtitle": "Няслушная назва сярод вынікаў: $1",
        "pager-older-n": "$1 {{PLURAL:$1|старэйшая|старэйшыя|старэйшых}}",
        "suppress": "Рэвізаваць",
        "querypage-disabled": "Гэта спэцыяльная старонка адключаная для падвышэньня прадукцыйнасьці",
+       "apihelp": "Даведка API",
+       "apihelp-no-such-module": "Модуль «$1» ня знойдзены.",
        "booksources": "Пошук кніг",
        "booksources-search-legend": "Пошук кніг",
        "booksources-isbn": "ISBN:",
        "tooltip-pt-mycontris": "Ваш унёсак",
        "tooltip-pt-login": "Вас запрашаюць увайсьці, хаця гэта і неабавязкова.",
        "tooltip-pt-logout": "Выйсьці",
+       "tooltip-pt-createaccount": "Мы прапануем вам стварыць рахунак і ўвайсьці, але гэта не абавязкова",
        "tooltip-ca-talk": "Абмеркаваньне зьместу старонкі",
        "tooltip-ca-edit": "Вы можаце рэдагаваць гэтую старонку. Калі ласка, ужывайце кнопку прагляду перад захаваньнем.",
        "tooltip-ca-addsection": "Пачаць новую сэкцыю",
        "tooltip-feed-atom": "Atom-стужка для гэтай старонкі",
        "tooltip-t-contributions": "Паказаць унёсак гэтага удзельніка/гэтай удзельніцы",
        "tooltip-t-emailuser": "Даслаць ліст гэтаму ўдзельніку/гэтай удзельніцы па электроннай пошце",
+       "tooltip-t-info": "Болей інфармацыі пра гэтую старонку",
        "tooltip-t-upload": "Загрузіць файл",
        "tooltip-t-specialpages": "Сьпіс усіх спэцыяльных старонак",
        "tooltip-t-print": "Вэрсія гэтай старонкі для друку",
        "pageinfo-robot-policy": "Індэксацыя пашукавікамі",
        "pageinfo-robot-index": "Дазволеная",
        "pageinfo-robot-noindex": "Не дазволеная",
-       "pageinfo-views": "Колькасьць праглядаў",
        "pageinfo-watchers": "Колькасьць назіральнікаў і назіральніц",
        "pageinfo-few-watchers": "Менш за $1 {{PLURAL:$1|назіральніка|назіральнікі|назіральнікаў}}",
        "pageinfo-redirects-name": "Перанакіраваньняў на гэтую старонку",
        "unknown_extension_tag": "Невядомы тэг пашырэньня «$1»",
        "duplicate-defaultsort": "Папярэджаньне: Ключ сартыроўкі па змоўчваньні «$2» замяняе папярэдні ключ сартыроўкі па змоўчваньні «$1».",
        "duplicate-displaytitle": "<strong>Папярэджаньне:</strong> назва для адлюстраваньня «$2» перапісвае ранейшую назву для адлюстраваньня «$1».",
+       "invalid-indicator-name": "<strong>Памылка:</strong> атрыбут <code>name</code> індыкатараў статусу старонкі ня мусіць быць пустым.",
        "version": "Вэрсія",
        "version-extensions": "Усталяваныя пашырэньні",
        "version-skins": "Усталяваныя тэмы афармленьня",
        "revdelete-uname-unhid": "імя ўдзельніка адкрытае",
        "revdelete-restricted": "ужыць абмежаваньні для адміністратараў",
        "revdelete-unrestricted": "зьнятыя абмежаваньні для адміністратараў",
+       "logentry-merge-merge": "$1 {{GENDER:$2|аб’яднаў|аб’яднала}} $3 у $4 (вэрсіі да $5)",
        "logentry-move-move": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4 без пакінутага перанакіраваньня",
        "logentry-move-move_redir": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4 паўзьверх перанакіраваньня",
        "api-error-stashfailed": "Унутраная памылка: сэрвэр ня змог захаваць часовы файл.",
        "api-error-publishfailed": "Унутраная памылка: сэрвэр ня змог захаваць часловы файл.",
        "api-error-stasherror": "Падчас загрузкі файла ў сховішча адбылася памылка.",
+       "api-error-stashedfilenotfound": "Схаваны файл ня быў знойдзены пры спробе загрузіць яго з схованкі.",
+       "api-error-stashpathinvalid": "Шлях, дзе павінен быў знаходзіцца схаваны файл, апынуўся няслушным.",
+       "api-error-stashfilestorage": "Адбылася памылка пры захаваньні файла ў схованку.",
        "api-error-timeout": "Сэрвэр не адказаў у чаканы тэрмін.",
        "api-error-unclassified": "Узьнікла невядомая памылка",
        "api-error-unknown-code": "Невядомая памылка: «$1».",
        "json-error-unknown": "Узьнікла праблема з JSON. Памылка: $1",
        "json-error-depth": "Перавышаная максымальная глыбіня стэку",
        "json-error-state-mismatch": "Недазволены або няслушна сфармаваны JSON",
-       "json-error-ctrl-char": "Памылка кантрольнага сымбалю, магчыма, няслушнае кадаваньне"
+       "json-error-ctrl-char": "Памылка кантрольнага сымбалю, магчыма, няслушнае кадаваньне",
+       "json-error-syntax": "Сынтаксычная памылка",
+       "json-error-utf8": "Некарэктныя сымбалі UTF-8, магчыма, няслушнае кадаваньне",
+       "json-error-recursion": "Значэньне, якое трэба закадаваць, утрымлівае адну ці некалькі рэкурсіўных спасылак",
+       "json-error-inf-or-nan": "У значэньні, якое трэба закадаваць, прысутнічаюць адно ці болей NAN- або INF-значэньняў",
+       "json-error-unsupported-type": "Было пададзенае значэньне тыпу, які ня можа быць закадаваны"
 }
index f72b76c..d7e2743 100644 (file)
        "nstab-user": "Старонка",
        "nstab-media": "Мультымедыя",
        "nstab-special": "Адмысловая старонка",
-       "nstab-project": "Старонка праекту",
+       "nstab-project": "Старонка праекта",
        "nstab-image": "Файл",
        "nstab-mediawiki": "Паведамленне",
        "nstab-template": "Шаблон",
        "passwordreset-email": "Адрас электроннай пошты:",
        "passwordreset-emailtitle": "Інфармацыя пра рахунак на сайце {{SITENAME}}",
        "passwordreset-emailtext-ip": "Нехта (магчыма вы, з IP-адрасу $1) запытаў скід  вашага пароля ў праекце {{SITENAME}} ($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя ўліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|адзін дзень|$5 дні|$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і абраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягнуць выкарыстоўваць свой стары пароль.",
-       "passwordreset-emailtext-user": "Удзельнік $1 з праекту {{SITENAME}} запытаў скід вашага пароля ў праекце {{SITENAME}}\n($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя уліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|$5 дзень |$5 дні |$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і абраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягваць выкарыстоўваць свой стары пароль.",
+       "passwordreset-emailtext-user": "Удзельнік $1 з праекта {{SITENAME}} запытаў скід вашага пароля ў праекце {{SITENAME}}\n($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя уліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|$5 дзень |$5 дні |$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і выбраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягваць выкарыстоўваць свой стары пароль.",
        "passwordreset-emailelement": "Імя ўдзельніка: $1\nЧасовы пароль: $2",
        "passwordreset-emailsent": "Па электроннай пошце быў адпраўлены ліст пра скід пароля.",
        "passwordreset-emailsent-capture": "Ніжэй прыведзены адпраўлены ліст пра скід пароля.",
        "mergehistory-same-destination": "Нельга, каб выток і мэта былі аднолькавымі",
        "mergehistory-reason": "Прычына:",
        "mergelog": "Журнал аб'яднанняў",
-       "pagemerge-logentry": "аб'яднана [[$1]] у склад [[$2]] (версіі перад? і лучна з $3)",
        "revertmerge": "Адкаціць аб'яднанне",
        "mergelogpagetext": "Ніжэй паказаны пералік самых нядаўніх аб'яднанняў гісторый старонак.",
        "history-title": "Гісторыя версій \"$1\"",
        "statistics": "Статыстыка",
        "statistics-header-pages": "Статыстыка старонак",
        "statistics-header-edits": "Статыстыка правак",
-       "statistics-header-views": "Статыстыка паказаў",
        "statistics-header-users": "Статыстыка ўдзельніка",
        "statistics-header-hooks": "Іншыя статыстыкі",
        "statistics-articles": "Змястоўныя старонкі",
        "statistics-files": "Укладзеныя файлы",
        "statistics-edits": "Праўкі старонак ад часу інсталяцыі {{SITENAME}}",
        "statistics-edits-average": "Колькасць правак на 1 старонку",
-       "statistics-views-total": "Усе паказы",
-       "statistics-views-total-desc": "Не ўлічваюцца прагляды неіснуючых і адмысловых старонак.",
-       "statistics-views-peredit": "Колькасць паказаў на 1 праўку",
        "statistics-users": "Registered [[Special:ListUsers|users]]",
        "statistics-users-active": "Актыўныя ўдзельнікі",
        "statistics-users-active-desc": "Удзельнікі, якія хоць нешта зрабілі за апошн{{PLURAL:$1|і дзень|ія $1 дзён}}",
-       "statistics-mostpopular": "Самыя папулярныя старонкі",
        "pageswithprop": "Старонкі з уласцівасцю старонкі",
        "pageswithprop-legend": "Старонкі з пэўнай уласцівасцю",
        "pageswithprop-text": "На гэтай старонцы пералічаны старонкі, якія выкарыстоўваюць пэўную уласцівасць.",
        "uncategorizedtemplates": "Шаблоны без катэгорый",
        "unusedcategories": "Катэгорыі без складнікаў",
        "unusedimages": "Файлы, якія не выкарыстаны",
-       "popularpages": "Папулярныя старонкі",
        "wantedcategories": "Вельмі патрэбныя катэгорыі",
        "wantedpages": "Вельмі патрэбныя старонкі",
        "wantedpages-badtitle": "Недапушчальная назва ў выніках: $1",
        "contributions-userdoesnotexist": "Уліковы запіс удзельніка \"$1\" не зарэгістраваны.",
        "nocontribs": "Не знойдзена змен, адпаведных зададзеным параметрам.",
        "uctop": "(апошн.)",
-       "month": "Ад месяцу (і раней):",
-       "year": "Ад году (і раней):",
+       "month": "Ад месяца (і раней):",
+       "year": "Ад года (і раней):",
        "sp-contributions-newbies": "Паказваць толькі ўклады з новых рахункаў",
        "sp-contributions-newbies-sub": "З новых рахункаў",
        "sp-contributions-newbies-title": "Уклады ўдзельнікаў з новых рахункаў",
        "pageinfo-robot-policy": "Індэксаванне робатамі",
        "pageinfo-robot-index": "Дазволена",
        "pageinfo-robot-noindex": "Не дазволена",
-       "pageinfo-views": "Колькасць праглядаў",
        "pageinfo-watchers": "Колькасць назіральнікаў старонкі",
        "pageinfo-few-watchers": "Менш чым $1 {{PLURAL:$1|назіральнік|назіральнікі|назіральнікаў}}",
        "pageinfo-redirects-name": "Колькасць перасылак на гэту старонку",
index 2ecbb92..fe7d7ad 100644 (file)
        "mergehistory-same-destination": "Изходната и целевата страница не могат да съвпадат",
        "mergehistory-reason": "Причина:",
        "mergelog": "Дневник на сливанията",
-       "pagemerge-logentry": "обедини [[$1]] с [[$2]] (до редакция $3)",
        "revertmerge": "Разделяне",
        "mergelogpagetext": "Страницата съдържа списък с последните сливания на редакционни истории.",
        "history-title": "Преглед на историята на „$1“",
        "statistics": "Статистика",
        "statistics-header-pages": "Статистики за страницата",
        "statistics-header-edits": "Статистики за редакциите",
-       "statistics-header-views": "Преглеждане на статистиките",
        "statistics-header-users": "Потребители",
        "statistics-header-hooks": "Други статистики",
        "statistics-articles": "Съдържателни страници",
        "statistics-files": "Качени файлове",
        "statistics-edits": "Брой редакции по страници от началото на {{SITENAME}}",
        "statistics-edits-average": "Средно редакции на страница",
-       "statistics-views-total": "Общо прегледи",
-       "statistics-views-total-desc": "Не са включени прегледите на несъществуващи и специални страници",
-       "statistics-views-peredit": "Прегледи на редакция",
        "statistics-users": "Регистрирани [[Special:ListUsers|потребители]]",
        "statistics-users-active": "Активни потребители",
        "statistics-users-active-desc": "Потребители, направили редакция през {{PLURAL:$1|последния ден|последните $1 дни}}",
-       "statistics-mostpopular": "Най-преглеждани страници",
        "pageswithprop-prop": "Име на свойството:",
        "pageswithprop-submit": "Отваряне",
        "doubleredirects": "Двойни пренасочвания",
        "uncategorizedtemplates": "Некатегоризирани шаблони",
        "unusedcategories": "Неизползвани категории",
        "unusedimages": "Неизползвани файлове",
-       "popularpages": "Най-посещавани страници",
        "wantedcategories": "Желани категории",
        "wantedpages": "Желани страници",
        "wantedpages-badtitle": "Невалидно заглавие в резултатното множество: $1",
        "pageinfo-robot-policy": "Индексиране от роботи",
        "pageinfo-robot-index": "Позволено",
        "pageinfo-robot-noindex": "Непозволено",
-       "pageinfo-views": "Брой прегледи",
        "pageinfo-watchers": "Брой наблюдаващи страницата",
        "pageinfo-few-watchers": "Под $1 {{PLURAL:$1|наблюдаващ|наблюдаващи}}",
        "pageinfo-redirects-name": "Брой пренасочвания към тази страница",
index 7781475..86d2168 100644 (file)
        "passwordreset-emailsent-capture": "नीचे दिखावल गईल गुप्तशब्द पुनर्स्थापना ई-मेल भेज दिहल गईल बा।",
        "passwordreset-emailerror-capture": "नीचे दिखावल गईल गुप्तशब्द पुनर्स्थापना ई-मेल उत्पन्न करल गईल रहल, परंतु उ के {{GENDER:$2|सदस्य}} के भेजे के क्रिया असफल रहल।\nत्रुटि: $1",
        "changeemail": "ई-मेल पता बदलीं",
-       "changeemail-header": "खाता के ई-मेल पता बदलीं",
        "changeemail-text": "आपन ई-मेल पता बदले खातिर इ फॉर्म के भरीं। इ बदलाव के पुष्टे करे खातिर रउआ आपन गुप्तशब्द पुनः लिखे के पड़ी।",
        "changeemail-no-info": "इ पन्ना के सिधे प्रयोग करे खातिर रउआ पहिले खाता में प्रवेश करे के पड़ी।",
        "changeemail-oldemail": "वर्तमान ई-मेल पता:",
        "changeemail-none": "(कउनो नाहीं)",
        "changeemail-password": "राउर {{SITENAME}} गुप्तशब्द:",
        "changeemail-submit": "ई-मेल बदलीं",
-       "changeemail-cancel": "रद्द करीं",
        "changeemail-throttled": "रउआ हाले में कईयन बार खाता में प्रवेश करे के कोशिश कर चुकल बानी।\nकृपया $1 प्रतिक्षा करला के बाद फिर से प्रयास करब।",
        "resettokens": "टोकन रीसेट करीं",
        "resettokens-text": "जौन टोकन राउर खाता से सम्बद्ध कुछ विशिष्ट व्यक्तिगत जानकारी प्रदान करेला, आप उ के अहिजा रीसेट कर सकत बानी।\n\nयदि रउआ ई के गलती से केहू के दिखा देले बानी या फिर राउर खाता हैक हो गईल बा त रउआ ई के रीसेट कर देवे के चाहीं।",
        "version-no-ext-name": "[अज्ञात नाम]",
        "specialpages": "ख़ाश पन्ना",
        "revdelete-restricted": "प्रबंधक पर प्रतिबंध लागू",
-       "revdelete-unrestricted": "प्रबंधक पर से प्रतिबंध समाप्त"
+       "revdelete-unrestricted": "प्रबंधक पर से प्रतिबंध समाप्त",
+       "revdelete-summary": "सारांश संपादन"
 }
index 7e1934c..6a6d53a 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Iketsi",
-            "Sotiale",
-            "Ushanka"
-        ]
-    },
-    "underline-always": "Oltaem",
-    "underline-never": "Neva",
-    "sunday": "Sande",
-    "monday": "Mande",
-    "tuesday": "Tusde",
-    "wednesday": "Wenesde",
-    "thursday": "Tosde",
-    "friday": "Fraede",
-    "saturday": "Sarede",
-    "sun": "San",
-    "mon": "Man",
-    "tue": "Tu",
-    "wed": "Wen",
-    "thu": "To",
-    "fri": "Frae",
-    "sat": "Sar",
-    "january": "Januware",
-    "february": "Februari",
-    "march": "Maj",
-    "april": "Epril",
-    "may_long": "Mei",
-    "june": "Jun",
-    "july": "Julae",
-    "august": "Ogis",
-    "september": "Septemba",
-    "october": "Oktoba",
-    "november": "Novemba",
-    "december": "Desemba",
-    "january-gen": "Januware",
-    "february-gen": "Februari",
-    "march-gen": "Maj",
-    "april-gen": "Epril",
-    "may-gen": "Mei",
-    "june-gen": "Jun",
-    "july-gen": "Julae",
-    "august-gen": "Ogis",
-    "september-gen": "Septemba",
-    "october-gen": "Oktoba",
-    "november-gen": "Novemba",
-    "december-gen": "Desemba",
-    "mar": "Maj",
-    "apr": "Epr",
-    "may": "Mei",
-    "aug": "Ogis",
-    "oct": "Okt",
-    "dec": "Des",
-    "mypage": "Pej blong mi",
-    "mytalk": "Tingting blong mi",
-    "and": "&#32;mo",
-    "qbedit": "Jenisim hem",
-    "qbpageoptions": "Pej ia",
-    "qbmyoptions": "Ol pej blong mi",
-    "vector-action-move": "Muv",
-    "vector-view-history": "Lukluk histri",
-    "vector-view-view": "Rid",
-    "search": "Faenem samting",
-    "history": "Pej histri",
-    "history_short": "Histri",
-    "edit": "Jenisim hem",
-    "newpage": "Mekem niu pej",
-    "talkpagelinktext": "Toktok",
-    "specialpage": "Spesel Pej",
-    "talk": "Tingting",
-    "mainpage": "Nambawan Pej",
-    "mainpage-description": "Nambawan Pej",
-    "portal": "Haus blong toktok‎",
-    "portal-url": "Project:Haus blong toktok‎",
-    "retrievedfrom": "Kam long \"$1\"",
-    "editsection": "jenisim hem",
-    "editold": "jenisim hem",
-    "red-link-title": "$1 (pej i no stap)",
-    "nstab-main": "Atikel",
-    "nstab-special": "Spesel pej",
-    "nstab-project": "Projek pej",
-    "minoredit": "Mi bin mekem wan smol jenis",
-    "servertime": "Taem blong server",
-    "recentchanges": "Niu jenis",
-    "listfiles_name": "Nem",
-    "shortpages": "Ol smol pej",
-    "longpages": "Ol big pej",
-    "newpages": "Ol niu pej",
-    "allarticles": "Olgeta atikel",
-    "emailfrom": "Kam long",
-    "emailto": "Go long:",
-    "year": "Yia:",
-    "sp-contributions-talk": "toktok",
-    "move-page-legend": "Muvum pej",
-    "movearticle": "Muvum pej:",
-    "allmessagesname": "Nem",
-    "tooltip-pt-mytalk": "Pej blong tingting blong mi",
-    "tooltip-p-logo": "Nambawan Pej",
-    "tooltip-n-mainpage": "Go long Nambawan Pej",
-    "tooltip-minoredit": "Em i stap wan smol jenis",
-    "showhidebots": "($1 bot)",
-    "exif-imagedescription": "Nem blong pikta",
-    "exif-exposuretime-format": "$1 sek. ($2)",
-    "watchlistall2": "olgeta",
-    "namespacesall": "olgeta",
-    "monthsall": "olgeta",
-    "table_pager_first": "Nambawan pej",
-    "autosumm-new": "Niu pej: $1",
-    "specialpages": "Spesel pej"
+       "@metadata": {
+               "authors": [
+                       "Iketsi",
+                       "Sotiale",
+                       "Ushanka"
+               ]
+       },
+       "underline-always": "Oltaem",
+       "underline-never": "Neva",
+       "sunday": "Sande",
+       "monday": "Mande",
+       "tuesday": "Tusde",
+       "wednesday": "Wenesde",
+       "thursday": "Tosde",
+       "friday": "Fraede",
+       "saturday": "Sarede",
+       "sun": "San",
+       "mon": "Man",
+       "tue": "Tu",
+       "wed": "Wen",
+       "thu": "To",
+       "fri": "Frae",
+       "sat": "Sar",
+       "january": "Januware",
+       "february": "Februari",
+       "march": "Maj",
+       "april": "Epril",
+       "may_long": "Mei",
+       "june": "Jun",
+       "july": "Julae",
+       "august": "Ogis",
+       "september": "Septemba",
+       "october": "Oktoba",
+       "november": "Novemba",
+       "december": "Desemba",
+       "january-gen": "Januware",
+       "february-gen": "Februari",
+       "march-gen": "Maj",
+       "april-gen": "Epril",
+       "may-gen": "Mei",
+       "june-gen": "Jun",
+       "july-gen": "Julae",
+       "august-gen": "Ogis",
+       "september-gen": "Septemba",
+       "october-gen": "Oktoba",
+       "november-gen": "Novemba",
+       "december-gen": "Desemba",
+       "mar": "Maj",
+       "apr": "Epr",
+       "may": "Mei",
+       "aug": "Ogis",
+       "oct": "Okt",
+       "dec": "Des",
+       "mypage": "Pej blong mi",
+       "mytalk": "Tingting blong mi",
+       "and": "&#32;mo",
+       "qbedit": "Jenisim hem",
+       "qbpageoptions": "Pej ia",
+       "qbmyoptions": "Ol pej blong mi",
+       "search": "Faenem samting",
+       "history": "Pej histri",
+       "history_short": "Histri",
+       "edit": "Jenisim hem",
+       "newpage": "Mekem niu pej",
+       "talkpagelinktext": "Toktok",
+       "specialpage": "Spesel Pej",
+       "talk": "Tingting",
+       "mainpage": "Nambawan Pej",
+       "mainpage-description": "Nambawan Pej",
+       "portal": "Haus blong toktok‎",
+       "portal-url": "Project:Haus blong toktok‎",
+       "retrievedfrom": "Kam long \"$1\"",
+       "editsection": "jenisim hem",
+       "editold": "jenisim hem",
+       "red-link-title": "$1 (pej i no stap)",
+       "nstab-main": "Atikel",
+       "nstab-special": "Spesel pej",
+       "nstab-project": "Projek pej",
+       "minoredit": "Mi bin mekem wan smol jenis",
+       "servertime": "Taem blong server",
+       "recentchanges": "Niu jenis",
+       "listfiles_name": "Nem",
+       "shortpages": "Ol smol pej",
+       "longpages": "Ol big pej",
+       "newpages": "Ol niu pej",
+       "allarticles": "Olgeta atikel",
+       "emailfrom": "Kam long",
+       "emailto": "Go long:",
+       "year": "Yia:",
+       "sp-contributions-talk": "toktok",
+       "move-page-legend": "Muvum pej",
+       "movearticle": "Muvum pej:",
+       "allmessagesname": "Nem",
+       "tooltip-pt-mytalk": "Pej blong tingting blong mi",
+       "tooltip-p-logo": "Nambawan Pej",
+       "tooltip-n-mainpage": "Go long Nambawan Pej",
+       "tooltip-minoredit": "Em i stap wan smol jenis",
+       "exif-imagedescription": "Nem blong pikta",
+       "exif-exposuretime-format": "$1 sek. ($2)",
+       "namespacesall": "olgeta",
+       "monthsall": "olgeta",
+       "table_pager_first": "Nambawan pej",
+       "autosumm-new": "Niu pej: $1",
+       "specialpages": "Spesel pej"
 }
index 25afe2a..42d6e0a 100644 (file)
        "mergehistory-same-destination": "Tungkaran-tungkaran asal mula wan tatuju kada kawa sama",
        "mergehistory-reason": "Alasan:",
        "mergelog": "Log panggabungan",
-       "pagemerge-logentry": "Sudah digabungakan [[$1]] ka dalam [[$2]] (ralatan-ralatan sampai $3)",
        "revertmerge": "Walang panggabungan",
        "mergelogpagetext": "Di bawah adalah daptar nang paling hanyar panggabungan matan sabuah tungkaran halam ka dalam nang lain.",
        "history-title": "Ralatan halam matan ''$1''",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik tungkaran",
        "statistics-header-edits": "Statistik babakan",
-       "statistics-header-views": "Statistik panampaian",
        "statistics-header-users": "Statistik pamuruk",
        "statistics-header-hooks": "Statistik lainnya",
        "statistics-articles": "Tungkaran isi",
        "statistics-files": "Barakas nang dihunggahakan",
        "statistics-edits": "Jumlah babakan tumatan {{SITENAME}} dimulai",
        "statistics-edits-average": "Rata-rata babakan par tungkaran",
-       "statistics-views-total": "Jumlah panampaian tungkaran",
-       "statistics-views-total-desc": "Tilik ka tutungkaran nang kadada wan tungkaran istimiwa kada tamasuk",
-       "statistics-views-peredit": "Titiringan par babakan",
        "statistics-users": "Jumlah [[Special:ListUsers|pamuruk tadaptar]]",
        "statistics-users-active": "Jumlah pamuruk aktip",
        "statistics-users-active-desc": "Pamuruk nang sudah malakukan suatu aksi dalam {{PLURAL:$1|sahari|$1 hari}} tauncit.",
-       "statistics-mostpopular": "Tungkaran nang paling banyak ditampaiakan",
        "doubleredirects": "Paugahan ganda",
        "doubleredirectstext": "Tungkaran ngini mandaptar tutungkaran nang maugah ka tutungkaran ugahan lain.\nTiap baris mangandung tautan ka ugahan panambaian wan kadua, sasarannya adalah ugahn kadua, nang biasanya tungkaran sasaran \"sabujurnya\", nang ugahan partama tuju.\nMasukan nang <del>Disilangi</del> sudah dibaiki.",
        "double-redirect-fixed-move": "[[$1]] sudah dipindahakan.\nNgini wayah ini sudah diugahakan ka [[$2]].",
        "uncategorizedtemplates": "Citakan nang kada batumbung",
        "unusedcategories": "Tutumbung kada tapuruk",
        "unusedimages": "Barakas nang kada tapakai",
-       "popularpages": "Tutungkaran popular",
        "wantedcategories": "Tutumbung naang dihandaki",
        "wantedpages": "Tutungkaran nang dihandaki",
        "wantedpages-badtitle": "Judul kada sah dalam setelan kulihan: $1",
        "pageinfo-robot-policy": "Status masin panggagai",
        "pageinfo-robot-index": "Kawa diindeks",
        "pageinfo-robot-noindex": "Kada kawa diindeks",
-       "pageinfo-views": "Rikinan titiringan",
        "pageinfo-watchers": "Jumlah pa-itih tungkaran",
        "pageinfo-few-watchers": "Kurang matan $1 {{PLURAL:$1|pa-ilang}}",
        "pageinfo-redirects-name": "Paugahan ka tungkaran ngini",
index 072e7ab..1725aa7 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Guaka",
-            "לערי ריינהארט"
-        ]
-    },
-    "tog-hideminor": "Yɛlɛmaliw kura fitini dogo",
-    "sunday": "karidon",
-    "monday": "ntɛnɛdon",
-    "tuesday": "taratadon",
-    "wednesday": "arabadon",
-    "thursday": "alamisadon",
-    "friday": "jumadon",
-    "saturday": "sibiridon",
-    "august": "uti",
-    "aug": "uti",
-    "category_header": "Nyɛw cogoya kɔnɔ: \"$1\"",
-    "article": "Nyɛ",
-    "mypage": "N'ka nyɛ",
-    "mytalk": "N'ka baronyɛ",
-    "and": "&#32;ani",
-    "qbfind": "Nyini",
-    "qbedit": "Yɛlɛma",
-    "help": "Dɛmɛ",
-    "search": "Nyini",
-    "searchbutton": "Nyini",
-    "go": "Taa",
-    "searcharticle": "Taa",
-    "history": "Nyɛka tariku",
-    "history_short": "Tariku",
-    "edit": "yɛlɛma",
-    "editthispage": "Nyɛ nin yɛlɛma",
-    "newpage": "Nyɛ kura",
-    "specialpage": "Nyɛ kɛrɛnkɛrɛnnen",
-    "talk": "Sɔsɔli",
-    "toolbox": "Minanw",
-    "userpage": "Utilisateur ka nyɛ",
-    "imagepage": "Janin ka nyɛ",
-    "otherlanguages": "Kanw wɛrɛ",
-    "jumptosearch": "Nyini",
-    "currentevents": "Kunnafoni",
-    "currentevents-url": "Project:Kunnafoni",
-    "disclaimers": "Kangari",
-    "edithelp": "Dɛmɛ",
-    "mainpage": "Nyɛ fɔlɔ",
-    "mainpage-description": "Nyɛ fɔlɔ",
-    "portal": "Jamaje",
-    "editsection": "yɛlɛma",
-    "hidetoc": "dogo",
-    "nstab-main": "Nyɛ",
-    "nstab-image": "Janin",
-    "nstab-help": "Dɛmɛ",
-    "nstab-category": "Cogoya",
-    "minoredit": "Yɛlɛma fitini.",
-    "watchthis": "Nyɛ tulomajɔ",
-    "newarticle": "(Kura)",
-    "editing": "$1 ka yɛlɛmali",
-    "editingsection": "$1 ka yɛlɛmali (section)",
-    "editingcomment": "$1 ka yɛlɛmali (baro)",
-    "preferences": "Fisayali",
-    "prefs-skin": "Apparence",
-    "hide": "dogo",
-    "file-anchor-link": "Janin",
-    "randompage": "Nyɛ min man ni ja",
-    "popularpages": "Nyɛw les plus consultées",
-    "newpages": "Nyɛw kura",
-    "ancientpages": "Nyɛw les plus anciens",
-    "move": "telun",
-    "movethispage": "Nyɛ telun",
-    "allpages": "Nyɛw bɛɛ",
-    "categories": "Nyɛ ka cogoyaw",
-    "linksearch-ok": "Nyini",
-    "watch": "Tulomajɔ",
-    "watchthispage": "Nyɛ tulomajɔ",
-    "mycontris": "N'ka contributions",
-    "lockconfirm": "Awɔ, je confirme que je souhaite verrouiller la base de données.",
-    "move-page-legend": "Nyɛ telun",
-    "movearticle": "Nyɛ telun",
-    "movepagebtn": "Nyɛ telun",
-    "others": "wɛrɛ",
-    "ilsubmit": "Nyini",
-    "specialpages": "Nyɛw kɛrɛnkɛrɛnnen"
+       "@metadata": {
+               "authors": [
+                       "Guaka",
+                       "לערי ריינהארט",
+                       "Amadouyoro.thiam"
+               ]
+       },
+       "tog-hideminor": "Yɛlɛmaliw kura fitini dogo",
+       "tog-hidepatrolled": "Yɛlɛmaliw kura fitini dogo",
+       "underline-always": "Donko don",
+       "underline-never": "Abada",
+       "sunday": "karidon",
+       "monday": "ntɛnɛdon",
+       "tuesday": "taratadon",
+       "wednesday": "arabadon",
+       "thursday": "alamisadon",
+       "friday": "jumadon",
+       "saturday": "sibiridon",
+       "sun": "Kar",
+       "mon": "Ntɛ",
+       "tue": "Tar",
+       "wed": "Ara",
+       "thu": "Ala",
+       "fri": "Jum",
+       "sat": "sib",
+       "january": "Zanwuyekalo",
+       "february": "Fewuruyekalo",
+       "march": "Marisikalo",
+       "april": "Awirilikalo",
+       "may_long": "Mɛkalo",
+       "june": "Zuwɛnkalo",
+       "july": "Zuluyekalo",
+       "august": "uti",
+       "september": "Sɛtanburukalo",
+       "october": "Ɔkutɔburukalo",
+       "november": "Nowanburukalo",
+       "december": "Desanburukalo",
+       "january-gen": "Zanwuyekalo",
+       "february-gen": "Fewuruyekalo",
+       "march-gen": "Marisikalo",
+       "april-gen": "Awirilikalo",
+       "may-gen": "Mɛkalo",
+       "june-gen": "Zuwɛnkalo",
+       "july-gen": "Zuluyekalo",
+       "august-gen": "Uti",
+       "september-gen": "Sɛtanburukalo",
+       "october-gen": "Ɔkutɔburukalo",
+       "november-gen": "Nowanburukalo",
+       "december-gen": "Desanburukalo",
+       "jan": "Zan",
+       "feb": "Few",
+       "mar": "Mar",
+       "apr": "Awi",
+       "may": "Mɛ",
+       "jun": "Zuw",
+       "jul": "Zul",
+       "aug": "uti",
+       "sep": "Sɛt",
+       "oct": "Ɔku",
+       "nov": "Now",
+       "dec": "Des",
+       "january-date": "Zanwuyekalo $1",
+       "february-date": "Fewuruyekalo $1",
+       "march-date": "Marisikalo $1",
+       "april-date": "Awirilikalo $1",
+       "may-date": "Mɛkalo $1",
+       "june-date": "Zuwɛnkalo $1",
+       "july-date": "Zuluyekalo $1",
+       "august-date": "Utikalo $1",
+       "september-date": "Sɛtanburukalo $1",
+       "october-date": "Ɔkutɔburukalo $1",
+       "november-date": "Nowanburukalo $1",
+       "december-date": "Desanburukalo $1",
+       "category_header": "Nyɛw cogoya kɔnɔ: \"$1\"",
+       "article": "Nyɛ",
+       "cancel": "A bali",
+       "moredotdotdot": "Wɛrɛ",
+       "morenotlisted": "Ni nyɛ té sé ka sôrô",
+       "mypage": "Nyɛ",
+       "mytalk": "N'ka baronyɛ",
+       "navigation": "Nawigation",
+       "and": "&#32;ani",
+       "qbfind": "Nyini",
+       "qbbrowse": "A ɲini",
+       "qbedit": "Yɛlɛma",
+       "qbpageoptions": "Ni nyɛ",
+       "qbmyoptions": "Ne ka nyɛ",
+       "actions": "Kèw",
+       "errorpagetitle": "Fili",
+       "returnto": "Ka seguin $1 la",
+       "tagline": "Ka bô {{SITITƆGƆ}}",
+       "help": "Dɛmɛ",
+       "search": "Nyini",
+       "searchbutton": "Nyini",
+       "go": "Taa",
+       "searcharticle": "Taa",
+       "history": "Nyɛka tariku",
+       "history_short": "Tariku",
+       "updatedmarker": "A yailai mara kabri ne ka nali laban",
+       "print": "A kɛ papiye kan",
+       "view": "Ayé",
+       "view-foreign": "Yé $1",
+       "edit": "yɛlɛma",
+       "edit-local": "KounafƆni yailai ma",
+       "create": "Da",
+       "create-local": "Kounafɔni fara a kan",
+       "editthispage": "Nyɛ nin yɛlɛma",
+       "create-this-page": "Da ni nyɛ",
+       "delete": "A la tounou",
+       "deletethispage": "Ni nyɛ latounou",
+       "undeletethispage": "Ni nyɛ ka latounouni bô a man",
+       "protect": "Kôlôchi",
+       "protect_change": "Yailaima",
+       "protectthispage": "Ni nyɛ kôlôchi",
+       "unprotect": "Kôlôchili yailaima",
+       "unprotectthispage": "Ni nyɛ ka kôlôchili yailaima",
+       "newpage": "Nyɛ kura",
+       "talkpage": "Baro ni  nyɛ kan",
+       "talkpagelinktext": "N'ka baronyɛ",
+       "specialpage": "Nyɛ kɛrɛnkɛrɛnnen",
+       "personaltools": "Ne ka minɛnw",
+       "articlepage": "Nyɛ kònòna finw yé",
+       "talk": "Sɔsɔli",
+       "views": "Yéw",
+       "toolbox": "Minanw",
+       "userpage": "Utilisateur ka nyɛ",
+       "imagepage": "Janin ka nyɛ",
+       "viewhelppage": "Dɛmɛn ka nyɛ",
+       "viewtalkpage": "Baro yé",
+       "otherlanguages": "Kanw wɛrɛ",
+       "jumptonavigation": "Nawigation",
+       "jumptosearch": "Nyini",
+       "pool-timeout": "Makônôni kouma tèmènan",
+       "pool-errorunknown": "Fili",
+       "aboutsite": "Ka bô {{SITITƆGƆ}}",
+       "currentevents": "Kunnafoni",
+       "currentevents-url": "Project:Kunnafoni",
+       "disclaimers": "Kangari",
+       "edithelp": "Dɛmɛ",
+       "mainpage": "Nyɛ fɔlɔ",
+       "mainpage-description": "Nyɛ fɔlɔ",
+       "portal": "Jamaje",
+       "ok": "O bɛ bɛn",
+       "editsection": "yɛlɛma",
+       "editold": "yɛlɛma",
+       "viewsourceold": "A bôyôrô yé",
+       "editlink": "yɛlɛma",
+       "viewsourcelink": "A bôyôrô yé",
+       "hidetoc": "dogo",
+       "nstab-main": "Nyɛ",
+       "nstab-image": "Janin",
+       "nstab-help": "Dɛmɛ",
+       "nstab-category": "Cogoya",
+       "minoredit": "Yɛlɛma fitini.",
+       "watchthis": "Nyɛ tulomajɔ",
+       "newarticle": "(Kura)",
+       "editing": "$1 ka yɛlɛmali",
+       "editingsection": "$1 ka yɛlɛmali (section)",
+       "editingcomment": "$1 ka yɛlɛmali (baro)",
+       "preferences": "Fisayali",
+       "prefs-skin": "Apparence",
+       "hide": "dogo",
+       "file-anchor-link": "Janin",
+       "randompage": "Nyɛ min man ni ja",
+       "newpages": "Nyɛw kura",
+       "ancientpages": "Nyɛw les plus anciens",
+       "move": "telun",
+       "movethispage": "Nyɛ telun",
+       "allpages": "Nyɛw bɛɛ",
+       "categories": "Nyɛ ka cogoyaw",
+       "linksearch-ok": "Nyini",
+       "watch": "Tulomajɔ",
+       "watchthispage": "Nyɛ tulomajɔ",
+       "mycontris": "N'ka contributions",
+       "lockconfirm": "Awɔ, je confirme que je souhaite verrouiller la base de données.",
+       "move-page-legend": "Nyɛ telun",
+       "movearticle": "Nyɛ telun",
+       "movepagebtn": "Nyɛ telun",
+       "others": "wɛrɛ",
+       "ilsubmit": "Nyini",
+       "specialpages": "Nyɛw kɛrɛnkɛrɛnnen"
 }
index 6be037d..3c29c24 100644 (file)
        "viewsourcetext": "এ পাতাটি আপনি দেখতে এবং উৎসের অনুলিপি নিতে পারবেন:",
        "viewyourtext": "আপনি ' ' ' আপনার সম্পাদনা ' ' ' এই পাতায় দেখতে এবং কপি করতে পারেন:",
        "protectedinterface": "এই পাতার বিষয়বস্তু এই উইকি সফটওয়্যারের একটি ইন্টারফেস বার্তা প্রদান করে, তাই এটিকে সুরক্ষিত করে রাখা হয়েছে।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে, অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করন প্রকল্প [//translatewiki.net/ translatewiki.net] ব্যবহার করুন।",
-       "editinginterface": "'''সতর্কীকরণ:''' আপনি এমন একটি পাতা সম্পাদনা করছেন যা সফটওয়্যারের জন্য ইন্টারফেস টেক্সট প্রদান করে।\nএই পাতাতে সংঘটিত পরিবর্তন এই উইকির ব্যবহারকারীদের ইন্টারফেসে প্রভাব ফেলবে, যা অন্য ব্যবহারকারীরা দেখতে পাবেন।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে, অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করন প্রকল্প [//translatewiki.net/ translatewiki.net] ব্যবহার করুন।",
+       "editinginterface": "<strong>সতর্কীকরণ:</strong> আপনি এমন একটি পাতা সম্পাদনা করছেন যা সফটওয়্যারের জন্য ইন্টারফেস টেক্সট প্রদান করে।\nএই পাতাতে সংঘটিত পরিবর্তন এই উইকির ব্যবহারকারীদের ইন্টারফেসে প্রভাব ফেলবে, যা অন্য ব্যবহারকারীরা দেখতে পাবেন।",
+       "translateinterface": "সকল উইকির জন্য অনুবাদ যোগ বা পরিবর্তন করতে, দয়া করে [//translatewiki.net/ translatewiki.net], মিডিয়াউইকি স্থানীয়করণ প্রকল্প ব্যবহার করুন।",
        "cascadeprotected": "এই পাতাটি সম্পাদনা থেকে সুরক্ষিত, কারণ পাতাটি নিচের {{PLURAL:$1|টি পাতার|টি পাতার}} অন্তর্গত, যে পাতা(গুলি) \"প্রপাতাকার\" (cascading) বৈশিষ্ট্য সহযোগে সুরক্ষিত করা হয়েছে:\n$2",
        "namespaceprotected": "'''$1''' নামস্থানে কোন পাতা আপনার সম্পাদনা করার অনুমতি নেই।",
        "customcssprotected": "আপনার এই সিএসএস পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।",
        "content-model-text": "সাধারণ লেখা",
        "content-model-javascript": "জাভাস্ক্রিপ্ট",
        "content-model-css": "সিএসএস",
+       "duplicate-args-category": "টেমপ্লেট আহ্বানে সদৃশ আর্গুমেন্ট ব্যবহার করা পাতা",
+       "duplicate-args-category-desc": "এই পাতায় টেমপ্লেট আহ্বান উপস্থিত রয়েছে যা সদৃশ আর্গুমেন্ট ব্যবহার করেছে, যেমন <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> বা <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>।",
        "expensive-parserfunction-warning": "'''সতর্ক হোন:''' এই পাতাটি অনেক বেশি পরিমাণে এক্সপেনসিভ পার্সার ফাংশন কল রয়েছে।\n\nএটি $2-এর চেয়ে কম পরিমাণ {{PLURAL:$2|কল|কল}} থাকা উচিত, যেখানে মোট কলের সংখ্যা {{PLURAL:$1|বর্তমানে $1|বর্তমানে $1}}।",
        "expensive-parserfunction-category": "অনেক বেশি পরিমাণে এক্সপেনসিভ পার্সার ফাংশন কল থাকা পাতাসমূহ",
        "post-expand-template-inclusion-warning": "'''সতর্ক হোন:''' টেমপ্লেটের ইনক্লুড আকার অনেক বেশি।\nকিছু টেমপ্লেট সংযুক্ত করা নাও যেতে পারে।",
        "mergehistory-same-destination": "উৎস এবং গন্তব্য পাতা একই হতে পারবে না",
        "mergehistory-reason": "কারণ:",
        "mergelog": "একত্রীকরণ লগ",
-       "pagemerge-logentry": "[[$1]]-কে [[$2]]-এ একত্র করা হয়েছে ($3 পর্যন্ত সংশোধনগুলিসহ)",
        "revertmerge": "একত্রীকরণ বাতিল",
        "mergelogpagetext": "নিচে সবচেয়ে সাম্প্রতিক ঘটা এক পাতার ইতিহাসের সাথে অন্য পাতার ইতিহাসের একত্রীকরণের একটি তালিকা দেওয়া হল।",
        "history-title": "\"$1\" এর সংশোধনের ইতিহাস",
        "search-result-category-size": "{{PLURAL:$1 |১টি সদস্য |$1টি সদস্য}} ({{PLURAL:$2 |১টি উপবিষয়শ্রেণী|$2টি উপবিষয়শ্রেণী}}, {{PLURAL:$3 |১টি ফাইল |$3টি ফাইল}})",
        "search-redirect": "(পুনর্নিদেশনা $1)",
        "search-section": "(অনুচ্ছেদ $1)",
+       "search-category": "(বিষয়শ্রেণী $1)",
        "search-file-match": "(নথির বিষয়বস্তু মিলে যায়)",
        "search-suggest": "আপনি সম্ভবত বুঝাতে চাইছেন: $1",
        "search-interwiki-caption": "সহপ্রকল্পসমূহ",
        "gender-female": "তিনি (মহিলা) উইকি পাতা সম্পাদনা করেন",
        "prefs-help-gender": "সেটিংসের এই পরিবর্তন ঐচ্ছিক।\nসফটওয়্যারে মাধ্যমে লিঙ্গ অনুযায়ী সম্বধনের ক্ষেত্রে এটি ব্যবহৃত হয়।\nএই তথ্য সকলের জন্য উন্মুক্ত থাকেবে।",
        "email": "ই-মেইল",
-       "prefs-help-realname": "আসল নাম দেওয়া অনাবশ্যক। যদি আসল নাম দেন, তবে আপনার কাজের স্বীকৃতি দানে তা ব্যবহার করা হবে।",
+       "prefs-help-realname": "আসল নাম দেওয়া অনাবশ্যক।\nযদি আসল নাম দেন, তবে আপনার কাজের স্বীকৃতি দানে তা ব্যবহার করা হবে।",
        "prefs-help-email": "ইমেইল ঠিকানা ঐচ্ছিক, তবে পাসওয়ার্ড ভুলে গেলে নতুন করে পাসওয়ার্ড নিতে এটির প্রয়োজন হবে।",
        "prefs-help-email-others": "আপনি আপনার পরিচয় প্রকাশ না করেও আপনার ব্যবহারকারী অথবা আলাপ পাতাটির মাধ্যমে অন্যদেরকে আপনার সাথে যোগাযোগ করতে দিতে পারেন।",
        "prefs-help-email-required": "ই-মেইল ঠিকানা আবশ্যক।",
        "statistics": "পরিসংখ্যান",
        "statistics-header-pages": "পাতার পরিসংখ্যান",
        "statistics-header-edits": "সম্পাদনার পরিসংখ্যান",
-       "statistics-header-views": "প্রদর্শনের পরিসংখ্যান",
        "statistics-header-users": "ব্যবহারকারীর পরিসংখ্যান",
        "statistics-header-hooks": "অন্য পরিসংখ্যান",
        "statistics-articles": "বিষয়বস্তুর পাতা",
        "statistics-files": "আপলোডকৃত ফাইল",
        "statistics-edits": "{{SITENAME}} চালু করার পর থেকে পাতার সম্পাদনাসমূহ",
        "statistics-edits-average": "প্রতি পাতার গড় সম্পাদনা",
-       "statistics-views-total": "সর্বোমোট প্রদর্শন",
-       "statistics-views-total-desc": "অপসারিত হয়েছে এবং বিশেষ পাতার প্রদর্শন এখানে যোগ করা হয়নি",
-       "statistics-views-peredit": "প্রতি সম্পাদনায় পরিদর্শন",
        "statistics-users": "নিবন্ধিত [[Special:ListUsers|ব্যবহারকারী]]",
        "statistics-users-active": "সক্রিয় ব্যবহারকারী",
        "statistics-users-active-desc": "ব্যবহারকারী যারা বিগত {{PLURAL:$1|দিনে|$1 দিনে}} একটি কাজ করেছেন।",
-       "statistics-mostpopular": "সবচেয়ে বেশী বার দেখা পাতাসমূহ",
        "pageswithprop": "পাতার উপাদান সম্বলিত পৃষ্ঠাসমূহ",
        "pageswithprop-legend": "পাতার উপাদান সম্বলিত পৃষ্ঠাসমূহ",
        "pageswithprop-text": "একটি নির্দিষ্ট পাতার বৈশিষ্ট রয়েছে এমন পাতাসমূহের তালিকা।",
        "uncategorizedtemplates": "যেসব টেমপ্লেটের বিষয়শ্রেণী নেই",
        "unusedcategories": "অব্যবহৃত বিষয়শ্রেণীসমূহ",
        "unusedimages": "অব্যবহৃত ফাইলসমূহ",
-       "popularpages": "জনপ্রিয় পাতাসমূহ",
        "wantedcategories": "বাঞ্ছনীয় বিষয়শ্রেণীগুলি",
        "wantedpages": "বাঞ্ছনীয় পাতাগুলি",
        "wantedpages-badtitle": "ফলাফলে ভুল শিরনাম: $1",
        "wantedfiles": "আবশ্যিক ফাইলগুলো",
        "wantedfiletext-cat": "নিচের ফাইলগুলো ব্যবহৃত হচ্ছে কিন্তু এগুলো অপসারিত হয়েছে। অন্যান্য রিপোজিটরী থেকে ব্যবহৃত ফাইলগুলো এভাবে প্রদর্শিত হতে পারে। এই ধরনের কোন ফাইল খুজে পেলে <del>অপসারণ করুন</del>। এছাড়া অপসারিত হয়েছে এমন ছবির সংযোগ রয়েছে এমন পাতাসমূহের লিংক পাওয়া যাবে এখানে [[:$1]]।",
        "wantedfiletext-nocat": "নিচের ফাইলগুলো ব্যবহৃত হচ্ছে কিন্তু এগুলো অপসারিত হয়েছে। অন্যান্য রিপোজিটরী থেকে ব্যবহৃত ফাইলগুলো এভাবে প্রদর্শিত হতে পারে। এই ধরনের ভূলগুলো শিঘ্রই <del>অপসারিত হবে</del>।",
+       "wantedfiletext-nocat-noforeign": "নিম্নলিখিত ফাইলসমূহ ব্যবহৃত হয়েছে কিন্তু এর অস্তিত্ব নেই।",
        "wantedtemplates": "আবশ্যিক টেম্পলেটগুলো",
        "mostlinked": "যেসব পাতার প্রতি সবচেয়ে বেশি সংযোগ আছে",
        "mostlinkedcategories": "যেসব বিষয়শ্রেণীর প্রতি সবচেয়ে বেশি সংযোগ আছে",
        "pager-older-n": "{{PLURAL:$1|আরও পুরনো ১টি|আরও পুরনো $1টি}}",
        "suppress": "ওভারসাইট",
        "querypage-disabled": "কারিগরি কারণে এই বিশেষ পাতাটি আপাতত বন্ধ রয়েছে।",
+       "apihelp": "এপিআই সাহায্য",
+       "apihelp-no-such-module": "মডিউল \"$1\" পাওয়া যায়নি।",
        "booksources": "বইয়ের উৎস",
        "booksources-search-legend": "বইয়ের উৎসের জন্য অনুসন্ধান করা হোক",
        "booksources-isbn": "আইএসবিএন:",
        "tooltip-feed-atom": "এই পাতার জন্য অ্যাটম ফিড",
        "tooltip-t-contributions": "এই ব্যবহারকারীর অবদানগুলির তালিকা দেখুন",
        "tooltip-t-emailuser": "এই ব্যবহারকারীকে একটি ই-মেইল পাঠান",
+       "tooltip-t-info": "এই পাতা সম্পর্কে আরো তথ্য",
        "tooltip-t-upload": "ফাইল আপলোড করুন",
        "tooltip-t-specialpages": "সব বিশেষ পাতার তালিকা",
        "tooltip-t-print": "এ পাতার ছাপানোর উপযোগী সংস্করণ",
        "tooltip-preferences-save": "পছন্দ সংরক্ষণ",
        "tooltip-summary": "একটি সংক্ষিপ্ত সারাংশ দিন",
        "interlanguage-link-title": "$1 - $2",
+       "common.css": "/* এখানে সিএসএস নিবেশিত করা হলে তা সব স্কিনে প্রয়োগ করা হবে */",
        "anonymous": "{{SITENAME}} এর বেনামী {{PLURAL:$1|ব্যবহারকারী|ব্যবহারকারীবৃন্দ}}",
        "siteuser": "{{SITENAME}} ব্যবহারকারী $1",
        "anonuser": "{{SITENAME}} বেনামী ব্যবহারকারী $1",
        "pageinfo-robot-policy": "রোবটের মাধ্যমে ইন্ডেক্স করা হচ্ছে",
        "pageinfo-robot-index": "অনুমোদিত",
        "pageinfo-robot-noindex": "অনুনমোদিন",
-       "pageinfo-views": "পরিদর্শন সংখ্যা",
        "pageinfo-watchers": "পাতাটি প্রদর্শনের সংখ্যা",
        "pageinfo-few-watchers": "$1 জন {{PLURAL:$1|নজরকারীও}} কম",
        "pageinfo-redirects-name": "এই পাতায় পুননির্দেশনাসমূহের সংখ্যা",
        "autosumm-blank": "পাতা খালি করা হয়েছে",
        "autosumm-replace": "পাতাকে '$1' দিয়ে প্রতিস্থাপিত করা হল",
        "autoredircomment": "[[$1]]-এ পুনর্নির্দেশ করা হল",
-       "autosumm-new": "$1 দিয়ে তৈরি পাতা",
+       "autosumm-new": "\"$1\" দিয়ে পাতা তৈরি",
        "autosumm-newblank": "খালি পাতা তৈরি হয়েছে",
        "size-bytes": "$1 বাইট",
        "size-kilobytes": "$1 কিলোবাইট",
        "version-parser-function-hooks": "পার্সার ফাংশন হুক",
        "version-hook-name": "হুকের নাম",
        "version-hook-subscribedby": "সাবস্ক্রাইব করেছেন",
-       "version-version": "(সংস্করণ $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[নাম নেই]",
        "version-license": "মিডিয়াউইকি লাইসেন্স",
        "version-ext-license": "লাইসেন্স",
        "mediastatistics-header-audio": "অডিও",
        "mediastatistics-header-video": "ভিডিও",
        "mediastatistics-header-office": "অফিস",
+       "mediastatistics-header-archive": "সংকুচিত বিন্যাস",
+       "json-error-unknown": "JSON-এ একটি সমস্যা রয়েছে। ত্রুটি: $1",
        "json-error-syntax": "সিনট্যাক্স ত্রুটি"
 }
index b4df7b4..0138d20 100644 (file)
        "mergehistory-same-destination": "উৎস বারো যিতইগা পাতা মান্না ইয়া নুৱারব",
        "mergehistory-reason": "কারণ:",
        "mergelog": "সুপকরানির লগ",
-       "pagemerge-logentry": "[[$1]]-রে [[$2]]-র লগে তিলকরিসি ($3 পেয়া পতাসি অতান)",
        "revertmerge": "মিলাপ নাকরি",
        "mergelogpagetext": "তলে হাদি এহানর পাতার ইতিহাসর লগে আরাক পাতার ইতিহাস তিলকরিসি অতার লাতঙগ দেনা ইল।",
        "history-title": "\"$1\"-র পতানির ইতিহাসহান",
        "statistics": "হিসাবহান",
        "statistics-header-pages": "পাতার পরিসংখ্যান",
        "statistics-header-edits": "পতানির পরিসংখ্যান",
-       "statistics-header-views": "চাসিতার পরিসংখ্যান",
        "statistics-header-users": "আতাকুরার পরিসংখ্যান",
        "statistics-header-hooks": "আরআর পরিসংখ্যান",
        "statistics-articles": "পাতার কন্টেনহানি",
index 0203515..8537087 100644 (file)
        "watchthispage": "پیگیری ای صفحه",
        "unwatch": "پيگري نبيڎه",
        "watchlist-details": "{{PLURAL:$1|$1 صفحه|$1 صفحات}} درلیست پیگیری ایسا, صفحات صحبت حساب نیبوه.",
-       "wlshowlast": "نمایش آخرین $1 ساعت $2 روز $3",
+       "wlshowlast": "نمایش آخرین $1 ساعت $2 روز",
        "watching": "مئن حالت پي جوري",
        "unwatching": "درحالت عدم پیگیری...",
        "deletepage": "حذف صفحه",
        "metadata-expand": "نشودادن جزئیات تفصیلی",
        "metadata-collapse": "قایم کردن جزئیات تفصیلی",
        "metadata-fields": "فراداده EXIF نشو داده وابیده در این پیام وقتی جدول فراداده‌های تصویر جمع وابیده بوه هم نمایش داده ابوه.\nبقیه موارد فقط وقتی نشوداده ابوه که جدول یادشده واز بوه.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "همه",
        "namespacesall": "همه",
        "monthsall": "همه ماهها",
        "watchlisttools-view": "نشودادن تغییرات مربوطه",
index e705e3e..c468220 100644 (file)
        "mergehistory-same-destination": "N'hall ket ar pajennoù kein hag ar pajennoù tal bezañ an hevelep re",
        "mergehistory-reason": "Abeg :",
        "mergelog": "Marilh ar c'hendeuzadennoù",
-       "pagemerge-logentry": "kendeuzet [[$1]] gant [[$2]] (stummoù betek an $3)",
        "revertmerge": "Nullañ ar c'hendeuziñ",
        "mergelogpagetext": "Setu aze roll kendeuzadennoù diwezhañ un eil pajenn istor gant eben.",
        "history-title": "Istor stummoù disheñvel \"$1\"",
        "nolicense": "Hini ebet diuzet",
        "licenses-edit": "Aozañ dibarzhioù an aotre-implijout",
        "license-nopreview": "(Dibosupl rakwelet)",
-       "upload_source_url": " (Un URL reizh a c'hall bezañ tizhet gant an holl)",
+       "upload_source_url": " (ar restr ho peus dibabet diwar un URL reizh hag a c'hall bezañ tizhet gant an holl)",
        "upload_source_file": " (ar restr ho peus dibabet en hoc'h urzhiataer)",
        "listfiles-delete": "dilemel",
        "listfiles-summary": "Diskouez a ra ar bajenn dibar-mañ an holl restroù bet ezporzhiet.",
        "statistics": "Stadegoù",
        "statistics-header-pages": "Stadegoù ar pajennoù",
        "statistics-header-edits": "Stadegoù ar c'hemmoù",
-       "statistics-header-views": "Stadegoù ar selladennoù",
        "statistics-header-users": "Stadegoù implijer",
        "statistics-header-hooks": "Stadegoù all",
        "statistics-articles": "Pajennoù endalc'had",
        "statistics-files": "Restroù enporzhiet",
        "statistics-edits": "Kemmoù war ar pajennoù abaoe krouidigezh {{SITENAME}}",
        "statistics-edits-average": "Keidenn ar c'hemmoù dre bajenn",
-       "statistics-views-total": "Hollad ar selladennoù",
-       "statistics-views-total-desc": "N'haller ket mont war ar pajennoù n'eus ket anezho pe war ar pajennoù dibar.",
-       "statistics-views-peredit": "Keidenn gweladenniñ dre gemmoù",
        "statistics-users": "[[Special:ListUsers|Implijerien]] enrollet",
        "statistics-users-active": "Implijerien oberiant",
        "statistics-users-active-desc": "Implijerien o deus degaset da nebeutañ ur c'hemm {{PLURAL:$1|an deiz paseet|e-kerzh an $1 deiz diwezhañ}}",
-       "statistics-mostpopular": "Pajennoù muiañ sellet",
        "pageswithprop": "Pajennoù gant ur perzh pajenn",
        "pageswithprop-legend": "Pajennoù gant ur perzh pajenn",
        "pageswithprop-prop": "Anv ar perzh :",
        "pageswithprop-prophidden-long": "talvoud perzh testenn hir kuzhet ($1)",
        "doubleredirects": "Adkasoù doubl",
        "doubleredirectstext": "Rollañ a ra ar bajenn-mañ ar pajennoù a adkas da bajennoù adkas all.\nWar bep linenn ez eus liammoù war-du pajennoù an adkas kentañ hag en eil adkas, hag ivez war-du pajenn-dal an eil adkas zo sañset bezañ ar pal \"gwirion\" a zlefe an adkas kentañ kas di.\nDiskoulmet eo bet an enmontoù <del>barrennet</del>.",
-       "double-redirect-fixed-move": "Adanvet eo bet [[$1]], adkaset eo war-du [[$2]] bremañ",
+       "double-redirect-fixed-move": "Dilec'hiet eo [[$1]].\nHizivaet eo bet ent emgefre ha bremañ ez adkas da [[$2]].",
        "double-redirect-fixed-maintenance": "O reizhañ ent emgefre an adkas doubl adalek [[$1]] war-zu [[$2]] en un trevell trezalc'h.",
        "double-redirect-fixer": "Reizher adkasoù",
        "brokenredirects": "Adkasoù torret",
        "uncategorizedtemplates": "Patromoù hep rummad",
        "unusedcategories": "Rummadoù dizimplij",
        "unusedimages": "Skeudennoù en o-unan",
-       "popularpages": "Pajennoù sellet ar muiañ",
        "wantedcategories": "Rummadoù goulennet a vank",
        "wantedpages": "Pajennoù goulennet ar muiañ",
        "wantedpages-badtitle": "Titl direizh er strollad disoc'hoù : $1",
        "unblocked": "Distanket eo bet [[User:$1|$1]]",
        "unblocked-range": "Distanket eo bet $1",
        "unblocked-id": "Distanket eo bet $1",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] zo bet distanket.",
        "blocklist": "Implijerien stanket",
        "ipblocklist": "Implijerien stanket",
        "ipblocklist-legend": "Kavout un implijer stanket",
        "pageinfo-robot-policy": "Menegeriñ gant robotoù",
        "pageinfo-robot-index": "Aotreet",
        "pageinfo-robot-noindex": "Diaotreet",
-       "pageinfo-views": "Niver a weladennoù",
        "pageinfo-watchers": "Niver a dud o heuliañ",
        "pageinfo-few-watchers": "Nebeutoc'h eget $1 {{PLURAL:$1|lenner}}",
        "pageinfo-redirects-name": "Niver a adkasoù war-zu ar bajenn-mañ",
index d7ada3a..bac1f15 100644 (file)
        "pager-older-n": "{{PLURAL:$1|mutkuná 1|mutkuná $1}}",
        "booksources": "Kitábí bumpad",
        "booksources-search-legend": "Kitábí bumpad átekin paŧŧpol",
-       "booksources-go": "Ráím",
        "log": "Lekav",
        "allpages": "Ģuŧŧ panna ģák",
        "prevpage": "Mustko panna ($1)",
        "watchthispage": "Dá panna ná xiálí mar",
        "unwatch": "Bexiál mar",
        "watchlist-details": "Ná xiálí rid aŧí {{PLURAL:$1|$1 panna se|$1 panna o}}, ítgap panna ģák hisáb aŧí affas.",
-       "wlshowlast": "Guđđíko $1 ganŧa $2 de $3 e nişán et",
+       "wlshowlast": "Guđđíko $1 ganŧa $2 de  e nişán et",
        "watchlist-options": "Xiálírid gicenk",
        "watching": "Xiálí manning...",
        "unwatching": "Bexiál manning...",
        "nextdiff": "Púskuná radbadal",
        "metadata-expand": "Vaddíko hál e nişán et",
        "metadata-collapse": "Vaddíko hál e đakka",
-       "watchlistall2": "ģuŧŧ",
        "namespacesall": "ģuŧŧ",
        "monthsall": "ģuŧŧ",
        "watchlisttools-view": "Đek kunoká radbadal áke ur",
index fee1e5c..69b38ea 100644 (file)
        "content-model-text": "obični tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Stranice sa istim argumentima kod poziva šablona",
        "expensive-parserfunction-warning": "Upozorenje: Ova stranica sadrži previše poziva opterećujućih parserskih funkcija.\n\nTrebalo bi imati manje od $2 {{PLURAL:$2|poziv|poziva}}, a sad ima {{PLURAL:$1|$1 poziv|$1 poziva}}.",
        "expensive-parserfunction-category": "Stranice sa previše poziva parserskih funkcija",
        "post-expand-template-inclusion-warning": "Pažnja: Šablon koji je uključen je prevelik.\nNeki šabloni neće biti uključeni.",
        "mergehistory-same-destination": "Izvorne i odredišne stranice ne mogu biti iste",
        "mergehistory-reason": "Razlog:",
        "mergelog": "Zapis spajanja",
-       "pagemerge-logentry": "spojeno [[$1]] u [[$2]] (sve do $3 revizije)",
        "revertmerge": "Vrati spajanje",
        "mergelogpagetext": "Ispod je spisak nedavnih spajanja historija stranica.",
        "history-title": "Historija revizija \"$1\"",
        "statistics": "Statistike",
        "statistics-header-pages": "Statistike stranice",
        "statistics-header-edits": "Statistike izmjena",
-       "statistics-header-views": "Statistike pregleda",
        "statistics-header-users": "Statistike korisnika",
        "statistics-header-hooks": "Ostale statistike",
        "statistics-articles": "Stranice sadržaja",
        "statistics-files": "Broj postavljenih datoteka",
        "statistics-edits": "Broj izmjena od kako je instalirana {{SITENAME}}",
        "statistics-edits-average": "Prosječno izmjena po stranici",
-       "statistics-views-total": "Ukupno pregleda",
-       "statistics-views-total-desc": "Pregledi nepostojećih stranica i posebnih stranica nisu uključeni",
-       "statistics-views-peredit": "Pogleda po izmjeni",
        "statistics-users": "Registrovani [[Special:ListUsers|korisnici]]",
        "statistics-users-active": "Aktivni korisnici",
        "statistics-users-active-desc": "Korisnici koji su izvršili akciju u toku {{PLURAL:$1|posljednjeg dana|posljednja $1 dana|posljednjih $1 dana}}",
-       "statistics-mostpopular": "Najviše pregledane stranice",
        "pageswithprop-prop": "Naziv svojstva:",
        "pageswithprop-submit": "Idi",
        "doubleredirects": "Dvostruka preusmjerenja",
        "uncategorizedtemplates": "Šabloni bez kategorije",
        "unusedcategories": "Neiskorištene kategorije",
        "unusedimages": "Neupotrebljene slike",
-       "popularpages": "Popularne stranice",
        "wantedcategories": "Tražene kategorije",
        "wantedpages": "Tražene stranice",
        "wantedpages-badtitle": "Nevaljan naslov u setu rezultata: $1",
        "pageinfo-robot-policy": "Indeksiranje od strane robota",
        "pageinfo-robot-index": "Dozvoljeno",
        "pageinfo-robot-noindex": "Nije dozvoljeno",
-       "pageinfo-views": "Broj pogleda",
        "pageinfo-watchers": "Broj pratitelja stranice",
        "pageinfo-few-watchers": "Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}",
        "pageinfo-redirects-name": "Broj preusmjeravanja na ovu stranicu",
index 87a246b..474a143 100644 (file)
        "randomincategory-category": "Kategorya:",
        "statistics": "Estadistika",
        "statistics-pages": "Mga pahina",
-       "statistics-views-total": "Ngamin na mga silung",
        "brokenredirects-edit": "balyowan",
        "brokenredirects-delete": "puraon",
        "withoutinterwiki-submit": "Ipabayad",
index b615e24..2d52534 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Ezagren",
-            "Kurniasan",
-            "Zaidpjd (on bug.wikipedia.org)"
-        ]
-    },
-    "sunday": "Āha'",
-    "monday": "Asenéŋ",
-    "tuesday": "Salasa",
-    "wednesday": "Araba",
-    "thursday": "Kamisi'",
-    "friday": "Jumā",
-    "saturday": "Sattu",
-    "sun": "Āha",
-    "mon": "Ase",
-    "tue": "Sal",
-    "wed": "Ara",
-    "thu": "Kam",
-    "fri": "Jum",
-    "sat": "Sat",
-    "january": "Januari",
-    "february": "Fébruari",
-    "march": "Maré'",
-    "april": "April",
-    "may_long": "Méi",
-    "june": "Juni",
-    "july": "Juli",
-    "august": "Ogoso'",
-    "september": "September",
-    "october": "Oktober",
-    "november": "November",
-    "december": "Désémber",
-    "january-gen": "Januari",
-    "february-gen": "Fébruari",
-    "march-gen": "Maré'",
-    "april-gen": "April",
-    "may-gen": "Méi",
-    "june-gen": "Juni",
-    "july-gen": "Juli",
-    "august-gen": "Ogoso'",
-    "september-gen": "September",
-    "october-gen": "Oktober",
-    "november-gen": "November",
-    "december-gen": "Désémber",
-    "category_header": "Leppa rilaleŋ kategori \"$1\"",
-    "subcategories": "Subkategori",
-    "about": "Atajangeng",
-    "article": "Lontara",
-    "cancel": "Rusa",
-    "mypage": "Leppana iya'",
-    "mytalk": "Bicarana iyya",
-    "anontalk": "Bicarana IP édé",
-    "navigation": "Navigasi",
-    "and": "&#32;na",
-    "qbfind": "Assapparang",
-    "qbbrowse": "Berowoso",
-    "qbedit": "Padécéŋ",
-    "qbpageoptions": "Édé leppa",
-    "qbmyoptions": "Leppana iya'",
-    "faq": "FAQ",
-    "faqpage": "Project:FAQ",
-    "vector-action-move": "Paléccé'",
-    "vector-view-create": "Ebbu",
-    "vector-view-edit": "Padéccéng",
-    "vector-view-view": "Baca",
-    "vector-view-viewsource": "Ita sumber",
-    "errorpagetitle": "Asalaŋ",
-    "returnto": "Lisu ri $1.",
-    "tagline": "Polé {{SITENAME}}",
-    "help": "Paŋinriŋ",
-    "search": "Assapparaŋ",
-    "searchbutton": "Sappa",
-    "go": "Lao",
-    "searcharticle": "Lao",
-    "history": "Versi riolo leppaë",
-    "history_short": "versi riolo",
-    "permalink": "Pranala permanen",
-    "edit": "Padécéŋ",
-    "create": "Ebbu",
-    "editthispage": "Padécéŋiki iyé leppa",
-    "create-this-page": "Ebbuiki leppa iyé",
-    "delete": "Peddé",
-    "deletethispage": "Peddé iyé leppa",
-    "protect": "Accalinruŋi",
-    "protect_change": "pinra",
-    "protectthispage": "Accalinruŋi leppa iyyé",
-    "unprotect": "Téccalinruŋi",
-    "newpage": "Leppa baru",
-    "talkpage": "Bicara iyé leppa",
-    "talkpagelinktext": "Bicara",
-    "specialpage": "Leppa spésiala",
-    "personaltools": "Tool sialé-alé",
-    "articlepage": "Ita lontara",
-    "talk": "Bicara",
-    "toolbox": "Toolbox",
-    "userpage": "Ita leppa papaké",
-    "projectpage": "Ita leppa proyék",
-    "imagepage": "Ita leppa rapaŋ",
-    "mediawikipage": "Ita leppa méséje",
-    "templatepage": "Ita leppa templata",
-    "viewhelppage": "Ita leppa panginriŋ",
-    "categorypage": "Ita leppa kategori",
-    "viewtalkpage": "Ita leppa bicara",
-    "redirectedfrom": "(Riredirect polé $1)",
-    "redirectpagesub": "Leppa redirect",
-    "jumpto": "Luppe lao:",
-    "jumptosearch": "sappa",
-    "aboutsite": "Tentang {{SITENAME}}",
-    "currentevents": "Accanjingeŋ kokkoro",
-    "currentevents-url": "Project:Accanjingeŋ kokkoro",
-    "disclaimers": "Diseklaima",
-    "edithelp": "Paŋinriŋ mapadécéŋ",
-    "mainpage": "Leppa Indoë",
-    "mainpage-description": "Leppa Indoë",
-    "portal": "Portal komunitas",
-    "editsection": "padécéŋ",
-    "editold": "padécéŋ",
-    "viewsourceold": "ita sumber",
-    "editlink": "padécéŋ",
-    "viewsourcelink": "ita sumber",
-    "editsectionhint": "Padécéŋ kajuru: $1",
-    "nstab-main": "Leppa",
-    "nstab-user": "Leppa papaké",
-    "nstab-media": "Leppa média",
-    "nstab-special": "Leppa spésiala",
-    "nstab-project": "Proyek",
-    "nstab-image": "Rapang",
-    "nstab-mediawiki": "Pappaseŋ",
-    "nstab-template": "Templata",
-    "nstab-help": "Paŋinriŋ",
-    "nstab-category": "Kategori",
-    "nosuchspecialpage": "Iyaro leppa spésiala dé'na eŋka",
-    "error": "Éro",
-    "databaseerror": "Éro databése",
-    "readonly": "Databése rikonci",
-    "missingarticle-diff": "(Beda: $1, $2)",
-    "internalerror": "Éro internal",
-    "internalerror_info": "Éro internal: $1",
-    "badtitle": "Judul dek essa",
-    "viewsource": "Ita sumber",
-    "virus-unknownscanner": "Antivirus dé' riisseŋ:",
-    "yourname": "Aseŋ papaké:",
-    "yourpassword": "Adacili:",
-    "login": "log attama",
-    "nav-login-createaccount": "Log attama / ebbu akun",
-    "userlogin": "Log attama / ebbu akun",
-    "logout": "Log essu",
-    "userlogout": "Log essu",
-    "notloggedin": "Déppa log attama",
-    "nologin": "Dé' gaga akaun? '''$1'''.",
-    "nologinlink": "Ebbu akun",
-    "createaccount": "Ebbu akun",
-    "gotaccount": "Purani eŋka akun? '''$1'''.",
-    "gotaccountlink": "Log attama",
-    "loginerror": "Éro log attama",
-    "mailmypassword": "E-mail adacili baru",
-    "oldpassword": "Pasewodo matoa:",
-    "bold_tip": "Teks maumpek",
-    "italic_tip": "Teks Italik",
-    "extlink_tip": "Link risaliweŋ (jangan lupa awalan http:// )",
-    "savearticle": "Taro leppa",
-    "preview": "Pribiu",
-    "showpreview": "Ita pribiu",
-    "showlivepreview": "Pribiu live",
-    "showdiff": "Mita perubahan",
-    "summary-preview": "Pribiu summary:",
-    "blockedtitle": "Papaké riblok",
-    "accmailtitle": "Ada sandi ni riantarak.",
-    "accmailtext": "Ada sandi \"$1\" riantarak ri $2.",
-    "anontalkpagetext": "----''Ini adalah halaman diskusi untuk pengguna anonim yang belum membuat rekening atau tidak menggunakannya. Karena tidak membuat rekening, kami terpaksa memakai alamat IP untuk mengenalinya. Alamat IP seperti ini dapat dipakai oleh beberapa pengguna yang berbeda. Jika Anda adalah pengguna anonim dan merasa mendapatkan komentar-komentar yang tidak berkaitan dengan anda, kami anjurkan untuk [[Special:UserLogin|membuat rekening atau masuk log]] untuk menghindari kerancuan dengan pengguna anonim lain.''",
-    "editing": "Mapadécéŋ $1",
-    "previousrevision": "←Revisi riolo",
-    "currentrevisionlink": "Revisi tannapa",
-    "page_first": "séuwani",
-    "histfirst": "Poŋ loa",
-    "histlast": "Poŋ nappa",
-    "historysize": "($1 {{PLURAL:$1|bita|bita}})",
-    "historyempty": "(kapa)",
-    "history-feed-item-nocomment": "$1 ri $2",
-    "rev-deleted-comment": "(komentar ripeddé)",
-    "rev-deleted-user": "(ripeddéni aseŋna papakeë)",
-    "rev-deleted-event": "(log gau ripeddéni)",
-    "rev-delundel": "pakitaï/tapo'",
-    "revdelete-selected": "'''{{PLURAL:$2|Revisi|Revisi-revisi}} ripiléna [[$1]]ë:'''",
-    "logdelete-selected": "'''{{PLURAL:$1|Log|Log-log}} ripilé:'''",
-    "revdelete-hide-text": "Tapoïki text revisië",
-    "revdelete-hide-comment": "Tapo komentar mapadecéŋ",
-    "revdelete-hide-user": "Tapo aseŋ papakéna/IPna papadéceŋë",
-    "revdelete-log": "Saba:",
-    "editundo": "undo",
-    "viewprevnext": "Ita ($1 {{int:pipe-separator}} $2) ($3)",
-    "search-result-size": "$1 ({{PLURAL:$2|1 ada|$2 ada}})",
-    "search-redirect": "(redirect $1)",
-    "mypreferences": "Bérékkeŋeŋna iyya",
-    "prefs-watchlist": "Watchlist",
-    "prefs-misc": "Misc",
-    "saveprefs": "Taro",
-    "prefs-editing": "Mapadécéŋ",
-    "searchresultshead": "Masappa",
-    "youremail": "E-mail:",
-    "username": "Aseŋ papaké:",
-    "uid": "ID papaké:",
-    "email": "E-mail",
-    "group-sysop": "Puŋgawa",
-    "group-all": "(sininna)",
-    "group-user-member": "{{GENDER:$1|Pappaké}}",
-    "group-sysop-member": "Puŋgawa",
-    "grouppage-user": "{{ns:project}}:Pappaké",
-    "grouppage-sysop": "{{ns:project}}:Puŋgawa",
-    "right-read": "Mabbaca leppa",
-    "right-edit": "Mappadécéŋi leppa",
-    "recentchanges": "Pappakinra tanappa",
-    "rcshowhidebots": "$1 bot",
-    "rcshowhideliu": "$1 papaké mattama' log",
-    "rcshowhideanons": "$1 papaké anon",
-    "diff": "beda",
-    "hide": "Tapok",
-    "minoreditletter": "k",
-    "newpageletter": "B",
-    "boteditletter": "b",
-    "recentchangeslinked": "Pappakapinra terkait",
-    "recentchangeslinked-feed": "Pappakapinra terkait",
-    "recentchangeslinked-toolbox": "Pappakapinra terkait",
-    "upload": "Lureng berkas",
-    "uploadbtn": "Lureng berkas",
-    "listfiles_name": "Aseŋ",
-    "file-anchor-link": "Rapang",
-    "filehist-user": "Papaké",
-    "filehist-dimensions": "Dimensi",
-    "imagelinks": "Liŋke",
-    "filedelete": "Mapeddé $1",
-    "filedelete-legend": "Mapeddé berkas",
-    "filedelete-intro": "Iko purani mapeddé '''[[Media:$1|$1]]'''.",
-    "filedelete-submit": "Peddé",
-    "filedelete-success": "'''$1''' purani ripeddé.",
-    "filedelete-success-old": "Berkas '''[[Media:$1|$1]]''' versi $3, $2 purani ripeddé.",
-    "filedelete-nofile": "'''$1''' dé'na eŋka.",
-    "mimesearch": "Assapparaŋ MIME",
-    "mimetype": "Tipe MIME:",
-    "download": "unduh",
-    "randompage": "Leppa random",
-    "randompage-nopages": "Degaga leppa rilaleŋ iyyé namespaceë.",
-    "statistics-articles": "Leppa liseë",
-    "statistics-pages": "Leppaë",
-    "statistics-files": "File-file nalise menré",
-    "ancientpages": "Leppa talloa",
-    "move": "Paleccé",
-    "movethispage": "Paleccé leppa iyyé",
-    "specialloguserlabel": "Papaké:",
-    "log": "Log",
-    "all-logs-page": "Maneŋ log",
-    "allpages": "Maneng halamang",
-    "alphaindexline": "$1 ri $2",
-    "allpagesfrom": "Mappaitang halamang-halamang rimulai:",
-    "allarticles": "Sininna leppa",
-    "allinnamespace": "Maneŋ leppa (namespace $1)",
-    "allpagessubmit": "Lanre",
-    "allpagesprefix": "Mappaitang halamang-halamang éngkalinga awang:",
-    "categories": "Maneŋ kategori",
-    "addedwatchtext": "Halamang \"[[:$1]]\" ni ritamba ri ida [[Special:Watchlist|watchlist]].\nHalamang bicara éréngé gabungan halamang bicara pada wettu depan didaftarkan koe,\néréngé halamang akan wessi '''umpek''' ri [[Special:RecentChanges|daftar pinra tanappa]] barak lebih lemmak ita.\n\nApak ida ronnak mappedde halamang édé ri daftar jagaan, klik \"Mangedda jaga\" pada kolom ri sedde.",
-    "watch": "Ampi",
-    "unwatch": "Tenriampi",
-    "actioncomplete": "Proses makkapo",
-    "dellogpage": "Log peddé-peddé",
-    "prot_1movedto2": "[[$1]] ésuk ri [[$2]]",
-    "blanknamespace": "(Utama)",
-    "sp-contributions-talk": "Bicara",
-    "whatlinkshere": "Pranala ri leppa iyéwé",
-    "whatlinkshere-page": "Leppa:",
-    "whatlinkshere-links": "← liŋke",
-    "ipblocklist-submit": "Sappa",
-    "blocklink": "blok",
-    "contribslink": "kontrib",
-    "articleexists": "Leppa béla ida pile ni ujuk, a dek essa.\nSilakan pile aseng laing.",
-    "movelogpage": "Log leccé",
-    "movereason": "Saba:",
-    "delete_and_move": "Peddé nappa paleccé",
-    "delete_and_move_text": "==Mapeddé riperelu==\nLeppa destinasi \"[[:$1]]\" purani eŋka.\nEloko peddéï supaya weddiŋi mapalecé?",
-    "delete_and_move_confirm": "Iyé', peddé iyaro leppa",
-    "delete_and_move_reason": "Ripeddé supaya weddiŋi mapalecé",
-    "immobile-source-namespace": "Leppa-leppa rilaleŋna namespace \"$1\"ë de'na ullé ripaleccé",
-    "immobile-source-page": "Iyyedé leppaë de'na ullé ripaleccé.",
-    "allmessages": "Maneng pappaseng",
-    "allmessagesname": "Aseng",
-    "allmessagesdefault": "Teks totok",
-    "allmessagescurrent": "Teks kokkoro",
-    "tooltip-pt-userpage": "Leppa papaké iya'",
-    "tooltip-pt-mytalk": "Leppa bicara iya'",
-    "tooltip-pt-preferences": "Preferencena iya'",
-    "tooltip-pt-logout": "Log maessu",
-    "tooltip-ca-talk": "Pabicarana iyé leppa",
-    "tooltip-ca-move": "Paléccé leppa édé",
-    "tooltip-search": "Sappa ri {{SITENAME}}",
-    "tooltip-search-go": "Lao ri leppa aseŋna pappada iyyé rekko eŋkaï",
-    "tooltip-n-mainpage": "Lao ri Leppa Indoë",
-    "tooltip-ca-nstab-special": "Iyanaéwé séuwa leppa spésiala', dé'na idi' ullé padécéŋiki",
-    "anonymous": "Pabbuak anonim {{SITENAME}}",
-    "imagemaxsize": "Gangkai rapang pada keterangan rapang ri halamang hingga:",
-    "ilsubmit": "Sappa",
-    "watchlistall2": "maneŋ",
-    "namespacesall": "maneŋ",
-    "monthsall": "maneŋ",
-    "imgmultigo": "Lao!",
-    "imgmultigoto": "Lao ri leppa $1",
-    "ascending_abbrev": "énré",
-    "descending_abbrev": "no",
-    "table_pager_first": "Leppa séuwani",
-    "table_pager_limit_submit": "Lao",
-    "autosumm-replace": "Masullé leppaë lao '$1'",
-    "autosumm-new": "Leppa baru: '$1'",
-    "size-bytes": "$1 B",
-    "size-kilobytes": "$1 KB",
-    "size-megabytes": "$1 MB",
-    "size-gigabytes": "$1 GB",
-    "livepreview-loading": "Mallise…",
-    "livepreview-ready": "Mallise… Sokkuni!",
-    "version-specialpages": "Leppa spésiala",
-    "specialpages": "Leppa spésiala",
-    "specialpages-note": "* Leppa spésiala normal\n* <strong class=\"mw-specialpagerestricted\">Leppa spésiala terbatas</strong>",
-    "specialpages-group-other": "Leppa spésiala laiŋë",
-    "specialpages-group-login": "Log attama / mendaftar",
-    "specialpages-group-changes": "Pinrana tanappaë sibawa logeë",
-    "specialpages-group-users": "Papaké sibawa hak-hak",
-    "specialpages-group-pages": "Sininna leppaë",
-    "specialpages-group-pagetools": "Tool leppaë",
-    "specialpages-group-wiki": "Data sibawa tool wiki",
-    "specialpages-group-spam": "Tool spam",
-    "blankpage": "Leppa kosoŋë"
+       "@metadata": {
+               "authors": [
+                       "Ezagren",
+                       "Kurniasan",
+                       "Zaidpjd (on bug.wikipedia.org)"
+               ]
+       },
+       "sunday": "Āha'",
+       "monday": "Asenéŋ",
+       "tuesday": "Salasa",
+       "wednesday": "Araba",
+       "thursday": "Kamisi'",
+       "friday": "Jumā",
+       "saturday": "Sattu",
+       "sun": "Āha",
+       "mon": "Ase",
+       "tue": "Sal",
+       "wed": "Ara",
+       "thu": "Kam",
+       "fri": "Jum",
+       "sat": "Sat",
+       "january": "Januari",
+       "february": "Fébruari",
+       "march": "Maré'",
+       "april": "April",
+       "may_long": "Méi",
+       "june": "Juni",
+       "july": "Juli",
+       "august": "Ogoso'",
+       "september": "September",
+       "october": "Oktober",
+       "november": "November",
+       "december": "Désémber",
+       "january-gen": "Januari",
+       "february-gen": "Fébruari",
+       "march-gen": "Maré'",
+       "april-gen": "April",
+       "may-gen": "Méi",
+       "june-gen": "Juni",
+       "july-gen": "Juli",
+       "august-gen": "Ogoso'",
+       "september-gen": "September",
+       "october-gen": "Oktober",
+       "november-gen": "November",
+       "december-gen": "Désémber",
+       "category_header": "Leppa rilaleŋ kategori \"$1\"",
+       "subcategories": "Subkategori",
+       "about": "Atajangeng",
+       "article": "Lontara",
+       "cancel": "Rusa",
+       "mypage": "Leppana iya'",
+       "mytalk": "Bicarana iyya",
+       "anontalk": "Bicarana IP édé",
+       "navigation": "Navigasi",
+       "and": "&#32;na",
+       "qbfind": "Assapparang",
+       "qbbrowse": "Berowoso",
+       "qbedit": "Padécéŋ",
+       "qbpageoptions": "Édé leppa",
+       "qbmyoptions": "Leppana iya'",
+       "faq": "FAQ",
+       "faqpage": "Project:FAQ",
+       "errorpagetitle": "Asalaŋ",
+       "returnto": "Lisu ri $1.",
+       "tagline": "Polé {{SITENAME}}",
+       "help": "Paŋinriŋ",
+       "search": "Assapparaŋ",
+       "searchbutton": "Sappa",
+       "go": "Lao",
+       "searcharticle": "Lao",
+       "history": "Versi riolo leppaë",
+       "history_short": "versi riolo",
+       "permalink": "Pranala permanen",
+       "edit": "Padécéŋ",
+       "create": "Ebbu",
+       "editthispage": "Padécéŋiki iyé leppa",
+       "create-this-page": "Ebbuiki leppa iyé",
+       "delete": "Peddé",
+       "deletethispage": "Peddé iyé leppa",
+       "protect": "Accalinruŋi",
+       "protect_change": "pinra",
+       "protectthispage": "Accalinruŋi leppa iyyé",
+       "unprotect": "Téccalinruŋi",
+       "newpage": "Leppa baru",
+       "talkpage": "Bicara iyé leppa",
+       "talkpagelinktext": "Bicara",
+       "specialpage": "Leppa spésiala",
+       "personaltools": "Tool sialé-alé",
+       "articlepage": "Ita lontara",
+       "talk": "Bicara",
+       "toolbox": "Toolbox",
+       "userpage": "Ita leppa papaké",
+       "projectpage": "Ita leppa proyék",
+       "imagepage": "Ita leppa rapaŋ",
+       "mediawikipage": "Ita leppa méséje",
+       "templatepage": "Ita leppa templata",
+       "viewhelppage": "Ita leppa panginriŋ",
+       "categorypage": "Ita leppa kategori",
+       "viewtalkpage": "Ita leppa bicara",
+       "redirectedfrom": "(Riredirect polé $1)",
+       "redirectpagesub": "Leppa redirect",
+       "jumpto": "Luppe lao:",
+       "jumptosearch": "sappa",
+       "aboutsite": "Tentang {{SITENAME}}",
+       "currentevents": "Accanjingeŋ kokkoro",
+       "currentevents-url": "Project:Accanjingeŋ kokkoro",
+       "disclaimers": "Diseklaima",
+       "edithelp": "Paŋinriŋ mapadécéŋ",
+       "mainpage": "Leppa Indoë",
+       "mainpage-description": "Leppa Indoë",
+       "portal": "Portal komunitas",
+       "editsection": "padécéŋ",
+       "editold": "padécéŋ",
+       "viewsourceold": "ita sumber",
+       "editlink": "padécéŋ",
+       "viewsourcelink": "ita sumber",
+       "editsectionhint": "Padécéŋ kajuru: $1",
+       "nstab-main": "Leppa",
+       "nstab-user": "Leppa papaké",
+       "nstab-media": "Leppa média",
+       "nstab-special": "Leppa spésiala",
+       "nstab-project": "Proyek",
+       "nstab-image": "Rapang",
+       "nstab-mediawiki": "Pappaseŋ",
+       "nstab-template": "Templata",
+       "nstab-help": "Paŋinriŋ",
+       "nstab-category": "Kategori",
+       "nosuchspecialpage": "Iyaro leppa spésiala dé'na eŋka",
+       "error": "Éro",
+       "databaseerror": "Éro databése",
+       "readonly": "Databése rikonci",
+       "missingarticle-diff": "(Beda: $1, $2)",
+       "internalerror": "Éro internal",
+       "internalerror_info": "Éro internal: $1",
+       "badtitle": "Judul dek essa",
+       "viewsource": "Ita sumber",
+       "virus-unknownscanner": "Antivirus dé' riisseŋ:",
+       "yourname": "Aseŋ papaké:",
+       "yourpassword": "Adacili:",
+       "login": "log attama",
+       "nav-login-createaccount": "Log attama / ebbu akun",
+       "userlogin": "Log attama / ebbu akun",
+       "logout": "Log essu",
+       "userlogout": "Log essu",
+       "notloggedin": "Déppa log attama",
+       "nologin": "Dé' gaga akaun? '''$1'''.",
+       "nologinlink": "Ebbu akun",
+       "createaccount": "Ebbu akun",
+       "gotaccount": "Purani eŋka akun? '''$1'''.",
+       "gotaccountlink": "Log attama",
+       "loginerror": "Éro log attama",
+       "mailmypassword": "E-mail adacili baru",
+       "oldpassword": "Pasewodo matoa:",
+       "bold_tip": "Teks maumpek",
+       "italic_tip": "Teks Italik",
+       "extlink_tip": "Link risaliweŋ (jangan lupa awalan http:// )",
+       "savearticle": "Taro leppa",
+       "preview": "Pribiu",
+       "showpreview": "Ita pribiu",
+       "showdiff": "Mita perubahan",
+       "summary-preview": "Pribiu summary:",
+       "blockedtitle": "Papaké riblok",
+       "accmailtitle": "Ada sandi ni riantarak.",
+       "accmailtext": "Ada sandi \"$1\" riantarak ri $2.",
+       "anontalkpagetext": "----''Ini adalah halaman diskusi untuk pengguna anonim yang belum membuat rekening atau tidak menggunakannya. Karena tidak membuat rekening, kami terpaksa memakai alamat IP untuk mengenalinya. Alamat IP seperti ini dapat dipakai oleh beberapa pengguna yang berbeda. Jika Anda adalah pengguna anonim dan merasa mendapatkan komentar-komentar yang tidak berkaitan dengan anda, kami anjurkan untuk [[Special:UserLogin|membuat rekening atau masuk log]] untuk menghindari kerancuan dengan pengguna anonim lain.''",
+       "editing": "Mapadécéŋ $1",
+       "previousrevision": "←Revisi riolo",
+       "currentrevisionlink": "Revisi tannapa",
+       "page_first": "séuwani",
+       "histfirst": "Poŋ loa",
+       "histlast": "Poŋ nappa",
+       "historysize": "($1 {{PLURAL:$1|bita|bita}})",
+       "historyempty": "(kapa)",
+       "history-feed-item-nocomment": "$1 ri $2",
+       "rev-deleted-comment": "(komentar ripeddé)",
+       "rev-deleted-user": "(ripeddéni aseŋna papakeë)",
+       "rev-deleted-event": "(log gau ripeddéni)",
+       "rev-delundel": "pakitaï/tapo'",
+       "logdelete-selected": "{{PLURAL:$1|Log|Log-log}} ripilé:",
+       "revdelete-hide-text": "Tapoïki text revisië",
+       "revdelete-hide-comment": "Tapo komentar mapadecéŋ",
+       "revdelete-hide-user": "Tapo aseŋ papakéna/IPna papadéceŋë",
+       "revdelete-log": "Saba:",
+       "editundo": "undo",
+       "viewprevnext": "Ita ($1 {{int:pipe-separator}} $2) ($3)",
+       "search-result-size": "$1 ({{PLURAL:$2|1 ada|$2 ada}})",
+       "search-redirect": "(redirect $1)",
+       "mypreferences": "Bérékkeŋeŋna iyya",
+       "prefs-watchlist": "Watchlist",
+       "prefs-misc": "Misc",
+       "saveprefs": "Taro",
+       "prefs-editing": "Mapadécéŋ",
+       "searchresultshead": "Masappa",
+       "youremail": "E-mail:",
+       "username": "Aseŋ papaké:",
+       "email": "E-mail",
+       "group-sysop": "Puŋgawa",
+       "group-all": "(sininna)",
+       "group-user-member": "{{GENDER:$1|Pappaké}}",
+       "group-sysop-member": "Puŋgawa",
+       "grouppage-user": "{{ns:project}}:Pappaké",
+       "grouppage-sysop": "{{ns:project}}:Puŋgawa",
+       "right-read": "Mabbaca leppa",
+       "right-edit": "Mappadécéŋi leppa",
+       "recentchanges": "Pappakinra tanappa",
+       "rcshowhidebots": "$1 bot",
+       "rcshowhideliu": "$1 papaké mattama' log",
+       "rcshowhideanons": "$1 papaké anon",
+       "diff": "beda",
+       "hide": "Tapok",
+       "minoreditletter": "k",
+       "newpageletter": "B",
+       "boteditletter": "b",
+       "recentchangeslinked": "Pappakapinra terkait",
+       "recentchangeslinked-feed": "Pappakapinra terkait",
+       "recentchangeslinked-toolbox": "Pappakapinra terkait",
+       "upload": "Lureng berkas",
+       "uploadbtn": "Lureng berkas",
+       "listfiles_name": "Aseŋ",
+       "file-anchor-link": "Rapang",
+       "filehist-user": "Papaké",
+       "filehist-dimensions": "Dimensi",
+       "imagelinks": "Liŋke",
+       "filedelete": "Mapeddé $1",
+       "filedelete-legend": "Mapeddé berkas",
+       "filedelete-intro": "Iko purani mapeddé '''[[Media:$1|$1]]'''.",
+       "filedelete-submit": "Peddé",
+       "filedelete-success": "'''$1''' purani ripeddé.",
+       "filedelete-success-old": "Berkas '''[[Media:$1|$1]]''' versi $3, $2 purani ripeddé.",
+       "filedelete-nofile": "'''$1''' dé'na eŋka.",
+       "mimesearch": "Assapparaŋ MIME",
+       "mimetype": "Tipe MIME:",
+       "download": "unduh",
+       "randompage": "Leppa random",
+       "randompage-nopages": "Degaga leppa rilaleŋ iyyé namespaceë.",
+       "statistics-articles": "Leppa liseë",
+       "statistics-pages": "Leppaë",
+       "statistics-files": "File-file nalise menré",
+       "ancientpages": "Leppa talloa",
+       "move": "Paleccé",
+       "movethispage": "Paleccé leppa iyyé",
+       "specialloguserlabel": "Papaké:",
+       "log": "Log",
+       "all-logs-page": "Maneŋ log",
+       "allpages": "Maneng halamang",
+       "allpagesfrom": "Mappaitang halamang-halamang rimulai:",
+       "allarticles": "Sininna leppa",
+       "allinnamespace": "Maneŋ leppa (namespace $1)",
+       "allpagessubmit": "Lanre",
+       "allpagesprefix": "Mappaitang halamang-halamang éngkalinga awang:",
+       "categories": "Maneŋ kategori",
+       "addedwatchtext": "Halamang \"[[:$1]]\" ni ritamba ri ida [[Special:Watchlist|watchlist]].\nHalamang bicara éréngé gabungan halamang bicara pada wettu depan didaftarkan koe,\néréngé halamang akan wessi '''umpek''' ri [[Special:RecentChanges|daftar pinra tanappa]] barak lebih lemmak ita.\n\nApak ida ronnak mappedde halamang édé ri daftar jagaan, klik \"Mangedda jaga\" pada kolom ri sedde.",
+       "watch": "Ampi",
+       "unwatch": "Tenriampi",
+       "actioncomplete": "Proses makkapo",
+       "dellogpage": "Log peddé-peddé",
+       "prot_1movedto2": "[[$1]] ésuk ri [[$2]]",
+       "blanknamespace": "(Utama)",
+       "sp-contributions-talk": "Bicara",
+       "whatlinkshere": "Pranala ri leppa iyéwé",
+       "whatlinkshere-page": "Leppa:",
+       "whatlinkshere-links": "← liŋke",
+       "ipblocklist-submit": "Sappa",
+       "blocklink": "blok",
+       "contribslink": "kontrib",
+       "articleexists": "Leppa béla ida pile ni ujuk, a dek essa.\nSilakan pile aseng laing.",
+       "movelogpage": "Log leccé",
+       "movereason": "Saba:",
+       "delete_and_move": "Peddé nappa paleccé",
+       "delete_and_move_text": "==Mapeddé riperelu==\nLeppa destinasi \"[[:$1]]\" purani eŋka.\nEloko peddéï supaya weddiŋi mapalecé?",
+       "delete_and_move_confirm": "Iyé', peddé iyaro leppa",
+       "delete_and_move_reason": "Ripeddé supaya weddiŋi mapalecé",
+       "immobile-source-namespace": "Leppa-leppa rilaleŋna namespace \"$1\"ë de'na ullé ripaleccé",
+       "immobile-source-page": "Iyyedé leppaë de'na ullé ripaleccé.",
+       "allmessages": "Maneng pappaseng",
+       "allmessagesname": "Aseng",
+       "allmessagesdefault": "Teks totok",
+       "allmessagescurrent": "Teks kokkoro",
+       "tooltip-pt-userpage": "Leppa papaké iya'",
+       "tooltip-pt-mytalk": "Leppa bicara iya'",
+       "tooltip-pt-preferences": "Preferencena iya'",
+       "tooltip-pt-logout": "Log maessu",
+       "tooltip-ca-talk": "Pabicarana iyé leppa",
+       "tooltip-ca-move": "Paléccé leppa édé",
+       "tooltip-search": "Sappa ri {{SITENAME}}",
+       "tooltip-search-go": "Lao ri leppa aseŋna pappada iyyé rekko eŋkaï",
+       "tooltip-n-mainpage": "Lao ri Leppa Indoë",
+       "tooltip-ca-nstab-special": "Iyanaéwé séuwa leppa spésiala', dé'na idi' ullé padécéŋiki",
+       "anonymous": "Pabbuak anonim {{SITENAME}}",
+       "imagemaxsize": "Gangkai rapang pada keterangan rapang ri halamang hingga:",
+       "ilsubmit": "Sappa",
+       "namespacesall": "maneŋ",
+       "monthsall": "maneŋ",
+       "imgmultigo": "Lao!",
+       "imgmultigoto": "Lao ri leppa $1",
+       "ascending_abbrev": "énré",
+       "descending_abbrev": "no",
+       "table_pager_first": "Leppa séuwani",
+       "table_pager_limit_submit": "Lao",
+       "autosumm-replace": "Masullé leppaë lao '$1'",
+       "autosumm-new": "Leppa baru: '$1'",
+       "size-bytes": "$1 B",
+       "size-kilobytes": "$1 KB",
+       "size-megabytes": "$1 MB",
+       "size-gigabytes": "$1 GB",
+       "version-specialpages": "Leppa spésiala",
+       "specialpages": "Leppa spésiala",
+       "specialpages-note": "* Leppa spésiala normal\n* <strong class=\"mw-specialpagerestricted\">Leppa spésiala terbatas</strong>",
+       "specialpages-group-other": "Leppa spésiala laiŋë",
+       "specialpages-group-login": "Log attama / mendaftar",
+       "specialpages-group-changes": "Pinrana tanappaë sibawa logeë",
+       "specialpages-group-users": "Papaké sibawa hak-hak",
+       "specialpages-group-pages": "Sininna leppaë",
+       "specialpages-group-pagetools": "Tool leppaë",
+       "specialpages-group-wiki": "Data sibawa tool wiki",
+       "specialpages-group-spam": "Tool spam",
+       "blankpage": "Leppa kosoŋë"
 }
index 65888a7..f036e88 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Amire80",
-            "Bjargal",
-            "Elvonudinium",
-            "Korol Bumi",
-            "Soul Train",
-            "Губин Михаил",
-            "ОйЛ"
-        ]
-    },
-    "tog-underline": "Холбооһо доогуурнь зураха:",
-    "tog-watchcreations": "Минии үүдхэһэн хуудаһа болон ашаалһан файлыем хинаха жагсаалтада оруула",
-    "tog-watchdefault": "Минии заһаһан хуудаһа болон файлыем хинаха жагсаалтада оруула",
-    "tog-watchmoves": "Минии зөөһэн хуудаһа болон файлыем хинаха жагсаалтада оруула",
-    "tog-watchdeletion": "Минии усадхаһан хуудаһа болон файлыем хинаха жагсаалтада оруула",
-    "tog-minordefault": "Бүхы заһабариие бага зэргын гэжэ үгэгдэмэлөөр тэмдэглэ",
-    "tog-previewontop": "Уридшалан харахые заһабарилха талбарай урда үзүүлэ",
-    "tog-previewonfirst": "Уридшалан харахые эхилжэ заһаха үедэ үзүүлэ",
-    "underline-always": "хододоол",
-    "underline-never": "хэзээшье",
-    "sunday": "Няма",
-    "monday": "Дабаа",
-    "tuesday": "Мягмар",
-    "wednesday": "Һагба",
-    "thursday": "Пүрбэ",
-    "friday": "Баасан",
-    "saturday": "Бямба",
-    "sun": "Ня",
-    "mon": "Да",
-    "tue": "Мя",
-    "wed": "Һа",
-    "thu": "Пү",
-    "fri": "Ба",
-    "sat": "Бя",
-    "january": "Нэгэдүгээр һара",
-    "february": "Хоёрдугаар һара",
-    "march": "Гурбадугаар һара",
-    "april": "Дүрбэдүгээр һара",
-    "may_long": "Табадугаар һара",
-    "june": "Зургадугаар һара",
-    "july": "Долодугаар һара",
-    "august": "Наймадугаар һара",
-    "september": "Юһэдүгээр һара",
-    "october": "Арбадугаар һара",
-    "november": "Арбаннэгэдүгээр һара",
-    "december": "Арбанхоёрдугаар һара",
-    "january-gen": "Нэгэдүгээр һарын",
-    "february-gen": "Хоёрдугаар һарын",
-    "march-gen": "Гурбадугаар һарын",
-    "april-gen": "Дүрбэдүгээр һарын",
-    "may-gen": "Табадугаар һарын",
-    "june-gen": "Зургадугаар һарын",
-    "july-gen": "Долодугаар һарын",
-    "august-gen": "Наймадугаар һарын",
-    "september-gen": "Юһэдүгээр һарын",
-    "october-gen": "Арбадугаар һарын",
-    "november-gen": "Арбаннэгэдүгээр һарын",
-    "december-gen": "Арбанхоёрдугаар һарын",
-    "jan": "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": "3 һарын $1",
-    "april-date": "4 һарын $1",
-    "may-date": "5 һарын $1",
-    "june-date": "6 һарын $1",
-    "july-date": "7 һарын $1",
-    "august-date": "8 һарын $1",
-    "september-date": "9 һарын $1",
-    "october-date": "10 һарын $1",
-    "november-date": "11 һарын $1",
-    "december-date": "12 һарын $1",
-    "category_header": "\"$1\" категориин үгүүлэлнүүд",
-    "cancel": "Болихо",
-    "moredotdotdot": "Үшөө...",
-    "morenotlisted": "Энэ жагсаалта дүүргэһэнгүй.",
-    "mypage": "Хуудаһан",
-    "mytalk": "Хэлэлсэл",
-    "anontalk": "Энэ IP адресаарнь хэлэхэ",
-    "navigation": "Залуурдалга",
-    "and": "&#32;ба",
-    "qbfind": "Хайха",
-    "qbedit": "Заһабарилха",
-    "vector-action-addsection": "Һэдэб нэмэхэ",
-    "vector-action-delete": "Усадхаха",
-    "vector-view-create": "Үүдхэхэ",
-    "vector-view-edit": "Заһабарилха",
-    "vector-view-history": "Түүхые хараха",
-    "vector-view-view": "Уншаха",
-    "vector-view-viewsource": "эшэ үндэһэндэнь хандаха",
-    "actions": "γйлэ",
-    "variants": "Хубилбари",
-    "navigation-heading": "Тамаралгын меню",
-    "errorpagetitle": "Алдуу",
-    "tagline": "{{SITENAME}} сайтһаа мэдээлэл",
-    "help": "Туһаламжа",
-    "search": "Хайха",
-    "searchbutton": "Хайлта",
-    "go": "Ябаха",
-    "searcharticle": "Ябаха",
-    "history": "Хуудаһанай түүхэ",
-    "history_short": "Түүхэ",
-    "printableversion": "Хэблэхэ хубилбари",
-    "permalink": "Үргэлжын холбооһон",
-    "print": "Хэблэхэ",
-    "view": "Харуулха",
-    "edit": "Заһабарилха",
-    "create": "Үүдхэхэ",
-    "delete": "Усадхаха",
-    "protect": "Хамгаалха",
-    "protect_change": "Хубилалга",
-    "newpage": "Шэнэ хуудаһан",
-    "talkpage": "Тус хуудаһа хэлэлсэхэ",
-    "talkpagelinktext": "Хэлэлсэхэ",
-    "specialpage": "Тусхай хуудаһан",
-    "personaltools": "Хубиин хэрэгсэлнүүд",
-    "postcomment": "Шэнэ бүлэг",
-    "talk": "Хэлэлсэхэ",
-    "views": "Үзэһэн",
-    "toolbox": "Багажа зэбсэг",
-    "projectpage": "Түлэблэлгын хуудаһые хараха",
-    "otherlanguages": "Бусад хэлээр",
-    "jumpto": "Шууд ошохо:",
-    "jumptonavigation": "тамаралга",
-    "jumptosearch": "хайха",
-    "pool-errorunknown": "Танигдаагүй алдуу",
-    "aboutsite": "{{SITENAME}} тухай",
-    "aboutpage": "Project:Түлэблэлгын тухай",
-    "currentevents": "Мүнөө боложо байгаа үйлэ ябадал",
-    "currentevents-url": "Project:Һонин мэдээн",
-    "disclaimers": "Татагалзалнууд",
-    "disclaimerpage": "Project:Ниитэ татагалзал",
-    "mainpage": "Нюур хуудаһан",
-    "mainpage-description": "Нюур хуудаһан",
-    "portal": "Хурал",
-    "portal-url": "Project:Хурал",
-    "privacy": "Хубиин мэдээлэлэй талаар баримталал",
-    "privacypage": "Project:Хубиин мэдээлэлэй талаар баримталал",
-    "ok": "За",
-    "retrievedfrom": "\"$1\" холбооһоо абагдаһан",
-    "editsection": "заһабарилха",
-    "editold": "заһабарилха",
-    "viewsourceold": "эшэ үндэһэндэнь хандаха",
-    "editlink": "заһабарилха",
-    "viewsourcelink": "эшэ үндэһэндэнь хандаха",
-    "editsectionhint": "$1 гэһэн бүлэг заһаха",
-    "toc": "Агуулга",
-    "showtoc": "харуулха",
-    "hidetoc": "нюуха",
-    "collapsible-collapse": "Нюуха",
-    "collapsible-expand": "Дэлгээхэ",
-    "site-atom-feed": "$1 Атом фиид",
-    "red-link-title": "$1 (хуудаһан үгы байна)",
-    "nstab-main": "Хуудаһан",
-    "nstab-user": "Хэрэглэгшын хуудаһан",
-    "nstab-media": "Медиагай хуудаһан",
-    "nstab-special": "Тусхай хуудаһан",
-    "nstab-project": "Түлэблэлгын хуудаһан",
-    "nstab-image": "Файл",
-    "nstab-mediawiki": "Бэшэг",
-    "nstab-template": "Загбар",
-    "nstab-help": "Туһаламжын хуудаһан",
-    "nstab-category": "Категори",
-    "error": "Алдуу",
-    "internalerror": "Доторой алдуу",
-    "internalerror_info": "Доторой алдуу: $1",
-    "welcomeuser": "Морилжо хайрлыт, $1!",
-    "welcomecreation-msg": "Танай данса үүдхэһэн байна.\nТа танай {{SITENAME}} [[Special:Preferences|preferences]]-ые өөршэлхэ боломжотойт.",
-    "yourname": "Хэрэглэгшын нэрэ:",
-    "userlogin-yourname": "Хэрэглэгшын нэрэ:",
-    "userlogin-yourname-ph": "Танай хэрэглэгшын нэрые оруулагты",
-    "createacct-another-username-ph": "Хэрэглэгшын нэрые оруулагты",
-    "yourpassword": "Нюуса үгэ:",
-    "login": "Нэбтэрхэ",
-    "nav-login-createaccount": "Нэбтэрхэ / данса үүдхэхэ",
-    "userlogin": "Нэбтэрхэ / данса үүдхэхэ",
-    "logout": "Гараха",
-    "userlogout": "Гараха",
-    "createaccount": "Данса үүдхэхэ",
-    "gotaccountlink": "Нэбтэрхэ",
-    "loginlanguagelabel": "Хэлэн: $1",
-    "savearticle": "Хуудаһые хадагалха",
-    "showpreview": "Уридшалан хараха",
-    "showdiff": "Хубилалтые харуул",
-    "newarticle": "(Шэнэ)",
-    "template-protected": "(хамгаалалтатай)",
-    "permissionserrorstext-withaction": "Та доро тодорхойлһон $1 ушар шалтагаанһаа боложо, $2 эрхэгүйт.",
-    "rev-delundel": "харуулха/нюуха",
-    "revdel-restore": "харагдасыень хубилгаха",
-    "editundo": "болюулха",
-    "searchmenu-new": "'''Энэ викидэ \"[[:$1]]\" гэһэн хуудаһа үүсхэхэ!''' Мүн олдоһон ондоо хуудаһа харагты.\"",
-    "searchprofile-articles": "Агуулгын хуудаһанууд",
-    "searchprofile-images-tooltip": "Файл хайха",
-    "search-result-size": "$1 (ниитэ $2 үгэ�)",
-    "mypreferences": "Тааруулга",
-    "prefs-datetime": "Огноо ба саг",
-    "youremail": "Сахим шуудан:",
-    "yourrealname": "Бодото нэрэ:",
-    "yourlanguage": "Хэлэн:",
-    "yourgender": "Хүйһыетнай хэн гэжэ заабал болохоб?",
-    "gender-male": "Эрэ хүн",
-    "action-edit": "энэ хуудаһа заһабарилха",
-    "recentchanges": "Һүүлшын хубилалта",
-    "diff": "илгаа",
-    "hist": "түүхэ",
-    "hide": "Нюуха",
-    "recentchangeslinked": "Холбогдохо хубилалта",
-    "recentchangeslinked-toolbox": "Холбогдохо хубилалта",
-    "upload": "Файл ашаалха",
-    "license-header": "Лицензи",
-    "file-anchor-link": "Файл",
-    "filehist": "Файлын түүхэ",
-    "filehist-datetime": "Огноо/Саг",
-    "filehist-user": "Хэрэглэгшэ",
-    "randompage": "Һанамсаргүй хуудаһан",
-    "statistics": "Тоо бүридхэл",
-    "nbytes": "$1 {{PLURAL:$1|байт|байтууд}}",
-    "newpages": "Шэнэ хуудаһанууд",
-    "ancientpages": "Хуушарһан хуудаһан",
-    "move": "Шэлжүүлхэ",
-    "log": "Логнууд",
-    "allpages": "Бүхы хуудаһан",
-    "allarticles": "Бүхы хуудаһан",
-    "categories": "Категоринууд",
-    "mywatchlist": "Ажаглаха зүйл",
-    "watch": "Ажаглаха",
-    "undeletelink": "хараха/һэргээхэ",
-    "blanknamespace": "(Гол)",
-    "mycontris": "Минии оруулһан зүйл",
-    "sp-contributions-talk": "Хэлэлсэл",
-    "whatlinkshere": "Эндэ холбогдоһон хуудаһанууд",
-    "whatlinkshere-page": "Хуудаһан:",
-    "block": "Блок",
-    "change-blocklink": "багса хубилгаха",
-    "contribslink": "γйлэ",
-    "revertmove": "һэргээхэ",
-    "allmessages": "Бүхы зурбас",
-    "allmessagesname": "Нэрэ",
-    "allmessages-language": "Хэлэн:",
-    "thumbnail-more": "Томоруулха",
-    "tooltip-pt-login": "Бидэ та нэбтэрхые хүсэнэбди; гэбэшье, та заататай байна.",
-    "tooltip-pt-logout": "Гараха",
-    "tooltip-ca-talk": "Агуулгын хуудаһанай хэлэлсэл",
-    "tooltip-ca-edit": "Та энэ хуудаһа заһабарилжа боломжотой. \"Уридшалан үзэлхэ\" гэһэн тобшые хэрэглээрэй.",
-    "tooltip-ca-addsection": "Шэнэ хэһэг эхилүүлхэ",
-    "tooltip-ca-history": "Энэ хуудаһанай үмэнэхи заһабаринууд",
-    "tooltip-ca-delete": "энэ хуудаһые усадхаха",
-    "tooltip-search": "{{SITENAME}} сайтһаа бэдэрхэ",
-    "tooltip-search-fulltext": "Хуудаһанһаа бэдэрхэ бэшэбэри",
-    "tooltip-p-logo": "Нюур хуудаһанда ошохо",
-    "tooltip-n-mainpage": "Нюур хуудаһанда ошохо",
-    "tooltip-n-mainpage-description": "Нюур хуудаһанда ошохо",
-    "tooltip-n-portal": "Түһэл, өөрын оруулалта, туһалбари тухай мэдээлэл",
-    "tooltip-n-currentevents": "Мүнөө боложо байгаа үйлэ ябадал тухай һониниие дуулаха",
-    "tooltip-n-recentchanges": "Тус Викиин һүүлшын хубилалтанууд",
-    "tooltip-n-randompage": "Гэнтын хуудаһые нээхэ",
-    "tooltip-n-help": "Туһалалсалгые олохо газар",
-    "tooltip-t-whatlinkshere": "Эндэ холбогдоһон хуудаһануудай жагсаалта",
-    "tooltip-t-recentchangeslinked": "Энэ хуудаһаһаа холбоогдоһон хуудаһуудай шэнэ хубилалтууд",
-    "tooltip-feed-atom": "Тус хуудаһанай Атом фиид",
-    "tooltip-t-upload": "Файл ашаалха",
-    "tooltip-t-specialpages": "Бүхы тусхай хуудаһанай жагсаалта",
-    "tooltip-t-print": "Энэ хуудаһанай хэблэхэ хубилбари",
-    "tooltip-ca-nstab-main": "Үгүүлэлэй хуудаһые үзэхэ",
-    "exif-languagecode": "Хэлэн",
-    "specialpages": "Тусхай хуудаһан"
+       "@metadata": {
+               "authors": [
+                       "Amire80",
+                       "Bjargal",
+                       "Elvonudinium",
+                       "Korol Bumi",
+                       "Soul Train",
+                       "Губин Михаил",
+                       "ОйЛ"
+               ]
+       },
+       "tog-underline": "Холбооһо доогуурнь зураха:",
+       "tog-watchcreations": "Минии үүдхэһэн хуудаһа болон ашаалһан файлыем хинаха жагсаалтада оруула",
+       "tog-watchdefault": "Минии заһаһан хуудаһа болон файлыем хинаха жагсаалтада оруула",
+       "tog-watchmoves": "Минии зөөһэн хуудаһа болон файлыем хинаха жагсаалтада оруула",
+       "tog-watchdeletion": "Минии усадхаһан хуудаһа болон файлыем хинаха жагсаалтада оруула",
+       "tog-minordefault": "Бүхы заһабариие бага зэргын гэжэ үгэгдэмэлөөр тэмдэглэ",
+       "tog-previewontop": "Уридшалан харахые заһабарилха талбарай урда үзүүлэ",
+       "tog-previewonfirst": "Уридшалан харахые эхилжэ заһаха үедэ үзүүлэ",
+       "underline-always": "хододоол",
+       "underline-never": "хэзээшье",
+       "sunday": "Няма",
+       "monday": "Дабаа",
+       "tuesday": "Мягмар",
+       "wednesday": "Һагба",
+       "thursday": "Пүрбэ",
+       "friday": "Баасан",
+       "saturday": "Бямба",
+       "sun": "Ня",
+       "mon": "Да",
+       "tue": "Мя",
+       "wed": "Һа",
+       "thu": "Пү",
+       "fri": "Ба",
+       "sat": "Бя",
+       "january": "Нэгэдүгээр һара",
+       "february": "Хоёрдугаар һара",
+       "march": "Гурбадугаар һара",
+       "april": "Дүрбэдүгээр һара",
+       "may_long": "Табадугаар һара",
+       "june": "Зургадугаар һара",
+       "july": "Долодугаар һара",
+       "august": "Наймадугаар һара",
+       "september": "Юһэдүгээр һара",
+       "october": "Арбадугаар һара",
+       "november": "Арбаннэгэдүгээр һара",
+       "december": "Арбанхоёрдугаар һара",
+       "january-gen": "Нэгэдүгээр һарын",
+       "february-gen": "Хоёрдугаар һарын",
+       "march-gen": "Гурбадугаар һарын",
+       "april-gen": "Дүрбэдүгээр һарын",
+       "may-gen": "Табадугаар һарын",
+       "june-gen": "Зургадугаар һарын",
+       "july-gen": "Долодугаар һарын",
+       "august-gen": "Наймадугаар һарын",
+       "september-gen": "Юһэдүгээр һарын",
+       "october-gen": "Арбадугаар һарын",
+       "november-gen": "Арбаннэгэдүгээр һарын",
+       "december-gen": "Арбанхоёрдугаар һарын",
+       "jan": "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": "3 һарын $1",
+       "april-date": "4 һарын $1",
+       "may-date": "5 һарын $1",
+       "june-date": "6 һарын $1",
+       "july-date": "7 һарын $1",
+       "august-date": "8 һарын $1",
+       "september-date": "9 һарын $1",
+       "october-date": "10 һарын $1",
+       "november-date": "11 һарын $1",
+       "december-date": "12 һарын $1",
+       "pagecategories": "{{PLURAL:$1|Анги}}",
+       "category_header": "\"$1\" ангиин үгүүлэлнүүд",
+       "hidden-categories": "{{PLURAL:$1|Нюуса анги}}",
+       "cancel": "Болихо",
+       "moredotdotdot": "Үшөө...",
+       "morenotlisted": "Энэ жагсаалта дүүргэһэнгүй.",
+       "mypage": "Хуудаһан",
+       "mytalk": "Хэлэлсэл",
+       "anontalk": "Энэ IP адресаарнь хэлэхэ",
+       "navigation": "Залуурдалга",
+       "and": "&#32;ба",
+       "qbfind": "Хайха",
+       "qbedit": "Заһабарилха",
+       "actions": "γйлэ",
+       "variants": "Хубилбари",
+       "navigation-heading": "Тамаралгын меню",
+       "errorpagetitle": "Алдуу",
+       "tagline": "{{SITENAME}} сайтһаа мэдээлэл",
+       "help": "Туһаламжа",
+       "search": "Хайха",
+       "searchbutton": "Хайлта",
+       "go": "Ябаха",
+       "searcharticle": "Ябаха",
+       "history": "Хуудаһанай түүхэ",
+       "history_short": "Түүхэ",
+       "printableversion": "Хэблэхэ хубилбари",
+       "permalink": "Үргэлжын холбооһон",
+       "print": "Хэблэхэ",
+       "view": "Харуулха",
+       "edit": "Заһабарилха",
+       "create": "Үүдхэхэ",
+       "delete": "Усадхаха",
+       "protect": "Хамгаалха",
+       "protect_change": "Хубилалга",
+       "newpage": "Шэнэ хуудаһан",
+       "talkpage": "Тус хуудаһа хэлэлсэхэ",
+       "talkpagelinktext": "Хэлэлсэхэ",
+       "specialpage": "Тусхай хуудаһан",
+       "personaltools": "Хубиин хэрэгсэлнүүд",
+       "talk": "Хэлэлсэхэ",
+       "views": "Үзэһэн",
+       "toolbox": "Багажа зэбсэг",
+       "projectpage": "Түлэблигэй хуудаһые хараха",
+       "otherlanguages": "Бусад хэлээр",
+       "lastmodifiedat": "Энэ хуудаһанай эгээн һүүлшын хубилалга: $2, $1.",
+       "jumpto": "Шууд ошохо:",
+       "jumptonavigation": "тамаралга",
+       "jumptosearch": "хайха",
+       "pool-errorunknown": "Танигдаагүй алдуу",
+       "aboutsite": "{{SITENAME}} тухай",
+       "aboutpage": "Project:Түлэблиг тухай",
+       "currentevents": "Мүнөө боложо байгаа үйлэ ябадал",
+       "currentevents-url": "Project:Һонин мэдээн",
+       "disclaimers": "Татагалзалнууд",
+       "disclaimerpage": "Project:Ниитэ татагалзал",
+       "mainpage": "Нюур хуудаһан",
+       "mainpage-description": "Нюур хуудаһан",
+       "portal": "Хурал",
+       "portal-url": "Project:Хурал",
+       "privacy": "Хубиин мэдээлэлэй талаар баримталал",
+       "privacypage": "Project:Хубиин мэдээлэлэй талаар баримталал",
+       "ok": "За",
+       "retrievedfrom": "\"$1\" холбооһоо абагдаһан",
+       "editsection": "заһабарилха",
+       "editold": "заһабарилха",
+       "viewsourceold": "эшэ үндэһэндэнь хандаха",
+       "editlink": "заһабарилха",
+       "viewsourcelink": "эшэ үндэһэндэнь хандаха",
+       "editsectionhint": "$1 гэһэн бүлэг заһаха",
+       "toc": "Агуулга",
+       "showtoc": "харуулха",
+       "hidetoc": "нюуха",
+       "collapsible-collapse": "Нюуха",
+       "collapsible-expand": "Дэлгээхэ",
+       "site-atom-feed": "$1 Атом фиид",
+       "red-link-title": "$1 (хуудаһан үгы байна)",
+       "nstab-main": "Хуудаһан",
+       "nstab-user": "Хэрэглэгшын хуудаһан",
+       "nstab-media": "Медиагай хуудаһан",
+       "nstab-special": "Тусхай хуудаһан",
+       "nstab-project": "Түлэблигэй хуудаһан",
+       "nstab-image": "Файл",
+       "nstab-mediawiki": "Бэшэг",
+       "nstab-template": "Загбар",
+       "nstab-help": "Туһаламжын хуудаһан",
+       "nstab-category": "Анги",
+       "error": "Алдуу",
+       "internalerror": "Доторой алдуу",
+       "internalerror_info": "Доторой алдуу: $1",
+       "welcomeuser": "Морилжо хайрлыт, $1!",
+       "welcomecreation-msg": "Танай данса үүдхэһэн байна.\nТа танай {{SITENAME}} [[Special:Preferences|preferences]]-ые өөршэлхэ боломжотойт.",
+       "yourname": "Хэрэглэгшын нэрэ:",
+       "userlogin-yourname": "Хэрэглэгшын нэрэ:",
+       "userlogin-yourname-ph": "Танай хэрэглэгшын нэрые оруулагты",
+       "createacct-another-username-ph": "Хэрэглэгшын нэрые оруулагты",
+       "yourpassword": "Нюуса үгэ:",
+       "login": "Нэбтэрхэ",
+       "nav-login-createaccount": "Нэбтэрхэ / данса үүдхэхэ",
+       "userlogin": "Нэбтэрхэ / данса үүдхэхэ",
+       "logout": "Гараха",
+       "userlogout": "Гараха",
+       "createaccount": "Данса үүдхэхэ",
+       "gotaccountlink": "Нэбтэрхэ",
+       "loginlanguagelabel": "Хэлэн: $1",
+       "pt-userlogout": "Гараха",
+       "watchthis": "Энэ хуудаһые хинаха",
+       "savearticle": "Хуудаһые хадагалха",
+       "showpreview": "Уридшалан хараха",
+       "showdiff": "Хубилалтые харуул",
+       "newarticle": "(Шэнэ)",
+       "editing": "«$1» гэһэн хуудаһые заһабарилжа байна",
+       "creating": "«$1» хуудаһые үүсхэжэ байна",
+       "editingsection": "«$1» гэһэн хуудаһанай бүлэгые заһабарилжа байна",
+       "template-protected": "(хамгаалалтатай)",
+       "permissionserrorstext-withaction": "Та доро тодорхойлһон $1 ушар шалтагаанһаа боложо, $2 эрхэгүйт.",
+       "rev-delundel": "харуулха/нюуха",
+       "revdel-restore": "харагдасыень хубилгаха",
+       "history-title": "«$1» гэһэн хуудаһанай хинаһан түүхэ",
+       "editundo": "болюулха",
+       "searchmenu-new": "<strong>Энэ викидэ \"[[:$1]]\" гэһэн хуудаһые үүсхэхэ!</strong> {{PLURAL:$2|0=|Мүн олдоһон хуудаһые харагты.|Мүн хайлтын дүные харагты.}}",
+       "searchprofile-articles": "Агуулгын хуудаһанууд",
+       "searchprofile-images-tooltip": "Файл хайха",
+       "search-result-size": "$1 (ниитэ $2 үгэ�)",
+       "search-interwiki-more": "(үшөө)",
+       "search-nonefound": "Хайлтада таараһан үрэ дүн олдоһонгүй.",
+       "mypreferences": "Тааруулга",
+       "youremail": "Сахим шуудан:",
+       "yourrealname": "Бодото нэрэ:",
+       "yourlanguage": "Хэлэн:",
+       "yourgender": "Хүйһыетнай хэн гэжэ заабал болохоб?",
+       "gender-male": "Эрэ хүн",
+       "right-move": "Хуудаһануудые зөөхэ",
+       "right-move-rootuserpages": "Хэрэглэгшын үндэһэн хуудаһануудые зөөхэ",
+       "action-edit": "энэ хуудаһа заһабарилха",
+       "action-move": "хуудаһые зөөхэ",
+       "recentchanges": "Һүүлшын хубилалта",
+       "diff": "илгаа",
+       "hist": "түүхэ",
+       "hide": "Нюуха",
+       "recentchangeslinked": "Холбогдохо хубилалта",
+       "recentchangeslinked-toolbox": "Холбогдохо хубилалта",
+       "upload": "Файл ашаалха",
+       "license-header": "Лицензи",
+       "file-anchor-link": "Файл",
+       "filehist": "Файлын түүхэ",
+       "filehist-datetime": "Огноо/Саг",
+       "filehist-user": "Хэрэглэгшэ",
+       "randompage": "Һанамсаргүй хуудаһан",
+       "statistics": "Тоо бүридхэл",
+       "nbytes": "$1 {{PLURAL:$1|байт|байтууд}}",
+       "newpages": "Шэнэ хуудаһанууд",
+       "ancientpages": "Хуушарһан хуудаһан",
+       "move": "Зөөхэ",
+       "log": "Логнууд",
+       "allpages": "Бүхы хуудаһан",
+       "allarticles": "Бүхы хуудаһан",
+       "categories": "Анги",
+       "mywatchlist": "Ажаглаха зүйл",
+       "watch": "Ажаглаха",
+       "watchthispage": "Энэ хуудаһые хинаха",
+       "undeletelink": "хараха/һэргээхэ",
+       "blanknamespace": "(Гол)",
+       "mycontris": "Минии оруулһан зүйл",
+       "sp-contributions-talk": "Хэлэлсэл",
+       "whatlinkshere": "Эндэ холбогдоһон хуудаһанууд",
+       "whatlinkshere-page": "Хуудаһан:",
+       "block": "Блок",
+       "change-blocklink": "багса хубилгаха",
+       "contribslink": "γйлэ",
+       "move-page": "«$1» хуудаһые зөөхэ",
+       "move-watch": "Энэ хуудаһые хинаха",
+       "revertmove": "һэргээхэ",
+       "allmessages": "Бүхы зурбас",
+       "allmessagesname": "Нэрэ",
+       "allmessages-language": "Хэлэн:",
+       "thumbnail-more": "Томоруулха",
+       "tooltip-pt-login": "Бидэ та нэбтэрхые хүсэнэбди; гэбэшье, та заататай байна.",
+       "tooltip-pt-logout": "Гараха",
+       "tooltip-ca-talk": "Агуулгын хуудаһанай хэлэлсэл",
+       "tooltip-ca-edit": "Та энэ хуудаһа заһабарилжа боломжотой. \"Уридшалан үзэлхэ\" гэһэн тобшые хэрэглээрэй.",
+       "tooltip-ca-addsection": "Шэнэ хэһэг эхилүүлхэ",
+       "tooltip-ca-history": "Энэ хуудаһанай үмэнэхи заһабаринууд",
+       "tooltip-ca-delete": "энэ хуудаһые усадхаха",
+       "tooltip-search": "{{SITENAME}} сайтһаа бэдэрхэ",
+       "tooltip-search-fulltext": "Хуудаһанһаа бэдэрхэ бэшэбэри",
+       "tooltip-p-logo": "Нюур хуудаһада ошохо",
+       "tooltip-n-mainpage": "Нюур хуудаһада ошохо",
+       "tooltip-n-mainpage-description": "Нюур хуудаһада ошохо",
+       "tooltip-n-portal": "Түһэл, өөрын оруулалта, туһалбари тухай мэдээлэл",
+       "tooltip-n-currentevents": "Мүнөө боложо байгаа үйлэ ябадал тухай һониниие дуулаха",
+       "tooltip-n-recentchanges": "Тус Викиин һүүлшын хубилалтанууд",
+       "tooltip-n-randompage": "Гэнтын хуудаһые нээхэ",
+       "tooltip-n-help": "Туһалалсалгые олохо газар",
+       "tooltip-t-whatlinkshere": "Эндэ холбогдоһон хуудаһануудай жагсаалта",
+       "tooltip-t-recentchangeslinked": "Энэ хуудаһаһаа холбоогдоһон хуудаһуудай шэнэ хубилалтууд",
+       "tooltip-feed-atom": "Тус хуудаһанай Атом фиид",
+       "tooltip-t-upload": "Файл ашаалха",
+       "tooltip-t-specialpages": "Бүхы тусхай хуудаһанай жагсаалта",
+       "tooltip-t-print": "Энэ хуудаһанай хэблэхэ хубилбари",
+       "tooltip-ca-nstab-main": "Үгүүлэлэй хуудаһые үзэхэ",
+       "exif-languagecode": "Хэлэн",
+       "exif-iimcategory": "Анги",
+       "specialpages": "Тусхай хуудаһан"
 }
index a7bbd8e..880f255 100644 (file)
        "viewyourtext": "Vostè pot veure i copiar la font de ' ' les modificacions ' ' d'aquesta pàgina:",
        "protectedinterface": "Aquesta pàgina proporciona el text de la interfície del software d'aquest wiki i està protegida per evitar els abusos.\nPer afegir o canviar les traduccions per a tots els wikis, feu servir [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
        "editinginterface": "'''Avís:''' Esteu editant una pàgina que conté cadenes de text per a la interfície d'aquest programari. Tingueu en compte que els canvis que es fan a aquesta pàgina afecten a l'aparença de la interfície d'altres usuaris. Per afegir o modificar traduccions a totes les wikis, plantegeu-vos utilitzar la [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
+       "translateinterface": "Per afegir o canviar traduccions per a tots els wikis, utilitzeu [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
        "cascadeprotected": "Aquesta pàgina està protegida i no es pot modificar perquè està inclosa en {{PLURAL:$1|la següent pàgina, que té|les següents pàgines, que tenen}} activada l'opció de «protecció en cascada»:\n$2",
        "namespaceprotected": "No teniu permís per a modificar pàgines en l'espai de noms '''$1'''.",
        "customcssprotected": "No teniu permisos per editar la pàgina CSS perquè conté els paràmetres personals d'un altre usuari.",
        "mergehistory-same-destination": "Les pàgines d'origen i de destinació no poden ser la mateixa",
        "mergehistory-reason": "Motiu:",
        "mergelog": "Registre de fusions",
-       "pagemerge-logentry": "s'ha fusionat [[$1]] en [[$2]] (revisions fins a $3)",
        "revertmerge": "Desfusiona",
        "mergelogpagetext": "A sota hi ha una llista de les fusions més recents d'una pàgina d'historial en una altra.",
        "history-title": "«$1»: Historial de revisions",
        "gender-female": "Femení",
        "prefs-help-gender": "Opcional: s'usa perquè el programari se us adreci amb missatges amb el gènere adient. Aquesta informació serà pública.",
        "email": "Correu electrònic",
-       "prefs-help-realname": "<nowiki>*</nowiki> Nom real (opcional): si escolliu donar aquesta informació es utilitzarà per a donar-vos l’atribució de la vostra feina.",
+       "prefs-help-realname": "El nom real és opcional.\nSi escolliu donar aquesta informació, s'utilitzarà per a donar-vos l'atribució del vostre treball.",
        "prefs-help-email": "L'adreça electrònica és opcional, però permet l'enviament d'una nova contrasenya en cas que oblideu l'actual.",
        "prefs-help-email-others": "També podeu optar per deixar que els altres contactin amb vós a través de la pàgina personal de discussió, sense necessitat de desvetllar la vostra identitat.",
        "prefs-help-email-required": "Cal una adreça de correu electrònic.",
        "prefs-tabs-navigation-hint": "Consell: Podeu utilitzar les tecles de cursor de dreta i esquerra per a navegar entre les pestanyes.",
        "email-address-validity-valid": "L'adreça de correu electrònic sembla vàlida",
        "email-address-validity-invalid": "Escriviu una adreça vàlida de correu electrònic",
-       "userrights": "Gestió dels permisos d'usuari",
+       "userrights": "Gestió dels permisos dusuari",
        "userrights-lookup-user": "Gestiona els grups d'usuari",
        "userrights-user-editname": "Introduïu un nom d'usuari:",
        "editusergroup": "Edita els grups d'usuaris",
        "statistics": "Estadístiques",
        "statistics-header-pages": "Estadístiques de pàgines",
        "statistics-header-edits": "Estadístiques d'edicions",
-       "statistics-header-views": "Visualitza estadístiques",
        "statistics-header-users": "Estadístiques d'usuari",
        "statistics-header-hooks": "Altres estadístiques",
        "statistics-articles": "Pàgines de contingut",
        "statistics-files": "Fitxers carregats",
        "statistics-edits": "Edicions en pàgines des que el projecte {{SITENAME}} fou instal·lat",
        "statistics-edits-average": "Edicions per pàgina de mitjana",
-       "statistics-views-total": "Visualitzacions totals",
-       "statistics-views-total-desc": "No hom inclou l'accès a pàgines inexistents o pàgines especials",
-       "statistics-views-peredit": "Visualitzacions per modificació",
        "statistics-users": "[[Special:ListUsers|Usuaris]] registrats",
        "statistics-users-active": "Usuaris actius",
        "statistics-users-active-desc": "Usuaris que han dut a terme alguna acció en {{PLURAL:$1|l'últim dia|els últims $1 dies}}",
-       "statistics-mostpopular": "Pàgines més visualitzades",
        "pageswithprop": "Pàgines amb una propietat de pàgina",
        "pageswithprop-legend": "Pàgines amb una propietat de pàgina",
        "pageswithprop-text": "Aquesta pàgina llista les pàgines que utilitzen una propietat de pàgina en particular.",
        "uncategorizedtemplates": "Plantilles sense categoria",
        "unusedcategories": "Categories sense cap ús",
        "unusedimages": "Fitxers no utilitzats",
-       "popularpages": "Pàgines populars",
        "wantedcategories": "Categories demanades",
        "wantedpages": "Pàgines demanades",
        "wantedpages-badtitle": "Títol invàlid al conjunt de resultats: $1",
        "pager-older-n": "{{PLURAL:$1|anterior|$1 anteriors}}",
        "suppress": "Oversight",
        "querypage-disabled": "Aquesta pàgina especial està desactivada per a no perjudicar el rendiment.",
+       "apihelp": "Ajuda de l'API",
+       "apihelp-no-such-module": "No s'ha trobat el mòdul \"$1\".",
        "booksources": "Obres de referència",
        "booksources-search-legend": "Cerca fonts de llibres",
        "booksources-search": "Cerca",
        "wlheader-enotif": "La notificació per correu electrònic està habilitada.",
        "wlheader-showupdated": "Les pàgines que s'han canviat des de la vostra darrera visita es mostren en '''negreta'''.",
        "wlnote": "A sota hi ha {{PLURAL:$1|el darrer canvi|els darrers <strong>$1</strong> canvis}} en {{PLURAL:$2|la darrera hora|les <strong>$2</strong> darreres hores}}, a $4 del $3.",
-       "wlshowlast": "<small>- Mostra les darreres $1 hores, els darrers $2 dies o </small>",
+       "wlshowlast": "Mostra les darreres $1 hores, els darrers $2 dies",
        "watchlist-options": "Opcions de la llista de seguiment",
        "watching": "S'està vigilant...",
        "unwatching": "S'està desatenent...",
        "protect-othertime": "Un altre termini:",
        "protect-othertime-op": "un altre termini",
        "protect-existing-expiry": "Data d'expiració existent: $2 a les $3",
+       "protect-existing-expiry-infinity": "Temps d'expiració existent: infinit",
        "protect-otherreason": "Motiu diferent o addicional:",
        "protect-otherreason-op": "Altres motius",
        "protect-dropdown": "*Motius comuns de protecció\n** Vandalisme excessiu\n** Spam excessiu\n** Guerra d'edicions improductiva\n** Pàgina amb alt trànsit",
        "mycontris": "Contribucions",
        "contribsub2": "Per a {{GENDER:$3|$1}} ($2)",
        "contributions-userdoesnotexist": "El compte d'usuari «$1» no està registrat.",
-       "nocontribs": "No s'ha trobat canvis que encaixessin amb aquests criteris.",
+       "nocontribs": "No s’ha trobat cap canvi que encaixessi amb aquests criteris.",
        "uctop": "(actual)",
        "month": "Mes (i anteriors):",
        "year": "Any (i anteriors):",
        "badipaddress": "L'adreça IP no té el format correcte.",
        "blockipsuccesssub": "S'ha blocat amb èxit",
        "blockipsuccesstext": "S'ha {{GENDER:$1|blocat|blocada}} [[Special:Contributions/$1|$1]] .<br />\nVegeu la [[Special:BlockList|llista de bloqueigs]] per revisar-los.",
-       "ipb-blockingself": "Esteu a punt de blocar-vos a vós mateix! Esteu segurs de voler-ho fer?",
-       "ipb-confirmhideuser": "Esteu a punt de bloquejar un usuari que està marcat amb l'opció «amaga l'usuari». Això suprimirà el seu nom a totes les llistes i registres. Esteu segurs de voler-ho fer?",
+       "ipb-blockingself": "Esteu a punt de blocar el vostre propi compte! Esteu segur de voler-ho fer?",
+       "ipb-confirmhideuser": "Esteu a punt de blocar un usuari amb l'opció d'amagar el seu nom. Això suprimirà el seu nom a totes les llistes i registres. Esteu segur de voler-ho fer?",
        "ipb-confirmaction": "Si esteu segur que voleu fer-ho, marqueu el camp «{{int:ipb-confirm}}» a la part inferior.",
        "ipb-edit-dropdown": "Edita les raons per a blocar",
        "ipb-unblock-addr": "Desbloca $1",
        "pageinfo-robot-policy": "Indexació per robots",
        "pageinfo-robot-index": "Permès",
        "pageinfo-robot-noindex": "No permès",
-       "pageinfo-views": "Número de visites",
        "pageinfo-watchers": "Número d'usuaris que vigilen la pàgina",
        "pageinfo-few-watchers": "Menys de $1 {{PLURAL:$1|observador|observadors}}",
        "pageinfo-redirects-name": "Nombre de redireccions a aquesta pàgina",
        "table_pager_limit": "Mostra $1 elements per pàgina",
        "table_pager_limit_label": "Ítems per pàgina:",
        "table_pager_limit_submit": "Vés-hi",
-       "table_pager_empty": "Sense resultats",
+       "table_pager_empty": "No hi ha resultats",
        "autosumm-blank": "Pàgina blanquejada",
        "autosumm-replace": "Contingut canviat per «$1».",
        "autoredircomment": "Redirecció a [[$1]]",
        "specialpages-group-changes": "Canvis recents i registres",
        "specialpages-group-media": "Informes multimèdia i càrregues",
        "specialpages-group-users": "Usuaris i drets",
-       "specialpages-group-highuse": "Pàgines d'alt ús",
+       "specialpages-group-highuse": "Pàgines d’ús elevat",
        "specialpages-group-pages": "Llistes de pàgines",
-       "specialpages-group-pagetools": "Pàgines d'eines",
+       "specialpages-group-pagetools": "Eines per a les pàgines",
        "specialpages-group-wiki": "Dades i eines",
        "specialpages-group-redirects": "Pàgines especials de redirecció",
        "specialpages-group-spam": "Eines de spam",
        "log-name-pagelang": "Canvia el registre de llengua",
        "log-description-pagelang": "Aquest és un registre dels canvis en les llengües de les pàgines.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ha canviat}} la llengua de la pàgina per a $3 de $4 a $5.",
+       "default-skin-not-found": "Òndia! L'aparença per defecte per al wiki, definit en <code dir=\"ltr\">$wgDefaultSkin</code> com <code>$1</code>, no està disponible.\n\nLa vostra instal·lació sembla que inclou les següents aparences. Consulteu [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Configuració d'aparences] per a la informació de com habilitar-les i triar-ne el valor per defecte.\n\n$2\n\n; Si heu acabat d'instal·lar MediaWiki:\n: Probablement l'instal·làveu des de git, o directament des del codi font utilitzant algun altre mètode. Això és l'esperat. Intenteu instal·lar algunes aparences des del [https://www.mediawiki.org/wiki/Category:All_skins directori d'aparences de mediawiki.org], per:\n: * Descarregar l'[https://www.mediawiki.org/wiki/Download instal·lador tarball], que ve amb diverses aparences i ampliacions. Podeu copiar i enganxar el directori <code>skins/</code> des d'aquí.\n: * Clonar un dels repositoris <code>mediawiki/skins/*</code> a través de git en el directori <code dir=\"ltr\">skins/</code> de la vostra instal·lació de MediaWiki.\n: Fent això no s'hauria d'interferir amb el vostre dipòsit git si sou un desenvolupador de MediaWiki.\n\n; Si només heu actualitzat MediaWiki:\n: Per MediaWiki 1.24 i posteriors ja no permet aparences instal·lades automàticament (consulteu [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Aparences autodiscovery]). Podeu enganxar les línies següents en <code>LocalSettings.php</code> per permetre totes les aparences instal·lades actualment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si només heu modificat <code>LocalSettings.php</code>:\n: Reviseu els noms de l'aparença per errors tipogràfics.",
+       "default-skin-not-found-no-skins": "Òndia! L'aparença per defecte per al wiki, definit en <code>$wgDefaultSkin</code> com <code>$1</code>, no està disponible.\n\nNo teniu cap aparença instal·lada.\n\n\n; Si heu acabat d'instal·lar o actualitzar MediaWiki:\n: Probablement l'heu instal·lat des de git, o directament des del codi font utilitzant algun altre mètode. Això és l'esperat. Per MediaWiki 1.24 i posteriors ja no s'inclouen aparences en el repositori principal. Proveu d'instal·lar algunes aparences des del [https://www.mediawiki.org/wiki/Category:All_skins directori d'aparences de mediawiki.org], per:\n: * Descarregar l'[https://www.mediawiki.org/wiki/Download instal·lador tarball], que ve amb diverses aparences i ampliacions. Podeu copiar i enganxar el directori <code>skins/</code> des d'aquí.\n: * Clonar un dels repositoris <code>mediawiki/skins/*</code> a través de git en el directori <code dir=\"ltr\">skins/</code> de la vostra instal·lació de MediaWiki.\n: Fent això no s'hauria d'interferir amb el vostre dipòsit git si sou un desenvolupador de MediaWiki. Consulteu [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: configuració de l'aparença] per informació de com permetre aparences i triar-ne per defecte.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (habilitat)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''inhabilitat''')",
+       "mediastatistics": "Estadístiques dels multimèdia",
+       "mediastatistics-summary": "Les estadístiques sobre els tipus de fitxers pujats. Això només inclou la versió més recent d'un fitxer. S'exclouen les versions antigues o eliminades dels fitxers.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-table-mimetype": "Tipus MIME",
        "mediastatistics-table-extensions": "Extensions possibles",
        "mediastatistics-table-count": "Nombre de fitxers",
        "mediastatistics-table-totalbytes": "Mida combinada",
+       "mediastatistics-header-unknown": "Desconegut",
        "mediastatistics-header-bitmap": "Imatges de mapa de bits",
+       "mediastatistics-header-drawing": "Dibuixos (imatges vectorials)",
        "mediastatistics-header-audio": "Àudio",
        "mediastatistics-header-video": "Vídeos",
+       "mediastatistics-header-multimedia": "Multimèdia enriquida",
        "mediastatistics-header-office": "Oficina",
+       "mediastatistics-header-text": "Textual",
        "mediastatistics-header-executable": "Executables",
        "mediastatistics-header-archive": "Formats comprimits",
-       "json-error-syntax": "Error de sintaxi"
+       "json-warn-trailing-comma": "$1 al final {{PLURAL:$1|coma ha estat eliminada|comes han estat eliminades}} de JSON",
+       "json-error-unknown": "S'ha produït un error amb el JSON. Error: $1",
+       "json-error-depth": "S'ha superat la profunditat màxima de pila",
+       "json-error-state-mismatch": "JSON incorrecte o no vàlid",
+       "json-error-ctrl-char": "Error de caràcter de control, possiblement incorrectament codificat",
+       "json-error-syntax": "Error de sintaxi",
+       "json-error-utf8": "Caràcters UTF-8 amb errors de format, probablement mal codificats",
+       "json-error-recursion": "Una o més referències recursives en el valor per ser codificat",
+       "json-error-inf-or-nan": "Un o més valors NAN (número no assignat) o INF (infinit) en el valor per ser codificat",
+       "json-error-unsupported-type": "S'ha donat un valor d'un tipus que no pot ser codificat"
 }
index e6b9022..1ce81c6 100644 (file)
@@ -1,85 +1,85 @@
 {
-    "@metadata": {
-        "authors": [
-            "Weekeejames"
-        ]
-    },
-    "january": "Enero",
-    "february": "Febrero",
-    "march": "Marzo",
-    "april": "Abril",
-    "may_long": "Mayo",
-    "june": "Junio",
-    "july": "Julio",
-    "august": "Agosto",
-    "september": "Septiembre",
-    "october": "Octubre",
-    "november": "Noviembre",
-    "december": "Diciembre",
-    "april-gen": "Abril",
-    "august-gen": "Agosto",
-    "december-gen": "Diciembre",
-    "apr": "Abr",
-    "aug": "Ago",
-    "dec": "Dic",
-    "category_header": "Maga articulo na categoria \"$1\"",
-    "about": "Acerca de",
-    "article": "El laman del pagina",
-    "tagline": "Estava na {{SITENAME}}",
-    "help": "Ayuda",
-    "search": "Busqueda",
-    "searchbutton": "Busca",
-    "searcharticle": "Anda",
-    "history_short": "Historia",
-    "printableversion": "El version que puede imprenta",
-    "edit": "Revisa",
-    "delete": "Bora",
-    "talkpagelinktext": "Cuento",
-    "personaltools": "Maga herramientas personal",
-    "articlepage": "Mira con el laman del pagina",
-    "views": "Maga vista",
-    "categorypage": "Mira con el pagina de categoria",
-    "otherlanguages": "na otro maga lenguaje",
-    "lastmodifiedat": "Ya modifica con este pagina por ultimo vez en hora $2 del $1.",
-    "aboutsite": "Acerca de {{SITENAME}}",
-    "aboutpage": "Project:Acerca de",
-    "copyright": "Obtenible el maga texto de este Wikipedia bajo los terminos y maga condicion del <i>$1</i>.",
-    "copyrightpage": "{{ns:project}}:Maga derecho del autor",
-    "currentevents": "Maga sucesos actual",
-    "currentevents-url": "Project:Maga sucesos actual",
-    "disclaimers": "Maga aviso legal",
-    "disclaimerpage": "Project:El maga limitacion general de maga responsabilidad",
-    "mainpage": "El Primero Pagina",
-    "mainpage-description": "El Primero Pagina",
-    "portal": "Portal del Comunidad",
-    "privacy": "Policia na proteccion del maga informacion",
-    "privacypage": "Project:Policia na proteccion del maga informacion",
-    "retrievedfrom": "Obtenido de \"$1\"",
-    "editsectionhint": "Revisa el seccion: $1",
-    "site-rss-feed": "$1 Informacion de RSS",
-    "site-atom-feed": "$1 Informacion de Atom",
-    "red-link-title": "$1 (jendeh ta existi el pagina)",
-    "acct_creation_throttle_hit": "Ya crea ya {{PLURAL:$1|un cuenta registro|$1 maga cuenta registro}} el maga visita de este wiki usando el de uste direccion de IP  en el ultimo dia. Entonces, ya sobra ya na maximo numero que ta puede permiti el sistema para crea cuenta. Por causa de este razon, no puede mas crea nuevo cuenta usando el de uste direccion de IP este maga tiempo.",
-    "accountcreated": "El cuenta registro del usuario es creando",
-    "accountcreatedtext": "Creao ya el cuenta registro por usuario $1.",
-    "changepassword": "Cambia con el contraseña",
-    "blockedtitle": "El usuario es prohibido o bloqueado",
-    "accmailtitle": "Enviao ya el contraseña.",
-    "accmailtext": "El contraseña que el sistema ya escogi automatico por usuario [[User talk:$1|$1]] enviado ya a $2.\n\nEl contraseña de este nuevo cuenta puede cambia na pagina ''[[Special:ChangePassword|cambia el contraseña]]'' despues el autenticacion.",
-    "search-result-size": "$1 ({{PLURAL:$2|1 palabra|$2 maga palabra}})",
-    "recentchanges": "Maga Reciente Cambio",
-    "randompage": "Pagina Escujido Automatico",
-    "allarticles": "Todo maga articulo",
-    "categories": "Maga categoria",
-    "categoriespagetext": "El maga siguiente {{PLURAL:$1|categoria tiene|categoria tiene}} maga pagina o medio de comunicacion.\n\nEl maga [[Special:UnusedCategories|categoria sin usando]] jendeh ta abuya aqui.\n\nPor favor mira tambien el maga [[Special:WantedCategories|categoria requeridas]].",
-    "watch": "Vicia",
-    "created": "creao",
-    "changed": "cambiao",
-    "actioncomplete": "Completo el accion",
-    "contributions": "Maga contribuciones del usuario",
-    "blockip": "Usuario prohibido",
-    "blockipsuccesssub": "El prohibicion es confirmado con exito",
-    "contribslink": "Maga contribuciones",
-    "tooltip-search": "Busca na {{SITENAME}}",
-    "tooltip-n-mainpage": "Visita na Primero Pagina"
+       "@metadata": {
+               "authors": [
+                       "Weekeejames"
+               ]
+       },
+       "january": "Enero",
+       "february": "Febrero",
+       "march": "Marzo",
+       "april": "Abril",
+       "may_long": "Mayo",
+       "june": "Junio",
+       "july": "Julio",
+       "august": "Agosto",
+       "september": "Septiembre",
+       "october": "Octubre",
+       "november": "Noviembre",
+       "december": "Diciembre",
+       "april-gen": "Abril",
+       "august-gen": "Agosto",
+       "december-gen": "Diciembre",
+       "apr": "Abr",
+       "aug": "Ago",
+       "dec": "Dic",
+       "category_header": "Maga articulo na categoria \"$1\"",
+       "about": "Acerca de",
+       "article": "El laman del pagina",
+       "tagline": "Estava na {{SITENAME}}",
+       "help": "Ayuda",
+       "search": "Busqueda",
+       "searchbutton": "Busca",
+       "searcharticle": "Anda",
+       "history_short": "Historia",
+       "printableversion": "El version que puede imprenta",
+       "edit": "Revisa",
+       "delete": "Bora",
+       "talkpagelinktext": "Cuento",
+       "personaltools": "Maga herramientas personal",
+       "articlepage": "Mira con el laman del pagina",
+       "views": "Maga vista",
+       "categorypage": "Mira con el pagina de categoria",
+       "otherlanguages": "na otro maga lenguaje",
+       "lastmodifiedat": "Ya modifica con este pagina por ultimo vez en hora $2 del $1.",
+       "aboutsite": "Acerca de {{SITENAME}}",
+       "aboutpage": "Project:Acerca de",
+       "copyright": "Obtenible el maga texto de este Wikipedia bajo los terminos y maga condicion del <i>$1</i>.",
+       "copyrightpage": "{{ns:project}}:Maga derecho del autor",
+       "currentevents": "Maga sucesos actual",
+       "currentevents-url": "Project:Maga sucesos actual",
+       "disclaimers": "Maga aviso legal",
+       "disclaimerpage": "Project:El maga limitacion general de maga responsabilidad",
+       "mainpage": "El Primero Pagina",
+       "mainpage-description": "El Primero Pagina",
+       "portal": "Portal del Comunidad",
+       "privacy": "Policia na proteccion del maga informacion",
+       "privacypage": "Project:Policia na proteccion del maga informacion",
+       "retrievedfrom": "Obtenido de \"$1\"",
+       "editsectionhint": "Revisa el seccion: $1",
+       "site-rss-feed": "$1 Informacion de RSS",
+       "site-atom-feed": "$1 Informacion de Atom",
+       "red-link-title": "$1 (jendeh ta existi el pagina)",
+       "acct_creation_throttle_hit": "Ya crea ya {{PLURAL:$1|un cuenta registro|$1 maga cuenta registro}} el maga visita de este wiki usando el de uste direccion de IP  en el ultimo dia. Entonces, ya sobra ya na maximo numero que ta puede permiti el sistema para crea cuenta. Por causa de este razon, no puede mas crea nuevo cuenta usando el de uste direccion de IP este maga tiempo.",
+       "accountcreated": "El cuenta registro del usuario es creando",
+       "accountcreatedtext": "Creao ya el cuenta registro por usuario $1.",
+       "changepassword": "Cambia con el contraseña",
+       "blockedtitle": "El usuario es prohibido o bloqueado",
+       "accmailtitle": "Enviao ya el contraseña.",
+       "accmailtext": "El contraseña que el sistema ya escogi automatico por usuario [[User talk:$1|$1]] enviado ya a $2.\n\nEl contraseña de este nuevo cuenta puede cambia na pagina ''[[Special:ChangePassword|cambia el contraseña]]'' despues el autenticacion.",
+       "search-result-size": "$1 ({{PLURAL:$2|1 palabra|$2 maga palabra}})",
+       "recentchanges": "Maga Reciente Cambio",
+       "randompage": "Pagina Escujido Automatico",
+       "allarticles": "Todo maga articulo",
+       "categories": "Maga categoria",
+       "categoriespagetext": "El maga siguiente {{PLURAL:$1|categoria tiene|categoria tiene}} maga pagina o medio de comunicacion.\n\nEl maga [[Special:UnusedCategories|categoria sin usando]] jendeh ta abuya aqui.\n\nPor favor mira tambien el maga [[Special:WantedCategories|categoria requeridas]].",
+       "watch": "Vicia",
+       "created": "creao",
+       "changed": "cambiao",
+       "actioncomplete": "Completo el accion",
+       "contributions": "Maga contribuciones del usuario",
+       "blockip": "Usuario prohibido",
+       "blockipsuccesssub": "El prohibicion es confirmado con exito",
+       "contribslink": "Maga contribuciones",
+       "tooltip-search": "Busca na {{SITENAME}}",
+       "tooltip-n-mainpage": "Visita na Primero Pagina"
 }
index 57ed5e4..3cd8d75 100644 (file)
@@ -13,8 +13,8 @@
                ]
        },
        "tog-underline": "下劃綫鏈接",
-       "tog-hideminor": "藏起最近改變其過要修改",
-       "tog-hidepatrolled": "起最近改變其巡邏修改",
+       "tog-hideminor": "囥起最近改變其過幼修改",
+       "tog-hidepatrolled": "起最近改變其巡邏修改",
        "tog-extendwatchlist": "敆擴展監視單單臺中顯示所有其更改,伓啻最近其更改",
        "tog-numberheadings": "自動編號其標題",
        "tog-showtoolbar": "顯示編輯工具欄",
        "tog-watchdefault": "添加我編輯其頁面共文件遘我其監視單",
        "tog-watchmoves": "添加我移動其頁面共文件遘我其監視單",
        "tog-watchdeletion": "添加我刪掉其頁面共文件遘我其監視單",
-       "tog-minordefault": "默認共所有其編輯都當作過修改",
+       "tog-minordefault": "默認共所有其編輯都當作過修改",
        "tog-previewontop": "敆編輯框以前顯示預覽",
        "tog-previewonfirst": "敆頭蜀回編輯時候看預覽",
        "tog-enotifwatchlistpages": "我其監視單有變時候,發電子郵件乞我",
        "tog-enotifusertalkpages": "我其討論頁有變時候,發電子郵件乞我",
-       "tog-enotifminoredits": "å\8d³ä½¿æ\98¯é\81\8eè¦\81編輯ï¼\8cä¹\9fè\91\97發電子郵件乞我",
+       "tog-enotifminoredits": "å°±ã\91\9aè¬\9bæ\98¯é\81\8e幼編輯ï¼\8cä¹\9fç\9d\80發電子郵件乞我",
        "tog-shownumberswatching": "顯示監視用戶其數量",
        "tog-oldsig": "存在其簽名",
        "tog-fancysig": "共簽名當成維基文本(無自動鏈接)",
        "tog-uselivepreview": "使即時預覽(敆𡅏實驗)",
        "tog-forceeditsummary": "提醒我行遘蜀萆空白其編輯總結",
-       "tog-watchlisthideown": "趁監視單𡅏起我其修改",
-       "tog-watchlisthidebots": "起監視單其機器人其修改",
-       "tog-watchlisthideminor": "藏起監視單其過要修改",
-       "tog-watchlisthideliu": "共已經躒底其用戶其編輯趁監視單𡅏起咯",
-       "tog-watchlisthideanons": "共匿名其用戶其編輯趁監視單𡅏起咯",
-       "tog-watchlisthidepatrolled": "共巡查其編輯趁監視單𡅏起咯",
+       "tog-watchlisthideown": "趁監視單𡅏起我其修改",
+       "tog-watchlisthidebots": "起監視單其機器人其修改",
+       "tog-watchlisthideminor": "囥起監視單其過幼修改",
+       "tog-watchlisthideliu": "共已經躒底其用戶其編輯趁監視單𡅏起咯",
+       "tog-watchlisthideanons": "共匿名其用戶其編輯趁監視單𡅏起咯",
+       "tog-watchlisthidepatrolled": "共巡查其編輯趁監視單𡅏起咯",
        "tog-ccmeonemails": "共我發乞其他用戶其電子郵件其備份發乞我。",
        "tog-diffonly": "伓使敆下底其顯示𣍐蜀様其地方顯示頁面內容",
        "tog-showhiddencats": "㪗藏類別",
        "subcategories": "子類別",
        "category-media-header": "「$1」類別下底其媒體",
        "category-empty": "''茲類別下底現在無文章也無媒體。''",
-       "hidden-categories": "{{PLURAL:$1}}乞起其類別",
-       "hidden-category-category": "已經起其類別",
+       "hidden-categories": "{{PLURAL:$1}}乞起其類別",
+       "hidden-category-category": "已經起其類別",
        "category-subcat-count": "{{PLURAL:$2|茲萆分類僅包括下底蜀萆子分類|茲分類有 {{PLURAL:$1|子分類|$1 萆子分類}},總計 $2 萆。}}",
        "category-subcat-count-limited": "茲蜀萆類別下底有子類別{{PLURAL:$1}}",
        "category-article-count": "{{PLURAL:$2|茲蜀萆類別儷有下底蜀頁。|共總有$2頁,下底其茲$1頁敆茲蜀萆類別𡅏。}}",
        "talkpage": "討論茲頁",
        "talkpagelinktext": "討論",
        "specialpage": "特殊頁",
-       "personaltools": "å\80\8b人å\85¶å®¶ç§\81",
+       "personaltools": "å\80\8b人å\85¶å\82¢ç§\81è\8a±",
        "articlepage": "覷蜀覷內容頁面",
        "talk": "討論",
        "views": "覷蜀覷",
-       "toolbox": "家ç§\81",
+       "toolbox": "å\82¢ç§\81è\8a±",
        "userpage": "覷蜀覷用戶頁面",
        "projectpage": "看工程頁",
        "imagepage": "覷蜀覷文件頁面",
        "privacypage": "Project:隱私政策",
        "badaccess": "權限錯誤",
        "badaccess-group0": "汝𣍐使做汝要求其茲蜀萆動作。",
-       "badaccess-groups": "汝要求其動作è\91\97$2åº\95è£\8fç\94¨æ\88¶æ\89\8dæ\9c\83å\81\9aå\85¶ï¼\9a$1{{PLURAL:$1}}",
+       "badaccess-groups": "汝要求其動作ç\9d\80$2è£\8få\8b¢ç\94¨æ\88¶ä¹\8dæ\9c\83å\81\9aå\85¶ï¼\9a$1{{PLURAL:$1}}",
        "versionrequired": "需要版本$1其MediaWiki",
        "versionrequiredtext": "需要MediaWiki其版本$1來使茲蜀頁。\n覷[[Special:Version|版本頁面]]。",
        "ok": "好",
        "editsectionhint": "修改段:$1",
        "toc": "目錄",
        "showtoc": "顯示",
-       "hidetoc": "起",
+       "hidetoc": "起",
        "collapsible-collapse": "隱",
        "collapsible-expand": "現",
        "thisisdeleted": "卜看或者恢復$1?",
        "badtitle": "獃其標題",
        "perfcached": "下底其數據乞緩存固加可能伓是最新其。{{PLURAL:$1|$1條結果}}會敆緩存臺中討著。",
        "perfcachedts": "下底其數據已經緩存過了,最後更新遘$1。{{PLURAL:$4|$4條結果}}會敆緩存臺中討著。",
-       "querypage-no-updates": "茲蜀頁其更新乞禁止了。\n數據塊現刻時𣍐更新了。",
+       "querypage-no-updates": "茲蜀頁其更新乞禁止了。\n數據塊現刻時𣍐更新了。",
        "viewsource": "看源代碼",
        "viewsource-title": "覷蜀覷$1其源代碼",
        "actionthrottled": "行動乞取消咯",
        "hr_tip": "水平線(廮𡅏保護使其)",
        "summary": "總結:",
        "subject": "主題/標題:",
-       "minoredit": "過修改",
+       "minoredit": "過修改",
        "watchthis": "監視茲頁",
        "savearticle": "保存茲頁",
        "preview": "預覽",
        "showpreview": "顯示預覽",
        "showdiff": "看改變其部分",
-       "anoneditwarning": "'''警告:'''汝未躒底。\n汝起IP地址會乞記錄敆茲頁面修改歷史底裏。",
+       "anoneditwarning": "'''警告:'''汝未躒底。\n汝其IP地址會乞記着茲頁面其修改歷史裏勢。",
        "missingcommenttext": "起動敆下底輸底蜀條評論。",
        "summary-preview": "總結預覽:",
        "blockedtitle": "用戶乞封鎖了",
        "readonlywarning": "'''警告:數據庫已經乞鎖定來保養去了,故此汝現刻時𣍐使保存汝其編輯。'''\n汝可能希望複製再粘貼汝其文字遘蜀萆文本文件𡅏,再共伊保存起咯。\n\n鎖定伊其管理員給出茲蜀萆解釋:$1",
        "protectedpagewarning": "''警告:茲蜀頁已經乞保護起去了,故此囇有管理員權力其用戶乍會使修改伊。'''\n最新其日誌已經敆下底提供來做參考:",
        "semiprotectedpagewarning": "'''注意:''' 茲蜀頁已經乞保護起去了,故此囇有註冊其用戶乍會使修改伊。\n最新其日誌已經敆下底提供來做參考:",
-       "templatesused": "{{PLURAL:$1}}茲頁底裏使其模板:",
+       "templatesused": "{{PLURAL:$1}}茲頁裏勢使其模板:",
        "templatesusedpreview": "茲萆預覽使其{{PLURAL:$1|模板}}:",
        "templatesusedsection": "茲蜀段使其{{PLURAL:$1|模板}}:",
        "template-protected": "(保護)",
        "template-semiprotected": "(半保護)",
-       "recreate-moveddeleted-warn": "'''注意:汝重新創建其茲蜀頁面以前已經乞刪掉了。'''\n\n汝著考慮蜀下到底是伓是合適繼續去編輯茲蜀頁。茲蜀頁其刪除記錄共移動記錄都敆嚽塊共汝看:",
+       "recreate-moveddeleted-warn": "'''注意:汝敆𡅏重新創建舊底已經乞刪唻其頁面。'''\n\n汝應該考慮蜀下繼續去編輯茲蜀頁到底是伓是合適其。茲蜀頁其刪除記錄共移動記錄都敆嚽塊:",
        "undo-summary": "取消[[Special:Contributions/$2|$2]]([[User talk:$2|Tō̤-lâung]])其$1修改",
        "cantcreateaccounttitle": "無能獃開賬戶",
        "viewpagelogs": "看茲頁其歷史",
        "last": "前",
        "page_first": "頭",
        "page_last": "尾",
-       "histlegend": "差別揀選:選擇卜比並其版本,再擪「回車」('''Enter''')或者擪底底其'''比並揀選版本'''。<br />\n說明:(伶)=共第一新其版本比並,(前)=共前蜀版本比並,~=過修改。",
+       "histlegend": "差別揀選:選擇卜比並其版本,再擪「回車」('''Enter''')或者擪底底其'''比並揀選版本'''。<br />\n說明:(伶)=共第一新其版本比並,(前)=共前蜀版本比並,~=過修改。",
        "history-fieldset-title": "瀏覽歷史",
        "history-show-deleted": "囇刪掉去",
        "histfirst": "最旧",
        "recentchanges": "這般其改變",
        "recentchanges-summary": "敆維基茲頁跟蹤這般其改變。",
        "recentchanges-label-newpage": "茲蜀萆修改創建新其蜀頁",
-       "recentchanges-label-minor": "茲是蜀萆過修改",
+       "recentchanges-label-minor": "茲是蜀萆過修改",
        "recentchanges-label-bot": "茲蜀萆修改是機器人做其",
        "rclistfrom": "顯示由$3 $2開始其新其改變",
-       "rcshowhideminor": "$1過修改",
+       "rcshowhideminor": "$1過修改",
        "rcshowhidebots": "$1機器人",
        "rcshowhideliu": "$1躒底用戶",
        "rcshowhideanons": "$1無名用戶",
        "minoreditletter": "~",
        "newpageletter": "!",
        "boteditletter": "^",
-       "rc-enhanced-hide": "起細節",
+       "rc-enhanced-hide": "起細節",
        "recentchangeslinked": "相關其改變",
        "recentchangeslinked-feed": "相關其改變",
        "recentchangeslinked-toolbox": "相關其改變",
        "speciallogtitlelabel": "目標(稱呼或者用戶):",
        "log": "日誌",
        "alllogstext": "所有會使趁{{SITENAME}}獲得其日誌其都合併顯示。\n汝會使使揀選日誌類型、用戶名(大小寫敏感),或者受影響其頁面(大小寫敏感)其方法來縮小視角。",
-       "logempty": "日誌底裏討要𣍐著項目",
+       "logempty": "日誌裏勢討要𣍐着項目",
        "allpages": "所有頁面",
        "nextpage": "下蜀頁($1)",
        "prevpage": "前蜀頁($1)",
        "allinnamespace": "所有頁面($1命名空間)",
        "allpagessubmit": "去",
        "allpagesprefix": "按頭部顯示頁面:",
-       "allpagesbadtitle": "給出其頁面其標題是𣍐合法其,或者有蜀萆跨語言或跨維基其前綴。伊可能包括蜀萆或者価萆𣍐使廮標題底裏其字符。",
+       "allpagesbadtitle": "給出其頁面其標題是𣍐合法其,或者有蜀萆跨語言或跨維基其前綴。伊可能包括蜀萆或者価萆𣍐使廮標題裏勢其字符。",
        "categories": "類別",
        "deletedcontributions": "乞刪掉其用戶貢獻",
        "deletedcontributions-title": "乞刪掉其用戶貢獻",
        "sp-contributions-search": "尋討貢獻",
        "sp-contributions-username": "IP地址或者用戶名:",
        "sp-contributions-submit": "尋討",
-       "whatlinkshere": "甚乇鏈遘塊",
+       "whatlinkshere": "甚乇鏈遘塊",
        "whatlinkshere-title": "鏈接遘$1其頁面",
        "whatlinkshere-page": "頁面:",
        "linkshere": "下底其頁面鏈接遘'''[[:$1]]''':",
        "tooltip-n-mainpage-description": "覷蜀覷頭頁",
        "tooltip-n-recentchanges": "維基百科最近其改變其單單",
        "tooltip-n-randompage": "隨便罔看",
-       "tooltip-t-whatlinkshere": "鏈遘塊其所有維基頁面其單單",
+       "tooltip-t-whatlinkshere": "鏈遘塊其所有維基頁面其單單",
        "tooltip-t-recentchangeslinked": "鏈遘茲頁其頁面其最近修改",
        "tooltip-t-contributions": "茲蜀用戶其貢獻單單",
        "tooltip-t-emailuser": "共茲蜀隻用戶發電子郵件",
        "tooltip-ca-nstab-project": "看工程頁",
        "tooltip-ca-nstab-image": "看文件頁",
        "tooltip-ca-nstab-template": "覷蜀覷模板",
-       "tooltip-minoredit": "共茲標記成過修改",
+       "tooltip-minoredit": "共茲標記成過修改",
        "tooltip-save": "保存汝其改變 [alt-s]",
        "tooltip-preview": "預覽汝其改變,起動敆汝保存以前使茲。",
        "tooltip-watch": "共茲蜀頁加遘汝其監視單[alt-w]",
        "confirmemail_needlogin": "汝著$1來確定汝其電子郵件地址。",
        "confirmemail_loggedin": "汝其電子郵件地址現在已經確定去了。",
        "confirmemail_body": "有人(可能是汝)敆IP地址$1𡅏已經使茲蜀萆電子郵件地址來註冊蜀萆賬戶「$2」去了。\n\n卜想確認茲蜀萆賬戶當真是汝其,固加敆{{SITENAME}}激活電子郵件特點,許敆汝其瀏覽器𡅏拍開茲蜀萆鏈接:\n\n$3\n\n如果汝*無*註冊茲賬戶,單擊茲蜀萆鏈接來取消電子郵件確認:\n\n$5\n\n茲蜀萆確認代碼會敆$4時候過期。",
-       "deletedwhileediting": "'''警告:'''茲蜀頁å·²ç¶\93æ\95\86æ±\9d編輯以å\89\8då\88ªæ\8e\89å\8e»äº\86ï¼\81",
+       "deletedwhileediting": "'''警告:'''茲蜀頁æ\95\86æ±\9d編輯以å\89\8då·²ç¶\93ä¹\9eå\88ªå\94»äº\86ï¼\81",
        "recreate": "重新開",
        "confirm_purge_button": "好",
        "imgmultipageprev": "← 前蜀頁",
index 32a5fcc..8c9c020 100644 (file)
        "savearticle": "Дlайазъé агlо",
        "preview": "Хьалха хьажар",
        "showpreview": "Хьалха хьажар",
-       "showdiff": "Ð¥lоÑ\82Ñ\82ина Ð±Ð¾Ð»Ñ\83 Ñ\85ийÑ\86ам",
+       "showdiff": "Ð\91ина Ñ\85ийÑ\86амаÑ\88ка Ñ\85Ñ\8cажаÑ\80",
        "blankarticle": "<strong>ДӀахьедар:</strong> Ахьа кхуллуш йолу агӀо еса ю.\nЮху кнопка «{{int:savearticle}}» тӀетаӀаяхь, агӀо цхьа чулацам боцуш кхуллур ю.",
        "anoneditwarning": "'''Тергам бе''': Ахьа хьай цӀарца тадарш деш дац. Хьан IP-адрес дӀаяздина хира ду хӀокху агӀон истори чу.",
        "anonpreviewwarning": "''Системин чу цагӀахь хьан IP-адрес агӀона истори чу дӀаяз лур ду.''",
        "content-model-text": "цхьалхе йоза",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Кепийн кхайкхамашкахь аргументаш юх-юха лелош йолу агӀонаш",
        "expensive-parserfunction-warning": "'''Тидам бе!''' Ресурсийн функцийн дехарш сов даьлла агӀонаш .\n\nДукху хилла ца деза {{PLURAL:$2|$2 дехар|$2 дехарш|1=цхьана дехар}}, хӀинца $1 {{PLURAL:$1|дехар}} ду.",
        "expensive-parserfunction-category": "Ресурсийн функцийн дехарш сов даьлла агӀонаш",
        "post-expand-template-inclusion-warning": "ДӀахьедар: юкъа тоьхна кепашан жамӀан барам тӀех бокха бу. Цхьайолу кепаш юкъа тухур яц.",
        "mergehistory-comment": "Дехьа яьккхина [[:$1]] [[:$2]] чу: $3",
        "mergehistory-reason": "Бахьна:",
        "mergelog": "Цхьаьнатохаршан тептар",
-       "pagemerge-logentry": "цхьаьнатоьхна [[$1]] а [[$2]] а ($3 кхаччалц)",
        "revertmerge": "Йекъа",
        "mergelogpagetext": "Лахахь гойту тӀеххьара вовшахтоьхна агӀонийн могӀам.",
        "history-title": "$1 — хийцаман истори",
        "search-result-category-size": "$1 {{PLURAL:$1|юкъаяр}} ($2 {{PLURAL:$2|1=бухара категори|бухара категореш}}, $3 {{PLURAL:$3|1=файл|файлаш}}).",
        "search-redirect": "(дlасахьажийна $1)",
        "search-section": "(дакъа $1)",
+       "search-category": "(категори $1)",
        "search-file-match": "(файлан чулацаме тера хилар)",
        "search-suggest": "Хила мега ахьа лоьхарг: $1",
        "search-interwiki-caption": "Гергара проекташ",
-       "search-interwiki-default": "$1 хилам.:",
+       "search-interwiki-default": "$1 хилам:",
        "search-interwiki-more": "(кхин)",
        "search-relatedarticle": "ХӀоттаделларг",
        "searchrelated": "хlоттаделларг",
        "searchall": "массо",
-       "showingresults": "Лахахьа {{PLURAL:$1|гойта|гойту|гойту}} <strong>$1</strong> {{PLURAL:$1|хилам|хиламаш|хиламаш}}, дlаболало кху № <strong>$2</strong>.",
+       "showingresults": "Лахахьа {{PLURAL:$1|гойту}} <strong>$1</strong> {{PLURAL:$1|хилам}}, дӀаболало кху № <strong>$2</strong>.",
        "showingresultsinrange": "Лахахь гайтина {{PLURAL:$1|<strong>1</strong> хилам}} диапазонехь <strong>$2</strong> тӀера <strong>$3</strong> кхаччалц.",
        "search-showingresults": "{{PLURAL:$4|Хилам <strong>$1</strong> <strong>$3</strong> нах}}",
        "search-nonefound": "Дехаре терра цхьа хӀума ца карийна.",
        "statistics": "Статистика",
        "statistics-header-pages": "АгӀонийн жамӀ",
        "statistics-header-edits": "Нисдарийн статистика",
-       "statistics-header-views": "Хьажаран статистика",
        "statistics-header-users": "Декъашхойн статистика",
        "statistics-header-hooks": "Кхин статистика",
        "statistics-articles": "Яззамаш",
        "statistics-files": "Чуяьхна файлаш",
        "statistics-edits": "Нисдаран дукхалла {{grammar:genitive|{{SITENAME}}}} дlа йолайаларца",
        "statistics-edits-average": "АгӀонан нисдарийн юкъара дукхалла",
-       "statistics-views-total": "Массо хьажарш",
-       "statistics-views-total-desc": "Ма лара дӀаяьхна а белхан а агӀонашка хьажар",
-       "statistics-views-peredit": "Нисдаре хьажарш",
        "statistics-users": "[[ВП:ДӀаязбаллар|ДӀаязбелларш]] берриге декъашхой чохь болу [[Special:ListUsers|(могӀам)]]",
        "statistics-users-active": "Жигара декъашхой",
        "statistics-users-active-desc": "Декъашхой, муьлха цхьа хӀум дина болу, кху {{PLURAL:$1|1=тӀаьххьара $1 динахь|тӀаьххьара $1 дийнахь}}",
-       "statistics-mostpopular": "Дукху хьоьжу агӀонаш",
        "pageswithprop": "АгӀонаш цхьадолу къастамашца",
        "pageswithprop-legend": "АгӀонаш цхьадолу къастамашца",
        "pageswithprop-text": "Кхузахь гойтуш ю агӀонаш цхьадолу къастамаш куьйга юху билгал даьхнарш.",
        "brokenredirects-delete": "дӀаяккха",
        "withoutinterwiki": "Юкъарвики-хьажоргаш йоцу агӀонаш",
        "withoutinterwiki-summary": "Лахара агӀонийн юкъарвики-хьажоргаш яц:",
+       "withoutinterwiki-legend": "ТӀетоьхна элпаш",
        "withoutinterwiki-submit": "Гайта",
        "fewestrevisions": "ЧӀогӀа кӀезиг версеш йолу агӀонаш",
        "nbytes": "$1 {{PLURAL:$1|байт}}",
        "uncategorizedtemplates": "Категореш йоцу кепаш",
        "unusedcategories": "Йаьсса категореш",
        "unusedimages": "Лелош йоцу файлаш",
-       "popularpages": "ГӀараяьлла агӀонаш",
        "wantedcategories": "Оьшуш йолу категореш",
        "wantedpages": "Оьшуш йолу агӀонаш",
        "wantedfiles": "Оьшуш йолу файлаш",
        "pager-newer-n": "{{PLURAL:$1|алсамо керла 1|алсамо керланаш $1}}",
        "pager-older-n": "{{PLURAL:$1|алсамо шира 1|алсамо ширниш $1}}",
        "suppress": "Хьулдар",
+       "apihelp": "API гӀо",
+       "apihelp-no-such-module": "Модуль «$1» цакарий.",
        "booksources": "Жайнан хьосташ",
        "booksources-search-legend": "Жайнех лаьцна хаам лахар",
        "booksources-search": "Лаха",
+       "booksources-text": "ХӀокху агӀонгахь гул бина сайтийн тӀе хьажоргийн могӀам оцу чохь шуна жайнах лаьцна хаам каро мега. И ю интернет-туьканаш а категорийн библиотекийн категорешкахь лахаран система а.",
        "specialloguserlabel": "Декъашхо:",
        "speciallogtitlelabel": "Ӏалашо (цӀе я декъашхо):",
        "log": "Тéптарш",
        "locknoconfirm": "Ахьа бакъдеш йолу меттиге билгало йилина яц.",
        "lockdbsuccesssub": "Хаамийн базан блоктоьхна",
        "unlockdbsuccesssub": "Хаамийн базан тӀера блокдӀаяьккхина",
+       "lockedbyandtime": "($1 $2 $3)",
        "move-page": "$1 — цӀе хийцар",
        "move-page-legend": "ЦӀe хийца яр",
        "movepagetext": "Бухахь йолу форманца агӀон цӀе хийцало. Цул совнах цуьна хийцаман тептар кхоьчу метте доккха. Хьалхалера цӀарахь хиръю керла кхоьллина агӀонан хьажораг.\n\nХьовсалаш [[Special:DoubleRedirects|шалха]] а [[Special:BrokenRedirects|йохна хьажоргаш]] юй техь аьлла.\n\nШу жоьпехь ду хьажоргаш нийса некъ гойтуш хиларан.\n\nТидам бе хьалхалера агӀон цӀе ‘’’хийцалур яц’’’ иштта цӀе йолу агӀо йолуш елахь. Юкъардаккхар: йолуш йолу агӀо кхоьчухьа хьажораг елахь, я еса елахь а, цуьна хийцаме истори яцахь а.\n\nИ бохург ду шун агӀонан цӀе юха а хьалха хилларгчунтӀе хийца йиш ю, амма йолуш йолу агӀо дӀаяккха йиш яц.\n\n'''ДӀАХЬЕДАР!'''\n\nЦӀе хийцар бахьнехь гӀаръяьлла агӀонашна дукха дагахь боцу хийцамаш хила тарло. Цундела цӀе хийцале шеш хила тарлучу тӀехьонашах кхета аьлла тешна хила.",
        "movenotallowedfile": "Хьан файлийн цӀераш хийца бакъо яц.",
        "cant-move-user-page": "Хьан бакъо яц декъашхойн коьрта агӀонийн цӀераш хийца.",
        "cant-move-to-user-page": "Хьан бакъо яц агӀона цӀе декъашхочун агӀон тӀе хийца (бухара агӀон тӀе хийца мега).",
+       "cant-move-category-page": "Хьан категорийн цӀераш хийца бакъо яц.",
+       "cant-move-to-category-page": "Хьан категорийн цӀераш хийца бакъо яц.",
        "newtitle": "Керла цӀе",
        "move-watch": "Латайé хӀара агӀо тергаме могӀанан юкъахь",
        "movepagebtn": "АгӀон цӀе хийца",
        "pageinfo-robot-policy": "Лахарийн системийн индексаци",
        "pageinfo-robot-index": "Магийна",
        "pageinfo-robot-noindex": "Магийна дац",
-       "pageinfo-views": "Хьажаран дукхалла",
        "pageinfo-watchers": "Хьоьжучера дукхалла",
        "pageinfo-few-watchers": "{{PLURAL:$1|ТӀаьхьадогӀучерал}} $1 кӀезиг",
        "pageinfo-redirects-name": "ХӀокху агӀон тӀе йолу дӀассахьажорийн дукхалла",
        "nextdiff": "Тlяхьа догlа нисдинарг →",
        "imagemaxsize": "Суьртан бараман доза тохар:<br />''(Файла агӀона куц дийцар)''",
        "thumbsize": "Жима дина суьртан барам:",
-       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|агlо|агlонаш|агlонаш}}",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|агӀо}}",
        "file-info": "файлан барам: $1, MIME-тайп: $2",
        "file-info-size": "$1 × $2 пиксель, файлан барам: $3, MIME-тайп: $4",
        "file-info-size-pages": "$1 × $2 пиксель, файлан барам: $3, MIME-тайп: $4, $5 {{PLURAL:$5|1=агӀо|агӀонаш}}",
        "confirm-unwatch-button": "ХӀаъ",
        "confirm-unwatch-top": "ДӀаяккха хӀара агӀо хьай тергаме могӀанан юкъар?",
        "comma-separator": ",&#32;",
+       "quotation-marks": "«$1»",
        "imgmultipageprev": "← хьалхара агlо",
        "imgmultipagenext": "тlаьхьара агlо →",
        "imgmultigo": "ДехьагӀо!",
        "imgmultigoto": "АгӀончу $1 гӀо",
        "img-lang-default": "(Ӏад битарца болу мотт)",
+       "img-lang-info": "Гайта хӀара сурт $1 $2 маттахь",
        "img-lang-go": "Кхочушдé",
+       "ascending_abbrev": "гар",
+       "descending_abbrev": "йина",
        "table_pager_next": "Тlаьхьа йогlу агlо",
        "table_pager_prev": "Хьалха йоьду агlо",
        "table_pager_first": "Дуьххьаралера агlо",
        "watchlistedit-raw-explain": "Лахахь гойтуш ю хьа тергаме могӀанийн юкъахь йолу агӀонаш. Хьан йиш ю могӀан хийцам ба, оьцу чура цӀераш тӀетухуш а дӀайохкуш а.\nХийцамаш бина баьлчи тӀетаӀе кнопка «{{int:Watchlistedit-raw-submit}}».\nХьа кхин йиш ю [[Special:EditWatchlist|лело стандартни тадар]].",
        "watchlistedit-raw-titles": "ДӀаяздарш:",
        "watchlistedit-raw-submit": "МогӀам Ӏалашбар",
+       "watchlistedit-raw-done": "Хьан тергаман могӀам Ӏалашбина",
        "watchlistedit-raw-added": "{{PLURAL:$1|ТӀетоьхна}} $1 {{PLURAL:$1|дӀаяздар|дӀаяздарш}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|ДӀаяьккхина|ДӀаяьхна}} $1 {{PLURAL:$1|дӀаяздар|дӀаяздарш}}:",
        "watchlistedit-clear-title": "Тергаман могӀам дӀацӀанбар",
        "watchlisttools-edit": "Хьажа/нисбé могӀам",
        "watchlisttools-raw": "Йоза санна тае",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|дийцаре]])",
+       "unknown_extension_tag": "«$1» шордаран ца йоьвзу тег",
        "version": "Верси MediaWiki",
        "version-extensions": "ДӀахӀоттийна шордарш",
        "version-skins": "ДӀахӀоттийна кечяран темаш",
        "version-software-version": "Верси",
        "version-entrypoints": "ЧугӀо адресин тӀадамаш",
        "version-entrypoints-header-entrypoint": "Яздаран тӀадам",
+       "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath АгӀона тӀе некъ]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Скриптан тӀе некъ]",
        "redirect": "Декъашхочун файлан тӀера дӀасхьажор",
        "fileduplicatesearch-result-1": "«$1» файлах тера хӀума яц.",
        "fileduplicatesearch-noresults": "ЦӀе «$1» йолуш файл цакарий.",
        "specialpages": "Леррина агӀонаш",
+       "specialpages-note-top": "Легенда",
        "specialpages-note": "* Гуттарлера белха агlонаш.\n* <strong class=\"mw-specialpagerestricted\">Кlеззиг таронаш йолу леррина агlонаш.</strong>",
        "specialpages-group-maintenance": "Жамlаш гlирса хьашташ кхочушдар",
        "specialpages-group-other": "Кхин белхан агӀонаш",
        "revdelete-uname-unhid": "декъашхочун цӀе гуча яьккхина",
        "revdelete-restricted": "куьйгалхойн доза туху",
        "revdelete-unrestricted": "куьйгалхойн доза тохар дӀаяьккхина",
+       "logentry-merge-merge": "$1 {{GENDER:$2|вовшахтоьхна}} $3 $4 чохь ($5 кхаччалц версеш)",
        "logentry-move-move": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажийнарг цаюьтуш",
        "logentry-move-move_redir": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажоран тӀохул",
index c3c70ea..9e309af 100644 (file)
        "mergehistory-autocomment": "Mana'daña [[:$1]] yan [[:$2]]",
        "mergehistory-comment": "Mana'daña [[:$1]] yan [[:$2]]: $3",
        "mergelog": "Log i manmana'daña",
-       "pagemerge-logentry": "ha na'daña [[$1]] yan [[$2]] (ribision asta $3)",
        "revertmerge": "Sipåra",
        "mergelogpagetext": "Guåha gi sampapa' un listan i manmana'daña siha ni historian påhina gi halacha.",
        "history-title": "Historian tinilaika nu \"$1\"",
        "unusedtemplates": "Plantiyas siha ti ma'usa",
        "randompage": "Maseha håfa na påhina",
        "randomredirect": "Muna'dirihi maseha manu guatu",
-       "statistics-mostpopular": "Påhina siha ni mas ma'atan",
        "doubleredirects": "Mandoble na inachetton ma'dirihi siha",
        "brokenredirects": "Manmayulang na muna'dirihi siha",
        "brokenredirects-edit": "tulaika",
index 09cbddd..4d49563 100644 (file)
@@ -1,74 +1,74 @@
 {
-    "@metadata": {
-        "authors": [
-            "Etse (on chr.wikipedia.org)",
-            "Gmaxwell (on chr.wikipedia.org)",
-            "Malafaya",
-            "Maximillion Pegasus",
-            "Srtxg (on chr.wikipedia.org)"
-        ]
-    },
-    "january": "ᏚᏃᎸᏔᏂ",
-    "february": "ᎧᎦᎵ",
-    "march": "ᎠᏄᏱ",
-    "april": "ᎧᏩᏂ",
-    "may_long": "ᎠᎾᎠᎬᏘ",
-    "june": "ᏕᎭᎷᏱ",
-    "july": "ᎫᏰᏉᏂ",
-    "august": "ᎦᎶᏂᎢ",
-    "september": "ᏚᎵᎢᏍᏗ",
-    "october": "ᏚᏂᏅᏗ",
-    "november": "ᏄᏓᏕᏆ",
-    "december": "ᎥᏍᎩᎦ",
-    "jan": "ᏚᏃᎸ",
-    "feb": "ᎧᎦᎵ",
-    "mar": "ᎠᏄᏱ",
-    "apr": "ᎧᏩᏂ",
-    "may": "ᎠᎾᎠ",
-    "jun": "ᏕᎭᎷ",
-    "jul": "ᎫᏰᏉ",
-    "aug": "ᎦᎶᏂ",
-    "sep": "ᏚᎵᎢ",
-    "oct": "ᏚᏂᏅ",
-    "nov": "ᏄᏓᏕ",
-    "dec": "ᎥᏍᎩ",
-    "about": "ᎬᏩᏚᏫᏛ",
-    "article": "ᎤᏓᏡᎬ",
-    "navigation": "ᎠᏂᎩᏍᏗ ᏥᏳ",
-    "help": "ᎠᎵᏍᏕᎸᏗ",
-    "search": "ᎠᏯᏍᏗ",
-    "searchbutton": "ᎠᏯᏍᏗ",
-    "go": "ᎮᎦ",
-    "history": "ᏆᏥ ᎧᏃᎮᏍᎩ",
-    "history_short": "ᎧᏃᎮᏍᎩ",
-    "printableversion": "ᎦᎴᏯᏛ ᏅᎬᎪᏔᏅᎯ",
-    "permalink": "ᏂᎪᎯᎸ ᏕᎬᏔᏛ",
-    "talkpagelinktext": "ᎧᏃᎮᎸᏗ",
-    "talk": "ᎧᏃᎮᎸᏗ",
-    "toolbox": "ᎪᎱᏍᏗ ᎬᏔᏂᏓᏍᏗ ᎧᏁᏌᎢ",
-    "otherlanguages": "ᎭᏫᎾᏗᏢ ᏐᎢ ᏗᎦᏬᏂᎯᏍᏗ",
-    "jumptosearch": "ᎡᏗt",
-    "aboutpage": "Project:ᎬᏩᏚᏫᏛ",
-    "currentevents": "ᏗᏤᎢ",
-    "mainpage": "ᎤᎵᎮᎵᏍᏗ",
-    "mainpage-description": "ᎤᎵᎮᎵᏍᏗ",
-    "portal": "ᎾᎥ ᏄᎾᏓᎸ ᎠᏍᏚᎢᏍᏗ",
-    "nstab-main": "ᎤᏓᏡᎬ",
-    "nstab-category": "ᏗᎦᎪᏗ",
-    "viewsource": "DᎢᎧᏃᏗᎢ DᎢᏓᎴᎲᏍᎬ",
-    "revdelete-radio-set": "ᎥᎥ",
-    "editundo": "IᎬᎾᏕᏍᏗ",
-    "searchresultshead": "ᎠᏯᏍᏗ",
-    "recentchanges": "ᎾᏞᎬ ᏗᎦᏁᏟᏴᏍᏗ",
-    "recentchangeslinked": "ᎪᎱᏍᏗ ᎠᎾᏓᏛᏂ ᏗᎦᏁᏟᏴᏍᏗ",
-    "recentchangeslinked-feed": "ᎪᎱᏍᏗ ᎠᎾᏓᏛᏂ ᏗᎦᏁᏟᏴᏍᏗ",
-    "recentchangeslinked-toolbox": "ᎪᎱᏍᏗ ᎠᎾᏓᏛᏂ ᏗᎦᏁᏟᏴᏍᏗ",
-    "upload": "ᎦᎸᎳᏗᏢ ᎠᎧᎵᎢ ᎠᏝᎥᎢ",
-    "randompage": "ᎤᏍᏆᏂᎪᏗ ᎤᏆᏓᏛ",
-    "watch": "WᎠᏥ",
-    "actioncomplete": "ᎠᏍᏆᏙᏅᎯ",
-    "sp-contributions-talk": "ᎧᏃᎮᎸᏗ",
-    "whatlinkshere": "ᎦᏙ ᎤᏍᏗ ᏗᏕᎬᏔᏛ ᎠᎭᏂ",
-    "ilsubmit": "ᎠᏯᏍᏗ",
-    "specialpages": "ᎤᏤᎵᏛ ᏚᏆᏓᏛ"
+       "@metadata": {
+               "authors": [
+                       "Etse (on chr.wikipedia.org)",
+                       "Gmaxwell (on chr.wikipedia.org)",
+                       "Malafaya",
+                       "Maximillion Pegasus",
+                       "Srtxg (on chr.wikipedia.org)"
+               ]
+       },
+       "january": "ᏚᏃᎸᏔᏂ",
+       "february": "ᎧᎦᎵ",
+       "march": "ᎠᏄᏱ",
+       "april": "ᎧᏩᏂ",
+       "may_long": "ᎠᎾᎠᎬᏘ",
+       "june": "ᏕᎭᎷᏱ",
+       "july": "ᎫᏰᏉᏂ",
+       "august": "ᎦᎶᏂᎢ",
+       "september": "ᏚᎵᎢᏍᏗ",
+       "october": "ᏚᏂᏅᏗ",
+       "november": "ᏄᏓᏕᏆ",
+       "december": "ᎥᏍᎩᎦ",
+       "jan": "ᏚᏃᎸ",
+       "feb": "ᎧᎦᎵ",
+       "mar": "ᎠᏄᏱ",
+       "apr": "ᎧᏩᏂ",
+       "may": "ᎠᎾᎠ",
+       "jun": "ᏕᎭᎷ",
+       "jul": "ᎫᏰᏉ",
+       "aug": "ᎦᎶᏂ",
+       "sep": "ᏚᎵᎢ",
+       "oct": "ᏚᏂᏅ",
+       "nov": "ᏄᏓᏕ",
+       "dec": "ᎥᏍᎩ",
+       "about": "ᎬᏩᏚᏫᏛ",
+       "article": "ᎤᏓᏡᎬ",
+       "navigation": "ᎠᏂᎩᏍᏗ ᏥᏳ",
+       "help": "ᎠᎵᏍᏕᎸᏗ",
+       "search": "ᎠᏯᏍᏗ",
+       "searchbutton": "ᎠᏯᏍᏗ",
+       "go": "ᎮᎦ",
+       "history": "ᏆᏥ ᎧᏃᎮᏍᎩ",
+       "history_short": "ᎧᏃᎮᏍᎩ",
+       "printableversion": "ᎦᎴᏯᏛ ᏅᎬᎪᏔᏅᎯ",
+       "permalink": "ᏂᎪᎯᎸ ᏕᎬᏔᏛ",
+       "talkpagelinktext": "ᎧᏃᎮᎸᏗ",
+       "talk": "ᎧᏃᎮᎸᏗ",
+       "toolbox": "ᎪᎱᏍᏗ ᎬᏔᏂᏓᏍᏗ ᎧᏁᏌᎢ",
+       "otherlanguages": "ᎭᏫᎾᏗᏢ ᏐᎢ ᏗᎦᏬᏂᎯᏍᏗ",
+       "jumptosearch": "ᎡᏗt",
+       "aboutpage": "Project:ᎬᏩᏚᏫᏛ",
+       "currentevents": "ᏗᏤᎢ",
+       "mainpage": "ᎤᎵᎮᎵᏍᏗ",
+       "mainpage-description": "ᎤᎵᎮᎵᏍᏗ",
+       "portal": "ᎾᎥ ᏄᎾᏓᎸ ᎠᏍᏚᎢᏍᏗ",
+       "nstab-main": "ᎤᏓᏡᎬ",
+       "nstab-category": "ᏗᎦᎪᏗ",
+       "viewsource": "DᎢᎧᏃᏗᎢ DᎢᏓᎴᎲᏍᎬ",
+       "revdelete-radio-set": "ᎥᎥ",
+       "editundo": "IᎬᎾᏕᏍᏗ",
+       "searchresultshead": "ᎠᏯᏍᏗ",
+       "recentchanges": "ᎾᏞᎬ ᏗᎦᏁᏟᏴᏍᏗ",
+       "recentchangeslinked": "ᎪᎱᏍᏗ ᎠᎾᏓᏛᏂ ᏗᎦᏁᏟᏴᏍᏗ",
+       "recentchangeslinked-feed": "ᎪᎱᏍᏗ ᎠᎾᏓᏛᏂ ᏗᎦᏁᏟᏴᏍᏗ",
+       "recentchangeslinked-toolbox": "ᎪᎱᏍᏗ ᎠᎾᏓᏛᏂ ᏗᎦᏁᏟᏴᏍᏗ",
+       "upload": "ᎦᎸᎳᏗᏢ ᎠᎧᎵᎢ ᎠᏝᎥᎢ",
+       "randompage": "ᎤᏍᏆᏂᎪᏗ ᎤᏆᏓᏛ",
+       "watch": "WᎠᏥ",
+       "actioncomplete": "ᎠᏍᏆᏙᏅᎯ",
+       "sp-contributions-talk": "ᎧᏃᎮᎸᏗ",
+       "whatlinkshere": "ᎦᏙ ᎤᏍᏗ ᏗᏕᎬᏔᏛ ᎠᎭᏂ",
+       "ilsubmit": "ᎠᏯᏍᏗ",
+       "specialpages": "ᎤᏤᎵᏛ ᏚᏆᏓᏛ"
 }
index c6904cd..ad2fe74 100644 (file)
        "mainpage": "دەستپێک",
        "mainpage-description": "دەستپێک",
        "policy-url": "Project: سیاسەت",
-       "portal": "دەروازەی بەکارھێنەران",
-       "portal-url": "Project: دەروازەی بەکارھێنەران",
+       "portal": "دەروازەی کۆمەڵگا",
+       "portal-url": "Project:دەروازەی کۆمەڵگا",
        "privacy": "سیاسەتی تایبەتێتی",
        "privacypage": "Project:پاراستنی زانیارییەکان",
        "badaccess": "ھەڵە لە بە دەست ھێنان",
        "mergehistory-same-destination": "پەڕەی سەرچاوە و مەبەست نابێ یەک بن.",
        "mergehistory-reason": "هۆکار:",
        "mergelog": "لۆگی کردنەیەک",
-       "pagemerge-logentry": "[[$1]]ی لەگەڵ [[$2]] کردە یەک (پێداچوونەوەکان ھەتا $3)",
        "revertmerge": "ھەڵوەشاندنەوەی کردنەیەک",
        "mergelogpagetext": "لە خوارەوە دوایین مێژووی‌لاپەڕە خستنە سەر لاپەڕەیەکی‌تر، دەبینی.",
        "history-title": "مێژووی پێداچوونەوەکانی «$1»",
        "statistics": "ئامارەکان",
        "statistics-header-pages": "ئامارەکانی پەڕەکان",
        "statistics-header-edits": "ئامارەکانی گۆڕانکارییەکان",
-       "statistics-header-views": "ئامارەکانی سەردانەکان",
        "statistics-header-users": "ئامارەکانی بەکارھێنەران",
        "statistics-header-hooks": "ئامارەکانی دیکە",
        "statistics-articles": "پەڕە بە ناوەڕۆکەکان",
        "statistics-files": "پەڕگە بارکراوەکان",
        "statistics-edits": "دەستکارییەکانی پەڕەکان لە کاتی دامەزراندنی {{SITENAME}}",
        "statistics-edits-average": "ناونجیی دەستکارییەکان بۆ ھەر پەڕە",
-       "statistics-views-total": "دیتنی هەموو",
-       "statistics-views-peredit": "دیتنی هەر دەستکارییەک",
        "statistics-users": "[[Special:ListUsers|بەکارھێنەر]]ە تۆمارکراوەکان",
        "statistics-users-active": "ئەندامە چالاکەکان",
        "statistics-users-active-desc": "ئەو بەکارھێنەرانەی لە {{PLURAL:$1|ڕۆژ|$1 ڕۆژ}}ی ڕابردوودا کردەوەیەکیان بەڕێوە بردووە",
-       "statistics-mostpopular": "زۆرترین لاپەڕە بینراوەکان",
        "pageswithprop": "پەڕەکان بە تایبەتمەندیی پەڕە",
        "pageswithprop-legend": "پەڕەکان بە تایبەتمەندیی پەڕە",
        "pageswithprop-text": "ئەم پەڕەیە ئەو پەڕانەی تایبەتمەندییەکی پەرەیەکی دیاریکراو بەکاردەھێنن پێرست دەکا.",
        "uncategorizedtemplates": "داڕێژە پۆلێن نەکراوەکان",
        "unusedcategories": "پۆلە بەکارنەھێنراوەکان",
        "unusedimages": "پەڕگە بەکارنەھاتووەکان",
-       "popularpages": "پەڕە مەحبووبەکان",
        "wantedcategories": "پۆلە داواکراوەکان",
        "wantedpages": "پەڕە داواکراوەکان",
        "wantedpages-badtitle": "سەردێڕی نەگونجاو لە سەرجەمی ئەنجامەکان: $1",
        "whatlinkshere": "بەسراوەکان بە ئێرەوە",
        "whatlinkshere-title": "ئەو پەڕانەی بەستەریان ھەیە بۆ «$1»",
        "whatlinkshere-page": "پەڕە:",
-       "linkshere": "ئەم پەڕانە بەستەریان ھەیە بۆ '''[[:$1]]''':",
+       "linkshere": "پەڕەکانی ژێرەوە بەستەر دراون بۆ <strong>[[:$1]]</strong>:",
        "nolinkshere": "هیچ لاپەڕەیەک بەستەری نەداوە بە '''[[:$1]]'''.",
        "nolinkshere-ns": "هیچ لاپەڕەیەک بەستەری نەداوە بە '''[[:$1]]''' لە بۆشایی‌ناوی هەڵبژێردراو.",
        "isredirect": "پەڕەی ڕەوانەکەر",
        "pageinfo-robot-policy": "پێرستکردن بە بۆتەکان",
        "pageinfo-robot-index": "ڕێ پێدراو",
        "pageinfo-robot-noindex": "ڕێ پێنەدراوه",
-       "pageinfo-views": "ژمارەی بینینەکان",
        "pageinfo-watchers": "ژمارەی چاودێرانی پەڕە",
        "pageinfo-few-watchers": "کەمتر لە $1 {{PLURAL:$1|چاودێر}}",
        "pageinfo-redirects-name": "ژمارەی ڕەوانەکەرەکان بۆ ئەم پەڕەیە",
        "markedaspatrollederror-noautopatrol": "ناتوانی گۆڕانکارییەکانی خۆت وەک پاس دراو نیشان بکەی.",
        "markedaspatrollednotify": "ئەم گۆڕانکارییە لەسەر $1 وەک پاس دراو نیشان کرا.",
        "markedaspatrollederrornotify": "نیشانکردن وەک پاس دراو سەرکەوتوو نەبوو.",
-       "patrol-log-page": "لۆگی پاسدەری",
+       "patrol-log-page": "لۆگی پاسدان",
        "patrol-log-header": "ئەمە لۆگێکی پێداچوونەوە پاس دراوەکانە.",
-       "log-show-hide-patrol": "لۆگی پاسدەری $1",
+       "log-show-hide-patrol": "لۆگی پاسدان $1",
        "deletedrevision": "پێداچوونەوەی کۆنی سڕاوە $1",
        "filedeleteerror-short": "هەڵە لە سڕینەوەی پەڕگە: $1",
        "filedeleteerror-long": "کاتی سڕینەوەی ئەم پەڕگەی ڕووبەڕووی کێشە بووینەوە:\n\n$1",
        "autosumm-replace": "«$1»ی لە جێی ناوەرۆک دانا",
        "autoredircomment": "ڕەوانە کرا بۆ [[$1]]",
        "autosumm-new": "پەڕەی دروست کرد بە «$1»ەوە",
+       "autosumm-newblank": "پەڕەی واڵای دروست کرد",
        "size-bytes": "$1 بایت",
        "size-kilobytes": "$1 کیلۆبایت",
        "size-megabytes": "$1 مێگابایت",
index 0dba989..69e8949 100644 (file)
        "ncategories": "$1 {{PLURAL:$1|categuria|categurie}}",
        "nmembers": "$1 {{PLURAL:$1|elementu|elementi}}",
        "specialpage-empty": "Issa pagina hè biota.",
-       "popularpages": "Pagine populare",
        "prefixindex": "Indice di e pagine per lettere iniziale",
        "shortpages": "Pagine corte",
        "longpages": "Pagine longhe",
index f4c5e2a..e715dbb 100644 (file)
        "statistics": "Статистика",
        "statistics-header-pages": "Саифе статистикасы",
        "statistics-header-edits": "Денъиштирюв статистикасы",
-       "statistics-header-views": "Козьден кечирме статистикасы",
        "statistics-header-users": "Къулланыджы статистикасы",
        "statistics-header-hooks": "Дигер статистика",
-       "statistics-mostpopular": "Энъ сыкъ бакъылгъан саифелер",
        "doubleredirects": "Ёлламагъа олгъан ёлламалар",
        "doubleredirectstext": "Бу саифеде дигер ёллама саифелерине ёлланма олгъан саифелери косьтериле.\nЭр сатырда биринджи ве экинджи ёлламагъа багълантылар да, экинджи ёлламанынъ макъсат саифеси (адетиндже о биринджи ёлламанынъ керекли макъсады ола) да бар.\n<del>Устю сызылгъан</del> меселелер энди чезильген.",
        "double-redirect-fixed-move": "[[$1]] авуштырылды, шимди [[$2]] саифесине ёллап тура.",
        "uncategorizedtemplates": "Эр анги бир категорияда олмагъан шаблонлар",
        "unusedcategories": "Къулланылмагъан категориялар",
        "unusedimages": "Къулланылмагъан ресимлер",
-       "popularpages": "Популяр саифелер",
        "wantedcategories": "Истенильген категориялар",
        "wantedpages": "Истенильген саифелер",
        "wantedfiles": "Истенильген файллар",
index 5d5288a..3d6d991 100644 (file)
        "statistics": "Statistika",
        "statistics-header-pages": "Saife statistikası",
        "statistics-header-edits": "Deñiştirüv statistikası",
-       "statistics-header-views": "Közden keçirme statistikası",
        "statistics-header-users": "Qullanıcı statistikası",
        "statistics-header-hooks": "Diger statistika",
-       "statistics-mostpopular": "Eñ sıq baqılğan saifeler",
        "doubleredirects": "Yollamağa olğan yollamalar",
        "doubleredirectstext": "Bu saifede diger yollama saifelerine yollanma olğan saifeleri kösterile.\nEr satırda birinci ve ekinci yollamağa bağlantılar da, ekinci yollamanıñ maqsat saifesi (adetince o birinci yollamanıñ kerekli maqsadı ola) da bar.\n<del>Üstü sızılğan</del> meseleler endi çezilgen.",
        "double-redirect-fixed-move": "[[$1]] avuştırıldı, şimdi [[$2]] saifesine yollap tura.",
        "uncategorizedtemplates": "Er angi bir kategoriyada olmağan şablonlar",
        "unusedcategories": "Qullanılmağan kategoriyalar",
        "unusedimages": "Qullanılmağan resimler",
-       "popularpages": "Populâr saifeler",
        "wantedcategories": "İstenilgen kategoriyalar",
        "wantedpages": "İstenilgen saifeler",
        "wantedfiles": "İstenilgen fayllar",
index 70fd3fb..f23330b 100644 (file)
        "viewsourcetext": "Můžete si prohlédnout a zkopírovat zdrojový kód této stránky:",
        "viewyourtext": "Můžete si prohlédnout a zkopírovat zdrojový kód '''vašich změn''' této stránky:",
        "protectedinterface": "Tato stránka obsahuje text softwarového rozhraní a je zamčena kvůli prevenci zneužití.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
-       "editinginterface": "'''Upozornění:''' Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
+       "editinginterface": "<strong>Upozornění:</strong> Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.",
+       "translateinterface": "Pro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
        "cascadeprotected": "Tato stránka je zamčena, neboť 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:\n$2",
        "namespaceprotected": "Nemáte povoleno editovat stránky ve jmenném prostoru '''$1'''.",
        "customcssprotected": "Nemáte povoleno editovat tuto stránku s CSS, protože obsahuje osobní nastavení jiného uživatele.",
        "content-model-text": "čistý text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Stránky s duplicitními argumenty ve voláních šablon",
+       "duplicate-args-category-desc": "Stránka obsahuje volání šablony, které používá duplicitní argumenty, např. <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> nebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Varování:''' Tato stránka obsahuje příliš mnoho volání výkonnostně náročných funkcí syntaktického analyzátoru.\n\nPovolený limit je $2, v současné chvíli však {{PLURAL:$1|zde jedno volání je|zde jsou $1 volání|zde je $1 volání}}.",
        "expensive-parserfunction-category": "Stránky s příliš mnoho voláními náročných funkcí syntaktického analyzátoru",
        "post-expand-template-inclusion-warning": "Varování: Objem vkládaných šablon je příliš velký.\nNěkteré šablony nebudou vloženy.",
        "mergehistory-same-destination": "Zdrojová a cílová stránka se nemůžou shodovat",
        "mergehistory-reason": "Důvod:",
        "mergelog": "Kniha slučování",
-       "pagemerge-logentry": "slučuje stránku [[$1]] se stránkou [[$2]] (verze do $3)",
        "revertmerge": "Zrušit sloučení",
        "mergelogpagetext": "Níže je seznam nejnovějších sloučení historie jedné stránky s jinou.",
        "history-title": "Historie verzí stránky „$1“",
        "searchresults-title": "Výsledky hledání „$1“",
        "titlematches": "Stránky s odpovídajícím názvem",
        "textmatches": "Stránky s odpovídajícím textem",
-       "notextmatches": "Žádné stránky textem neodpovídají.",
+       "notextmatches": "Žádná stránka s tímto textem nebyla nalezena",
        "prevn": "$1 {{PLURAL:$1|předchozí|předchozí|předchozích}}",
        "nextn": "$1 {{PLURAL:$1|následující|následující|následujících}}",
        "prevn-title": "{{PLURAL:$1|Předchozí výsledek|Předchozí $1 výsledky|Předchozích $1 výsledků}}",
        "search-result-category-size": "{{PLURAL:$1|1 položka|$1 položky|$1 položek}} ({{PLURAL:$2|1 podkategorie|$2 podkategorie|$2 podkategorií}}, {{PLURAL:$3|1 soubor|$3 soubory|$3 souborů}})",
        "search-redirect": "(přesměrování $1)",
        "search-section": "(část $1)",
+       "search-category": "(kategorie $1)",
        "search-file-match": "(odpovídá obsahu souboru)",
        "search-suggest": "Mysleli jste: $1",
        "search-interwiki-caption": "Sesterské projekty",
        "gender-female": "Ona upravila článek.",
        "prefs-help-gender": "Toto nastavení je nepovinné.\nSoftware ho používá pro volbu gramatického rodu, když vás oslovuje nebo vás zmiňuje.\nTato informace je veřejná.",
        "email": "E-mail",
-       "prefs-help-realname": "Skutečné jméno je nepovinné.\nPokud se ho rozhodnete uvést, bude použito pro označení autorství vaší práce.",
+       "prefs-help-realname": "Skutečné jméno je nepovinné.\nPokud ho uvedete, může být použito pro označení autorství vaší práce.",
        "prefs-help-email": "Uvedení e-mailu není povinné, ale umožní zaslání nového hesla v případě, že své heslo zapomenete.",
        "prefs-help-email-others": "Také můžete dovolit ostatním uživatelům vás prostřednictvím uživatelské stránky kontaktovat.\nVaše adresa v takovém případě není prozrazena.",
        "prefs-help-email-required": "Je vyžadována e-mailová adresa.",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistika stránek",
        "statistics-header-edits": "Statistika editací",
-       "statistics-header-views": "Statistika zobrazení",
        "statistics-header-users": "O uživatelích",
        "statistics-header-hooks": "Další statistiky",
        "statistics-articles": "Obsahové stránky",
        "statistics-files": "Načtené soubory",
        "statistics-edits": "Počet editací od založení wiki",
        "statistics-edits-average": "Průměrný počet editací na stránku",
-       "statistics-views-total": "Celkový počet zobrazení",
-       "statistics-views-total-desc": "Zobrazení neexistujících a speciálních stránek se nepočítají",
-       "statistics-views-peredit": "Počet zobrazení na editaci",
        "statistics-users": "Registrovaní [[Special:ListUsers|uživatelé]]",
        "statistics-users-active": "Aktivní uživatelé",
        "statistics-users-active-desc": "Uživatelé, kteří v {{PLURAL:$1|posledním dni|posledních $1 dnech}} provedli nějakou operaci",
-       "statistics-mostpopular": "Nejčtenější stránky",
        "pageswithprop": "Stránky s vlastností",
        "pageswithprop-legend": "Stránky s vlastností",
        "pageswithprop-text": "Tato stránka obsahuje seznam stránek, které používají zadanou vlastnost stránky.",
        "uncategorizedtemplates": "Nekategorizované šablony",
        "unusedcategories": "Nepoužívané kategorie",
        "unusedimages": "Nepoužívané soubory",
-       "popularpages": "Nejnavštěvovanější stránky",
        "wantedcategories": "Chybějící kategorie",
        "wantedpages": "Chybějící stránky",
        "wantedpages-badtitle": "Výsledky obsahují neplatný název: $1",
        "pager-older-n": "{{PLURAL:$1|1 starší|$1 starší|$1 starších}}",
        "suppress": "Dozor",
        "querypage-disabled": "Tato speciální stránka je z výkonnostních důvodů vypnuta.",
+       "apihelp": "Nápověda k API",
+       "apihelp-no-such-module": "Modul „$1“ nebyl nalezen.",
        "booksources": "Zdroje knih",
        "booksources-search-legend": "Vyhledat knižní zdroje",
        "booksources-search": "Hledat",
        "noindex-category-desc": "Stránka není indexována roboty, protože obsahuje kouzelné slovo <code><nowiki>__NOINDEX__</nowiki></code> a je ve jmenném prostoru, ve kterém je tento příznak dovolen.",
        "index-category-desc": "Stránka obsahuje kouzelné slovo <code><nowiki>__INDEX__</nowiki></code> (a je ve jmenném prostoru, ve kterém je tento příznak dovolen), takže je indexována roboty, přestože by normálně nebyla.",
        "post-expand-template-inclusion-category-desc": "Stránka je po rozbalení všech šablon větší než <code>$wgMaxArticleSize</code>, takže některé šablony rozbaleny nebyly.",
-       "post-expand-template-argument-category-desc": "Stránka je po rozbalení argumentu šablony (něco v trojitých závorkách, např. <code>{{{Foo}}})</code> větší než <code>$wgMaxArticleSize</code>.",
+       "post-expand-template-argument-category-desc": "Stránka je po rozbalení argumentu šablony (něco v trojitých závorkách, např. <code>{{{Foo}}}</code>) větší než <code>$wgMaxArticleSize</code>.",
        "expensive-parserfunction-category-desc": "Stránka používá příliš mnoho náročných funkcí syntaktického analyzátoru (jako <code>#ifexist</code>). Vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Stránka obsahuje nefunkční odkaz na soubor (odkaz pro vložení souboru, který neexistuje).",
        "hidden-category-category-desc": "Kategorie ve svém textu obsahuje <code><nowiki>__HIDDENCAT__</nowiki></code>, což způsobuje, že se na stránkách implicitně nezobrazuje v rámečku odkazů na kategorie.",
        "import-error-create": "Stránka „$1“ se nenaimportovala, protože nemáte oprávnění ji založit.",
        "import-error-interwiki": "Stránka „$1“ se nenaimportovala, protože její název je vyhrazen pro externí odkazy (interwiki).",
        "import-error-special": "Stránka „$1“ se nenaimportovala, protože patří do speciálního jmenného prostoru, ve kterém stránky být nemohou.",
-       "import-error-invalid": "Stránka „$1“ se nenaimportovala, protože název, do kterého by se naimportovala, je na této wiki nepoužitelný.",
+       "import-error-invalid": "Stránka „$1“ se nenaimportovala, protože název, pod kterým by se naimportovala, je na této wiki nepoužitelný.",
        "import-error-unserialize": "Nepodařilo se deserializovat revizi $2 stránky „$1“. Revize měla používat model obsahu $3 serializovaný jako $4.",
        "import-error-bad-location": "Revizi $2 používající obsahový model $3 nelze uložit na \"$1\" na této wiki, neboť tento model není na této stránce podporován.",
        "import-options-wrong": "{{PLURAL:$2|Chybná volba|Chybné volby}}: <nowiki>$1</nowiki>",
        "tooltip-pt-mycontris": "Seznam vašich příspěvků",
        "tooltip-pt-login": "Doporučujeme vám přihlásit se, ovšem není to povinné.",
        "tooltip-pt-logout": "Odhlásit se",
+       "tooltip-pt-createaccount": "Doporučujeme vytvořit si účet a přihlásit se, není to však povinné",
        "tooltip-ca-talk": "Diskuse ke stránce",
        "tooltip-ca-edit": "Tuto stránku můžete editovat. Prosíme použijte tlačítko Ukázat náhled před uložením.",
        "tooltip-ca-addsection": "Začít novou sekci",
        "tooltip-feed-atom": "Atom kanál pro tuto stránku",
        "tooltip-t-contributions": "Prohlédnout si seznam příspěvků tohoto uživatele",
        "tooltip-t-emailuser": "Poslat e-mail tomuto uživateli",
+       "tooltip-t-info": "Více informací o této stránce",
        "tooltip-t-upload": "Nahrát obrázky či jiná multimédia",
        "tooltip-t-specialpages": "Seznam všech speciálních stránek",
        "tooltip-t-print": "Tato stránka v podobě vhodné k tisku",
        "pageinfo-robot-policy": "Indexování roboty",
        "pageinfo-robot-index": "Dovoleno",
        "pageinfo-robot-noindex": "Zakázáno",
-       "pageinfo-views": "Počet zobrazení",
        "pageinfo-watchers": "Počet sledujících",
        "pageinfo-few-watchers": "Méně než $1 {{PLURAL:$1|sledující|sledující|sledujících}}",
        "pageinfo-redirects-name": "Počet přesměrování na tuto stránku",
        "unknown_extension_tag": "Neznámá značka rozšíření: „$1“",
        "duplicate-defaultsort": "Upozornění: Implicitní klíč řazení (DEFAULTSORTKEY) „$2“ přepisuje dříve nastavenou hodnotu „$1“.",
        "duplicate-displaytitle": "<strong>Upozornění:</strong> Předchozí zobrazovaný název „$1“ je nahrazen zobrazovaným názvem „$2“.",
+       "invalid-indicator-name": "<strong>Chyba:</strong> Atribut <code>name</code> indikátoru stavu stránky nesmí být prázdný.",
        "version": "Verze",
        "version-extensions": "Nainstalovaná rozšíření",
        "version-skins": "Nainstalované vzhledy",
        "revdelete-uname-unhid": "odkryto uživatelské jméno",
        "revdelete-restricted": "omezení správců použito",
        "revdelete-unrestricted": "omezení správců odstraněno",
+       "logentry-merge-merge": "$1 {{GENDER:$2|sloučil|sloučila}} stránku $3 do $4 (revize po $5)",
        "logentry-move-move": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4 bez založení přesměrování",
        "logentry-move-move_redir": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4 s výměnou přesměrování",
        "api-error-stashfailed": "Vnitřní chyba: Serveru se nepodařilo uložit dočasný soubor.",
        "api-error-publishfailed": "Vnitřní chyba: Serveru se nepodařilo zveřejnit dočasný soubor.",
        "api-error-stasherror": "Při načítání souboru do skrýše došlo k chybě.",
+       "api-error-stashedfilenotfound": "Při pokusu o načtení souboru ze skrýše nebyl uložený soubor nalezen.",
+       "api-error-stashpathinvalid": "Cesta, na které měl být soubor uložen ve skrýši, je neplatná.",
+       "api-error-stashfilestorage": "Při ukládání souboru do skrýše došlo k chybě.",
+       "api-error-stashzerolength": "Server nemohl soubor uložit do skrýše, protože má nulovou délku.",
+       "api-error-stashnotloggedin": "Pro ukládání souboru do skrýše musíte být přihlášeni.",
+       "api-error-stashwrongowner": "Soubor, ke kterému se ve skrýši pokoušíte přistoupit, vám nepatří.",
+       "api-error-stashnosuchfilekey": "Klíč souboru, ke kterém se ve skrýši pokoušíte přistoupit, neexistuje.",
        "api-error-timeout": "Server neodpověděl v očekávaném čase.",
        "api-error-unclassified": "Došlo k neznámé chybě.",
        "api-error-unknown-code": "Neznámá chyba: „$1“.",
index 2f2094b..aca1e80 100644 (file)
        "uncategorizedtemplates": "Szablónë bez kategòrëji",
        "unusedcategories": "Pùsté kategòrëje",
        "unusedimages": "Nie wëzwëskóné òbrôzczi",
-       "popularpages": "Nôwidzalszé starnë",
        "wantedpages": "Nônótniészé starnë",
        "prefixindex": "Wszëtczé starnë ò prefiksu",
        "shortpages": "Nôkrótszé starnë",
index f5e4590..df0bddf 100644 (file)
        "movethispage": "си страницѧ прѣимєнованиѥ",
        "pager-newer-n": "{{PLURAL:$1|нова 1|новꙑ $1|новъ $1}}",
        "pager-older-n": "{{PLURAL:$1|давьнꙗ 1|давьни $1|давьн҄ь $1}}",
-       "booksources-go": "прѣиди",
        "specialloguserlabel": "испльнитєл҄ь :",
        "speciallogtitlelabel": "страницѧ или польꙃєватєлꙗ имѧ :",
        "log": "їсторїѩ",
        "exif-iimcategory-rel": "вѣра",
        "exif-iimcategory-sci": "оучєниѥ и тєхнологїꙗ",
        "exif-iimcategory-spo": "аѳлитїка",
-       "watchlistall2": "вьсꙗ",
        "namespacesall": "вьсꙗ",
        "monthsall": "вьсѩ",
        "unit-pixel": "п҃ѯ",
        "logentry-move-move": "$1 {{GENDER:$2|нарєчє}} страницѫ ⁖ $3 ⁖ имєньмь ⁖ $4 ⁖",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|нарєчє}} страницѫ ⁖ $3 ⁖ имєньмь ⁖ $4 ⁖ бєꙁ прѣнаправлєниꙗ сътворѥниꙗ",
        "logentry-newusers-create": "польꙃєватєльско мѣсто ⁖ $1 ⁖ {{GENDER:$2|сътворѥно}} ѥстъ",
+       "revdelete-summary": "мѣнꙑ опьсаниѥ",
        "searchsuggest-search": "исканиѥ",
        "searchsuggest-containing": "сѥ дрьжащи···",
        "api-error-unknownerror": "нєвѣдома блаꙁна : ⁖ $1 ⁖"
index 7ac4c5d..d4349e0 100644 (file)
        "nextn": "малалли {{PLURAL:$1|$1}}",
        "search-result-size": "$1 ({{PLURAL:$2|1=1 сăмах|$2 сăмах}})",
        "showingresults": "Аяларах эсир <b>#$2</b> пуçласа кăтартнă <b>$1</b> йĕркене куратăр.",
-       "showingresultsheader": "{{PLURAL:$5|1=Результат '''$1'''  '''$3''' хушшинчен|Результатсем'''$1 - $2''' '''$3''' хушшинчен}}  '''$4''' валли",
        "powersearch-legend": "Анлă шырав",
        "preferences": "Ĕнерлевсем",
        "mypreferences": "Ĕнерлев",
        "randomredirect": "Ăнсăртран илнĕ куçару",
        "statistics": "Статистика",
        "statistics-header-users": "Хутшăнакансен статистики",
-       "statistics-mostpopular": "Чи нумай пăхакан страницăсем",
        "doubleredirects": "Икĕ хут куçаракансем",
        "brokenredirects": "Татăк куçару страницисем",
        "brokenredirectstext": "Ку куçару страницисем çук страницăна куçараççĕ:",
        "unusedcategoriestext": "Çак категори страницисем çинче ытти категорисемпе статьясем çук.",
        "notargettitle": "Тĕллевне кăтартман",
        "booksources": "Кĕнекесен çăлкуçĕсем",
-       "booksources-go": "Шыра",
        "specialloguserlabel": "Хутшăнакан:",
        "log": "Журналсем",
        "all-logs-page": "Журналсем",
        "exif-lightsource-0": "Паллă мар",
        "exif-scenecapturetype-0": "Стандартлă",
        "exif-gpsspeed-k": "км/сех",
-       "watchlistall2": "пурте",
        "namespacesall": "пурте",
        "confirmemail_sent": "Çирĕплетмелли ыйтуллă çырăва ятăмăр.",
        "confirmemail_success": "Сирĕн электронлă почтăн адресне çирĕплентĕ.",
index 223f7d1..4c992a8 100644 (file)
        "mergehistory-same-destination": "Ni all y tudalen gwreiddiol a'r cyrchfan fod yr un enw",
        "mergehistory-reason": "Rheswm:",
        "mergelog": "Lòg cyfuno",
-       "pagemerge-logentry": "llyncwyd [[$1]] gan [[$2]] (golygiadau hyd at $3)",
        "revertmerge": "Daduno",
        "mergelogpagetext": "Fe ddilyn rhestr o'r achosion diweddaraf o hanes tudalen yn cael ei gyfuno a hanes tudalen arall.",
        "history-title": "$1: hanes golygu",
        "statistics": "Ystadegau",
        "statistics-header-pages": "Ystadegau tudalennau",
        "statistics-header-edits": "Ystadegau golygiadau",
-       "statistics-header-views": "Ystadegau ymweliadau",
        "statistics-header-users": "Ystadegau defnyddwyr",
        "statistics-header-hooks": "Ystadegau eraill",
        "statistics-articles": "Tudalennau pwnc",
        "statistics-files": "Ffeiliau wedi eu huwchlwytho",
        "statistics-edits": "Golygiadau ers y dechrau ar {{SITENAME}}",
        "statistics-edits-average": "Golygiadau'r dudalen, ar gyfartaledd",
-       "statistics-views-total": "Cyfanswm yr ymweliadau",
-       "statistics-views-total-desc": "Ni chynhwysir ymweliadau â thudalennau nad ydynt yn bod na thudalennau arbennig",
-       "statistics-views-peredit": "Ymweliadau wrth y golygiad:",
        "statistics-users": "[[Special:ListUsers|Defnyddwyr]] cofrestredig",
        "statistics-users-active": "Defnyddwyr gweithgar",
        "statistics-users-active-desc": "Defnyddwyr sydd wedi gweithredu unwaith neu ragor yn ystod y {{PLURAL:$1||diwrnod|deuddydd|tridiau|$1 diwrnod|$1 diwrnod}} diwethaf",
-       "statistics-mostpopular": "Tudalennau sy'n derbyn ymweliad amlaf",
        "pageswithprop": "Tudalennau a chanddynt nodwedd arbennig",
        "pageswithprop-legend": "Tudalennau a chanddynt nodwedd arbennig",
        "pageswithprop-text": "Mae'r dudalen hon yn rhestru tudalennau sydd yn defnyddio nodwedd arbennig yn y dudalen.",
        "uncategorizedtemplates": "Nodiadau heb eu categoreiddio",
        "unusedcategories": "Categorïau gwag",
        "unusedimages": "Lluniau na ddefnyddiwyd eto",
-       "popularpages": "Erthyglau poblogaidd",
        "wantedcategories": "Categorïau sydd eu hangen",
        "wantedpages": "Erthyglau sydd eu hangen",
        "wantedpages-badtitle": "Mae teitl annilys ymhlith y canlyniadau, sef: $1",
        "tooltip-feed-atom": "Porthiant atom ar gyfer y dudalen hon",
        "tooltip-t-contributions": "Gwelwch restr o gyfraniadau'r defnyddiwr hwn",
        "tooltip-t-emailuser": "Anfonwch e-bost at y defnyddiwr hwn",
+       "tooltip-t-info": "Mwy o wybodaeth am y dudalen hon",
        "tooltip-t-upload": "Uwchlwythwch ffeil delwedd, sain, fideo, ayb",
        "tooltip-t-specialpages": "Rhestr o'r holl dudalennau arbennig",
        "tooltip-t-print": "Cynhyrchwch fersiwn o'r dudalen yn barod at ei hargraffu",
        "pageinfo-robot-policy": "Rhestrwyd gan robot",
        "pageinfo-robot-index": "Caniateir",
        "pageinfo-robot-noindex": "Gwrthodedig",
-       "pageinfo-views": "Nifer yr ymweliadau",
        "pageinfo-watchers": "Nifer gwylwyr y dudalen",
        "pageinfo-few-watchers": "Llai na $1 {{PLURAL:$1|gwyliwr|gwyliwr|wyliwr|gwyliwr|o wylwyr}}",
        "pageinfo-redirects-name": "Nifer yr ailgyfeiriadau i'r dudalen hon",
index 481a64e..ec6594d 100644 (file)
        "resetpass-submit-loggedin": "Skift adgangskode",
        "resetpass-submit-cancel": "Annuller",
        "resetpass-wrong-oldpass": "Ugyldig midlertidig eller gældende adgangskode.\nDu har muligvis allerede skiftet din adgangskode eller anmodet om en ny midlertidig kode.",
-       "resetpass-recycled": "Vær venlig at ændre dit kodeord til et andet end dit nuværende kodeord.",
-       "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning, skal du oprette et nyt kodeord:",
+       "resetpass-recycled": "Vær venlig at ændre din adgangskode til noget andet end din nuværende adgangskode.",
+       "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning, skal du oprette en nyt adgangskode:",
        "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": "Din adgangskode er udløbet. Angiv en ny adgangskode for at logge på.",
        "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 \n\nVær venlig at ændre den nu, eller tryk \"{{int:resetpass-submit-cancel}}\" for at ændre den senere.",
        "passwordreset": "Nulstil adgangskode",
        "mergehistory-same-destination": "Kilde- og målside kan ikke være den samme",
        "mergehistory-reason": "Begrundelse:",
        "mergelog": "Sammenfletningslog",
-       "pagemerge-logentry": "flettede [[$1]] ind i [[$2]] (revisioner indtil $3)",
        "revertmerge": "Gendan sammenfletning",
        "mergelogpagetext": "Nedenfor vises en liste med de nyeste sammenfletninger af en sides historik i en anden.",
        "history-title": "$1: Versionshistorik",
        "statistics": "Statistik",
        "statistics-header-pages": "Sidestatistik",
        "statistics-header-edits": "Redigeringsstatistik",
-       "statistics-header-views": "Statistik over sidevisninger",
        "statistics-header-users": "Statistik om brugere på {{SITENAME}}",
        "statistics-header-hooks": "Anden statistik",
        "statistics-articles": "Indholdssider",
        "statistics-files": "Oplagte filer",
        "statistics-edits": "Redigeringer siden {{SITENAME}} blev oprettet",
        "statistics-edits-average": "Gennemsnitligt antal redigeringer per side",
-       "statistics-views-total": "Visninger i alt",
-       "statistics-views-total-desc": "Visninger på ikke-eksisterende sider og special sider er ikke inkluderet",
-       "statistics-views-peredit": "Visninger per redigering",
        "statistics-users": "Registrerede [[Special:ListUsers|brugere]]",
        "statistics-users-active": "Aktive brugere",
        "statistics-users-active-desc": "Brugere som har udført handlinger i {{PLURAL:$1|det sidste døgn|de sidste $1 dage}}",
-       "statistics-mostpopular": "Mest besøgte sider",
        "pageswithprop": "Sider med en sideegenskab",
        "pageswithprop-legend": "Sider med en sideegenskab",
        "pageswithprop-text": "Denne side viser en liste over sider, der har en bestemt sideegenskab.",
        "uncategorizedtemplates": "Ikke kategoriserede skabeloner",
        "unusedcategories": "Ubrugte kategorier",
        "unusedimages": "Ubrugte filer",
-       "popularpages": "Populære sider",
        "wantedcategories": "Ønskede kategorier",
        "wantedpages": "Ønskede sider",
        "wantedpages-badtitle": "Ugyldig titel i resultaterne: $1",
        "emailuser": "E-mail til denne bruger",
        "emailuser-title-target": "Send e-mail til denne {{GENDER:$1|bruger}}",
        "emailuser-title-notarget": "Send e-mail til en bruger",
-       "emailpage": "E-mail bruger",
+       "emailpage": "E-mail til bruger",
        "emailpagetext": "Du kan bruge formularen nedenfor til at sende en e-mail til denne {{GENDER:$1|bruger}}.\nDen e-mailadresse, du har angivet i [[Special:Preferences|dine indstillinger]], vil dukke op i \"fra\"-feltet på e-mailen, så modtageren kan svare dig.",
        "defemailsubject": "{{SITENAME}}-e-mail fra brugeren \"$1\"",
        "usermaildisabled": "Bruger-e-mail deaktiveret",
        "emailmessage": "Besked:",
        "emailsend": "Send",
        "emailccme": "Send en kopi af denne e-mail til mig",
-       "emailccsubject": "Kopi sendes til $1: $2",
+       "emailccsubject": "Kopi af din besked til $1: $2",
        "emailsent": "E-mail sendt",
        "emailsenttext": "Din e-mail er blevet sendt.",
        "emailuserfooter": "Denne e-mail er sendt af $1 til $2 ved hjælp af funktionen \"E-mail til denne bruger\" på {{SITENAME}}.",
        "pageinfo-robot-policy": "Indeksering af robotter",
        "pageinfo-robot-index": "Tilladt",
        "pageinfo-robot-noindex": "Ikke tilladt",
-       "pageinfo-views": "Antal visninger",
        "pageinfo-watchers": "Antal brugere, der overvåger siden",
        "pageinfo-few-watchers": "Overvåget af færre end $1 {{PLURAL:$1|bruger|brugere}}",
        "pageinfo-redirects-name": "Antal omdirigeringer til denne side",
index e04af3b..29a9b07 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Filzstift",
-            "Geitost",
-            "Ianusius",
-            "Kghbln",
-            "MichaelFrey",
-            "SVG",
-            "The Evil IP address",
-            "Umherirrender"
-        ]
-    },
-    "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-usenewrc": "Seitenbezogene Gruppierung in den «Letzten Änderungen» und auf der Beobachtungsliste",
-    "tog-minordefault": "Eigene Änderungen standardmässig als minim markieren",
-    "category_header": "Seiten in der Kategorie «$1»",
-    "category-media-header": "Medien in der Kategorie «$1»",
-    "badaccess-groups": "Diese Aktion ist auf Benutzer beschränkt, die {{PLURAL:$2|der Gruppe|einer der Gruppen}} «$1» angehören.",
-    "retrievedfrom": "Von «$1»",
-    "site-atom-feed": "Atom-Feed für «$1»",
-    "page-rss-feed": "RSS-Feed für «$1»",
-    "page-atom-feed": "Atom-Feed für «$1»",
-    "missing-article": "Der Text von «$1» $2 wurde nicht in der Datenbank gefunden.\n\nDie Seite ist möglicherweise gelöscht oder verschoben worden.\n\nFalls dies nicht  zutrifft, hast du eventuell einen Fehler in der Software gefunden. Bitte melde dies einem [[Special:ListUsers/sysop|Administrator]] unter Nennung der URL.",
-    "fileappenderrorread": "«$1» konnte während des Hinzufügens nicht gelesen werden.",
-    "fileappenderror": "Konnte «$1» nicht an «$2» anhängen.",
-    "filecopyerror": "Die Datei «$1» konnte nicht nach «$2» kopiert werden.",
-    "filerenameerror": "Die Datei «$1» konnte nicht nach «$2» umbenannt werden.",
-    "filedeleteerror": "Die Datei «$1» konnte nicht gelöscht werden.",
-    "directorycreateerror": "Das Verzeichnis «$1» konnte nicht angelegt werden.",
-    "filenotfound": "Die Datei «$1» wurde nicht gefunden.",
-    "fileexistserror": "In die Datei «$1» konnte nicht geschrieben werden, da die Datei bereits vorhanden ist.",
-    "unexpected": "Unerwarteter Wert: «$1» = «$2»",
-    "cannotdelete": "Die Seite oder Datei «$1» kann nicht gelöscht werden.\nMöglicherweise wurde sie bereits von jemand anderem gelöscht.",
-    "cannotdelete-title": "Seite «$1» kann nicht gelöscht werden",
-    "actionthrottledtext": "Im Rahmen einer Anti-Spam-Massnahme oder aufgrund eines Missbrauchsfilters kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze hast du überschritten.\nBitte versuche es in ein paar Minuten erneut.",
-    "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
-    "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung ''«$2»'' eingerichtet.",
-    "filereadonlyerror": "Die Datei «$1» kann nicht verändert werden, da auf das Dateirepositorium «$2» nur Lesezugriff möglich ist.\n\nDer Administrator, der den Schreibzugriff sperrte, gab folgenden Grund an: «$3».",
-    "loginsuccess": "Du bist jetzt als «$1» bei {{SITENAME}} angemeldet.",
-    "nosuchuser": "Der Benutzername «$1» existiert nicht.\nÜberprüfe die Schreibweise (Gross-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melde dich als neuer Benutzer an]].",
-    "nosuchusershort": "Der Benutzername «$1» ist nicht vorhanden. Bitte überprüfe die Schreibweise.",
-    "passwordremindertext": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.\n\nDas automatisch generierte Passwort für Benutzer «$2» lautet nun: $3\n\nFalls du dies wirklich gewünscht hast, solltest du dich jetzt anmelden und das Passwort ändern.\nDas neue Passwort ist {{PLURAL:$5|1 Tag|$5 Tage}} gültig.\n\nBitte ignoriere dieses E-Mail, falls du es nicht selbst angefordert hast. Das alte Passwort bleibt weiterhin gültig.",
-    "noemail": "{{GENDER:$1|Benutzer|Benutzerin|Benutzer}} «$1» hat keine E-Mail-Adresse angegeben.",
-    "passwordsent": "Ein neues, temporäres Passwort wurde an die E-Mail-Adresse von Benutzer «$1» gesandt.\nBitte melde dich damit an, sobald du es erhalten hast. Das alte Passwort bleibt weiterhin gültig.",
-    "eauthentsent": "Ein Bestätigungs-E-Mail wurde an die angegebene Adresse verschickt.\n\nBevor ein E-Mail von anderen Benutzern über die E-Mail-Funktion empfangen werden kann, muss die Adresse und ihre tatsächliche Zugehörigkeit zu diesem Benutzerkonto erst bestätigt werden. Bitte befolge die Hinweise im Bestätigungs-E-Mail.",
-    "throttled-mailpassword": "Es wurde innerhalb der letzten {{PLURAL:$1|Stunde|$1 Stunden}} bereits ein Passwortzurücksetzungs-E-Mail angefordert. Um einen Missbrauch der Funktion zu verhindern, kann nur {{PLURAL:$1|einmal pro Stunde|alle $1 Stunden}} ein Passwortzurücksetzungs-E-Mail angefordert werden.",
-    "mailerror": "Fehler beim Senden des E-Mails: $1",
-    "createaccount-text": "Es wurde für dich ein Benutzerkonto «$2» auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für «$2» ist «$3». Du solltest dich nun anmelden und das Passwort ändern.\n\nFalls das Benutzerkonto irrtümlich angelegt wurde, kannst du diese Nachricht ignorieren.",
-    "user-mail-no-addy": "Versuchte ein E-Mail ohne Angabe einer E-Mail-Adresse zu versenden",
-    "user-mail-no-body": "Es wurde versucht, ein E-Mail mit einem leeren oder zu kurzen Textkörper zu versenden.",
-    "resetpass_announce": "Anmeldung mit dem per E-Mail zugesandten Code. Um die Anmeldung abzuschliessen, musst du jetzt ein neues Passwort wählen.",
-    "passwordreset-emailsent": "Ein Passwortzurücksetzungs-E-Mail wurde versandt.",
-    "passwordreset-emailsent-capture": "Ein Passwortzurücksetzungs-E-Mail wurde versandt, das unten angezeigt wird.",
-    "passwordreset-emailerror-capture": "Die unten angezeigte Passwortzurücksetzungs-E-Mail wurde generiert, allerdings ist der Versand an {{GENDER:$2|den Benutzer|die Benutzerin}} gescheitert: $1",
-    "missingsummary": "'''Hinweis:''' Du hast keine Zusammenfassung angegeben. Wenn du erneut auf «{{int:savearticle}}» klickst, wird deine Änderung ohne Zusammenfassung übernommen.",
-    "missingcommentheader": "'''Achtung:''' Du hast kein Betreff/Überschrift eingegeben. Wenn du erneut auf «{{int:savearticle}}» klickst, wird deine Bearbeitung ohne Überschrift gespeichert.",
-    "blockedtext": "'''Dein Benutzername oder deine IP-Adresse wurde gesperrt.'''\n\nDie Sperrung wurde von $1 durchgeführt.\nAls Grund wurde ''$2'' angegeben.\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\nDu kannst die «E-Mail an diesen Benutzer»-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
-    "autoblockedtext": "Deine IP-Adresse wurde automatisch gesperrt, da sie von einem anderen Benutzer genutzt wurde, der von $1 gesperrt wurde.\nAls Grund wurde angegeben:\n\n:''$2''\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\n\nDu kannst die «E-Mail an diesen Benutzer»-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\n\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
-    "confirmedittext": "Du musst deine E-Mail-Adresse erst bestätigen, bevor du Bearbeitungen durchführen kannst. Bitte ergänze und bestätige dein E-Mail in den [[Special:Preferences|Einstellungen]].",
-    "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.",
-    "userpage-userdoesnotexist": "Das Benutzerkonto «<nowiki>$1</nowiki>» ist nicht vorhanden. Bitte prüfe, ob du diese Seite wirklich erstellen/bearbeiten willst.",
-    "userpage-userdoesnotexist-view": "Das Benutzerkonto «$1» ist nicht vorhanden.",
-    "clearyourcache": "'''Hinweis:''' Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.\n* '''Firefox/Safari:''' ''Umschalttaste'' drücken und gleichzeitig ''Aktualisieren'' anklicken oder entweder ''Ctrl+F5'' oder ''Ctrl+R'' (''⌘+R'' auf dem Mac) drücken\n* '''Google Chrome:''' ''Umschalttaste+Ctrl+R'' (''⌘+Umschalttaste+R'' auf dem Mac) drücken\n* '''Internet Explorer:''' ''Ctrl+F5'' drücken oder ''Ctrl'' drücken und gleichzeitig ''Aktualisieren'' anklicken\n* '''Opera:''' ''Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen''",
-    "usercssyoucanpreview": "'''Tipp:''' Benutze den «{{int:showpreview}}»-Button, um dein neues CSS vor dem Speichern zu testen.",
-    "userjsyoucanpreview": "'''Tipp:''' Benutze den «{{int:showpreview}}»-Button, um dein neues JavaScript vor dem Speichern zu testen.",
-    "userinvalidcssjstitle": "'''Achtung:''' Die Benutzeroberfläche «$1» existiert nicht. Bedenke, dass benutzerspezifische .css- und .js-Seiten mit einem Kleinbuchstaben anfangen müssen, also beispielsweise ''{{ns:user}}:Mustermann/vector.css'' an Stelle von ''{{ns:user}}:Mustermann/Vector.css''.",
-    "editing": "Bearbeiten von «$1»",
-    "creating": "Erstellen von «$1»",
-    "editingsection": "Bearbeiten von «$1» (Abschnitt)",
-    "editingcomment": "Bearbeiten von «$1» (Neuer Abschnitt)",
-    "explainconflict": "Jemand anders hat diese Seite geändert, nachdem du angefangen hast sie zu bearbeiten.\nDas obere Textfeld enthält den aktuellen Bearbeitungsstand der Seite.\nDas untere Textfeld enthält deine Änderungen.\nBitte füge deine Änderungen in das obere Textfeld ein.\n'''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn du auf «{{int:savearticle}}» klickst.",
-    "copyrightwarning": "'''Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />\nDu gibst uns hiermit deine Zusage, dass du den Text '''selbst verfasst''' hast, dass der Text Allgemeingut '''(public domain)''' ist, oder dass der '''Urheber''' seine '''Zustimmung''' gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin.\n<i>Bitte beachte, dass alle {{SITENAME}}-Beiträge automatisch unter der «$2» stehen (siehe $1 für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf «Seite speichern».</i>",
-    "longpageerror": "'''Fehler: Der Text, den du zu speichern versuchst, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobytes}} gross. Dies ist grösser als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobytes}}.'''\nEr kann nicht gespeichert werden.",
-    "post-expand-template-inclusion-warning": "Warnung: Die Grösse eingebundener Vorlagen ist zu gross, einige Vorlagen können nicht eingebunden werden.",
-    "post-expand-template-inclusion-category": "Seiten, in denen die maximale Grösse eingebundener Vorlagen überschritten ist",
-    "post-expand-template-argument-warning": "'''Warnung:''' Diese Seite enthält mindestens einen Parameter in einer Vorlage, der expandiert zu gross ist. Diese Parameter werden ignoriert.",
-    "histlegend": "Zur Anzeige der Änderungen einfach die zu vergleichenden Versionen auswählen und die Schaltfläche «{{int:compareselectedversions}}» klicken.<br />\n* ({{int:cur}}) = Unterschied zur aktuellen Version, ({{int:last}}) = Unterschied zur vorherigen Version\n* Uhrzeit/Datum = Version zu dieser Zeit, Benutzername/IP-Adresse des Bearbeiters, {{int:minoreditletter}} = Kleine Änderung",
-    "revdelete-show-file-confirm": "Bist du sicher, dass du die gelöschte Version der Datei «<nowiki>$1</nowiki>» vom $2 um $3 Uhr ansehen willst?",
-    "revdelete-show-no-access": "Fehler beim Anzeigen des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als «eingeschränkt» markiert.\nDu hast darauf keinen Zugriff.",
-    "revdelete-modify-no-access": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als «eingeschränkt» markiert.\nDu hast darauf keinen Zugriff.",
-    "mergehistory-merge": "Die folgenden Versionen von «[[:$1]]» können nach «[[:$2]]» übertragen werden. Markiere die Version, bis zu der (einschliesslich) die Versionen übertragen werden sollen. Bitte beachte, dass die Nutzung der Navigationslinks die Auswahl zurücksetzt.",
-    "mergehistory-success": "{{PLURAL:$3|1 Version|$3 Versionen}} von «[[:$1]]» erfolgreich nach «[[:$2]]» vereinigt.",
-    "mergehistory-no-source": "Ursprungsseite «$1» ist nicht vorhanden.",
-    "mergehistory-no-destination": "Zielseite «$1» ist nicht vorhanden.",
-    "mergehistory-autocomment": "«[[:$1]]» vereinigt nach «[[:$2]]»",
-    "mergehistory-comment": "«[[:$1]]» vereinigt nach «[[:$2]]»: $3",
-    "history-title": "$1: Versionsgeschichte",
-    "searchresults-title": "Suchergebnisse für «$1»",
-    "toomanymatches": "Die Anzahl der Suchergebnisse ist zu gross, bitte versuche eine andere Abfrage.",
-    "searchmenu-exists": "'''Es gibt eine Seite, die den Namen «[[:$1]]» hat.'''",
-    "searchmenu-new": "'''Erstelle die Seite «[[:$1]]» in diesem Wiki.'''",
-    "search-redirect": "(Weiterleitung von «$1»)",
-    "search-suggest": "Meintest du «$1»?",
-    "prefs-watchlist-days": "Anzahl der Tage, die die Beobachtungsliste standardmässig umfassen soll:",
-    "recentchangesdays": "Anzahl der Tage, die die Liste der «Letzten Änderungen» standardmässig umfassen soll:",
-    "recentchangescount": "Anzahl der standardmässig angezeigten Bearbeitungen:",
-    "defaultns": "In diesen Namensräumen soll standardmässig gesucht werden:",
-    "prefs-help-signature": "Beiträge auf Diskussionsseiten sollten mit «<nowiki>~~~~</nowiki>» signiert werden, was dann in die Signatur mit Zeitstempel umgewandelt wird.",
-    "right-createpage": "Seiten erstellen (ausser Diskussionsseiten)",
-    "right-nominornewtalk": "Kleine Bearbeitungen an Diskussionsseiten führen zu keiner «Neue Nachrichten»-Anzeige",
-    "right-bigdelete": "Seiten mit grosser Versionsgeschichte löschen",
-    "right-override-export-depth": "Exportiere Seiten einschliesslich verlinkter Seiten bis zu einer Tiefe von 5",
-    "right-passwordreset": "Passwort eines Benutzers zurücksetzen und das dazu verschickte E-Mail einsehen",
-    "recentchanges-label-plusminus": "Die Änderung der Seitengrösse in Bytes",
-    "rc_categories": "Nur Seiten aus den Kategorien (getrennt mit «|»):",
-    "rc-old-title": "ursprünglich erstellt als «$1»",
-    "recentchangeslinked-title": "Änderungen an Seiten, die von «$1» verlinkt sind",
-    "uploadtext": "Benutze dieses Formular, um neue Dateien hochzuladen.\n\nGehe zu der [[Special:FileList|Liste hochgeladener Dateien]], um vorhandene Dateien zu suchen und anzuzeigen. Siehe auch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Lösch-Logbuch]].\n\nUm ein '''Bild''' in einer Seite zu verwenden, nutze einen Link in der folgenden Form:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für ein Vollbild\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für ein 200px breites Bild innerhalb einer Box, mit «Alternativer Text» als Bildbeschreibung\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
-    "illegalfilename": "Der Dateiname «$1» enthält mindestens ein nicht erlaubtes Zeichen. Bitte benenne die Datei um und versuche, sie erneut hochzuladen.",
-    "filename-toolong": "Dateinamen dürfen nicht grösser als 240 Byte sein.",
-    "badfilename": "Der Dateiname wurde in «$1» geändert.",
-    "filetype-mime-mismatch": "Dateierweiterung «.$1» stimmt nicht mit dem MIME-Typ ($2) überein.",
-    "filetype-badmime": "Dateien mit dem MIME-Typ «$1» dürfen nicht hochgeladen werden.",
-    "filetype-bad-ie-mime": "Diese Datei kann nicht hochgeladen werden, da der Internet Explorer sie als «$1» erkennt, welcher ein nicht erlaubter potentiell gefährlicher Dateityp ist.",
-    "filetype-unwanted-type": "'''«.$1»''' ist ein unerwünschtes Dateiformat. Erlaubt {{PLURAL:$3|ist das Dateiformat|sind die Dateiformate}}: $2.",
-    "filetype-banned-type": "'''«.$1»''' {{PLURAL:$4|ist ein nicht erlaubter Dateityp|sind nicht erlaubte Dateitypen}}.\n{{PLURAL:$3|Erlaubter Dateityp ist|Erlaubte Dateitypen sind}} $2.",
-    "filetype-missing": "Die hochzuladende Datei hat keine Erweiterung (z. B. «.jpg»).",
-    "file-too-large": "Die hochgeladene Datei war zu gross.",
-    "large-file": "Die Dateigrösse sollte nach Möglichkeit $1 nicht überschreiten. Diese Datei ist $2 gross.",
-    "largefileserver": "Die Datei ist grösser als die vom Server eingestellte Maximalgrösse.",
-    "fileexists-extension": "Eine Datei mit ähnlichem Namen existiert bereits: [[$2|thumb]]\n* Name der hochzuladenden Datei: <strong>[[:$1]]</strong>\n* Name der vorhandenen Datei: <strong>[[:$2]]</strong>\nNur die Dateiendung unterscheidet sich in Gross-/Kleinschreibung. Bitte prüfe, ob die Dateien inhaltlich identisch sind.",
-    "fileexists-thumbnail-yes": "Bei der Datei scheint es sich um ein Bild verringerter Grösse ''(thumbnail)'' zu handeln. [[$1|thumb]]\nBitte prüfe die Datei <strong>[[:$1]]</strong>.\nWenn es sich um das Bild in Originalgrösse handelt, so braucht kein separates Vorschaubild hochgeladen zu werden.",
-    "file-thumbnail-no": "Der Dateiname beginnt mit <strong>$1</strong>. Dies deutet auf ein Bild verringerter Grösse ''(thumbnail)'' hin.\nBitte prüfe, ob du das Bild in voller Auflösung vorliegen hast und lade dieses unter dem Originalnamen hoch.",
-    "uploadedimage": "lud «[[$1]]» hoch",
-    "overwroteimage": "lud eine neue Version von «[[$1]]» hoch",
-    "upload-maxfilesize": "Maximale Dateigrösse: $1",
-    "filename-bad-prefix": "Der Dateiname beginnt mit '''«$1»'''. Dies ist im allgemeinen der von einer Digitalkamera vorgegebene Dateiname und daher nicht sehr aussagekräftig.\nBitte gib der Datei einen Namen, der den Inhalt besser beschreibt.",
-    "upload-unknown-size": "Unbekannte Grösse",
-    "backend-fail-maxsize": "Die Datei $1 konnte nicht gespeichert werden, da sie grösser als {{PLURAL:$2|ein Byte|$2 Bytes}} ist.",
-    "backend-fail-readonly": "Das Speicher-Backend «$1» befindet sich derzeit im Lesemodus. Der angegebene Grund lautet: «$2»",
-    "backend-fail-synced": "Die Datei «$1» befindet sich, innerhalb des internen Speicher-Backends, in einem inkonsistenten Zustand.",
-    "backend-fail-connect": "Es konnte keine Verbindung zum Speicher-Backend «$1» hergestellt werden.",
-    "backend-fail-internal": "Im Speicher-Backend «$1» ist ein unbekannter Fehler aufgetreten.",
-    "backend-fail-contenttype": "Der Inhaltstyp, der im Pfad «$1» zu speichernden Datei, konnte nicht bestimmt werden.",
-    "backend-fail-usable": "Die Datei «$1» konnte entweder aufgrund eines nicht vorhandenen Verzeichnisses oder wegen unzureichender Berechtigungen weder abgerufen noch gespeichert werden.",
-    "filejournal-fail-dbconnect": "Es konnte keine Verbindung zur Journaldatenbank des Speicher-Backends «$1» hergestellt werden.",
-    "filejournal-fail-dbquery": "Die Journaldatenbank des Speicher-Backends «$1» konnte nicht aktualisiert werden.",
-    "lockmanager-notlocked": "«$1» konnte nicht entsperrt werden, da keine Sperrung besteht.",
-    "lockmanager-fail-closelock": "Die Sperrdatei für «$1» konnte nicht geschlossen werden.",
-    "lockmanager-fail-deletelock": "Die Sperrdatei für «$1» konnte nicht gelöscht werden.",
-    "lockmanager-fail-acquirelock": "Die Sperre für «$1» konnte nicht abgerufen werden.",
-    "lockmanager-fail-openlock": "Die Sperrdatei für «$1» konnte nicht geöffnet werden.",
-    "lockmanager-fail-releaselock": "Die Sperre für «$1» konnte nicht freigegeben werden.",
-    "zip-bad": "Die Datei ist beschädigt oder eine aus anderweitigen Gründen nicht lesbare ZIP-Datei.\nSie kann daher keiner ordnungsgemässen Sicherheitsüberprüfung unterzogen werden.",
-    "zip-unsupported": "Diese ZIP-Datei verfügt über Komprimierungseigenschaften, die nicht von MediaWiki unterstützt werden.\nSie kann daher keiner ordnungsgemässen Sicherheitsüberprüfung unterzogen werden.",
-    "img-auth-badtitle": "Aus «$1» kann kein gültiger Titel erstellt werden.",
-    "img-auth-nologinnWL": "Du bist nicht angemeldet und «$1» ist nicht in der weissen Liste.",
-    "img-auth-nofile": "Datei «$1» existiert nicht.",
-    "img-auth-isdir": "Du versuchst, auf ein Verzeichnis «$1» zuzugreifen.\nNur Dateizugriff ist erlaubt.",
-    "img-auth-streaming": "Lade «$1».",
-    "img-auth-noread": "Benutzer hat keine Berechtigung, «$1» zu lesen.",
-    "http-invalid-scheme": "URLs mit dem Schema «$1» werden nicht unterstützt",
-    "listfiles-summary": "Diese Spezialseite listet alle hochgeladenen Dateien auf.",
-    "listfiles_size": "Grösse",
-    "filehist-dimensions": "Masse",
-    "filehist-filesize": "Dateigrösse",
-    "filerevert": "Zurücksetzen von «$1»",
-    "filedelete": "Lösche «$1»",
-    "filedelete-intro": "Du löschst die Datei '''«[[Media:$1|$1]]»''' inklusive ihrer Versionsgeschichte.",
-    "filedelete-intro-old": "Du löschst von der Datei '''«[[Media:$1|$1]]»''' die [$4 Version vom $2, $3 Uhr].",
-    "filedelete-success": "'''«$1»''' wurde gelöscht.",
-    "filedelete-success-old": "Von der Datei '''«[[Media:$1|$1]]»''' wurde die Version vom $2, $3 Uhr gelöscht.",
-    "filedelete-nofile": "'''«$1»''' ist nicht vorhanden.",
-    "filedelete-nofile-old": "Es gibt von '''«$1»''' keine archivierte Version mit den angegebenen Attributen.",
-    "randompage-nopages": "Es sind keine Seiten {{PLURAL:$2|im folgenden Namensraum|in den folgenden Namensräumen}} enthalten: «$1»",
-    "randomredirect-nopages": "Im Namensraum «$1» sind keine Weiterleitungen vorhanden.",
-    "alllogstext": "Dies ist die kombinierte Anzeige aller in {{SITENAME}} geführten Logbücher.\nDie Ausgabe kann durch die Auswahl des Logbuchtyps, des Benutzers oder des Seitentitels eingeschränkt werden (Gross-/Kleinschreibung muss beachtet werden).",
-    "allpages-bad-ns": "Der Namensraum «$1» ist in {{SITENAME}} nicht vorhanden.",
-    "linksearch-text": "Diese Spezialseite ermöglicht die Suche nach Seiten, in denen bestimmte Weblinks enthalten sind. Dabei können Platzhalter wie beispielsweise <code>*.beispiel.ch</code> benutzt werden. Es muss mindestens eine Top-Level-Domain, z. B. «*.org». angegeben werden. <br />{{PLURAL:$2|Unterstütztes Protokoll|Unterstützte Protokolle}}: <code>$1</code> (Standard ist http, falls kein Protokoll angegeben ist.)",
-    "emailpagetext": "Du kannst {{GENDER:$1|dem Benutzer|der Benutzerin}} mit dem unten stehenden Formular ein E-Mail senden.\nAls Absender wird die E-Mail-Adresse aus deinen [[Special:Preferences|Einstellungen]] eingetragen, damit {{GENDER:$1|der Benutzer|die Benutzerin}} dir direkt antworten kann.",
-    "defemailsubject": "{{SITENAME}} - E-Mail von Benutzer «$1»",
-    "emailnotarget": "Nicht vorhandener oder ungültiger Benutzername für den Empfang eines E-Mails.",
-    "emailccme": "Sende eine Kopie des E-Mails an mich",
-    "emailsenttext": "Dein E-Mail wurde verschickt.",
-    "emailuserfooter": "Dieses E-Mail wurde von {{SITENAME}}-Benutzer «$1» an «$2» gesendet.",
-    "addedwatchtext": "Die Seite «[[:$1]]» wurde zu deiner [[Special:Watchlist|Beobachtungsliste]] hinzugefügt.\nSpätere Änderungen an dieser Seite und der zugehörigen Diskussionsseite werden dort gelistet.",
-    "removedwatchtext": "Die Seite «[[:$1]]» wurde von deiner [[Special:Watchlist|Beobachtungsliste]] entfernt.",
-    "iteminvalidname": "Problem mit dem Eintrag «$1», ungültiger Name.",
-    "watcherrortext": "Beim Ändern der Beobachtungslisteneinstellungen für «$1» ist ein Fehler aufgetreten.",
-    "excontent": "Inhalt war: «$1»",
-    "excontentauthor": "Inhalt war: «$1» (einziger Bearbeiter: [[Special:Contributions/$2|$2]])",
-    "exbeforeblank": "Inhalt vor dem Leeren der Seite: «$1»",
-    "delete-confirm": "Löschen von «$1»",
-    "deletedtext": "«$1» wurde gelöscht. Im $2 findest du eine Liste der letzten Löschungen.",
-    "editcomment": "Die Änderungszusammenfassung lautet: ''«$1»''.",
-    "protectedarticle": "schützte «[[$1]]»",
-    "modifiedarticleprotection": "änderte den Schutz von «[[$1]]»",
-    "unprotectedarticle": "hob den Schutz von «[[$1]]» auf",
-    "movedarticleprotection": "übertrug den Seitenschutz von «[[$2]]» auf «[[$1]]»",
-    "protect-title": "Schutz ändern von «$1»",
-    "protect-title-notallowed": "Schutz ansehen von «$1»",
-    "protect-text": "Hier kannst du den Schutzstatus der Seite «$1» einsehen und ändern.",
-    "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-fallback": "Nur Benutzern mit der «$1»-Berechtigung erlauben.",
-    "minimum-size": "Mindestgrösse",
-    "maximum-size": "Maximalgrösse:",
-    "undeleteextrahelp": "* Um die Seite mitsamt aller Versionen wiederherzustellen, wähle keine Version aus, gib eine Begründung an und klicke dann auf «{{int:undeletebtn}}».\n* Um lediglich bestimmte Versionen der Seite wiederherzustellen, wähle die betreffenden Versionen einzeln aus, gib eine Begründung an und klicke dann auf «{{int:undeletebtn}}».",
-    "undeletedpage": "'''«$1»''' wurde wiederhergestellt.\n\nIm [[Special:Log/delete|Lösch-Logbuch]] findest du eine Übersicht der gelöschten und wiederhergestellten Seiten.",
-    "undelete-cleanup-error": "Fehler beim Löschen der unbenutzten Archiv-Version «$1».",
-    "undelete-show-file-confirm": "Bist du sicher, dass du eine gelöschte Version der Datei «<nowiki>$1</nowiki>» vom $2, $3 Uhr sehen willst?",
-    "contributions-title": "Benutzerbeiträge von «$1»",
-    "whatlinkshere-title": "Seiten, die auf «$1» verlinken",
-    "linkshere": "Die folgenden Seiten verlinken auf '''«[[:$1]]»''':",
-    "nolinkshere": "Keine Seite verlinkt auf '''«[[:$1]]»'''.",
-    "nolinkshere-ns": "Keine Seite verlinkt auf '''«[[:$1]]»''' im gewählten Namensraum.",
-    "ipb-confirmhideuser": "Du bist gerade dabei, einen Benutzer im Modus «Benutzer verstecken» zu sperren. Dies führt dazu, dass der Benutzername in allen Listen und Logbüchern unterdrückt wird. Möchtest du das wirklich tun?",
-    "ipb-unblock-addr": "«$1» freigeben",
-    "ipb-blocklist-contribs": "Benutzerbeiträge von «$1»",
-    "autoblocker": "Automatische Sperre, da du eine gemeinsame IP-Adresse mit [[User:$1|$1]] benutzt. Grund der Benutzersperre: «$2».",
-    "blocklogentry": "sperrte «[[$1]]» für den Zeitraum: $2 $3",
-    "reblock-logentry": "änderte die Sperre von «[[$1]]» für den Zeitraum: $2 $3",
-    "unblocklogentry": "hob die Sperre von «$1» auf",
-    "ipb_already_blocked": "«$1» wurde bereits gesperrt.",
-    "ipb-needreblock": "«$1» ist bereits gesperrt. Möchtest du die Sperrparameter ändern?",
-    "ip_range_toolarge": "Adressbereiche, die grösser als /$1 sind, sind nicht erlaubt.",
-    "cant-see-hidden-user": "Der Benutzer, den du versuchst zu sperren, wurde bereits gesperrt und verborgen. Da du das «hideuser»-Recht nicht hast, kannst du die Benutzersperre nicht sehen und nicht bearbeiten.",
-    "move-page": "Verschieben von «$1»",
-    "movepage-moved": "'''Die Seite «$1» wurde nach «$2» verschoben.'''",
-    "movepage-page-exists": "Die Seite «$1» ist bereits vorhanden und kann nicht automatisch überschrieben werden.",
-    "movepage-page-moved": "Die Seite «$1» wurde nach «$2» verschoben.",
-    "movepage-page-unmoved": "Die Seite «$1» konnte nicht nach «$2» verschoben werden.",
-    "delete_and_move_text": "== Löschung erforderlich ==\n\nDie Seite «[[:$1]]» existiert bereits. Möchtest du diese löschen, um die Seite verschieben zu können?",
-    "delete_and_move_reason": "gelöscht, um Platz für die Verschiebung von «[[$1]]» zu machen",
-    "immobile-source-namespace": "Seiten des «$1»-Namensraums können nicht verschoben werden",
-    "immobile-target-namespace": "Seiten können nicht in den «$1»-Namensraum verschoben werden",
-    "thumbnail-more": "vergrössern",
-    "djvu_page_error": "DjVu-Seite ausserhalb des Seitenbereichs",
-    "import-interwiki-templates": "Alle Vorlagen einschliessen",
-    "importuploaderrorsize": "Das Hochladen der Importdatei ist fehlgeschlagen. Die Datei ist grösser als die maximal erlaubte Dateigrösse.",
-    "import-error-edit": "Die Seite «$1» wurde nicht importiert, da du nicht berechtigt bist, sie zu bearbeiten.",
-    "import-error-create": "Die Seite «$1» wurde nicht importiert, da du nicht berechtigt bist, sie zu erstellen.",
-    "import-error-interwiki": "Die Seite «$1» wurde nicht importiert, da deren Name für externe Links (Interwiki) reserviert ist.",
-    "import-error-special": "Die Seite «$1» wurde nicht importiert, da sie zu einem besonderen Namensraum gehört, in dem keine Seiten möglich sind.",
-    "import-error-invalid": "Seite «$1» wurde nicht importiert, da deren Name ungültig ist.",
-    "import-logentry-upload": "importierte «[[$1]]» von einer Datei",
-    "import-logentry-interwiki": "importierte «$1» (Transwiki)",
-    "javascripttest-pagetext-unknownframework": "Unbekanntes Framework «$1».",
-    "tooltip-t-emailuser": "Ein E-Mail an diesen Benutzer senden",
-    "pageinfo-title": "Informationen zu «$1»",
-    "markedaspatrollederror": "Markierung als «kontrolliert» nicht möglich.",
-    "filedelete-missing": "Die Datei «$1» kann nicht gelöscht werden, da sie nicht vorhanden ist.",
-    "filedelete-old-unregistered": "Die angegebene Datei-Version «$1» ist nicht in der Datenbank vorhanden.",
-    "filedelete-current-unregistered": "Die angegebene Datei «$1» ist nicht in der Datenbank vorhanden.",
-    "filedelete-archive-read-only": "Das Archiv-Verzeichnis «$1» ist für den Webserver nicht beschreibbar.",
-    "imagemaxsize": "Maximale Bildgrösse:<br />''(für Dateibeschreibungsseiten)''",
-    "thumbsize": "Standardgrösse der Vorschaubilder:",
-    "file-info": "Dateigrösse: $1, MIME-Typ: $2",
-    "file-info-size": "$1 × $2 Pixel, Dateigrösse: $3, MIME-Typ: $4",
-    "file-info-size-pages": "$1 × $2 Pixel, Dateigrösse: $3, MIME-Typ: $4, $5 {{PLURAL:$5|Seite| Seiten}}",
-    "svg-long-desc": "SVG-Datei, Basisgrösse: $1 × $2 Pixel, Dateigrösse: $3",
-    "show-big-image-preview": "Grösse dieser Vorschau: $1.",
-    "metadata-fields": "Die folgenden Felder der EXIF-Metadaten, die in diesem MediaWiki-Systemtext angegeben sind, werden auf Bildbeschreibungsseiten mit eingeklappter Metadatentabelle angezeigt.\nWeitere werden standardmässig nicht angezeigt.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-    "exif-jpeginterchangeformatlength": "Grösse der JPEG-Daten in Bytes",
-    "exif-referenceblackwhite": "Schwarz/Weiss-Referenzpunkte",
-    "exif-maxaperturevalue": "Grösste Blende",
-    "exif-whitebalance": "Weissabgleich",
-    "exif-gpsdop": "Masspräzision",
-    "exif-lightsource-13": "Tagesweiss fluoreszierend (N 4600–5400 K)",
-    "exif-lightsource-14": "Kaltweiss fluoreszierend (W 3900–4500 K)",
-    "exif-lightsource-15": "Weiss fluoreszierend (WW 3200–3700 K)",
-    "exif-isospeedratings-overflow": "Grösser als 65535",
-    "confirmemail_text": "{{SITENAME}} erfordert, dass du deine E-Mail-Adresse bestätigst (authentifizierst), bevor du die erweiterten E-Mail-Funktionen benutzen kannst. Klicke bitte auf die unten stehende, mit «Bestätigungscode zuschicken» beschriftete Schaltfläche, damit ein automatisch erstelltes E-Mail an die angegebene Adresse geschickt wird. Dieses E-Mail enthält eine Web-Adresse mit einem Bestätigungscode. Indem du diese Webseite in deinem Webbrowser öffnest, bestätigst du, dass die angegebene E-Mail-Adresse korrekt und gültig ist.",
-    "confirmemail_pending": "Es wurde dir bereits ein Bestätigungscode per E-Mail zugeschickt.\nWenn du dein Benutzerkonto erst vor kurzem erstellt hast, warte bitte noch ein paar Minuten auf das E-Mail, bevor du einen neuen Code anforderst.",
-    "confirmemail_sent": "Das Bestätigungs-E-Mail wurde verschickt.",
-    "confirmemail_sendfailed": "{{SITENAME}} konnte das Bestätigungs-E-Mail nicht an dich versenden.\nBitte prüfe die E-Mail-Adresse auf ungültige Zeichen.\n\nRückmeldung des Mailservers: $1",
-    "confirmemail_body": "Hallo,\n\njemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat das Benutzerkonto «$2» bei {{SITENAME}} registriert.\n\nUm die E-Mail-Funktionen von {{SITENAME}} (wieder) zu aktivieren und um zu bestätigen,\ndass dieses Benutzerkonto wirklich zu deiner E-Mail-Adresse und damit zu dir gehört, öffne bitte folgenden Link in deinem Browser:\n\n$3\n\nWenn du das genannte Benutzerkonto *nicht* registriert hast, folge diesem Link, um den Bestätigungsprozess abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis zum $6, $7 Uhr.",
-    "confirmemail_body_changed": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst,\nhat die E-Mail-Adresse des Benutzerkontos «$2» zu dieser Adresse bei {{SITENAME}} geändert.\n\nUm zu bestätigen, dass dieses Benutzerkonto wirklich dir gehört,\nund um die E-Mail-Features bei {{SITENAME}} zu reaktivieren, öffne diesen Link in deinem Browser:\n\n$3\n\nFalls das Konto *nicht* dir gehört, folge diesem Link,\num die E-Mail-Bestätigung abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis $4.",
-    "confirmemail_body_set": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst,\nhat die E-Mail-Adresse des Benutzerkontos «$2» auf {{SITENAME}} zu dieser E-Mail-Adresse abgeändert.\n\nUm zu bestätigen, dass dieses Benutzerkonto wirklich zu dir gehört\nund um die E-Mail-Funktionen auf {{SITENAME}} wieder zu aktivieren, öffne bitte den folgenden Link in deinem Browser:\n\n$3\n\nFalls das Konto *nicht* zu dir gehört, bitte den nachfolgenden Link öffnen,\num die Bestätigung der E-Mail-Adresse abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis $4.",
-    "autosumm-replace": "Der Seiteninhalt wurde durch einen anderen Text ersetzt: «$1»",
-    "autosumm-new": "Die Seite wurde neu angelegt: «$1»",
-    "livepreview-error": "Verbindung nicht möglich: $1 «$2». Bitte die normale Vorschau benutzen.",
-    "watchlistedit-normal-explain": "Dies sind die Einträge deiner Beobachtungsliste. Um Einträge zu entfernen, markiere die Kästchen neben den Einträgen und klicke am Ende der Seite auf «{{int:Watchlistedit-normal-submit}}». Du kannst deine Beobachtungsliste auch im [[Special:EditWatchlist/raw|Listenformat bearbeiten]].",
-    "watchlistedit-raw-explain": "Dies sind die Einträge deiner Beobachtungsliste im Listenformat. Die Einträge können zeilenweise gelöscht oder hinzugefügt werden.\nPro Zeile ist ein Eintrag erlaubt. Sobald du fertig bist, klicke auf «{{int:Watchlistedit-raw-submit}}».\nDu kannst auch die [[Special:EditWatchlist|Standardseite]] zum Bearbeiten benutzen.",
-    "unknown_extension_tag": "Unbekanntes Parsertag «$1»",
-    "duplicate-defaultsort": "Achtung: Der Sortierungsschlüssel «$2» überschreibt den vorher verwendeten Schlüssel «$1».",
-    "version-license-info": "MediaWiki ist freie Software, d. h. sie kann, gemäss 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\nMediaWiki 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 [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie der ''GNU General Public License''] 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 [//www.gnu.org/licenses/old-licenses/gpl-2.0.html online gelesen] werden.",
-    "fileduplicatesearch-info": "$1 × $2 Pixel<br />Dateigrösse: $3<br />MIME-Typ: $4",
-    "fileduplicatesearch-result-1": "Die Datei «$1» hat keine identischen Duplikate.",
-    "fileduplicatesearch-result-n": "Die Datei «$1» hat {{PLURAL:$2|ein identisches Duplikat|$2 identische Duplikate}}.",
-    "fileduplicatesearch-noresults": "Es wurde keine Datei namens «$1» gefunden.",
-    "external_image_whitelist": " #Diese Zeile nicht verändern.<pre>\n#Untenstehend können Fragmente regulärer Ausdrücke (der Teil zwischen den //) eingegeben werden.\n#Diese werden mit den URLs von Bildern aus externen Quellen verglichen.\n#Ein positiver Vergleich führt zur Anzeige des Bildes, andernfalls wird das Bild nur als Link angezeigt.\n#Zeilen, die mit einem # beginnen, werden als Kommentar behandelt.\n#Es wird nicht zwischen Gross- und Kleinschreibung unterschieden.\n\n#Fragmente regulärer Ausdrücke nach dieser Zeile eintragen. Diese Zeile nicht verändern.</pre>",
-    "feedback-bugornote": "Sofern Du detailliert ein technisches Problem beschreiben möchtest, melde bitte [$1 einen Fehler].\nAnderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kommentar wird, zusammen mit deinem Benutzernamen und der Version des von Dir verwendeten Webbrowsers sowie Betriebssystems, auf der Seite «[$3 $2]» hinzugefügt.",
-    "feedback-thanks": "Vielen Dank. Deine Rückmeldung wurde auf der Seite «[$2 $1]» gespeichert.",
-    "api-error-file-too-large": "Die hochgeladene Datei war zu gross.",
-    "api-error-hookaborted": "Die von dir vorgesehene Anpassung kann nicht durchgeführt werden (Unterbruch durch eine Programmschnittstelle).",
-    "api-error-unknown-code": "Unbekannter Fehler: «$1»",
-    "api-error-unknown-warning": "Unbekannte Warnung: «$1»",
-    "api-error-unknownerror": "Unbekannter Fehler: «$1»"
+       "@metadata": {
+               "authors": [
+                       "Filzstift",
+                       "Geitost",
+                       "Ianusius",
+                       "Kghbln",
+                       "MichaelFrey",
+                       "SVG",
+                       "The Evil IP address",
+                       "Umherirrender",
+                       "Das Schäfchen"
+               ]
+       },
+       "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-usenewrc": "Seitenbezogene Gruppierung in den «Letzten Änderungen» und auf der Beobachtungsliste",
+       "tog-minordefault": "Eigene Änderungen standardmässig als minim markieren",
+       "category_header": "Seiten in der Kategorie «$1»",
+       "category-media-header": "Medien in der Kategorie «$1»",
+       "badaccess-groups": "Diese Aktion ist auf Benutzer beschränkt, die {{PLURAL:$2|der Gruppe|einer der Gruppen}} «$1» angehören.",
+       "retrievedfrom": "Von «$1»",
+       "site-atom-feed": "Atom-Feed für «$1»",
+       "page-rss-feed": "RSS-Feed für «$1»",
+       "page-atom-feed": "Atom-Feed für «$1»",
+       "missing-article": "Der Text von «$1» $2 wurde nicht in der Datenbank gefunden.\n\nDie Seite ist möglicherweise gelöscht oder verschoben worden.\n\nFalls dies nicht  zutrifft, hast du eventuell einen Fehler in der Software gefunden. Bitte melde dies einem [[Special:ListUsers/sysop|Administrator]] unter Nennung der URL.",
+       "filecopyerror": "Die Datei «$1» konnte nicht nach «$2» kopiert werden.",
+       "filerenameerror": "Die Datei «$1» konnte nicht nach «$2» umbenannt werden.",
+       "filedeleteerror": "Die Datei «$1» konnte nicht gelöscht werden.",
+       "directorycreateerror": "Das Verzeichnis «$1» konnte nicht angelegt werden.",
+       "filenotfound": "Die Datei «$1» wurde nicht gefunden.",
+       "unexpected": "Unerwarteter Wert: «$1» = «$2»",
+       "cannotdelete": "Die Seite oder Datei «$1» kann nicht gelöscht werden.\nMöglicherweise wurde sie bereits von jemand anderem gelöscht.",
+       "cannotdelete-title": "Seite «$1» kann nicht gelöscht werden",
+       "actionthrottledtext": "Im Rahmen einer Anti-Spam-Massnahme oder aufgrund eines Missbrauchsfilters kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze hast du überschritten.\nBitte versuche es in ein paar Minuten erneut.",
+       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung ''«$2»'' eingerichtet.",
+       "filereadonlyerror": "Die Datei «$1» kann nicht verändert werden, da auf das Dateirepositorium «$2» nur Lesezugriff möglich ist.\n\nDer Administrator, der den Schreibzugriff sperrte, gab folgenden Grund an: «$3».",
+       "createacct-realname": "Richtiger Name (optional)",
+       "loginsuccess": "Du bist jetzt als «$1» bei {{SITENAME}} angemeldet.",
+       "nosuchuser": "Der Benutzername «$1» existiert nicht.\nÜberprüfe die Schreibweise (Gross-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melde dich als neuer Benutzer an]].",
+       "nosuchusershort": "Der Benutzername «$1» ist nicht vorhanden. Bitte überprüfe die Schreibweise.",
+       "passwordremindertext": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.\n\nDas automatisch generierte Passwort für Benutzer «$2» lautet nun: $3\n\nFalls du dies wirklich gewünscht hast, solltest du dich jetzt anmelden und das Passwort ändern.\nDas neue Passwort ist {{PLURAL:$5|1 Tag|$5 Tage}} gültig.\n\nBitte ignoriere dieses E-Mail, falls du es nicht selbst angefordert hast. Das alte Passwort bleibt weiterhin gültig.",
+       "noemail": "{{GENDER:$1|Benutzer|Benutzerin|Benutzer}} «$1» hat keine E-Mail-Adresse angegeben.",
+       "passwordsent": "Ein neues, temporäres Passwort wurde an die E-Mail-Adresse von Benutzer «$1» gesandt.\nBitte melde dich damit an, sobald du es erhalten hast. Das alte Passwort bleibt weiterhin gültig.",
+       "eauthentsent": "Ein Bestätigungs-E-Mail wurde an die angegebene Adresse verschickt.\n\nBevor ein E-Mail von anderen Benutzern über die E-Mail-Funktion empfangen werden kann, muss die Adresse und ihre tatsächliche Zugehörigkeit zu diesem Benutzerkonto erst bestätigt werden. Bitte befolge die Hinweise im Bestätigungs-E-Mail.",
+       "throttled-mailpassword": "Es wurde innerhalb der letzten {{PLURAL:$1|Stunde|$1 Stunden}} bereits ein Passwortzurücksetzungs-E-Mail angefordert. Um einen Missbrauch der Funktion zu verhindern, kann nur {{PLURAL:$1|einmal pro Stunde|alle $1 Stunden}} ein Passwortzurücksetzungs-E-Mail angefordert werden.",
+       "mailerror": "Fehler beim Senden des E-Mails: $1",
+       "createaccount-text": "Es wurde für dich ein Benutzerkonto «$2» auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für «$2» ist «$3». Du solltest dich nun anmelden und das Passwort ändern.\n\nFalls das Benutzerkonto irrtümlich angelegt wurde, kannst du diese Nachricht ignorieren.",
+       "createacct-another-realname-tip": "Der richtige Name ist optional.\nWenn du ihn angibst, wird er für die Zuordnung der Beiträge verwendet.",
+       "user-mail-no-addy": "Versuchte, ein E-Mail ohne Angabe einer E-Mail-Adresse zu versenden",
+       "user-mail-no-body": "Es wurde versucht, ein E-Mail mit einem leeren oder zu kurzen Textkörper zu versenden.",
+       "resetpass_announce": "Um die Anmeldung abzuschliessen, musst du ein neues Passwort festlegen.",
+       "passwordreset-emailsent": "Ein Passwortzurücksetzungs-E-Mail wurde versandt.",
+       "passwordreset-emailsent-capture": "Ein Passwortzurücksetzungs-E-Mail wurde versandt, das unten angezeigt wird.",
+       "passwordreset-emailerror-capture": "Die unten angezeigte Passwortzurücksetzungs-E-Mail wurde generiert, allerdings ist der Versand an {{GENDER:$2|den Benutzer|die Benutzerin}} gescheitert: $1",
+       "missingsummary": "'''Hinweis:''' Du hast keine Zusammenfassung angegeben. Wenn du erneut auf «{{int:savearticle}}» klickst, wird deine Änderung ohne Zusammenfassung übernommen.",
+       "missingcommentheader": "'''Achtung:''' Du hast kein Betreff/Überschrift eingegeben. Wenn du erneut auf «{{int:savearticle}}» klickst, wird deine Bearbeitung ohne Überschrift gespeichert.",
+       "blockedtext": "'''Dein Benutzername oder deine IP-Adresse wurde gesperrt.'''\n\nDie Sperrung wurde von $1 durchgeführt.\nAls Grund wurde ''$2'' angegeben.\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\nDu kannst die «E-Mail an diesen Benutzer»-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
+       "autoblockedtext": "Deine IP-Adresse wurde automatisch gesperrt, da sie von einem anderen Benutzer genutzt wurde, der von $1 gesperrt wurde.\nAls Grund wurde angegeben:\n\n:''$2''\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\n\nDu kannst die «E-Mail an diesen Benutzer»-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\n\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
+       "confirmedittext": "Du musst deine E-Mail-Adresse erst bestätigen, bevor du Bearbeitungen durchführen kannst. Bitte ergänze und bestätige dein E-Mail in den [[Special:Preferences|Einstellungen]].",
+       "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.",
+       "userpage-userdoesnotexist": "Das Benutzerkonto «<nowiki>$1</nowiki>» ist nicht vorhanden. Bitte prüfe, ob du diese Seite wirklich erstellen/bearbeiten willst.",
+       "userpage-userdoesnotexist-view": "Das Benutzerkonto «$1» ist nicht vorhanden.",
+       "clearyourcache": "'''Hinweis:''' Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.\n* '''Firefox/Safari:''' ''Umschalttaste'' drücken und gleichzeitig ''Aktualisieren'' anklicken oder entweder ''Ctrl+F5'' oder ''Ctrl+R'' (''⌘+R'' auf dem Mac) drücken\n* '''Google Chrome:''' ''Umschalttaste+Ctrl+R'' (''⌘+Umschalttaste+R'' auf dem Mac) drücken\n* '''Internet Explorer:''' ''Ctrl+F5'' drücken oder ''Ctrl'' drücken und gleichzeitig ''Aktualisieren'' anklicken\n* '''Opera:''' ''Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen''",
+       "usercssyoucanpreview": "'''Tipp:''' Benutze den «{{int:showpreview}}»-Button, um dein neues CSS vor dem Speichern zu testen.",
+       "userjsyoucanpreview": "'''Tipp:''' Benutze den «{{int:showpreview}}»-Button, um dein neues JavaScript vor dem Speichern zu testen.",
+       "userinvalidcssjstitle": "'''Achtung:''' Die Benutzeroberfläche «$1» existiert nicht. Bedenke, dass benutzerspezifische .css- und .js-Seiten mit einem Kleinbuchstaben anfangen müssen, also beispielsweise ''{{ns:user}}:Mustermann/vector.css'' an Stelle von ''{{ns:user}}:Mustermann/Vector.css''.",
+       "editing": "Bearbeiten von «$1»",
+       "creating": "Erstellen von «$1»",
+       "editingsection": "Bearbeiten von «$1» (Abschnitt)",
+       "editingcomment": "Bearbeiten von «$1» (Neuer Abschnitt)",
+       "explainconflict": "Jemand anders hat diese Seite geändert, nachdem du angefangen hast, sie zu bearbeiten.\nDas obere Textfeld enthält den aktuellen Bearbeitungsstand der Seite.\nDas untere Textfeld enthält deine Änderungen.\nBitte füge deine Änderungen in das obere Textfeld ein.\n'''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn du auf «{{int:savearticle}}» klickst.",
+       "copyrightwarning": "'''Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />\nDu gibst uns hiermit deine Zusage, dass du den Text '''selbst verfasst''' hast, dass der Text Allgemeingut '''(public domain)''' ist, oder dass der '''Urheber''' seine '''Zustimmung''' gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin.\n<i>Bitte beachte, dass alle {{SITENAME}}-Beiträge automatisch unter der «$2» stehen (siehe $1 für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf «Seite speichern».</i>",
+       "longpageerror": "'''Fehler: Der Text, den du zu speichern versuchst, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobytes}} gross. Dies ist grösser als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobytes}}.'''\nEr kann nicht gespeichert werden.",
+       "post-expand-template-inclusion-warning": "Warnung: Die Grösse eingebundener Vorlagen ist zu gross, einige Vorlagen können nicht eingebunden werden.",
+       "post-expand-template-inclusion-category": "Seiten, in denen die maximale Grösse eingebundener Vorlagen überschritten ist",
+       "post-expand-template-argument-warning": "'''Warnung:''' Diese Seite enthält mindestens einen Parameter in einer Vorlage, der expandiert zu gross ist. Diese Parameter werden ignoriert.",
+       "histlegend": "Zur Anzeige der Änderungen einfach die zu vergleichenden Versionen auswählen und die Schaltfläche «{{int:compareselectedversions}}» klicken.<br />\n* ({{int:cur}}) = Unterschied zur aktuellen Version, ({{int:last}}) = Unterschied zur vorherigen Version\n* Uhrzeit/Datum = Version zu dieser Zeit, Benutzername/IP-Adresse des Bearbeiters, {{int:minoreditletter}} = Kleine Änderung",
+       "revdelete-show-file-confirm": "Bist du sicher, dass du die gelöschte Version der Datei «<nowiki>$1</nowiki>» vom $2 um $3 Uhr ansehen willst?",
+       "revdelete-show-no-access": "Fehler beim Anzeigen des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als «eingeschränkt» markiert.\nDu hast darauf keinen Zugriff.",
+       "revdelete-modify-no-access": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als «eingeschränkt» markiert.\nDu hast darauf keinen Zugriff.",
+       "mergehistory-merge": "Die folgenden Versionen von «[[:$1]]» können nach «[[:$2]]» übertragen werden. Markiere die Version, bis zu der (einschliesslich) die Versionen übertragen werden sollen. Bitte beachte, dass die Nutzung der Navigationslinks die Auswahl zurücksetzt.",
+       "mergehistory-success": "{{PLURAL:$3|1 Version|$3 Versionen}} von «[[:$1]]» erfolgreich nach «[[:$2]]» vereinigt.",
+       "mergehistory-no-source": "Ursprungsseite «$1» ist nicht vorhanden.",
+       "mergehistory-no-destination": "Zielseite «$1» ist nicht vorhanden.",
+       "mergehistory-autocomment": "«[[:$1]]» vereinigt nach «[[:$2]]»",
+       "mergehistory-comment": "«[[:$1]]» vereinigt nach «[[:$2]]»: $3",
+       "history-title": "$1: Versionsgeschichte",
+       "searchresults-title": "Suchergebnisse für «$1»",
+       "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 über deine Suche gefundene Seite.|Siehe auch die gefundenen Suchergebnisse.}}",
+       "search-redirect": "(Weiterleitung von «$1»)",
+       "search-suggest": "Meintest du «$1»?",
+       "prefs-watchlist-days": "Anzahl der Tage, die die Beobachtungsliste standardmässig umfassen soll:",
+       "prefs-watchlist-edits-max": "Maximal 1'000 Einträge",
+       "recentchangesdays": "Anzahl der Tage, die die Liste der «Letzten Änderungen» standardmässig umfassen soll:",
+       "recentchangescount": "Anzahl der standardmässig angezeigten Bearbeitungen:",
+       "yourrealname": "Richtiger Name:",
+       "prefs-help-signature": "Beiträge auf Diskussionsseiten sollten mit «<nowiki>~~~~</nowiki>» signiert werden, was dann in die Signatur mit Zeitstempel umgewandelt wird.",
+       "prefs-help-realname": "Dies ist eine freiwillige Angabe. Damit kann dein richtiger Name deinen Beiträgen zugeordnet werden.",
+       "right-createpage": "Seiten erstellen (ausser Diskussionsseiten)",
+       "right-nominornewtalk": "Kleine Bearbeitungen an Diskussionsseiten führen zu keiner «Neue Nachrichten»-Anzeige",
+       "right-bigdelete": "Seiten mit grosser Versionsgeschichte löschen",
+       "right-viewmyprivateinfo": "Eigene private Daten ansehen (beispielsweise E-Mail-Adresse, richtiger Name)",
+       "right-editmyprivateinfo": "Eigene private Daten bearbeiten (beispielsweise E-Mail-Adresse, richtiger Name)",
+       "right-override-export-depth": "Exportiere Seiten einschliesslich verlinkter Seiten bis zu einer Tiefe von 5",
+       "right-passwordreset": "Passwort eines Benutzers zurücksetzen und das dazu verschickte E-Mail einsehen",
+       "recentchanges-label-plusminus": "Die Änderung der Seitengrösse in Bytes",
+       "rc_categories": "Nur Seiten aus den Kategorien (getrennt mit «|»):",
+       "rc-old-title": "ursprünglich erstellt als «$1»",
+       "recentchangeslinked-title": "Änderungen an Seiten, die von «$1» verlinkt sind",
+       "uploadtext": "Benutze dieses Formular, um neue Dateien hochzuladen.\n\nGehe zu der [[Special:FileList|Liste hochgeladener Dateien]], um vorhandene Dateien zu suchen und anzuzeigen. Siehe auch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Lösch-Logbuch]].\n\nUm ein '''Bild''' in einer Seite zu verwenden, nutze einen Link in der folgenden Form:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für ein Vollbild\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für ein 200px breites Bild innerhalb einer Box, mit «Alternativer Text» als Bildbeschreibung\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
+       "illegalfilename": "Der Dateiname «$1» enthält mindestens ein nicht erlaubtes Zeichen. Bitte benenne die Datei um und versuche, sie erneut hochzuladen.",
+       "filename-toolong": "Dateinamen dürfen nicht grösser als 240 Byte sein.",
+       "badfilename": "Der Dateiname wurde in «$1» geändert.",
+       "filetype-mime-mismatch": "Dateierweiterung «.$1» stimmt nicht mit dem MIME-Typ ($2) überein.",
+       "filetype-badmime": "Dateien mit dem MIME-Typ «$1» dürfen nicht hochgeladen werden.",
+       "filetype-bad-ie-mime": "Diese Datei kann nicht hochgeladen werden, da der Internet Explorer sie als «$1» erkennt, welcher ein nicht erlaubter potentiell gefährlicher Dateityp ist.",
+       "filetype-unwanted-type": "'''«.$1»''' ist ein unerwünschtes Dateiformat. Erlaubt {{PLURAL:$3|ist das Dateiformat|sind die Dateiformate}}: $2.",
+       "filetype-banned-type": "'''«.$1»''' {{PLURAL:$4|ist ein nicht erlaubter Dateityp|sind nicht erlaubte Dateitypen}}.\n{{PLURAL:$3|Erlaubter Dateityp ist|Erlaubte Dateitypen sind}} $2.",
+       "filetype-missing": "Die hochzuladende Datei hat keine Erweiterung (z. B. «.jpg»).",
+       "file-too-large": "Die hochgeladene Datei war zu gross.",
+       "large-file": "Die Dateigrösse sollte nach Möglichkeit $1 nicht überschreiten. Diese Datei ist $2 gross.",
+       "largefileserver": "Die Datei ist grösser als die vom Server eingestellte Maximalgrösse.",
+       "fileexists-extension": "Eine Datei mit ähnlichem Namen existiert bereits: [[$2|thumb]]\n* Name der hochzuladenden Datei: <strong>[[:$1]]</strong>\n* Name der vorhandenen Datei: <strong>[[:$2]]</strong>\nNur die Dateiendung unterscheidet sich in Gross-/Kleinschreibung. Bitte prüfe, ob die Dateien inhaltlich identisch sind.",
+       "fileexists-thumbnail-yes": "Bei der Datei scheint es sich um ein Bild verringerter Grösse ''(thumbnail)'' zu handeln. [[$1|thumb]]\nBitte prüfe die Datei <strong>[[:$1]]</strong>.\nWenn es sich um das Bild in Originalgrösse handelt, so braucht kein separates Vorschaubild hochgeladen zu werden.",
+       "file-thumbnail-no": "Der Dateiname beginnt mit <strong>$1</strong>. Dies deutet auf ein Bild verringerter Grösse ''(thumbnail)'' hin.\nBitte prüfe, ob du das Bild in voller Auflösung vorliegen hast und lade dieses unter dem Originalnamen hoch.",
+       "upload-maxfilesize": "Maximale Dateigrösse: $1",
+       "filename-bad-prefix": "Der Dateiname beginnt mit '''«$1»'''. Dies ist im allgemeinen der von einer Digitalkamera vorgegebene Dateiname und daher nicht sehr aussagekräftig.\nBitte gib der Datei einen Namen, der den Inhalt besser beschreibt.",
+       "backend-fail-maxsize": "Die Datei $1 konnte nicht gespeichert werden, da sie grösser als {{PLURAL:$2|ein Byte|$2 Bytes}} ist.",
+       "backend-fail-readonly": "Das Speicher-Backend «$1» befindet sich derzeit im Lesemodus. Der angegebene Grund lautet: «$2»",
+       "backend-fail-synced": "Die Datei «$1» befindet sich, innerhalb des internen Speicher-Backends, in einem inkonsistenten Zustand.",
+       "backend-fail-connect": "Es konnte keine Verbindung zum Speicher-Backend «$1» hergestellt werden.",
+       "backend-fail-internal": "Im Speicher-Backend «$1» ist ein unbekannter Fehler aufgetreten.",
+       "backend-fail-contenttype": "Der Inhaltstyp, der im Pfad «$1» zu speichernden Datei, konnte nicht bestimmt werden.",
+       "backend-fail-usable": "Die Datei «$1» konnte entweder aufgrund eines nicht vorhandenen Verzeichnisses oder wegen unzureichender Berechtigungen weder abgerufen noch gespeichert werden.",
+       "filejournal-fail-dbconnect": "Es konnte keine Verbindung zur Journaldatenbank des Speicher-Backends «$1» hergestellt werden.",
+       "filejournal-fail-dbquery": "Die Journaldatenbank des Speicher-Backends «$1» konnte nicht aktualisiert werden.",
+       "lockmanager-notlocked": "«$1» konnte nicht entsperrt werden, da keine Sperrung besteht.",
+       "lockmanager-fail-closelock": "Die Sperrdatei für «$1» konnte nicht geschlossen werden.",
+       "lockmanager-fail-deletelock": "Die Sperrdatei für «$1» konnte nicht gelöscht werden.",
+       "lockmanager-fail-acquirelock": "Die Sperre für «$1» konnte nicht abgerufen werden.",
+       "lockmanager-fail-openlock": "Die Sperrdatei für «$1» konnte nicht geöffnet werden.",
+       "lockmanager-fail-releaselock": "Die Sperre für «$1» konnte nicht freigegeben werden.",
+       "zip-bad": "Die Datei ist beschädigt oder eine aus anderweitigen Gründen nicht lesbare ZIP-Datei.\nSie kann daher keiner ordnungsgemässen Sicherheitsüberprüfung unterzogen werden.",
+       "zip-unsupported": "Diese ZIP-Datei verfügt über Komprimierungseigenschaften, die nicht von MediaWiki unterstützt werden.\nSie kann daher keiner ordnungsgemässen Sicherheitsüberprüfung unterzogen werden.",
+       "img-auth-badtitle": "Aus «$1» kann kein gültiger Titel erstellt werden.",
+       "img-auth-nologinnWL": "Du bist nicht angemeldet und «$1» ist nicht in der weissen Liste.",
+       "img-auth-nofile": "Datei «$1» existiert nicht.",
+       "img-auth-isdir": "Du versuchst, auf ein Verzeichnis «$1» zuzugreifen.\nNur Dateizugriff ist erlaubt.",
+       "img-auth-streaming": "Lade «$1».",
+       "img-auth-noread": "Benutzer hat keine Berechtigung, «$1» zu lesen.",
+       "http-invalid-scheme": "URLs mit dem Schema «$1» werden nicht unterstützt",
+       "listfiles-summary": "Diese Spezialseite listet alle hochgeladenen Dateien auf.",
+       "listfiles_size": "Grösse",
+       "filehist-dimensions": "Masse",
+       "filehist-filesize": "Dateigrösse",
+       "filerevert": "Zurücksetzen von «$1»",
+       "filedelete": "Lösche «$1»",
+       "filedelete-intro": "Du löschst die Datei '''«[[Media:$1|$1]]»''' inklusive ihrer Versionsgeschichte.",
+       "filedelete-intro-old": "Du löschst von der Datei '''«[[Media:$1|$1]]»''' die [$4 Version vom $2, $3 Uhr].",
+       "filedelete-success": "'''«$1»''' wurde gelöscht.",
+       "filedelete-success-old": "Von der Datei '''«[[Media:$1|$1]]»''' wurde die Version vom $2, $3 Uhr gelöscht.",
+       "filedelete-nofile": "'''«$1»''' ist nicht vorhanden.",
+       "filedelete-nofile-old": "Es gibt von '''«$1»''' keine archivierte Version mit den angegebenen Attributen.",
+       "randompage-nopages": "Es sind keine Seiten {{PLURAL:$2|im folgenden Namensraum|in den folgenden Namensräumen}} enthalten: «$1»",
+       "randomredirect-nopages": "Im Namensraum «$1» sind keine Weiterleitungen vorhanden.",
+       "alllogstext": "Dies ist die kombinierte Anzeige aller in {{SITENAME}} geführten Logbücher.\nDie Ausgabe kann durch die Auswahl des Logbuchtyps, des Benutzers oder des Seitentitels eingeschränkt werden (Gross-/Kleinschreibung muss beachtet werden).",
+       "allpages-bad-ns": "Der Namensraum «$1» ist in {{SITENAME}} nicht vorhanden.",
+       "linksearch-text": "Diese Spezialseite ermöglicht die Suche nach Seiten, in denen bestimmte Weblinks enthalten sind. Dabei können Platzhalter wie beispielsweise <code>*.beispiel.ch</code> benutzt werden. Es muss mindestens eine Top-Level-Domain, z. B. «*.org». angegeben werden. <br />{{PLURAL:$2|Unterstütztes Protokoll|Unterstützte Protokolle}}: <code>$1</code> (Standard ist http, falls kein Protokoll angegeben ist.)",
+       "post-expand-template-inclusion-category-desc": "Nach dem Expandieren aller Vorlagen ist die Seitengrösse grösser als <code>$wgMaxArticleSize</code>, sodass einige Vorlagen nicht expandiert werden.",
+       "post-expand-template-argument-category-desc": "Nach dem Expandieren eines Vorlagenargumentes (etwas in dreifach geschweiften Klammern, z.&nbsp;B. <code>{{{Foo}}})</code> ist die Seite grösser als <code>$wgMaxArticleSize</code>.",
+       "hidden-category-category-desc": "Dies ist eine Kategorie mit <code><nowiki>__HIDDENCAT__</nowiki></code>, die standardmässig nicht auf Seiten im Kategorienbereich angezeigt wird.",
+       "emailpagetext": "Du kannst {{GENDER:$1|dem Benutzer|der Benutzerin}} mit dem unten stehenden Formular ein E-Mail senden.\nAls Absender wird die E-Mail-Adresse aus deinen [[Special:Preferences|Einstellungen]] eingetragen, damit {{GENDER:$1|der Benutzer|die Benutzerin}} dir direkt antworten kann.",
+       "defemailsubject": "{{SITENAME}} - E-Mail von Benutzer «$1»",
+       "emailnotarget": "Nicht vorhandener oder ungültiger Benutzername für den Empfang eines E-Mails.",
+       "emailccme": "Sende eine Kopie des E-Mails an mich",
+       "emailsenttext": "Dein E-Mail wurde verschickt.",
+       "emailuserfooter": "Dieses E-Mail wurde von {{SITENAME}}-Benutzer «$1» an «$2» gesendet.",
+       "addedwatchtext": "Die Seite «[[:$1]]» wurde zu deiner [[Special:Watchlist|Beobachtungsliste]] hinzugefügt.\nSpätere Änderungen an dieser Seite und der zugehörigen Diskussionsseite werden dort gelistet.",
+       "removedwatchtext": "Die Seite «[[:$1]]» wurde von deiner [[Special:Watchlist|Beobachtungsliste]] entfernt.",
+       "watcherrortext": "Beim Ändern der Beobachtungslisteneinstellungen für «$1» ist ein Fehler aufgetreten.",
+       "excontent": "Inhalt war: «$1»",
+       "excontentauthor": "Inhalt war: «$1» (einziger Bearbeiter: [[Special:Contributions/$2|$2]])",
+       "exbeforeblank": "Inhalt vor dem Leeren der Seite: «$1»",
+       "delete-confirm": "Löschen von «$1»",
+       "deletedtext": "«$1» wurde gelöscht. Im $2 findest du eine Liste der letzten Löschungen.",
+       "editcomment": "Die Änderungszusammenfassung lautet: ''«$1»''.",
+       "protectedarticle": "schützte «[[$1]]»",
+       "modifiedarticleprotection": "änderte den Schutz von «[[$1]]»",
+       "unprotectedarticle": "hob den Schutz von «[[$1]]» auf",
+       "movedarticleprotection": "übertrug den Seitenschutz von «[[$2]]» auf «[[$1]]»",
+       "protect-title": "Schutz ändern von «$1»",
+       "protect-title-notallowed": "Schutz ansehen von «$1»",
+       "protect-text": "Hier kannst du den Schutzstatus der Seite «$1» einsehen und ändern.",
+       "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-fallback": "Nur Benutzern mit der «$1»-Berechtigung erlauben.",
+       "minimum-size": "Mindestgrösse",
+       "maximum-size": "Maximalgrösse:",
+       "undeleteextrahelp": "* Um die Seite mitsamt aller Versionen wiederherzustellen, wähle keine Version aus, gib eine Begründung an und klicke dann auf «{{int:undeletebtn}}».\n* Um lediglich bestimmte Versionen der Seite wiederherzustellen, wähle die betreffenden Versionen einzeln aus, gib eine Begründung an und klicke dann auf «{{int:undeletebtn}}».",
+       "undeletedpage": "'''«$1»''' wurde wiederhergestellt.\n\nIm [[Special:Log/delete|Lösch-Logbuch]] findest du eine Übersicht der gelöschten und wiederhergestellten Seiten.",
+       "undelete-cleanup-error": "Fehler beim Löschen der unbenutzten Archiv-Version «$1».",
+       "undelete-show-file-confirm": "Bist du sicher, dass du eine gelöschte Version der Datei «<nowiki>$1</nowiki>» vom $2, $3 Uhr sehen willst?",
+       "contributions-title": "Benutzerbeiträge von «$1»",
+       "whatlinkshere-title": "Seiten, die auf «$1» verlinken",
+       "linkshere": "Die folgenden Seiten verlinken auf '''«[[:$1]]»''':",
+       "nolinkshere": "Keine Seite verlinkt auf '''«[[:$1]]»'''.",
+       "nolinkshere-ns": "Keine Seite verlinkt auf '''«[[:$1]]»''' im gewählten Namensraum.",
+       "ipb-confirmhideuser": "Du bist gerade dabei, einen Benutzer im Modus «Benutzer verstecken» zu sperren. Dies führt dazu, dass der Benutzername in allen Listen und Logbüchern unterdrückt wird. Möchtest du das wirklich tun?",
+       "ipb-unblock-addr": "«$1» freigeben",
+       "ipb-blocklist-contribs": "Benutzerbeiträge von «$1»",
+       "autoblocker": "Automatische Sperre, da du eine gemeinsame IP-Adresse mit [[User:$1|$1]] benutzt.\nGrund der Benutzersperre: «$2»",
+       "blocklogentry": "sperrte «[[$1]]» für den Zeitraum: $2 $3",
+       "reblock-logentry": "änderte die Sperre von «[[$1]]» für den Zeitraum: $2 $3",
+       "unblocklogentry": "hob die Sperre von «$1» auf",
+       "ipb_already_blocked": "«$1» wurde bereits gesperrt.",
+       "ipb-needreblock": "«$1» ist bereits gesperrt. Möchtest du die Sperrparameter ändern?",
+       "ip_range_toolarge": "Adressbereiche, die grösser als /$1 sind, sind nicht erlaubt.",
+       "cant-see-hidden-user": "Der Benutzer, den du versuchst zu sperren, wurde bereits gesperrt und verborgen. Da du das «hideuser»-Recht nicht hast, kannst du die Benutzersperre nicht sehen und nicht bearbeiten.",
+       "move-page": "Verschieben von «$1»",
+       "movepage-moved": "'''Die Seite «$1» wurde nach «$2» verschoben.'''",
+       "movepage-page-exists": "Die Seite «$1» ist bereits vorhanden und kann nicht automatisch überschrieben werden.",
+       "movepage-page-moved": "Die Seite «$1» wurde nach «$2» verschoben.",
+       "movepage-page-unmoved": "Die Seite «$1» konnte nicht nach «$2» verschoben werden.",
+       "delete_and_move_text": "== Löschung erforderlich ==\n\nDie Seite «[[:$1]]» existiert bereits. Möchtest du diese löschen, um die Seite verschieben zu können?",
+       "delete_and_move_reason": "gelöscht, um Platz für die Verschiebung von «[[$1]]» zu machen",
+       "immobile-source-namespace": "Seiten des «$1»-Namensraums können nicht verschoben werden",
+       "immobile-target-namespace": "Seiten können nicht in den «$1»-Namensraum verschoben werden",
+       "thumbnail-more": "vergrössern",
+       "djvu_page_error": "DjVu-Seite ausserhalb des Seitenbereichs",
+       "import-interwiki-templates": "Alle Vorlagen einschliessen",
+       "importuploaderrorsize": "Das Hochladen der Importdatei ist fehlgeschlagen. Die Datei ist grösser als die maximal erlaubte Dateigrösse.",
+       "import-error-edit": "Die Seite «$1» wurde nicht importiert, da du nicht berechtigt bist, sie zu bearbeiten.",
+       "import-error-create": "Die Seite «$1» wurde nicht importiert, da du nicht berechtigt bist, sie zu erstellen.",
+       "import-error-interwiki": "Die Seite «$1» wurde nicht importiert, da deren Name für externe Links (Interwiki) reserviert ist.",
+       "import-error-special": "Die Seite «$1» wurde nicht importiert, da sie zu einem besonderen Namensraum gehört, in dem keine Seiten möglich sind.",
+       "import-error-invalid": "Seite «$1» wurde nicht importiert, da deren Name ungültig ist.",
+       "import-logentry-upload": "importierte «[[$1]]» von einer Datei",
+       "import-logentry-interwiki": "importierte «$1» (Transwiki)",
+       "javascripttest-pagetext-unknownframework": "Unbekanntes Framework «$1».",
+       "tooltip-t-emailuser": "Ein E-Mail an diesen Benutzer senden",
+       "pageinfo-title": "Informationen zu «$1»",
+       "markedaspatrollederror": "Markierung als «kontrolliert» nicht möglich.",
+       "filedelete-missing": "Die Datei «$1» kann nicht gelöscht werden, da sie nicht vorhanden ist.",
+       "filedelete-old-unregistered": "Die angegebene Datei-Version «$1» ist nicht in der Datenbank vorhanden.",
+       "filedelete-current-unregistered": "Die angegebene Datei «$1» ist nicht in der Datenbank vorhanden.",
+       "filedelete-archive-read-only": "Das Archiv-Verzeichnis «$1» ist für den Webserver nicht beschreibbar.",
+       "imagemaxsize": "Maximale Bildgrösse:<br />''(für Dateibeschreibungsseiten)''",
+       "thumbsize": "Standardgrösse der Vorschaubilder:",
+       "file-info": "Dateigrösse: $1, MIME-Typ: $2",
+       "file-info-size": "$1 × $2 Pixel, Dateigrösse: $3, MIME-Typ: $4",
+       "file-info-size-pages": "$1 × $2 Pixel, Dateigrösse: $3, MIME-Typ: $4, $5 {{PLURAL:$5|Seite| Seiten}}",
+       "svg-long-desc": "SVG-Datei, Basisgrösse: $1 × $2 Pixel, Dateigrösse: $3",
+       "show-big-image-preview": "Grösse dieser Vorschau: $1.",
+       "metadata-fields": "Die folgenden Felder der EXIF-Metadaten, die in diesem MediaWiki-Systemtext angegeben sind, werden auf Bildbeschreibungsseiten mit eingeklappter Metadatentabelle angezeigt.\nWeitere werden standardmässig nicht angezeigt.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-jpeginterchangeformatlength": "Grösse der JPEG-Daten in Bytes",
+       "exif-referenceblackwhite": "Schwarz/Weiss-Referenzpunkte",
+       "exif-maxaperturevalue": "Grösste Blende",
+       "exif-whitebalance": "Weissabgleich",
+       "exif-gpsdop": "Masspräzision",
+       "exif-lightsource-13": "Tagesweiss fluoreszierend (N 4600–5400 K)",
+       "exif-lightsource-14": "Kaltweiss fluoreszierend (W 3900–4500 K)",
+       "exif-lightsource-15": "Weiss fluoreszierend (WW 3200–3700 K)",
+       "exif-isospeedratings-overflow": "Grösser als 65535",
+       "confirmemail_text": "{{SITENAME}} erfordert, dass du deine E-Mail-Adresse bestätigst (authentifizierst), bevor du die erweiterten E-Mail-Funktionen benutzen kannst. Klicke bitte auf die unten stehende, mit «Bestätigungscode zuschicken» beschriftete Schaltfläche, damit ein automatisch erstelltes E-Mail an die angegebene Adresse geschickt wird. Dieses E-Mail enthält eine Web-Adresse mit einem Bestätigungscode. Indem du diese Webseite in deinem Webbrowser öffnest, bestätigst du, dass die angegebene E-Mail-Adresse korrekt und gültig ist.",
+       "confirmemail_pending": "Es wurde dir bereits ein Bestätigungscode per E-Mail zugeschickt.\nWenn du dein Benutzerkonto erst vor kurzem erstellt hast, warte bitte noch ein paar Minuten auf das E-Mail, bevor du einen neuen Code anforderst.",
+       "confirmemail_sent": "Das Bestätigungs-E-Mail wurde verschickt.",
+       "confirmemail_sendfailed": "{{SITENAME}} konnte das Bestätigungs-E-Mail nicht an dich versenden.\nBitte prüfe die E-Mail-Adresse auf ungültige Zeichen.\n\nRückmeldung des Mailservers: $1",
+       "confirmemail_body": "Hallo,\n\njemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat das Benutzerkonto «$2» bei {{SITENAME}} registriert.\n\nUm die E-Mail-Funktionen von {{SITENAME}} (wieder) zu aktivieren und um zu bestätigen,\ndass dieses Benutzerkonto wirklich zu deiner E-Mail-Adresse und damit zu dir gehört, öffne bitte folgenden Link in deinem Browser:\n\n$3\n\nWenn du das genannte Benutzerkonto *nicht* registriert hast, folge diesem Link, um den Bestätigungsprozess abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis zum $6, $7 Uhr.",
+       "confirmemail_body_changed": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst,\nhat die E-Mail-Adresse des Benutzerkontos «$2» zu dieser Adresse bei {{SITENAME}} geändert.\n\nUm zu bestätigen, dass dieses Benutzerkonto wirklich dir gehört,\nund um die E-Mail-Features bei {{SITENAME}} zu reaktivieren, öffne diesen Link in deinem Browser:\n\n$3\n\nFalls das Konto *nicht* dir gehört, folge diesem Link,\num die E-Mail-Bestätigung abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis $4.",
+       "confirmemail_body_set": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst,\nhat die E-Mail-Adresse des Benutzerkontos «$2» auf {{SITENAME}} zu dieser E-Mail-Adresse abgeändert.\n\nUm zu bestätigen, dass dieses Benutzerkonto wirklich zu dir gehört\nund um die E-Mail-Funktionen auf {{SITENAME}} wieder zu aktivieren, öffne bitte den folgenden Link in deinem Browser:\n\n$3\n\nFalls das Konto *nicht* zu dir gehört, bitte den nachfolgenden Link öffnen,\num die Bestätigung der E-Mail-Adresse abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis $4.",
+       "autosumm-replace": "Der Seiteninhalt wurde durch einen anderen Text ersetzt: «$1»",
+       "autosumm-new": "Die Seite wurde neu angelegt: «$1»",
+       "watchlistedit-normal-explain": "Dies sind die Einträge deiner Beobachtungsliste. Um Einträge zu entfernen, markiere die Kästchen neben den Einträgen und klicke am Ende der Seite auf «{{int:Watchlistedit-normal-submit}}». Du kannst deine Beobachtungsliste auch im [[Special:EditWatchlist/raw|Listenformat bearbeiten]].",
+       "watchlistedit-raw-explain": "Dies sind die Einträge deiner Beobachtungsliste im Listenformat. Die Einträge können zeilenweise gelöscht oder hinzugefügt werden.\nPro Zeile ist ein Eintrag erlaubt. Sobald du fertig bist, klicke auf «{{int:Watchlistedit-raw-submit}}».\nDu kannst auch die [[Special:EditWatchlist|Standardseite]] zum Bearbeiten benutzen.",
+       "unknown_extension_tag": "Unbekanntes Parsertag «$1»",
+       "duplicate-defaultsort": "Achtung: Der Sortierungsschlüssel «$2» überschreibt den vorher verwendeten Schlüssel «$1».",
+       "version-license-info": "MediaWiki ist freie Software, d. h. sie kann, gemäss 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\nMediaWiki 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 [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie der ''GNU General Public License''] 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 [//www.gnu.org/licenses/old-licenses/gpl-2.0.html online gelesen] werden.",
+       "fileduplicatesearch-info": "$1 × $2 Pixel<br />Dateigrösse: $3<br />MIME-Typ: $4",
+       "fileduplicatesearch-result-1": "Die Datei «$1» hat keine identischen Duplikate.",
+       "fileduplicatesearch-result-n": "Die Datei «$1» hat {{PLURAL:$2|ein identisches Duplikat|$2 identische Duplikate}}.",
+       "fileduplicatesearch-noresults": "Es wurde keine Datei namens «$1» gefunden.",
+       "external_image_whitelist": " #Diese Zeile nicht verändern.<pre>\n#Untenstehend können Fragmente regulärer Ausdrücke (der Teil zwischen den //) eingegeben werden.\n#Diese werden mit den URLs von Bildern aus externen Quellen verglichen.\n#Ein positiver Vergleich führt zur Anzeige des Bildes, andernfalls wird das Bild nur als Link angezeigt.\n#Zeilen, die mit einem # beginnen, werden als Kommentar behandelt.\n#Es wird nicht zwischen Gross- und Kleinschreibung unterschieden.\n\n#Fragmente regulärer Ausdrücke nach dieser Zeile eintragen. Diese Zeile nicht verändern.</pre>",
+       "feedback-bugornote": "Sofern Du detailliert ein technisches Problem beschreiben möchtest, melde bitte [$1 einen Fehler].\nAnderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kommentar wird, zusammen mit deinem Benutzernamen und der Version des von Dir verwendeten Webbrowsers sowie Betriebssystems, auf der Seite «[$3 $2]» hinzugefügt.",
+       "feedback-thanks": "Vielen Dank. Deine Rückmeldung wurde auf der Seite «[$2 $1]» gespeichert.",
+       "api-error-file-too-large": "Die hochgeladene Datei war zu gross.",
+       "api-error-hookaborted": "Die von dir vorgesehene Anpassung kann nicht durchgeführt werden (Unterbruch durch eine Programmschnittstelle).",
+       "api-error-unknown-code": "Unbekannter Fehler: «$1»",
+       "api-error-unknown-warning": "Unbekannte Warnung: «$1»",
+       "api-error-unknownerror": "Unbekannter Fehler: «$1»"
 }
index 4248cbe..6314a70 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "*Surak*",
-            "ChrisiPK",
-            "Das Schäfchen",
-            "Filzstift",
-            "Geitost",
-            "Imre",
-            "Jimmy Collins <jimmy.collins@web.de>",
-            "Kghbln",
-            "Leithian",
-            "Merlissimo",
-            "MichaelFrey",
-            "Michawiki",
-            "Pill",
-            "Raimond Spekking (Raymond) <raimond.spekking@gmail.com> since January 2007",
-            "SVG",
-            "Se4598",
-            "The Evil IP address",
-            "Tim Bartel (avatar) <wikipedia@computerkultur.org> formal addressing",
-            "Tischbeinahe",
-            "Umherirrender",
-            "Urhixidur"
-        ]
-    },
-    "tog-enotifrevealaddr": "Ihre E-Mail-Adresse in Benachrichtigungs-E-Mails anzeigen",
-    "view-pool-error": "Entschuldigung, die Server sind im Moment überlastet.\nZu viele Benutzer versuchen, diese Seite zu besuchen.\nBitte warten Sie einige Minuten, bevor Sie es noch einmal versuchen.\n\n$1",
-    "badaccess-group0": "Sie haben nicht die erforderlichen Benutzerrechte für diese Aktion.",
-    "youhavenewmessages": "Sie haben $1 ($2).",
-    "youhavenewmessagesmulti": "Sie haben neue Nachrichten: $1",
-    "enterlockreason": "Bitte geben Sie einen Grund ein, warum die Datenbank gesperrt werden soll und eine Abschätzung über die Dauer der Sperrung",
-    "readonlytext": "Die Datenbank ist vorübergehend für Neueinträge und Änderungen gesperrt. Bitte versuchen Sie es später noch einmal.\n\nGrund der Sperrung: $1",
-    "missing-article": "Der Text von „$1“ $2 wurde nicht in der Datenbank gefunden.\n\nDie Seite ist möglicherweise gelöscht oder verschoben worden.\n\nFalls dies nicht der Fall ist, haben Sie eventuell einen Fehler in der Software gefunden. Bitte melden Sie dies einem [[Special:ListUsers/sysop|Administrator]] unter Nennung der URL.",
-    "actionthrottledtext": "Im Rahmen einer Anti-Spam-Maßnahme kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze haben Sie überschritten.\nBitte versuchen Sie es in ein paar Minuten erneut.",
-    "viewsourcetext": "Sie können den Quelltext dieser Seite betrachten und kopieren:",
-    "viewyourtext": "Sie können den Quelltext '''Ihrer Bearbeitung''' dieser Seite betrachten und kopieren:",
-    "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutzen Sie bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
-    "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutzen Sie bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
-    "namespaceprotected": "Sie haben nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
-    "customcssprotected": "Sie haben nicht die Berechtigung diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.",
-    "customjsprotected": "Sie haben nicht die Berechtigung, diese JavaScript enthaltende Seite zu bearbeiten, da es sich hierbei um die persönlichen Einstellungen eines anderen Benutzers handelt.",
-    "exception-nologin-text": "Sie müssen sich [[Special:Userlogin|anmelden]], um auf diese Seite oder Aktion zugreifen zu können.",
-    "logouttext": "'''Sie sind nun abgemeldet.'''\n\nBeachten Sie, dass einige Seiten noch anzeigen können, dass Sie angemeldet sind, solange Sie nicht Ihren Browsercache geleert haben.",
-    "welcomecreation-msg": "Ihr Benutzerkonto wurde erstellt.\nVergessen Sie nicht, Ihre [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ändern.",
-    "yourdomainname": "Ihre Domain:",
-    "password-change-forbidden": "Sie können auf diesem Wiki keine Passwörter ändern.",
-    "externaldberror": "Entweder es liegt ein Fehler bei der externen Authentifizierung vor oder Sie dürfen Ihr externes Benutzerkonto nicht aktualisieren.",
-    "nologin": "Sie haben kein Benutzerkonto? $1.",
-    "gotaccount": "Haben Sie bereits ein Benutzerkonto? '''$1'''.",
-    "userlogin-loggedin": "Sie sind bereits als {{GENDER:$1|$1}} angemeldet.\nBenutzen Sie das unten stehende Formular, um sich unter einem anderen Benutzernamen anzumelden.",
-    "userexists": "Dieser Benutzername ist schon vergeben.\nBitte wählen Sie einen anderen.",
-    "nocookiesnew": "Der Benutzerzugang wurde erstellt, aber Sie sind nicht angemeldet.\n{{SITENAME}} benötigt für diese Funktion Cookies, bitte aktivieren Sie diese und melden sich dann mit Ihrem neuen Benutzernamen und dem zugehörigen Passwort an.",
-    "nocookieslogin": "{{SITENAME}} benutzt Cookies zur Anmeldung der Benutzer.\nSie haben Cookies deaktiviert, bitte aktivieren Sie diese und versuchen Sie es erneut.",
-    "noname": "Sie müssen einen gültigen Benutzernamen angeben.",
-    "loginsuccess": "Sie sind jetzt als „$1“ bei {{SITENAME}} angemeldet.",
-    "nosuchuser": "Der Benutzername „$1“ existiert nicht.\nÜberprüfen Sie die Schreibweise (Groß-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melden Sie sich als neuer Benutzer an]].",
-    "nosuchusershort": "Der Benutzername „$1“ ist nicht vorhanden. Bitte überprüfen Sie die Schreibweise.",
-    "nouserspecified": "Bitte geben Sie einen Benutzernamen an.",
-    "wrongpassword": "Das Passwort ist falsch. Bitte versuchen Sie es erneut.",
-    "wrongpasswordempty": "Es wurde kein Passwort eingegeben. Bitte versuchen Sie es erneut.",
-    "password-name-match": "Ihr Passwort muss sich von Ihrem Benutzernamen unterscheiden.",
-    "passwordremindertext": "Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.\n\nDas automatisch generierte Passwort für Benutzer „$2“ lautet nun: $3\n\nFalls Sie dies wirklich gewünscht haben, sollten Sie sich jetzt anmelden und das Passwort ändern.\nDas neue Passwort ist {{PLURAL:$5|1 Tag|$5 Tage}} gültig.\n\nBitte ignorieren Sie diese E-Mail, falls Sie sie nicht selbst angefordert haben. Das alte Passwort bleibt weiterhin gültig.",
-    "noemailcreate": "Sie müssen eine gültige E-Mail-Adresse angeben",
-    "passwordsent": "Ein neues, temporäres Passwort wurde an die E-Mail-Adresse von Benutzer „$1“ gesandt.\nBitte melden Sie sich damit an, sobald sie es erhalten haben. Das alte Passwort bleibt weiterhin gültig.",
-    "blocked-mailpassword": "Die von Ihnen verwendete IP-Adresse ist für das Ändern von Seiten gesperrt. Um einen Missbrauch zu verhindern, wurde die Möglichkeit zur Anforderung eines neuen Passwortes ebenfalls gesperrt.",
-    "eauthentsent": "Eine Bestätigungs-E-Mail wurde an die angegebene Adresse verschickt.\n\nBevor eine E-Mail von anderen Benutzern über die E-Mail-Funktion empfangen werden kann, muss die Adresse und ihre tatsächliche Zugehörigkeit zu diesem Benutzerkonto erst bestätigt werden. Bitte befolgen Sie die Hinweise in der Bestätigungs-E-Mail.",
-    "acct_creation_throttle_hit": "Besucher dieses Wikis, die Ihre IP-Adresse verwenden, haben innerhalb des letzten Tages {{PLURAL:$1|1 Benutzerkonto|$1 Benutzerkonten}} erstellt, was die maximal erlaubte Anzahl in dieser Zeitperiode ist.\n\nBesucher, die diese IP-Adresse verwenden, können momentan keine Benutzerkonten mehr erstellen.",
-    "emailauthenticated": "Ihre E-Mail-Adresse wurde am $2 um $3 Uhr bestätigt.",
-    "emailnotauthenticated": "Ihre E-Mail-Adresse ist noch nicht bestätigt. Die folgenden E-Mail-Funktionen stehen erst nach erfolgreicher Bestätigung zur Verfügung.",
-    "noemailprefs": "Geben Sie eine E-Mail-Adresse in den Einstellungen an, damit die nachfolgenden Funktionen zur Verfügung stehen.",
-    "invalidemailaddress": "Die E-Mail-Adresse wird nicht akzeptiert, weil sie ein ungültiges Format (eventuell ungültige Zeichen) zu haben scheint. Bitte geben Sie eine korrekte Adresse ein oder leeren Sie das Feld.",
-    "createaccount-text": "Es wurde für Sie ein Benutzerkonto „$2“ auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für „$2“ ist „$3“. Sie sollten sich nun anmelden und das Passwort ändern.\n\nFalls das Benutzerkonto irrtümlich angelegt wurde, können Sie diese Nachricht ignorieren.",
-    "login-throttled": "Sie haben zu oft versucht, sich anzumelden.\nBitte warten Sie $1, bevor Sie es erneut probieren.",
-    "resetpass_announce": "Anmeldung mit dem per E-Mail zugesandten Code. Um die Anmeldung abzuschließen, müssen Sie jetzt ein neues Passwort wählen.",
-    "resetpass_text": "<!-- Ergänzen Sie den Text hier -->",
-    "changepassword-success": "Ihr Passwort wurde erfolgreich geändert.",
-    "resetpass-no-info": "Sie müssen sich anmelden, um auf diese Seite direkt zuzugreifen.",
-    "resetpass-wrong-oldpass": "Ungültiges temporäres oder aktuelles Passwort.\nMöglicherweise haben Sie Ihr Passwort bereits erfolgreich geändert oder ein neues temporäres Passwort beantragt.",
-    "passwordreset-capture-help": "Wenn Sie dieses Kästchen ankreuzen, wird die E-Mail-Nachricht mit dem temporären Passwort sowohl Ihnen angezeigt als auch dem Benutzer zugesandt.",
-    "passwordreset-emailtext-ip": "Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat eine Zurücksetzung Ihres\nPassworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}}\nmit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab.\nSie sollten sich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese\nAnfrage getätigt hat oder Sie sich wieder an Ihr ursprüngliches Passwort erinnern können und es nicht länger\nändern möchten, können Sie diese Nachricht ignorieren und weiterhin Ihr altes\nPasswort benutzen.",
-    "passwordreset-emailtext-user": "Benutzer $1 bei {{SITENAME}} hat eine Zurücksetzung Ihres Passworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}} mit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab. Sie sollten sich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese Anfrage getätigt hat oder Sie sich wieder an Ihr ursprüngliches Passwort erinnern können und es nicht ändern möchten, können Sie diese Nachricht ignorieren und weiterhin Ihr altes Passwort benutzen.",
-    "changeemail-text": "Füllen Sie dieses Formular vollständig aus, um Ihre E-Mail-Adresse zu ändern. Sie müssen Ihr Passwort angeben, um diese Änderung zu bestätigen.",
-    "changeemail-no-info": "Sie müssen angemeldet sein, um direkt auf diese Seite zugreifen zu können.",
-    "sig_tip": "Ihre Signatur mit Zeitstempel",
-    "anoneditwarning": "Sie bearbeiten diese Seite unangemeldet. Wenn Sie sie abspeichern, wird Ihre aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit unwiderruflich '''öffentlich''' einsehbar.",
-    "missingsummary": "'''Hinweis:''' Sie haben keine Zusammenfassung angegeben. Wenn Sie erneut auf „{{int:savearticle}}“ klicken, wird Ihre Änderung ohne Zusammenfassung übernommen.",
-    "missingcommenttext": "Ihr Abschnitt enthält keinen Text.",
-    "missingcommentheader": "'''Achtung:''' Sie haben kein Betreff/Überschrift eingegeben. Wenn Sie erneut auf „{{int:savearticle}}“ klicken, wird Ihre Bearbeitung ohne Überschrift gespeichert.",
-    "blockedtext": "'''Ihr Benutzername oder Ihre IP-Adresse wurde gesperrt.'''\n\nDie Sperrung wurde vom Administrator $1 durchgeführt.\nAls Grund wurde ''$2'' angegeben.\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nSie könnten $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\nSie können die „E-Mail an diesen Benutzer“-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in Ihren [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für Sie gesperrt wurde.\nIhre aktuelle IP-Adresse ist $3 und die Sperrkennung lautet $5.\nBitte fügen Sie alle Informationen jeder Anfrage hinzu, die Sie stellen.",
-    "autoblockedtext": "Ihre IP-Adresse wurde automatisch gesperrt, da sie von einem anderen Benutzer genutzt wurde, der von $1 gesperrt wurde.\nAls Grund wurde angegeben:\n\n:''$2''\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nSie können $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\n\nSie können die „E-Mail an diesen Benutzer“-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in Ihren [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für Sie gesperrt wurde.\n\nIhre aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte fügen Sie alle Informationen jeder Anfrage hinzu, die Sie stellen.",
-    "whitelistedittext": "Sie müssen sich $1, um Seiten bearbeiten zu können.",
-    "confirmedittext": "Sie müssen Ihre E-Mail-Adresse erst bestätigen, bevor Sie Bearbeitungen vornehmen können. Bitte ergänzen und bestätigen Sie Ihre E-Mail in den [[Special:Preferences|Einstellungen]].",
-    "nosuchsectiontext": "Sie haben versucht, einen Abschnitt zu bearbeiten, der nicht existiert.\nVermutlich wurde er verschoben oder gelöscht, nachdem Sie die Seite aufgerufen haben.",
-    "loginreqpagetext": "Sie müssen sich $1, um Seiten lesen zu können.",
-    "newarticletext": "Sie sind einem Link zu einer Seite gefolgt, die nicht vorhanden ist.\nUm diese Seite anzulegen, tragen Sie Ihren Text in das untenstehende Bearbeitungsfeld ein (weitere Informationen auf der [[{{MediaWiki:Helppage}}|Hilfeseite]]).\nSofern Sie fälschlicherweise hier sind, klicken Sie auf die Schaltfläche '''Zurück''' Ihres 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 Sie mit den Kommentaren auf dieser Seite nichts anfangen können, richten sie sich vermutlich an einen früheren Inhaber Ihrer IP-Adresse und Sie können sie ignorieren. Sie können sich auch ein [[Special:UserLogin/signup|Benutzerkonto erstellen]] oder sich [[Special:UserLogin|anmelden]], um künftig Verwechslungen mit anderen anonymen Benutzern zu vermeiden.''",
-    "noarticletext": "Diese Seite enthält momentan noch keinen Text.\nSie können diesen Titel auf den anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]],\n<span class=\"plainlinks\">in den zugehörigen [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbüchern suchen] oder diese Seite [{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten]</span>.",
-    "noarticletext-nopermission": "Diese Seite enthält momentan noch keinen Text.\nSie können ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]] oder die zugehörigen <span class=\"plainlinks\">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten].</span>. Sie sind allerdings nicht berechtigt diese Seite zu erstellen.",
-    "userpage-userdoesnotexist": "Das Benutzerkonto „<nowiki>$1</nowiki>“ ist nicht vorhanden. Bitte prüfen Sie, ob Sie diese Seite wirklich erstellen/bearbeiten möchten.",
-    "clearyourcache": "'''Hinweis:''' Leeren Sie nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.\n* '''Firefox/Safari:''' ''Umschalttaste'' drücken und gleichzeitig ''Aktualisieren'' anklicken oder entweder ''Strg+F5'' oder ''Strg+R'' (''⌘+R'' auf dem Mac) drücken\n* '''Google Chrome:''' ''Umschalttaste+Strg+R'' (''⌘+Umschalttaste+R'' auf dem Mac) drücken\n* '''Internet Explorer:''' ''Strg+F5'' drücken oder ''Strg'' drücken und gleichzeitig ''Aktualisieren'' anklicken\n* '''Opera:''' ''Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen''",
-    "usercssyoucanpreview": "'''Tipp:''' Benutzen Sie den „{{int:showpreview}}“-Button, um Ihr neues CSS vor dem Speichern zu testen.",
-    "userjsyoucanpreview": "'''Tipp:''' Benutzen Sie den „{{int:showpreview}}“-Button, um Ihr neues JavaScript vor dem Speichern zu testen.",
-    "usercsspreview": "'''Beachten Sie, dass Sie nur eine Vorschau Ihres Benutzer-CSS betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
-    "userjspreview": "'''Beachten Sie, dass Sie nur eine Vorschau Ihres Benutzer-JavaScript betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
-    "sitecsspreview": "'''Beachten Sie, dass Sie nur eine Vorschau dieses CSS betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
-    "sitejspreview": "'''Beachten Sie, dass Sie nur eine Vorschau dieses JavaScript betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
-    "userinvalidcssjstitle": "'''Achtung:''' Die Benutzeroberfläche „$1“ existiert nicht. Bedenken Sie, dass benutzerspezifische .css- und .js-Seiten mit einem Kleinbuchstaben anfangen müssen, also beispielsweise ''{{ns:user}}:Mustermann/vector.css'' an Stelle von ''{{ns:user}}:Mustermann/Vector.css''.",
-    "previewconflict": "Diese Vorschau gibt den Inhalt des oberen Textfeldes wieder. So wird die Seite aussehen, wenn Sie jetzt speichern.",
-    "session_fail_preview": "'''Ihre Bearbeitung konnte nicht gespeichert werden, da Sitzungsdaten verloren gegangen sind.\nBitte versuchen Sie es erneut, indem Sie unter der folgenden Textvorschau nochmals auf „Seite speichern“ klicken.\nSollte das Problem bestehen bleiben, [[Special:UserLogout|melden Sie sich ab]] und danach wieder an.'''",
-    "session_fail_preview_html": "'''Ihre Bearbeitung konnte nicht gespeichert werden, da Sitzungsdaten verloren gegangen sind.'''\n\n''Da in {{SITENAME}} das Speichern von reinem HTML aktiviert ist, wurde die Vorschau ausgeblendet, um JavaScript-Attacken vorzubeugen.''\n\n'''Bitte versuchen Sie es erneut, indem Sie unter der folgenden Textvorschau nochmals auf „Seite speichern“ klicken.\nSollte das Problem bestehen bleiben, [[Special:UserLogout|melden Sie sich ab]] und danach wieder an.'''",
-    "token_suffix_mismatch": "'''Ihre Bearbeitung wurde zurückgewiesen, da Ihr Browser Zeichen im Bearbeiten-Token verstümmelt hat.\nEine Speicherung kann den Seiteninhalt zerstören. Dies geschieht bisweilen durch die Benutzung eines anonymen Proxy-Dienstes, der fehlerhaft arbeitet.'''",
-    "edit_form_incomplete": "'''Der Inhalt des Bearbeitungsformulars hat den Server nicht vollständig erreicht. Bitte prüfen Sie Ihre Bearbeitungen auf Vollständigkeit und versuchen Sie es erneut.'''",
-    "explainconflict": "Jemand anders hat diese Seite geändert, nachdem Sie angefangen haben, sie zu bearbeiten.\nDas obere Textfeld enthält den aktuellen Bearbeitungsstand der Seite.\nDas untere Textfeld enthält Ihre Änderungen.\nBitte fügen Sie Ihre Änderungen in das obere Textfeld ein.\n'''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn Sie auf „{{int:savearticle}}“ klicken.",
-    "yourtext": "Ihr Text",
-    "nonunicodebrowser": "'''Achtung: Ihr Browser kann Unicode-Zeichen nicht richtig verarbeiten.''' Es wird eine Hilfsroutine eingesetzt, um Ihnen zu erlauben, Seiten sicher zu bearbeiten: Nicht-ASCII-Zeichen werden dabei im Bearbeitungsfenster als hexadezimale Codes angezeigt.",
-    "editingold": "'''Achtung: Sie bearbeiten eine alte Version dieser Seite. Sofern Sie sie speichern, werden alle neueren Versionen überschrieben.'''",
-    "copyrightwarning": "'''Bitte kopieren Sie keine Webseiten, die nicht Ihre eigenen sind, benutzen Sie keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />\nSie geben uns hiermit Ihre Zusage, dass Sie den Text '''selbst verfasst''' haben, dass der Text Allgemeingut '''(public domain)''' ist, oder dass der '''Urheber''' seine '''Zustimmung''' gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weisen Sie bitte auf der Diskussionsseite darauf hin.\n<i>Bitte beachten Sie, dass alle {{SITENAME}}-Beiträge automatisch unter der „$2“ stehen (siehe $1 für Einzelheiten). Falls Sie nicht möchten, dass Ihre Arbeit hier von anderen verändert und verbreitet wird, dann klicken Sie nicht auf „Seite speichern“.</i>",
-    "copyrightwarning2": "Bitte beachten Sie, dass alle Beiträge zu {{SITENAME}} von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können.\nReichen Sie keine Texte ein, falls Sie nicht wollen, dass diese ohne Einschränkung geändert werden können.\n\nSie bestätigen hiermit auch, dass Sie diese Texte selbst geschrieben haben oder diese von einer gemeinfreien Quelle kopiert haben\n(weitere Einzelheiten unter $1). '''ÜBERTRAGEN SIE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!'''",
-    "longpageerror": "'''Fehler: Der Text, den Sie zu speichern versuchen, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobyte}} groß. Dies ist größer als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobyte}}.'''\nEr kann nicht gespeichert werden.",
-    "readonlywarning": "'''Achtung: Die Datenbank wurde für Wartungsarbeiten gesperrt, so dass Ihre Änderungen derzeit nicht gespeichert werden können.\nSichern Sie den Text bitte lokal auf Ihrem Computer und versuchen Sie zu einem späteren Zeitpunkt, die Änderungen zu übertragen.'''\n\nGrund für die Sperre: $1",
-    "nocreatetext": "Auf {{SITENAME}} wurde das Erstellen neuer Seiten eingeschränkt. Sie können bestehende Seiten ändern oder sich [[Special:UserLogin|anmelden]].",
-    "nocreate-loggedin": "Sie haben nicht die erforderliche Berechtigung, um neue Seiten erstellen zu können.",
-    "permissionserrorstext": "Sie sind nicht berechtigt, die Aktion auszuführen. {{PLURAL:$1|Grund|Gründe}}:",
-    "permissionserrorstext-withaction": "Sie sind nicht berechtigt, $2.\n{{PLURAL:$1|Grund|Gründe}}:",
-    "recreate-moveddeleted-warn": "'''Achtung: Sie erstellen eine Seite, die bereits früher gelöscht wurde.'''\n\nBitte prüfen Sie sorgfältig, ob die erneute Seitenerstellung den Richtlinien entspricht.\nZu Ihrer Information folgt das Lösch- und Verschiebungs-Logbuch mit der Begründung für die vorhergehende Löschung:",
-    "edit-no-change": "Ihre Bearbeitung wurde ignoriert, da keine Änderung an dem Text vorgenomme wurde.",
-    "postedit-confirmation": "Ihre Bearbeitung wurde gespeichert.",
-    "editwarning-warning": "Das Verlassen dieser Seite kann dazu führen, dass Ihre Änderungen verloren gehen.\nWenn Sie angemeldet sind, können Sie das Anzeigen dieser Warnung im „Bearbeiten“-Bereich Ihrer Einstellungen abschalten.",
-    "undo-success": "Die Bearbeitung kann rückgängig gemacht werden.\nBitte prüfen Sie den Vergleich unten, um sicherzustellen, dass Sie dies tun möchten, und speichern Sie dann unten Ihre Änderungen, um die Bearbeitung rückgängig zu machen.",
-    "history-feed-empty": "Die angeforderte Seite existiert nicht. Vielleicht wurde sie gelöscht oder verschoben. [[Special:Search|Durchsuchen Sie]] {{SITENAME}} nach passenden neuen Seiten.",
-    "rev-deleted-text-unhide": "Diese Version wurde '''gelöscht'''.\nNähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].\nSie können [$1 diese Version einsehen], sofern Sie möchten.",
-    "rev-suppressed-text-unhide": "Diese Version wurde '''unterdrückt'''.\nNähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].\nSie können [$1 diese Version einsehen], sofern Sie möchten.",
-    "rev-deleted-text-view": "Diese Version wurde '''gelöscht'''.\nSie können sie einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
-    "rev-suppressed-text-view": "Diese Version wurde '''unterdrückt'''.\nSie können sie einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].",
-    "rev-deleted-no-diff": "Sie können diesen Unterschied nicht betrachten, da eine der Versionen '''gelöscht''' wurde.\nDetails stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
-    "rev-suppressed-no-diff": "Sie können diesen Versionsunterschied nicht betrachten, da eine der Versionen '''gelöscht''' wurde.",
-    "rev-deleted-unhide-diff": "Eine der Versionen dieses Versionsunterschieds wurde '''gelöscht'''.\nNähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].\nSie können [$1 diesen Versionsunterschied einsehen], sofern Sie möchten.",
-    "rev-suppressed-unhide-diff": "Eine der Versionen dieses Versionsunterschieds wurde '''unterdrückt'''.\nNähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].\nSie können [$1 diesen Versionsunterschied einsehen], sofern Sie möchten.",
-    "rev-deleted-diff-view": "Eine Version dieses Versionsunterschieds wurde '''gelöscht'''.\nSie können diesen Versionsunterschied einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
-    "rev-suppressed-diff-view": "Eine der Versionen dieses Versionsunterschiedes wurde '''unterdrückt'''.\nSie können diesen Versionsunterschied einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].",
-    "revdelete-nooldid-text": "Sie haben entweder keine Version angegeben, auf die diese Aktion ausgeführt werden soll, die gewählte Version ist nicht vorhanden oder Sie versuchen, die aktuelle Version zu entfernen.",
-    "revdelete-show-file-confirm": "Sind Sie sicher, dass Sie die gelöschte Version der Datei „<nowiki>$1</nowiki>“ vom $2 um $3 Uhr ansehen wollen?",
-    "revdelete-confirm": "Bitte bestätigen Sie, dass Sie beabsichtigen, dies zu tun, die Konsequenzen verstehen und es in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]] tun.",
-    "revdelete-show-no-access": "Fehler beim Anzeigen des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als „eingeschränkt“ markiert.\nSie haben darauf keinen Zugriff.",
-    "revdelete-modify-no-access": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als „eingeschränkt“ markiert.\nSie haben darauf keinen Zugriff.",
-    "revdelete-concurrent-change": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Es scheint, als ob der Status von jemandem geändert wurde, bevor Sie vorhatten, ihn zu bearbeiten.\nBitte prüfen Sie die Logbücher.",
-    "revdelete-only-restricted": "Fehler beim Verstecken des Eintrags vom $1, $2 Uhr: Sie können keinen Eintrag vor Administratoren verstecken, ohne eine der anderen Ansichtsoptionen gewählt zu haben.",
-    "mergehistory-header": "Mit dieser Spezialseite können Sie die Versionsgeschichte einer Ursprungsseite mit der Versionsgeschichte einer Zielseite vereinen.\nStellen Sie sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.",
-    "mergehistory-merge": "Die folgenden Versionen von „[[:$1]]“ können nach „[[:$2]]“ übertragen werden. Markieren Sie die Version, bis zu der (einschließlich) die Versionen übertragen werden sollen. Bitte beachten Sie, dass die Nutzung der Navigationslinks die Auswahl zurücksetzt.",
-    "mergehistory-fail": "Versionsvereinigung nicht möglich, bitte prüfen Sie die Seite und die Zeitangaben.",
-    "toomanymatches": "Die Anzahl der Suchergebnisse ist zu groß, bitte versuchen Sie eine andere Abfrage.",
-    "searchmenu-new": "'''Erstellen Sie die Seite „[[:$1]]“ in diesem Wiki.'''",
-    "search-suggest": "Meinten Sie „$1“?",
-    "search-nonefound": "Für Ihre Suchanfrage wurden keine Ergebnisse gefunden.",
-    "searchdisabled": "Die {{SITENAME}} Suche wurde deaktiviert. Sie können unterdessen mit Google suchen. Bitte bedenken Sie, dass der Suchindex von {{SITENAME}} veraltet sein kann.",
-    "prefsnologintext2": "Sie müssen sich $1, um Ihre Benutzereinstellungen festzulegen.",
-    "prefs-help-watchlist-token2": "Dies ist der geheime Schlüssel zum Webfeed Ihrer Beobachtungsliste.\nJeder, der ihn kennt, kann Ihre Beobachtungsliste lesen. Teilen Sie ihn deshalb nicht.\n[[Special:ResetTokens|Klicken Sie hier, wenn Sie ihn zurücksetzen müssen]].",
-    "savedprefs": "Ihre Einstellungen wurden gespeichert.",
-    "prefs-reset-intro": "Sie können diese Seite verwenden, um die Einstellungen auf die Standards zurückzusetzen.\nDies kann nicht mehr rückgängig gemacht werden.",
-    "yourgender": "Welches Geschlecht haben Sie?",
-    "prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um Sie anzureden sowie als Hinweis für andere durch Verwendung des zutreffenden grammatikalischen Geschlechts.\nDiese Information ist öffentlich.",
-    "prefs-help-realname": "Dies ist eine freiwillige Angabe. Damit kann Ihr bürgerlicher Name Ihren Beiträgen zugeordnet werden.",
-    "prefs-help-email": "Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern Sie Ihr Passwort vergessen haben.",
-    "prefs-help-email-others": "Mit anderen Benutzern können Sie auch über die Benutzerdiskussionsseiten Kontakt aufnehmen, ohne dass Sie Ihre Identität offenlegen müssen.",
-    "userrights-groups-help": "Sie können die Gruppenzugehörigkeit dieses Benutzers ändern:\n* Ein markiertes Kästchen bedeutet, dass der Benutzer Mitglied dieser Gruppe ist.\n* Ein nichtmarkiertes Kästchen bedeutet, dass der Benutzer nicht Mitglied dieser Gruppe ist.\n* Ein * bedeutet, dass Sie das Benutzerrecht nach Erteilung nicht wieder zurücknehmen können (oder umgekehrt).",
-    "userrights-no-interwiki": "Sie haben nicht die erforderliche Berechtigung, um Benutzerrechte in anderen Wikis ändern zu können.",
-    "userrights-nologin": "Sie müssen sich mit einem Administrator-Benutzerkonto [[Special:UserLogin|anmelden]], um Benutzerrechte zu ändern.",
-    "userrights-notallowed": "Sie verfügen nicht über die erforderlichen Berechtigungen, um Benutzerrechte vergeben oder entziehen zu können.",
-    "userrights-changeable-col": "Gruppenzugehörigkeit, die Sie ändern dürfen",
-    "userrights-unchangeable-col": "Gruppenzugehörigkeit, die Sie nicht ändern dürfen",
-    "recentchanges-summary": "Auf dieser Seite können Sie die letzten Änderungen in diesem Wiki nachverfolgen.",
-    "recentchanges-feed-description": "Verfolgen Sie mit diesem Feed die letzten Änderungen in {{SITENAME}}.",
-    "recentchangeslinked-summary": "Diese Spezialseite listet die letzten Änderungen an den verlinkten Seiten auf (bzw. bei Kategorien an den Mitgliedern dieser Kategorie).\nSeiten auf Ihrer [[Special:Watchlist|Beobachtungsliste]] sind '''fett''' dargestellt.",
-    "uploadnologintext": "Sie müssen sich $1 um Dateien hochladen zu können.",
-    "uploadtext": "Benutzen Sie dieses Formular, um neue Dateien hochzuladen.\n\nGehen Sie zu der [[Special:FileList|Liste hochgeladener Dateien]], um vorhandene Dateien zu suchen und anzuzeigen. Siehe auch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Lösch-Logbuch]].\n\nUm ein '''Bild''' in einer Seite zu verwenden, nutzen Sie einen Link in der folgenden Form:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für ein Vollbild\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für ein 200px breites Bild innerhalb einer Box, mit „Alternativer Text“ als Bildbeschreibung\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
-    "illegalfilename": "Der Dateiname „$1“ enthält mindestens ein nicht erlaubtes Zeichen. Bitte benennen Sie die Datei um und versuchen Sie, sie erneut hochzuladen.",
-    "empty-file": "Die von Ihnen übertragene Datei hat keinen Inhalt.",
-    "emptyfile": "Die hochgeladene Datei ist leer. Der Grund kann ein Tippfehler im Dateinamen sein. Bitte kontrollieren Sie, ob Sie die Datei wirklich hochladen wollen.",
-    "fileexists": "Eine Datei dieses Namens ist bereits vorhanden. Bitte prüfen Sie <strong>[[:$1]]</strong>, sofern Sie sich nicht sicher sind, ob Sie sie ändern möchten.\n[[$1|thumb]]",
-    "filepageexists": "Eine Beschreibungsseite wurde bereits als <strong>[[:$1]]</strong> erstellt, es ist aber keine Datei mit diesem Namen vorhanden.\nDie eingegebene Beschreibung wird nicht auf die Beschreibungsseite übernommen.\nDie Beschreibungsseite müssen Sie nach dem Hochladen der Datei noch manuell bearbeiten.\n[[$1|thumb]]",
-    "fileexists-extension": "Eine Datei ähnlichen Namens ist bereits vorhanden: [[$2|thumb]]\n* Name der hochzuladenden Datei: <strong>[[:$1]]</strong>\n* Name der vorhandenen Datei: <strong>[[:$2]]</strong>\nBitte wählen Sie einen anderen Namen.",
-    "fileexists-thumbnail-yes": "Bei der Datei scheint es sich um ein Bild verringerter Größe ''(Minitatur)'' zu handeln. [[$1|thumb]]\nBitte prüfen Sie die Datei <strong>[[:$1]]</strong>.\nWenn es sich um das Bild in Originalgröße handelt, so braucht kein separates Vorschaubild hochgeladen zu werden.",
-    "file-thumbnail-no": "Der Dateiname beginnt mit <strong>$1</strong>. Dies deutet auf ein Bild verringerter Größe ''(Miniatur)'' hin.\nBitte prüfen Sie, ob Sie das Bild in voller Auflösung vorliegen haben und laden dieses unter dem Originalnamen hoch.",
-    "fileexists-forbidden": "Unter diesem Namen existiert bereits eine Datei und sie kann nicht überschrieben werden. Bitte gehen Sie zurück und laden Sie die Datei unter einem anderen Namen hoch. [[File:$1|thumb|center|$1]]",
-    "fileexists-shared-forbidden": "Unter diesem Namen existiert bereits eine Datei im zentralen Medienarchiv.\nWenn Sie diese Datei trotzdem hochladen möchten, gehen Sie bitte zurück und ändern den Namen.\n[[File:$1|thumb|center|$1]]",
-    "file-deleted-duplicate": "Eine mit dieser identische Datei ([[:$1]]) wurde früher gelöscht. Sehen Sie das Lösch-Logbuch ein, bevor Sie sie hochladen.",
-    "uploadwarning-text": "Bitte ändern Sie unten die Dateibeschreibung und versuchen Sie es erneut.",
-    "uploadfromurl-queued": "Ihr Upload befindet sich nun in der Warteschlange.",
-    "php-uploaddisabledtext": "Das Hochladen von Dateien wurde in PHP deaktiviert.\nBitte überprüfen Sie die <code>file_uploads</code>-Einstellung.",
-    "filewasdeleted": "Eine Datei mit diesem Namen wurde schon einmal hochgeladen und zwischenzeitlich wieder gelöscht. Bitte prüfen Sie zuerst den Eintrag im $1, bevor Sie die Datei wirklich speichern.",
-    "filename-bad-prefix": "Der Dateiname beginnt mit '''„$1“'''. Dies ist im allgemeinen der von einer Digitalkamera vorgegebene Dateiname und daher nicht sehr aussagekräftig.\nBitte geben Sie der Datei einen Namen, der den Inhalt besser beschreibt.",
-    "upload-file-error-text": "Bei der Erstellung einer temporären Datei auf dem Server ist ein interner Fehler aufgetreten.\nBitte informieren Sie einen [[Special:ListUsers/sysop|Administrator]].",
-    "upload-misc-error-text": "Beim Hochladen ist ein unbekannter Fehler aufgetreten.\nPrüfen Sie die URL auf Fehler, den Online-Status der Seite und versuchen es erneut.\nWenn das Problem weiter besteht, informieren Sie einen [[Special:ListUsers/sysop|Administrator]].",
-    "uploadstash-badtoken": "Das Entfernen der vorab gespeicherten Dateien war erfolglos, vielleicht weil Ihre Sitzungsdaten abgelaufen sind. Bitte versuchen Sie es erneut.",
-    "img-auth-nopathinfo": "PATH_INFO fehlt.\nIhr Server ist nicht dafür eingerichtet, diese Information weiterzugeben.\nSie könnte CGI-gestützt sein und kann daher img_auth nicht ermöglichen.\nSiehe auch http://www.mediawiki.org/wiki/Manual:Image_Authorization.",
-    "img-auth-nologinnWL": "Sie sind nicht angemeldet und „$1“ ist nicht in der weißen Liste.",
-    "img-auth-isdir": "Sie versuchen, auf ein Verzeichnis „$1“ zuzugreifen.\nNur Dateizugriff ist erlaubt.",
-    "upload-curl-error6-text": "Die angegebene URL ist nicht erreichbar. Prüfen Sie sowohl die URL auf Fehler als auch den Online-Status der Seite.",
-    "upload-curl-error28-text": "Die Seite braucht zu lange, um zu antworten. Prüfen Sie, ob die Seite online ist, warten Sie einen kurzen Moment und versuchen Sie es dann erneut. Es kann sinnvoll sein, es zu einem anderen Zeitpunkt erneut zu versuchen.",
-    "upload_source_file": " (eine Datei auf Ihrem Computer)",
-    "filehist-help": "Klicken Sie auf einen Zeitpunkt, um diese Version zu laden.",
-    "sharedupload-desc-edit": "Diese Datei stammt aus $1 und kann auf anderen Projekten verwendet werden.\nVielleicht möchten Sie die Beschreibung auf der dortigen [$2 Dateibeschreibungsseite] bearbeiten.",
-    "sharedupload-desc-create": "Diese Datei stammt aus $1 und kann von anderen Projekten verwendet werden.\nVielleicht möchten Sie die Beschreibung auf der dortigen [$2 Dateibeschreibungsseite] bearbeiten.",
-    "filepage-nofile-link": "Es ist keine Datei dieses Namens vorhanden. Sie können jedoch [$1 diese Datei hochladen].",
-    "filerevert-intro": "Sie setzen die Datei '''[[Media:$1|$1]]''' auf die [$4 Version vom $2, $3 Uhr] zurück.",
-    "filedelete-intro": "Sie löschen die Datei '''„[[Media:$1|$1]]“''' inklusive ihrer Versionsgeschichte.",
-    "filedelete-intro-old": "Sie löschen von der Datei '''„[[Media:$1|$1]]“''' die [$4 Version vom $2, $3 Uhr].",
-    "unusedtemplatestext": "Diese Seite listet alle Seiten im {{ns:template}}-Namensraum auf, die nicht in anderen Seiten eingebunden sind.\nÜberprüfen Sie andere Links zu den Vorlagen, bevor Sie diese löschen.",
-    "unusedimagestext": "Bitte beachten Sie, dass andere Webseiten eine Datei mit einer direkten URL verlinken können. Sie könnte daher hier aufgelistet sein, obwohl sie in aktiver Verwendung ist.",
-    "notargettext": "Sie haben nicht angegeben, auf welche Seite diese Funktion angewendet werden soll.",
-    "booksources-invalid-isbn": "Vermutlich ist die ISBN ungültig.\nBitte prüfen Sie, ob sie korrekt von der Quelle übertragen wurde.",
-    "cachedspecial-viewing-cached-ttl": "Sie sehen die gecachte Version dieser Seite, die bis zu $1 alt sein kann.",
-    "cachedspecial-viewing-cached-ts": "Sie sehen die gecachte Version dieser Seite, die möglicherweise nicht aktuell ist.",
-    "mailnologintext": "Sie müssen [[Special:UserLogin|angemeldet sein]] und eine bestätigte E-Mail-Adresse in Ihren [[Special:Preferences|Einstellungen]] eingetragen haben, um anderen Benutzern E-Mails schicken zu können.",
-    "emailpagetext": "Sie können {{GENDER:$1|dem Benutzer|der Benutzerin}} mit dem unten stehenden Formular eine E-Mail senden.\nAls Absender wird die E-Mail-Adresse aus Ihren [[Special:Preferences|Einstellungen]] eingetragen, damit {{GENDER:$1|der Benutzer|die Benutzerin}} Ihnen direkt antworten kann.",
-    "emailccsubject": "Kopie Ihrer Nachricht an $1: $2",
-    "emailsenttext": "Ihre E-Mail wurde verschickt.",
-    "nowatchlist": "Es befinden sich keine Einträge auf Ihrer Beobachtungsliste.",
-    "watchlistanontext": "Sie müssen sich $1, um Ihre Beobachtungsliste sehen oder Einträge auf ihr bearbeiten zu können.",
-    "watchnologin": "Sie sind nicht angemeldet",
-    "watchnologintext": "Sie müssen [[Special:UserLogin|angemeldet]] sein, um Ihre Beobachtungsliste bearbeiten zu können.",
-    "addedwatchtext": "Die Seite „[[:$1]]“ wurde zu Ihrer [[Special:Watchlist|Beobachtungsliste]] hinzugefügt.\n\nSpätere Änderungen an dieser Seite und der dazugehörigen Diskussionsseite werden dort gelistet.",
-    "removedwatchtext": "Die Seite „[[:$1]]“ wurde von Ihrer [[Special:Watchlist|Beobachtungsliste]] entfernt.",
-    "watchlist-details": "Sie beobachten {{PLURAL:$1|1 Seite|$1 Seiten}}.",
-    "watchlistcontains": "Ihre Beobachtungsliste enthält $1 {{PLURAL:$1|Seite|Seiten}}.",
-    "enotif_body": "Hallo $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nZusammenfassung des Bearbeiters: $PAGESUMMARY $PAGEMINOREDIT\n\nKontakt zum Bearbeiter:\nE-Mail: $PAGEEDITOR_EMAIL\nWiki: $PAGEEDITOR_WIKI\n\nBei weiterer Aktivität auf der Seite werden Ihnen so lange keine weiteren Benachrichtigungs-E-Mails gesendet, bis Sie die Seite wieder angemeldet besucht haben.\nAuf Ihrer Beobachtungsliste können Sie alle Benachrichtigungsmarkierungen zusammen zurücksetzen.\n\nIhr freundliches {{SITENAME}}-Benachrichtigungssystem\n\n--\nUm die Einstellungen der E-Mail-Benachrichtigung anzupassen, besuchen Sie {{canonicalurl:{{#special:Preferences}}}}.\n\nUm die Einstellungen Ihrer Beobachtungsliste anzupassen, besuchen Sie {{canonicalurl:{{#special:EditWatchlist}}}}.\n\nUm diese Seite von Ihrer Beobachtungsliste zu entfernen, besuchen Sie $UNWATCHURL.\n\nRückmeldungen und weitere Hilfe: {{canonicalurl:{{MediaWiki:Helppage}}}}",
-    "historywarning": "'''Achtung:''' Die Seite, die Sie löschen möchten, hat eine Versionsgeschichte mit etwa $1 {{PLURAL:$1|Version|Versionen}}:",
-    "confirmdeletetext": "Sie sind dabei, eine Seite mit allen zugehörigen älteren Versionen zu löschen. Bitte bestätigen Sie, dass Sie sich der Konsequenzen bewusst sind, und dass Sie in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]] handeln.",
-    "deletedtext": "„$1“ wurde gelöscht. Im $2 finden Sie eine Liste der letzten Löschungen.",
-    "sessionfailure": "Es gab ein Problem bei der Übertragung Ihrer Benutzerdaten.\nDiese Aktion wurde daher sicherheitshalber abgebrochen, um eine falsche Zuordnung Ihrer Änderungen zu einem anderen Benutzer zu verhindern.\nBitte gehen Sie zurück zur vorherigen Seite, laden Sie sie erneut und versuchen Sie, den Vorgang erneut auszuführen.",
-    "protect-text": "Hier können Sie den Schutzstatus der Seite „$1“ einsehen und ändern.",
-    "protect-locked-blocked": "Sie können den Seitenschutz nicht ändern, da Ihr Benutzerkonto gesperrt ist. Hier sind die aktuellen Seitenschutz-Einstellungen der Seite '''„$1“:'''",
-    "protect-locked-access": "Ihr Benutzerkonto verfügt nicht über die notwendigen Rechte zur Änderung des Seitenschutzes. Hier sind die aktuellen Seitenschutzeinstellungen für die Seite '''„$1“:'''",
-    "protect-cantedit": "Sie können die Sperre dieser Seite nicht ändern, da Sie keine Berechtigung zum Bearbeiten der Seite haben.",
-    "undeleteextrahelp": "* Um die Seite mitsamt aller Versionen wiederherzustellen, wählen Sie keine Version aus, geben eine Begründung an und klicken dann auf „{{int:undeletebtn}}“.\n* Um lediglich bestimmte Versionen der Seite wiederherzustellen, wählen Sie die betreffenden Versionen einzeln aus, geben eine Begründung an und klicken dann auf „{{int:undeletebtn}}“.",
-    "undeletehistory": "Wenn Sie diese Seite wiederherstellen, werden auch alle alten Versionen wiederhergestellt.\nWenn seit der Löschung eine neue Seite gleichen Namens erstellt wurde, werden die wiederhergestellten Versionen chronologisch in die Versionsgeschichte eingeordnet.",
-    "undeleterevdel": "Die Wiederherstellung wird nicht durchgeführt, wenn die aktuellste Version versteckt ist oder versteckte Teile enthält.\nIn diesem Fall darf die aktuellste Version nicht markiert werden oder ihr Status muss auf den einer normalen Version geändert werden.\nVersionen von Dateien, auf die Sie keinen Zugriff haben, werden nicht wiederhergestellt.",
-    "undeletedpage": "'''$1''' wurde wiederhergestellt.\n\nIm [[Special:Log/delete|Lösch-Logbuch]] finden Sie eine Übersicht der gelöschten und wiederhergestellten Seiten.",
-    "undelete-show-file-confirm": "Sind Sie sicher, dass Sie eine gelöschte Version der Datei „<nowiki>$1</nowiki>“ vom $2, $3 Uhr sehen wollen?",
-    "tooltip-namespace_association": "Dieses Auswahlfeld anklicken, um den Ihrer Auswahl zugehörigen Diskussionsnamensraum, oder im umgekehrten Fall, den zugehörigen Namensraum, mit einzubeziehen",
-    "blockiptext": "Mit diesem Formular sperren Sie eine IP-Adresse oder einen Benutzernamen, so dass von dort keine Änderungen mehr vorgenommen werden können.\nDies sollte nur erfolgen, um Vandalismus zu verhindern und in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]].\nBitte geben Sie den Grund für die Sperre an.",
-    "ipb-blockingself": "Sie sind gerade dabei, sich selbst zu sperren! Möchten Sie das wirklich tun?",
-    "ipb-confirmhideuser": "Sie sind gerade dabei, einen Benutzer im Modus „Benutzer verstecken“ zu sperren. Dies führt dazu, dass der Benutzername in allen Listen und Logbüchern unterdrückt wird. Möchten Sie das wirklich tun?",
-    "unblockiptext": "Mit diesem Formular können Sie eine IP-Adresse oder einen Benutzer freigeben.",
-    "autoblocker": "Automatische Sperre, da Sie eine gemeinsame IP-Adresse mit [[User:$1|$1]] benutzen. Grund der Benutzersperre: „$2“.",
-    "ipb-needreblock": "„$1“ ist bereits gesperrt. Möchten Sie die Sperrparameter ändern?",
-    "proxyblockreason": "Ihre IP-Adresse wurde gesperrt, da sie ein offener Proxy ist. Bitte kontaktieren Sie Ihren Internet-Provider oder Ihre Systemadministratoren und informieren Sie sie über dieses mögliche Sicherheitsproblem.",
-    "cant-see-hidden-user": "Der Benutzer, den Sie versuchen zu sperren, wurde bereits gesperrt und verborgen. Da Sie das „hideuser“-Recht nicht haben, können Sie die Benutzersperre nicht sehen und nicht bearbeiten.",
-    "ipbblocked": "Sie können keine anderen Benutzer sperren oder entsperren, da Sie selbst gesperrt sind",
-    "ipbnounblockself": "Sie haben nicht die Berechtigung, sich selbst zu entsperren",
-    "locknoconfirm": "Sie haben das Bestätigungsfeld nicht markiert.",
-    "lockdbsuccesstext": "Die {{SITENAME}}-Datenbank wurde gesperrt.<br />Bitte geben Sie die Datenbank [[Special:UnlockDB|wieder frei]], sobald die Wartung abgeschlossen ist.",
-    "movepagetext": "Mit untenstehendem Formular können Sie eine Seite umbenennen, indem Sie sie mitsamt allen Versionen auf einen neuen Titel verschieben.\nDer alte Titel wird danach zum neuen weiterleiten.\nSie können Weiterleitungen, die auf den Originaltitel verlinken, automatisch korrigieren lassen.\nStellen Sie sicher, dass Sie im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfen.\nSie sind dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, letztere ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass Sie die Umbenennung rückgängig machen können, sofern Sie einen Fehler gemacht haben. Sie können hingegen keine existierende Seite überschreiben.\n\n'''Warnung!'''\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nSie sollten daher die Konsequenzen verstanden haben, bevor Sie jetzt fortfahren.",
-    "movepagetext-noredirectfixer": "Mit untenstehendem Formular können Sie eine Seite umbenennen, indem Sie sie mitsamt allen Versionen auf einen neuen Titel verschieben.\nDer alte Titel wird danach zum neuen weiterleiten.\nStellen Sie sicher, dass Sie im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfen.\nSie sind dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, diese ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass Sie die Umbenennung rückgängig machen können, sofern Sie einen Fehler gemacht haben. Sie können hingegen keine existierende Seite überschreiben.\n\n'''Warnung!'''\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nSie sollten daher die Konsequenzen verstanden haben, bevor Sie jetzt fortfahren.",
-    "movepagetalktext": "Die dazugehörige Diskussionsseite wird, sofern vorhanden, mitverschoben, '''es sei denn:'''\n*Es existiert bereits eine Diskussionsseite mit diesem Namen, oder\n*Sie wählen die unten stehende Option ab.\n\nIn diesen Fällen müssen Sie, falls gewünscht, den Inhalt der Seite von Hand verschieben oder zusammenführen.\n\nBitte den '''neuen''' Titel unter '''Ziel''' eintragen, darunter die Umbenennung bitte '''begründen.'''",
-    "moveuserpage-warning": "'''Warnung:''' Sie sind dabei, eine Benutzerseite zu verschieben. Bitte bedenken Sie, dass dadurch nur die Benutzerseite verschoben, '''nicht''' aber der Benutzer umbenannt wird.",
-    "movenologintext": "Sie müssen ein registrierter Benutzer und [[Special:UserLogin|angemeldet]] sein, um eine Seite zu verschieben.",
-    "movenotallowed": "Sie haben nicht die erforderliche Berechtigung, um Seiten verschieben zu können.",
-    "movenotallowedfile": "Sie haben nicht die erforderliche Berechtigung, um Dateien verschieben zu können.",
-    "cant-move-user-page": "Sie haben nicht die erforderliche Berechtigung, Benutzerhauptseiten verschieben zu können.",
-    "cant-move-to-user-page": "Sie haben nicht die Berechtigung, Seiten auf eine Benutzerseite zu verschieben (mit Ausnahme von Benutzerunterseiten).",
-    "articleexists": "Unter diesem Namen existiert bereits eine Seite. Bitte wählen Sie einen anderen Namen.",
-    "delete_and_move_text": "== Löschung erforderlich ==\n\nDie Seite „[[:$1]]“ existiert bereits. Möchten Sie diese löschen, um die Seite verschieben zu können?",
-    "file-exists-sharedrepo": "Der gewählte Dateiname wird bereits in einem gemeinsam genutzten Repositorium verwendet.\nBitte wählen Sie einen anderen Namen.",
-    "exporttext": "Mit dieser Spezialseite können Sie den Text inklusive der Versionsgeschichte einzelner Seiten in eine XML-Datei exportieren.\nDie Datei kann in ein anderes MediaWiki-Wiki über die [[Special:Import|Importfunktion]] eingespielt werden.\n\nTragen Sie den oder die entsprechenden Seitentitel in das folgende Textfeld ein (pro Zeile jeweils nur eine Seite).\n\nAlternativ ist der Export auch mit der Syntax [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] möglich, beispielsweise für die [[{{MediaWiki:Mainpage}}]].",
-    "allmessagestext": "Dies ist eine Liste der MediaWiki-Systemtexte.\nBitte besuchen Sie die Seiten [https://www.mediawiki.org/wiki/Localisation MediaWiki-Lokalisierung] und [//translatewiki.net translatewiki.net], sofern Sie sich an der Lokalisierung von MediaWiki beteiligen möchten.",
-    "import-interwiki-text": "Wählen Sie ein Wiki und eine Seite zum Importieren aus.\nDie Versionsdaten und Benutzernamen bleiben dabei erhalten.\nAlle Transwiki-Import-Aktionen werden im [[Special:Log/import|Import-Logbuch]] protokolliert.",
-    "import-token-mismatch": "Verlust der Sessiondaten. Bitte versuchen Sie es erneut.",
-    "import-error-edit": "Die Seite „$1“ wurde nicht importiert, da Sie nicht berechtigt sind, sie zu bearbeiten.",
-    "import-error-create": "Die Seite „$1“ wurde nicht importiert, da Sie nicht berechtigt sind, sie zu erstellen.",
-    "javascripttest-pagetext-frameworks": "Bitte wählen Sie eine der folgenden Prüfumgebungen aus: $1",
-    "javascripttest-pagetext-skins": "Wählen Sie eine Benutzeroberfläche zur Durchführung der Tests aus:",
-    "tooltip-pt-userpage": "Ihre Benutzerseite",
-    "tooltip-pt-anonuserpage": "Benutzerseite der IP-Adresse, von der aus Sie Änderungen durchführen",
-    "tooltip-pt-mytalk": "Ihre Diskussionsseite",
-    "tooltip-pt-mycontris": "Liste Ihrer Beiträge",
-    "tooltip-n-mainpage": "Besuchen Sie die Hauptseite",
-    "tooltip-n-mainpage-description": "Besuchen Sie die Hauptseite",
-    "tooltip-n-portal": "Über das Projekt, was Sie tun können, wo was zu finden ist",
-    "tooltip-watch": "Diese Seite zu Ihrer Beobachtungsliste hinzufügen",
-    "tooltip-summary": "Geben Sie eine kurze Zusammenfassung ein.",
-    "notacceptable": "Der Wiki-Server kann die Daten nicht für Ihr Ausgabegerät aufbereiten.",
-    "spamprotectiontext": "Der Text, die Sie speichern wollen, wurde vom Spamschutzfilter blockiert.\nDas liegt wahrscheinlich an einem Link auf eine externe Seite.",
-    "markedaspatrollederrortext": "Sie müssen eine Seitenänderung auswählen.",
-    "mediawarning": "'''Warnung:''' Dieser Dateityp kann böswilligen Programmcode enthalten.\nDurch das Herunterladen und Öffnen der Datei kann Ihr Computer beschädigt werden.",
-    "confirmemail_noemail": "Sie haben keine gültige E-Mail-Adresse in Ihren [[Special:Preferences|persönlichen Einstellungen]] eingetragen.",
-    "confirmemail_text": "{{SITENAME}} erfordert, dass Sie Ihre E-Mail-Adresse bestätigen (authentifizieren), bevor Sie die erweiterten E-Mail-Funktionen benutzen können. Klicken Sie bitte auf die unten stehende, mit „Bestätigungscode zuschicken“ beschriftete Schaltfläche, damit eine automatisch erstellte E-Mail an die angegebene Adresse geschickt wird. Diese E-Mail enthält eine Web-Adresse mit einem Bestätigungscode. Indem Sie diese Webseite in Ihrem Webbrowser öffnen, bestätigen Sie, dass die angegebene E-Mail-Adresse korrekt und gültig ist.",
-    "confirmemail_pending": "Es wurde Ihnen bereits ein Bestätigungscode per E-Mail zugeschickt.\nWenn Sie Ihr Benutzerkonto erst vor kurzem erstellt haben, warten Sie bitte noch ein paar Minuten auf die E-Mail, bevor Sie einen neuen Code anfordern.",
-    "confirmemail_oncreate": "Ein Bestätigungs-Code wurde an Ihre E-Mail-Adresse gesandt. Dieser Code wird für die Anmeldung nicht benötigt, jedoch wird er zur Aktivierung der E-Mail-Funktionen innerhalb des Wikis gebraucht.",
-    "confirmemail_sendfailed": "{{SITENAME}} konnte die Bestätigungs-E-Mail nicht an Sie versenden.\nBitte prüfen Sie die E-Mail-Adresse auf ungültige Zeichen.\n\nRückmeldung des Mailservers: $1",
-    "confirmemail_invalid": "Ungültiger Bestätigungscode. Möglicherweise ist der Bestätigungszeitraum verstrichen. Versuchen Sie bitte, die Bestätigung zu wiederholen.",
-    "confirmemail_needlogin": "Sie müssen sich $1, um Ihre E-Mail-Adresse zu bestätigen.",
-    "confirmemail_success": "Ihre E-Mail-Adresse wurde erfolgreich bestätigt. Sie können sich jetzt [[Special:UserLogin|anmelden]].",
-    "confirmemail_loggedin": "Ihre E-Mail-Adresse wurde erfolgreich bestätigt.",
-    "confirmemail_body": "Hallo,\n\njemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat das Benutzerkonto „$2“ bei {{SITENAME}} registriert.\n\nUm die E-Mail-Funktionen von {{SITENAME}} (wieder) zu aktivieren und um zu bestätigen,\ndass dieses Benutzerkonto wirklich zu Ihrer E-Mail-Adresse und damit zu Ihnen gehört, öffnen Sie bitte folgenden Link in Ihrem Browser:\n\n$3\n\nWenn Sie das genannte Benutzerkonto *nicht* registriert haben, folgen Sie diesem Link, um den Bestätigungsprozess abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis zum $6, $7 Uhr.",
-    "confirmemail_body_set": "Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst,\nhat die E-Mail-Adresse des Benutzerkontos „$2“ auf {{SITENAME}} zu dieser E-Mail-Adresse abgeändert.\n\nUm zu bestätigen, dass dieses Benutzerkonto wirklich zu Ihnen gehört\nund um die E-Mail-Funktionen auf {{SITENAME}} zu aktivieren, öffnen Sie bitte den folgenden Link in Ihrem Browser:\n\n$3\n\nFalls das Konto *nicht* zu Ihnen gehört, bitte den nachfolgenden Link öffnen,\num die Bestätigung der E-Mail-Adresse abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis $4.",
-    "deletedwhileediting": "Achtung: Diese Seite wurde gelöscht, nachdem Sie angefangen haben sie zu bearbeiten!\nIm [{{fullurl:{{#special:Log}}|type=delete&page={{FULLPAGENAMEE}}}} Lösch-Logbuch] finden Sie den Grund für die Löschung.\nWenn Sie die Seite speichern, wird sie neu angelegt.",
-    "confirmrecreate": "Benutzer [[User:$1|$1]] ([[User talk:$1|Diskussion]]) hat diese Seite gelöscht, nachdem Sie angefangen haben, sie zu bearbeiten. Die Begründung lautete:\n: ''$2''\nBitte bestätigen Sie, dass Sie diese Seite wirklich neu erstellen möchten.",
-    "livepreview-failed": "Die Vorschau kann nicht sofort angezeigt werden!\nBitte nutzen Sie die reguläre Vorschau.",
-    "watchlistedit-numitems": "Ihre Beobachtungsliste enthält {{PLURAL:$1|einen Eintrag|$1 Einträge}}. Die Diskussionsseiten wurden dabei nicht mitgezählt.",
-    "watchlistedit-noitems": "Ihre Beobachtungsliste ist leer.",
-    "watchlistedit-normal-explain": "Dies sind die Einträge Ihrer Beobachtungsliste. Um Einträge zu entfernen, markieren Sie die Kästchen neben den Einträgen und klicken Sie am Ende der Seite auf „{{int:Watchlistedit-normal-submit}}“. Sie können Ihre Beobachtungsliste auch im [[Special:EditWatchlist/raw|Listenformat bearbeiten]].",
-    "watchlistedit-normal-done": "{{PLURAL:$1|Ein Eintrag wurde|$1 Einträge wurden}} von Ihrer Beobachtungsliste entfernt:",
-    "watchlistedit-raw-explain": "Dies sind die Einträge Ihrer Beobachtungsliste im Listenformat. Die Einträge können zeilenweise gelöscht oder hinzugefügt werden.\nPro Zeile ist ein Eintrag erlaubt.\nSobald Sie fertig sind, klicken Sie auf „{{int:Watchlistedit-raw-submit}}“.\nSie können auch die [[Special:EditWatchlist|Standardseite]] zum Bearbeiten benutzen.",
-    "watchlistedit-raw-done": "Ihre Beobachtungsliste wurde gespeichert.",
-    "dberr-again": "Warten Sie einige Minuten und versuchen Sie dann neu zuladen.",
-    "dberr-usegoogle": "Sie könnten in der Zwischenzeit mit Google suchen.",
-    "dberr-outofdate": "Beachten Sie, dass der Suchindex unserer Inhalte bei Google veraltet sein kann.",
-    "feedback-bugornote": "Sofern Sie detailliert ein technisches Problem beschreiben möchten, melden Sie bitte [$1 einen Fehler].\nAnderenfalls können Sie auch das untenstehende einfache Formular nutzen. Ihr Kommentar wird, zusammen mit Ihrem Benutzernamen und der Version des von Ihnen verwendeten Webbrowsers sowie Betriebssystems, auf der Seite „[$3 $2]“ hinzugefügt.",
-    "feedback-thanks": "Vielen Dank. Ihre Rückmeldung wurde auf der Seite „[$2 $1]“ gespeichert.",
-    "feedback-bugcheck": "Super! Bitte überprüfen Sie noch, ob es sich hierbei nicht um einen bereits [$1 bekannten Fehler] handelt.",
-    "api-error-badaccess-groups": "Sie haben nicht die Berechtigung Dateien in dieses Wiki hochzuladen.",
-    "api-error-hookaborted": "Die von Ihnen vorgesehene Anpassung kann nicht durchgeführt werden (Unterbrechung durch eine Programmschnittstelle).",
-    "api-error-mustbeloggedin": "Um Dateien hochladen zu können, müssen Sie angemeldet sein."
+       "@metadata": {
+               "authors": [
+                       "*Surak*",
+                       "ChrisiPK",
+                       "Das Schäfchen",
+                       "Filzstift",
+                       "Geitost",
+                       "Imre",
+                       "Jimmy Collins <jimmy.collins@web.de>",
+                       "Kghbln",
+                       "Leithian",
+                       "Merlissimo",
+                       "MichaelFrey",
+                       "Michawiki",
+                       "Pill",
+                       "Raimond Spekking (Raymond) <raimond.spekking@gmail.com> since January 2007",
+                       "SVG",
+                       "Se4598",
+                       "The Evil IP address",
+                       "Tim Bartel (avatar) <wikipedia@computerkultur.org> formal addressing",
+                       "Tischbeinahe",
+                       "Umherirrender",
+                       "Urhixidur"
+               ]
+       },
+       "tog-enotifrevealaddr": "Ihre E-Mail-Adresse in Benachrichtigungs-E-Mails anzeigen",
+       "view-pool-error": "Entschuldigung, die Server sind im Moment überlastet.\nZu viele Benutzer versuchen, diese Seite zu besuchen.\nBitte warten Sie einige Minuten, bevor Sie es noch einmal versuchen.\n\n$1",
+       "badaccess-group0": "Sie haben nicht die erforderlichen Benutzerrechte für diese Aktion.",
+       "youhavenewmessages": "Sie haben $1 ($2).",
+       "youhavenewmessagesmulti": "Sie haben neue Nachrichten: $1",
+       "enterlockreason": "Bitte geben Sie einen Grund ein, warum die Datenbank gesperrt werden soll und eine Abschätzung über die Dauer der Sperrung",
+       "readonlytext": "Die Datenbank ist vorübergehend für Neueinträge und Änderungen gesperrt. Bitte versuchen Sie es später noch einmal.\n\nGrund der Sperrung: $1",
+       "missing-article": "Der Text von „$1“ $2 wurde nicht in der Datenbank gefunden.\n\nDie Seite ist möglicherweise gelöscht oder verschoben worden.\n\nFalls dies nicht der Fall ist, haben Sie eventuell einen Fehler in der Software gefunden. Bitte melden Sie dies einem [[Special:ListUsers/sysop|Administrator]] unter Nennung der URL.",
+       "actionthrottledtext": "Im Rahmen einer Anti-Spam-Maßnahme kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze haben Sie überschritten.\nBitte versuchen Sie es in ein paar Minuten erneut.",
+       "viewsourcetext": "Sie können den Quelltext dieser Seite betrachten und kopieren:",
+       "viewyourtext": "Sie können den Quelltext '''Ihrer Bearbeitung''' dieser Seite betrachten und kopieren:",
+       "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutzen Sie bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutzen Sie bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "namespaceprotected": "Sie haben nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
+       "customcssprotected": "Sie haben nicht die Berechtigung, diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.",
+       "customjsprotected": "Sie haben nicht die Berechtigung, diese JavaScript enthaltende Seite zu bearbeiten, da es sich hierbei um die persönlichen Einstellungen eines anderen Benutzers handelt.",
+       "mycustomjsprotected": "Sie haben keine Berechtigung, diese JavaScript-Seite zu bearbeiten.",
+       "myprivateinfoprotected": "Sie haben keine Berechtigung, Ihre privaten Informationen zu bearbeiten.",
+       "mypreferencesprotected": "Sie haben keine Berechtigung, Ihre Einstellungen zu bearbeiten.",
+       "exception-nologin-text": "Sie müssen sich [[Special:Userlogin|anmelden]], um auf diese Seite oder Aktion zugreifen zu können.",
+       "exception-nologin-text-manual": "Sie müssen sich $1, um auf diese Seite oder Aktion zugreifen zu können.",
+       "logouttext": "'''Sie sind nun abgemeldet.'''\n\nBeachten Sie, dass einige Seiten noch anzeigen können, dass Sie angemeldet sind, solange Sie nicht Ihren Browsercache geleert haben.",
+       "welcomecreation-msg": "Ihr Benutzerkonto wurde erstellt.\nVergessen Sie nicht, Ihre [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ändern.",
+       "userlogin-yourname-ph": "Geben Sie Ihren Benutzernamen ein",
+       "userlogin-yourpassword-ph": "Geben Sie Ihr Passwort ein",
+       "createacct-yourpassword-ph": "Geben Sie Ihr Passwort ein",
+       "createacct-yourpasswordagain-ph": "Geben Sie das Passwort erneut ein",
+       "yourdomainname": "Ihre Domain:",
+       "password-change-forbidden": "Sie können auf diesem Wiki keine Passwörter ändern.",
+       "externaldberror": "Entweder liegt ein Fehler bei der externen Authentifizierung vor oder Sie dürfen Ihr externes Benutzerkonto nicht aktualisieren.",
+       "userlogin-noaccount": "Sie haben noch kein Benutzerkonto?",
+       "nologin": "Sie haben kein Benutzerkonto? $1.",
+       "gotaccount": "Haben Sie bereits ein Benutzerkonto? '''$1'''.",
+       "userlogin-loggedin": "Sie sind bereits als {{GENDER:$1|$1}} angemeldet.\nBenutzen Sie das unten stehende Formular, um sich unter einem anderen Benutzernamen anzumelden.",
+       "createacct-email-ph": "Geben Sie Ihre E-Mail-Adresse ein",
+       "createacct-reason-ph": "Warum erstellen Sie ein anderes Benutzerkonto?",
+       "createacct-imgcaptcha-ph": "Geben Sie den Text ein, den Sie oben sehen.",
+       "createacct-benefit-heading": "{{SITENAME}} wird von Menschen wie Ihnen geschaffen.",
+       "userexists": "Dieser Benutzername ist schon vergeben.\nBitte wählen Sie einen anderen.",
+       "nocookiesnew": "Der Benutzerzugang wurde erstellt, aber Sie sind nicht angemeldet.\n{{SITENAME}} benötigt für diese Funktion Cookies, bitte aktivieren Sie diese und melden sich dann mit Ihrem neuen Benutzernamen und dem zugehörigen Passwort an.",
+       "nocookieslogin": "{{SITENAME}} benutzt Cookies zur Anmeldung der Benutzer.\nSie haben Cookies deaktiviert, bitte aktivieren Sie diese und versuchen Sie es erneut.",
+       "nocookiesfornew": "Das Benutzerkonto wurde nicht erstellt, da die Datenherkunft nicht ermittelt werden konnte.\nBitte stellen Sie sicher, dass Sie Cookies aktiviert haben. Laden Sie diese Seite danach erneut und versuchen Sie es noch einmal.",
+       "noname": "Sie müssen einen gültigen Benutzernamen angeben.",
+       "loginsuccess": "Sie sind jetzt als „$1“ bei {{SITENAME}} angemeldet.",
+       "nosuchuser": "Der Benutzername „$1“ existiert nicht.\nÜberprüfen Sie die Schreibweise (Groß-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melden Sie sich als neuer Benutzer an]].",
+       "nosuchusershort": "Der Benutzername „$1“ ist nicht vorhanden. Bitte überprüfen Sie die Schreibweise.",
+       "nouserspecified": "Bitte geben Sie einen Benutzernamen an.",
+       "wrongpassword": "Das Passwort ist falsch. Bitte versuchen Sie es erneut.",
+       "wrongpasswordempty": "Es wurde kein Passwort eingegeben. Bitte versuchen Sie es erneut.",
+       "password-name-match": "Ihr Passwort muss sich von Ihrem Benutzernamen unterscheiden.",
+       "passwordremindertext": "Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.\n\nDas automatisch generierte Passwort für Benutzer „$2“ lautet nun: $3\n\nFalls Sie dies wirklich gewünscht haben, sollten Sie sich jetzt anmelden und das Passwort ändern.\nDas neue Passwort ist {{PLURAL:$5|1 Tag|$5 Tage}} gültig.\n\nBitte ignorieren Sie diese E-Mail, falls Sie sie nicht selbst angefordert haben. Das alte Passwort bleibt weiterhin gültig.",
+       "noemailcreate": "Sie müssen eine gültige E-Mail-Adresse angeben",
+       "passwordsent": "Ein neues, temporäres Passwort wurde an die E-Mail-Adresse von Benutzer „$1“ gesandt.\nBitte melden Sie sich damit an, sobald sie es erhalten haben. Das alte Passwort bleibt weiterhin gültig.",
+       "blocked-mailpassword": "Die von Ihnen verwendete IP-Adresse ist für das Ändern von Seiten gesperrt. Um einen Missbrauch zu verhindern, wurde die Möglichkeit zur Anforderung eines neuen Passwortes ebenfalls gesperrt.",
+       "eauthentsent": "Eine Bestätigungs-E-Mail wurde an die angegebene Adresse verschickt.\n\nBevor eine E-Mail von anderen Benutzern über die E-Mail-Funktion empfangen werden kann, muss die Adresse und ihre tatsächliche Zugehörigkeit zu diesem Benutzerkonto erst bestätigt werden. Bitte befolgen Sie die Hinweise in der Bestätigungs-E-Mail.",
+       "acct_creation_throttle_hit": "Besucher dieses Wikis, die Ihre IP-Adresse verwenden, haben innerhalb des letzten Tages {{PLURAL:$1|1 Benutzerkonto|$1 Benutzerkonten}} erstellt, was die maximal erlaubte Anzahl in dieser Zeitperiode ist.\n\nBesucher, die diese IP-Adresse verwenden, können momentan keine Benutzerkonten mehr erstellen.",
+       "emailauthenticated": "Ihre E-Mail-Adresse wurde am $2 um $3 Uhr bestätigt.",
+       "emailnotauthenticated": "Ihre E-Mail-Adresse ist noch nicht bestätigt. Die folgenden E-Mail-Funktionen stehen erst nach erfolgreicher Bestätigung zur Verfügung.",
+       "noemailprefs": "Geben Sie eine E-Mail-Adresse in den Einstellungen an, damit die nachfolgenden Funktionen zur Verfügung stehen.",
+       "invalidemailaddress": "Die E-Mail-Adresse wird nicht akzeptiert, weil sie ein ungültiges Format (eventuell ungültige Zeichen) zu haben scheint. Bitte geben Sie eine korrekte Adresse ein oder leeren Sie das Feld.",
+       "createaccount-text": "Es wurde für Sie ein Benutzerkonto „$2“ auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für „$2“ ist „$3“. Sie sollten sich nun anmelden und das Passwort ändern.\n\nFalls das Benutzerkonto irrtümlich angelegt wurde, können Sie diese Nachricht ignorieren.",
+       "login-throttled": "Sie haben zu oft versucht, sich anzumelden.\nBitte warten Sie $1, bevor Sie es erneut probieren.",
+       "login-abort-generic": "Ihre Anmeldung war nicht erfolgreich – Abgebrochen",
+       "suspicious-userlogout": "Ihre Abmeldeanfrage wurde verweigert, da sie vermutlich von einem defekten Browser oder einem Cache-Proxy gesendet wurde.",
+       "createacct-another-realname-tip": "Der bürgerliche Name ist optional.\nWenn Sie ihn angeben, wird er für die Zuordnung der Beiträge verwendet.",
+       "resetpass_announce": "Um die Anmeldung abzuschließen, müssen Sie ein neues Passwort festlegen.",
+       "resetpass_text": "<!-- Ergänzen Sie den Text hier -->",
+       "changepassword-success": "Ihr Passwort wurde erfolgreich geändert.",
+       "resetpass-no-info": "Sie müssen sich anmelden, um auf diese Seite direkt zuzugreifen.",
+       "resetpass-wrong-oldpass": "Ungültiges temporäres oder aktuelles Passwort.\nMöglicherweise haben Sie Ihr Passwort bereits erfolgreich geändert oder ein neues temporäres Passwort beantragt.",
+       "passwordreset-capture-help": "Wenn Sie dieses Kästchen ankreuzen, wird die E-Mail-Nachricht mit dem temporären Passwort sowohl Ihnen angezeigt als auch dem Benutzer zugesandt.",
+       "passwordreset-emailtext-ip": "Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat eine Zurücksetzung Ihres\nPassworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}}\nmit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab.\nSie sollten sich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese\nAnfrage getätigt hat oder Sie sich wieder an Ihr ursprüngliches Passwort erinnern können und es nicht länger\nändern möchten, können Sie diese Nachricht ignorieren und weiterhin Ihr altes\nPasswort benutzen.",
+       "passwordreset-emailtext-user": "Benutzer $1 bei {{SITENAME}} hat eine Zurücksetzung Ihres Passworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}} mit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab. Sie sollten sich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese Anfrage getätigt hat oder Sie sich wieder an Ihr ursprüngliches Passwort erinnern können und es nicht ändern möchten, können Sie diese Nachricht ignorieren und weiterhin Ihr altes Passwort benutzen.",
+       "changeemail-text": "Füllen Sie dieses Formular vollständig aus, um Ihre E-Mail-Adresse zu ändern. Sie müssen Ihr Passwort angeben, um diese Änderung zu bestätigen.",
+       "changeemail-no-info": "Sie müssen angemeldet sein, um direkt auf diese Seite zugreifen zu können.",
+       "resettokens-text": "Sie können Tokens zurücksetzen, welche Ihnen den Zugriff auf bestimmte private Daten ermöglichen, die mit Ihrem Benutzerkonto hier verknüpft sind.\n\nSie sollten dies nur machen, wenn Sie die Tokens versehentlich mit jemandem geteilt haben oder Ihr Konto gefährdet ist.",
+       "sig_tip": "Ihre Signatur mit Zeitstempel",
+       "anoneditwarning": "Sie bearbeiten diese Seite unangemeldet. Wenn Sie sie abspeichern, wird Ihre aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit unwiderruflich '''öffentlich''' einsehbar.",
+       "missingsummary": "'''Hinweis:''' Sie haben keine Zusammenfassung angegeben. Wenn Sie erneut auf „{{int:savearticle}}“ klicken, wird Ihre Änderung ohne Zusammenfassung übernommen.",
+       "missingcommenttext": "Ihr Abschnitt enthält keinen Text.",
+       "missingcommentheader": "'''Achtung:''' Sie haben kein Betreff/Überschrift eingegeben. Wenn Sie erneut auf „{{int:savearticle}}“ klicken, wird Ihre Bearbeitung ohne Überschrift gespeichert.",
+       "blockedtext": "'''Ihr Benutzername oder Ihre IP-Adresse wurde gesperrt.'''\n\nDie Sperrung wurde vom Administrator $1 durchgeführt.\nAls Grund wurde ''$2'' angegeben.\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nSie könnten $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\nSie können die „E-Mail an diesen Benutzer“-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in Ihren [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für Sie gesperrt wurde.\nIhre aktuelle IP-Adresse ist $3 und die Sperrkennung lautet $5.\nBitte fügen Sie alle Informationen jeder Anfrage hinzu, die Sie stellen.",
+       "autoblockedtext": "Ihre IP-Adresse wurde automatisch gesperrt, da sie von einem anderen Benutzer genutzt wurde, der von $1 gesperrt wurde.\nAls Grund wurde angegeben:\n\n:''$2''\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nSie können $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\n\nSie können die „E-Mail an diesen Benutzer“-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in Ihren [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für Sie gesperrt wurde.\n\nIhre aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte fügen Sie alle Informationen jeder Anfrage hinzu, die Sie stellen.",
+       "whitelistedittext": "Sie müssen sich $1, um Seiten bearbeiten zu können.",
+       "confirmedittext": "Sie müssen Ihre E-Mail-Adresse erst bestätigen, bevor Sie Bearbeitungen vornehmen können. Bitte ergänzen und bestätigen Sie Ihre E-Mail in den [[Special:Preferences|Einstellungen]].",
+       "nosuchsectiontext": "Sie haben versucht, einen Abschnitt zu bearbeiten, der nicht existiert.\nVermutlich wurde er verschoben oder gelöscht, nachdem Sie die Seite aufgerufen haben.",
+       "loginreqpagetext": "Sie müssen sich $1, um Seiten lesen zu können.",
+       "newarticletext": "Sie sind einem Link zu einer Seite gefolgt, die nicht vorhanden ist.\nUm diese Seite anzulegen, tragen Sie Ihren Text in das untenstehende Bearbeitungsfeld ein (weitere Informationen auf der [$1 Hilfeseite]).\nSofern Sie fälschlicherweise hier sind, klicken Sie auf die Schaltfläche '''Zurück''' Ihres 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 Sie mit den Kommentaren auf dieser Seite nichts anfangen können, richten sie sich vermutlich an einen früheren Inhaber Ihrer IP-Adresse und Sie können sie ignorieren. Sie können sich auch ein [[Special:UserLogin/signup|Benutzerkonto erstellen]] oder sich [[Special:UserLogin|anmelden]], um künftig Verwechslungen mit anderen anonymen Benutzern zu vermeiden.''",
+       "noarticletext": "Diese Seite enthält momentan noch keinen Text.\nSie können diesen Titel auf den anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]],\n<span class=\"plainlinks\">in den zugehörigen [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbüchern suchen] oder diese Seite [{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten]</span>.",
+       "noarticletext-nopermission": "Diese Seite enthält momentan noch keinen Text.\nSie können ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]] oder die zugehörigen <span class=\"plainlinks\">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten].</span>. Sie sind allerdings nicht berechtigt diese Seite zu erstellen.",
+       "userpage-userdoesnotexist": "Das Benutzerkonto „<nowiki>$1</nowiki>“ ist nicht vorhanden. Bitte prüfen Sie, ob Sie diese Seite wirklich erstellen/bearbeiten möchten.",
+       "clearyourcache": "'''Hinweis:''' Leeren Sie nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.\n* '''Firefox/Safari:''' ''Umschalttaste'' drücken und gleichzeitig ''Aktualisieren'' anklicken oder entweder ''Strg+F5'' oder ''Strg+R'' (''⌘+R'' auf dem Mac) drücken\n* '''Google Chrome:''' ''Umschalttaste+Strg+R'' (''⌘+Umschalttaste+R'' auf dem Mac) drücken\n* '''Internet Explorer:''' ''Strg+F5'' drücken oder ''Strg'' drücken und gleichzeitig ''Aktualisieren'' anklicken\n* '''Opera:''' ''Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen''",
+       "usercssyoucanpreview": "'''Tipp:''' Benutzen Sie den „{{int:showpreview}}“-Button, um Ihr neues CSS vor dem Speichern zu testen.",
+       "userjsyoucanpreview": "'''Tipp:''' Benutzen Sie den „{{int:showpreview}}“-Button, um Ihr neues JavaScript vor dem Speichern zu testen.",
+       "usercsspreview": "'''Beachten Sie, dass Sie nur eine Vorschau Ihres Benutzer-CSS betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
+       "userjspreview": "'''Beachten Sie, dass Sie nur eine Vorschau Ihres Benutzer-JavaScript betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
+       "sitecsspreview": "'''Beachten Sie, dass Sie nur eine Vorschau dieses CSS betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
+       "sitejspreview": "'''Beachten Sie, dass Sie nur eine Vorschau dieses JavaScript betrachten.'''\n'''Es wurde noch nicht gespeichert!'''",
+       "userinvalidcssjstitle": "'''Achtung:''' Die Benutzeroberfläche „$1“ existiert nicht. Bedenken Sie, dass benutzerspezifische .css- und .js-Seiten mit einem Kleinbuchstaben anfangen müssen, also beispielsweise ''{{ns:user}}:Mustermann/vector.css'' an Stelle von ''{{ns:user}}:Mustermann/Vector.css''.",
+       "previewconflict": "Diese Vorschau gibt den Inhalt des oberen Textfeldes wieder. So wird die Seite aussehen, wenn Sie jetzt speichern.",
+       "session_fail_preview": "'''Ihre Bearbeitung konnte nicht gespeichert werden, da Sitzungsdaten verloren gegangen sind.\nBitte versuchen Sie es erneut, indem Sie unter der folgenden Textvorschau nochmals auf „Seite speichern“ klicken.\nSollte das Problem bestehen bleiben, [[Special:UserLogout|melden Sie sich ab]] und danach wieder an.'''",
+       "session_fail_preview_html": "'''Ihre Bearbeitung konnte nicht gespeichert werden, da Sitzungsdaten verloren gegangen sind.'''\n\n''Da in {{SITENAME}} das Speichern von reinem HTML aktiviert ist, wurde die Vorschau ausgeblendet, um JavaScript-Attacken vorzubeugen.''\n\n'''Bitte versuchen Sie es erneut, indem Sie unter der folgenden Textvorschau nochmals auf „Seite speichern“ klicken.\nSollte das Problem bestehen bleiben, [[Special:UserLogout|melden Sie sich ab]] und danach wieder an.'''",
+       "token_suffix_mismatch": "'''Ihre Bearbeitung wurde zurückgewiesen, da Ihr Browser Zeichen im Bearbeiten-Token verstümmelt hat.\nEine Speicherung kann den Seiteninhalt zerstören. Dies geschieht bisweilen durch die Benutzung eines anonymen Proxy-Dienstes, der fehlerhaft arbeitet.'''",
+       "edit_form_incomplete": "'''Der Inhalt des Bearbeitungsformulars hat den Server nicht vollständig erreicht. Bitte prüfen Sie Ihre Bearbeitungen auf Vollständigkeit und versuchen Sie es erneut.'''",
+       "explainconflict": "Jemand anders hat diese Seite geändert, nachdem Sie angefangen haben, sie zu bearbeiten.\nDas obere Textfeld enthält den aktuellen Bearbeitungsstand der Seite.\nDas untere Textfeld enthält Ihre Änderungen.\nBitte fügen Sie Ihre Änderungen in das obere Textfeld ein.\n'''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn Sie auf „{{int:savearticle}}“ klicken.",
+       "yourtext": "Ihr Text",
+       "nonunicodebrowser": "'''Achtung: Ihr Browser kann Unicode-Zeichen nicht richtig verarbeiten.''' Es wird eine Hilfsroutine eingesetzt, um Ihnen zu erlauben, Seiten sicher zu bearbeiten: Nicht-ASCII-Zeichen werden dabei im Bearbeitungsfenster als hexadezimale Codes angezeigt.",
+       "editingold": "'''Achtung: Sie bearbeiten eine alte Version dieser Seite. Sofern Sie sie speichern, werden alle neueren Versionen überschrieben.'''",
+       "copyrightwarning": "'''Bitte kopieren Sie keine Webseiten, die nicht Ihre eigenen sind, benutzen Sie keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />\nSie geben uns hiermit Ihre Zusage, dass Sie den Text '''selbst verfasst''' haben, dass der Text Allgemeingut '''(public domain)''' ist, oder dass der '''Urheber''' seine '''Zustimmung''' gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weisen Sie bitte auf der Diskussionsseite darauf hin.\n<i>Bitte beachten Sie, dass alle {{SITENAME}}-Beiträge automatisch unter der „$2“ stehen (siehe $1 für Einzelheiten). Falls Sie nicht möchten, dass Ihre Arbeit hier von anderen verändert und verbreitet wird, dann klicken Sie nicht auf „Seite speichern“.</i>",
+       "copyrightwarning2": "Bitte beachten Sie, dass alle Beiträge zu {{SITENAME}} von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können.\nReichen Sie keine Texte ein, falls Sie nicht wollen, dass diese ohne Einschränkung geändert werden können.\n\nSie bestätigen hiermit auch, dass Sie diese Texte selbst geschrieben haben oder diese von einer gemeinfreien Quelle kopiert haben\n(weitere Einzelheiten unter $1). '''ÜBERTRAGEN SIE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!'''",
+       "longpageerror": "'''Fehler: Der Text, den Sie zu speichern versuchen, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobyte}} groß. Dies ist größer als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobyte}}.'''\nEr kann nicht gespeichert werden.",
+       "readonlywarning": "'''Achtung: Die Datenbank wurde für Wartungsarbeiten gesperrt, so dass Ihre Änderungen derzeit nicht gespeichert werden können.\nSichern Sie den Text bitte lokal auf Ihrem Computer und versuchen Sie zu einem späteren Zeitpunkt, die Änderungen zu übertragen.'''\n\nGrund für die Sperre: $1",
+       "nocreatetext": "Auf {{SITENAME}} wurde das Erstellen neuer Seiten eingeschränkt. Sie können bestehende Seiten ändern oder sich [[Special:UserLogin|anmelden]].",
+       "nocreate-loggedin": "Sie haben nicht die erforderliche Berechtigung, um neue Seiten erstellen zu können.",
+       "permissionserrorstext": "Sie sind nicht berechtigt, die Aktion auszuführen. {{PLURAL:$1|Grund|Gründe}}:",
+       "permissionserrorstext-withaction": "Sie sind nicht berechtigt, $2.\n{{PLURAL:$1|Grund|Gründe}}:",
+       "recreate-moveddeleted-warn": "'''Achtung: Sie erstellen eine Seite, die bereits früher gelöscht wurde.'''\n\nBitte prüfen Sie sorgfältig, ob die erneute Seitenerstellung den Richtlinien entspricht.\nZu Ihrer Information folgt das Lösch- und Verschiebungs-Logbuch mit der Begründung für die vorhergehende Löschung:",
+       "edit-no-change": "Ihre Bearbeitung wurde ignoriert, da keine Änderung an dem Text vorgenomme wurde.",
+       "postedit-confirmation-saved": "Ihre Bearbeitung wurde gespeichert.",
+       "editwarning-warning": "Das Verlassen dieser Seite kann dazu führen, dass Ihre Änderungen verloren gehen.\nWenn Sie angemeldet sind, können Sie das Anzeigen dieser Warnung im „{{int:prefs-editing}}“-Bereich Ihrer Einstellungen abschalten.",
+       "undo-success": "Die Bearbeitung kann rückgängig gemacht werden.\nBitte prüfen Sie den Vergleich unten, um sicherzustellen, dass Sie dies tun möchten, und speichern Sie dann unten Ihre Änderungen, um die Bearbeitung rückgängig zu machen.",
+       "history-feed-empty": "Die angeforderte Seite existiert nicht. Vielleicht wurde sie gelöscht oder verschoben. [[Special:Search|Durchsuchen Sie]] {{SITENAME}} nach passenden neuen Seiten.",
+       "rev-deleted-text-unhide": "Diese Version wurde '''gelöscht'''.\nNähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].\nSie können [$1 diese Version einsehen], sofern Sie möchten.",
+       "rev-suppressed-text-unhide": "Diese Version wurde '''unterdrückt'''.\nNähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].\nSie können [$1 diese Version einsehen], sofern Sie möchten.",
+       "rev-deleted-text-view": "Diese Version wurde '''gelöscht'''.\nSie können sie einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
+       "rev-suppressed-text-view": "Diese Version wurde '''unterdrückt'''.\nSie können sie einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].",
+       "rev-deleted-no-diff": "Sie können diesen Unterschied nicht betrachten, da eine der Versionen '''gelöscht''' wurde.\nDetails stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
+       "rev-suppressed-no-diff": "Sie können diesen Versionsunterschied nicht betrachten, da eine der Versionen '''gelöscht''' wurde.",
+       "rev-deleted-unhide-diff": "Eine der Versionen dieses Versionsunterschieds wurde '''gelöscht'''.\nNähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].\nSie können [$1 diesen Versionsunterschied einsehen], sofern Sie möchten.",
+       "rev-suppressed-unhide-diff": "Eine der Versionen dieses Versionsunterschieds wurde '''unterdrückt'''.\nNähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].\nSie können [$1 diesen Versionsunterschied einsehen], sofern Sie möchten.",
+       "rev-deleted-diff-view": "Eine Version dieses Versionsunterschieds wurde '''gelöscht'''.\nSie können diesen Versionsunterschied einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
+       "rev-suppressed-diff-view": "Eine der Versionen dieses Versionsunterschiedes wurde '''unterdrückt'''.\nSie können diesen Versionsunterschied einsehen, sofern Sie möchten. Nähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].",
+       "revdelete-nooldid-text": "Sie haben entweder keine Version angegeben, auf die diese Aktion ausgeführt werden soll, die gewählte Version ist nicht vorhanden oder Sie versuchen, die aktuelle Version zu entfernen.",
+       "revdelete-show-file-confirm": "Sind Sie sicher, dass Sie die gelöschte Version der Datei „<nowiki>$1</nowiki>“ vom $2 um $3 Uhr ansehen wollen?",
+       "revdelete-confirm": "Bitte bestätigen Sie, dass Sie beabsichtigen, dies zu tun, die Konsequenzen verstehen und es in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]] tun.",
+       "revdelete-show-no-access": "Fehler beim Anzeigen des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als „eingeschränkt“ markiert.\nSie haben darauf keinen Zugriff.",
+       "revdelete-modify-no-access": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als „eingeschränkt“ markiert.\nSie haben darauf keinen Zugriff.",
+       "revdelete-concurrent-change": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Es scheint, als ob der Status von jemandem geändert wurde, bevor Sie vorhatten, ihn zu bearbeiten.\nBitte prüfen Sie die Logbücher.",
+       "revdelete-only-restricted": "Fehler beim Verstecken des Eintrags vom $1, $2 Uhr: Sie können keinen Eintrag vor Administratoren verstecken, ohne eine der anderen Ansichtsoptionen gewählt zu haben.",
+       "mergehistory-header": "Mit dieser Spezialseite können Sie die Versionsgeschichte einer Ursprungsseite mit der Versionsgeschichte einer Zielseite vereinen.\nStellen Sie sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.",
+       "mergehistory-merge": "Die folgenden Versionen von „[[:$1]]“ können nach „[[:$2]]“ übertragen werden. Markieren Sie die Version, bis zu der (einschließlich) die Versionen übertragen werden sollen. Bitte beachten Sie, dass die Nutzung der Navigationslinks die Auswahl zurücksetzt.",
+       "mergehistory-fail": "Versionsvereinigung nicht möglich, bitte prüfen Sie die Seite und die Zeitangaben.",
+       "searchmenu-new": "<strong>Erstellen Sie die Seite „[[:$1]]“ in diesem Wiki.</strong> {{PLURAL:$2|0=|Siehe auch die über Ihre Suche gefundene Seite.|Siehe auch die gefundenen Suchergebnisse.}}",
+       "search-suggest": "Meinten Sie „$1“?",
+       "search-nonefound": "Für Ihre Suchanfrage wurden keine Ergebnisse gefunden.",
+       "searchdisabled": "Die {{SITENAME}} Suche wurde deaktiviert. Sie können unterdessen mit Google suchen. Bitte bedenken Sie, dass der Suchindex von {{SITENAME}} veraltet sein kann.",
+       "prefsnologintext2": "Sie müssen sich $1, um Ihre Benutzereinstellungen festzulegen.",
+       "prefs-help-watchlist-token2": "Dies ist der geheime Schlüssel zum Webfeed Ihrer Beobachtungsliste.\nJeder, der ihn kennt, kann Ihre Beobachtungsliste lesen. Teilen Sie ihn deshalb nicht Anderen mit.\nSofern notwendig, [[Special:ResetTokens|können Sie ihn zurücksetzen]].",
+       "savedprefs": "Ihre Einstellungen wurden gespeichert.",
+       "prefs-reset-intro": "Sie können diese Seite verwenden, um die Einstellungen auf die Standards zurückzusetzen.\nDies kann nicht mehr rückgängig gemacht werden.",
+       "yourgender": "Welches Geschlecht haben Sie?",
+       "prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um Sie anzureden sowie als Hinweis für andere durch Verwendung des zutreffenden grammatikalischen Geschlechts.\nDiese Information ist öffentlich.",
+       "prefs-help-realname": "Dies ist eine freiwillige Angabe. Damit kann Ihr bürgerlicher Name Ihren Beiträgen zugeordnet werden.",
+       "prefs-help-email": "Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern Sie Ihr Passwort vergessen haben.",
+       "prefs-help-email-others": "Mit anderen Benutzern können Sie auch über die Benutzerdiskussionsseiten Kontakt aufnehmen, ohne dass Sie Ihre Identität offenlegen müssen.",
+       "prefs-help-prefershttps": "Diese Einstellung wird bei Ihrer nächsten Anmeldung wirksam.",
+       "userrights-groups-help": "Sie können die Gruppenzugehörigkeit dieses Benutzers ändern:\n* Ein markiertes Kästchen bedeutet, dass der Benutzer Mitglied dieser Gruppe ist.\n* Ein nichtmarkiertes Kästchen bedeutet, dass der Benutzer nicht Mitglied dieser Gruppe ist.\n* Ein * bedeutet, dass Sie das Benutzerrecht nach Erteilung nicht wieder zurücknehmen können (oder umgekehrt).",
+       "userrights-no-interwiki": "Sie haben nicht die erforderliche Berechtigung, um Benutzerrechte in anderen Wikis ändern zu können.",
+       "userrights-nologin": "Sie müssen sich mit einem Administrator-Benutzerkonto [[Special:UserLogin|anmelden]], um Benutzerrechte zu ändern.",
+       "userrights-notallowed": "Sie verfügen nicht über die erforderlichen Berechtigungen, um Benutzerrechte vergeben oder entziehen zu können.",
+       "userrights-changeable-col": "Gruppenzugehörigkeit, die Sie ändern dürfen",
+       "userrights-unchangeable-col": "Gruppenzugehörigkeit, die Sie nicht ändern dürfen",
+       "recentchanges-summary": "Auf dieser Seite können Sie die letzten Änderungen in diesem Wiki nachverfolgen.",
+       "recentchanges-feed-description": "Verfolgen Sie mit diesem Feed die letzten Änderungen in {{SITENAME}}.",
+       "recentchangeslinked-summary": "Diese Spezialseite listet die letzten Änderungen an den verlinkten Seiten auf (bzw. bei Kategorien an den Mitgliedern dieser Kategorie).\nSeiten auf Ihrer [[Special:Watchlist|Beobachtungsliste]] sind '''fett''' dargestellt.",
+       "uploadnologintext": "Sie müssen sich $1 um Dateien hochladen zu können.",
+       "uploadtext": "Benutzen Sie dieses Formular, um neue Dateien hochzuladen.\n\nGehen Sie zu der [[Special:FileList|Liste hochgeladener Dateien]], um vorhandene Dateien zu suchen und anzuzeigen. Siehe auch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Lösch-Logbuch]].\n\nUm ein '''Bild''' in einer Seite zu verwenden, nutzen Sie einen Link in der folgenden Form:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für ein Vollbild\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für ein 200px breites Bild innerhalb einer Box, mit „Alternativer Text“ als Bildbeschreibung\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
+       "illegalfilename": "Der Dateiname „$1“ enthält mindestens ein nicht erlaubtes Zeichen. Bitte benennen Sie die Datei um und versuchen Sie, sie erneut hochzuladen.",
+       "empty-file": "Die von Ihnen übertragene Datei hat keinen Inhalt.",
+       "emptyfile": "Die hochgeladene Datei ist leer. Der Grund kann ein Tippfehler im Dateinamen sein. Bitte kontrollieren Sie, ob Sie die Datei wirklich hochladen wollen.",
+       "fileexists": "Eine Datei dieses Namens ist bereits vorhanden. Bitte prüfen Sie <strong>[[:$1]]</strong>, sofern Sie sich nicht sicher sind, ob Sie sie ändern möchten.\n[[$1|thumb]]",
+       "filepageexists": "Eine Beschreibungsseite wurde bereits als <strong>[[:$1]]</strong> erstellt, es ist aber keine Datei mit diesem Namen vorhanden.\nDie eingegebene Beschreibung wird nicht auf die Beschreibungsseite übernommen.\nDie Beschreibungsseite müssen Sie nach dem Hochladen der Datei noch manuell bearbeiten.\n[[$1|thumb]]",
+       "fileexists-extension": "Eine Datei ähnlichen Namens ist bereits vorhanden: [[$2|thumb]]\n* Name der hochzuladenden Datei: <strong>[[:$1]]</strong>\n* Name der vorhandenen Datei: <strong>[[:$2]]</strong>\nBitte wählen Sie einen anderen Namen.",
+       "fileexists-thumbnail-yes": "Bei der Datei scheint es sich um ein Bild verringerter Größe ''(Minitatur)'' zu handeln. [[$1|thumb]]\nBitte prüfen Sie die Datei <strong>[[:$1]]</strong>.\nWenn es sich um das Bild in Originalgröße handelt, so braucht kein separates Vorschaubild hochgeladen zu werden.",
+       "file-thumbnail-no": "Der Dateiname beginnt mit <strong>$1</strong>. Dies deutet auf ein Bild verringerter Größe ''(Miniatur)'' hin.\nBitte prüfen Sie, ob Sie das Bild in voller Auflösung vorliegen haben und laden dieses unter dem Originalnamen hoch.",
+       "fileexists-forbidden": "Unter diesem Namen existiert bereits eine Datei und sie kann nicht überschrieben werden. Bitte gehen Sie zurück und laden Sie die Datei unter einem anderen Namen hoch. [[File:$1|thumb|center|$1]]",
+       "fileexists-shared-forbidden": "Unter diesem Namen existiert bereits eine Datei im zentralen Medienarchiv.\nWenn Sie diese Datei trotzdem hochladen möchten, gehen Sie bitte zurück und ändern den Namen.\n[[File:$1|thumb|center|$1]]",
+       "file-deleted-duplicate": "Eine mit dieser identische Datei ([[:$1]]) wurde früher gelöscht. Sehen Sie das Lösch-Logbuch ein, bevor Sie sie hochladen.",
+       "uploadwarning-text": "Bitte ändern Sie unten die Dateibeschreibung und versuchen Sie es erneut.",
+       "php-uploaddisabledtext": "Das Hochladen von Dateien wurde in PHP deaktiviert.\nBitte überprüfen Sie die <code>file_uploads</code>-Einstellung.",
+       "filewasdeleted": "Eine Datei mit diesem Namen wurde schon einmal hochgeladen und zwischenzeitlich wieder gelöscht. Bitte prüfen Sie zuerst den Eintrag im $1, bevor Sie die Datei wirklich speichern.",
+       "filename-bad-prefix": "Der Dateiname beginnt mit '''„$1“'''. Dies ist im allgemeinen der von einer Digitalkamera vorgegebene Dateiname und daher nicht sehr aussagekräftig.\nBitte geben Sie der Datei einen Namen, der den Inhalt besser beschreibt.",
+       "upload-file-error-text": "Bei der Erstellung einer temporären Datei auf dem Server ist ein interner Fehler aufgetreten.\nBitte informieren Sie einen [[Special:ListUsers/sysop|Administrator]].",
+       "upload-misc-error-text": "Beim Hochladen ist ein unbekannter Fehler aufgetreten.\nPrüfen Sie die URL auf Fehler, den Online-Status der Seite und versuchen es erneut.\nWenn das Problem weiter besteht, informieren Sie einen [[Special:ListUsers/sysop|Administrator]].",
+       "uploadstash-badtoken": "Das Entfernen der vorab gespeicherten Dateien war erfolglos, vielleicht weil Ihre Sitzungsdaten abgelaufen sind. Bitte versuchen Sie es erneut.",
+       "img-auth-nopathinfo": "PATH_INFO fehlt.\nIhr Server ist nicht dafür eingerichtet, diese Information weiterzugeben.\nSie könnte CGI-gestützt sein und kann daher img_auth nicht ermöglichen.\nSiehe auch http://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
+       "img-auth-nologinnWL": "Sie sind nicht angemeldet und „$1“ ist nicht in der weißen Liste.",
+       "img-auth-isdir": "Sie versuchen, auf ein Verzeichnis „$1“ zuzugreifen.\nNur Dateizugriff ist erlaubt.",
+       "upload-curl-error6-text": "Die angegebene URL ist nicht erreichbar. Prüfen Sie sowohl die URL auf Fehler als auch den Online-Status der Seite.",
+       "upload-curl-error28-text": "Die Seite braucht zu lange, um zu antworten. Prüfen Sie, ob die Seite online ist, warten Sie einen kurzen Moment und versuchen Sie es dann erneut. Es kann sinnvoll sein, es zu einem anderen Zeitpunkt erneut zu versuchen.",
+       "upload_source_file": " (eine Datei auf Ihrem Computer)",
+       "filehist-help": "Klicken Sie auf einen Zeitpunkt, um diese Version zu laden.",
+       "sharedupload-desc-edit": "Diese Datei stammt aus $1 und kann auf anderen Projekten verwendet werden.\nVielleicht möchten Sie die Beschreibung auf der dortigen [$2 Dateibeschreibungsseite] bearbeiten.",
+       "sharedupload-desc-create": "Diese Datei stammt aus $1 und kann von anderen Projekten verwendet werden.\nVielleicht möchten Sie die Beschreibung auf der dortigen [$2 Dateibeschreibungsseite] bearbeiten.",
+       "filepage-nofile-link": "Es ist keine Datei dieses Namens vorhanden. Sie können jedoch [$1 diese Datei hochladen].",
+       "filerevert-intro": "Sie setzen die Datei '''[[Media:$1|$1]]''' auf die [$4 Version vom $2, $3 Uhr] zurück.",
+       "filedelete-intro": "Sie löschen die Datei '''„[[Media:$1|$1]]“''' inklusive ihrer Versionsgeschichte.",
+       "filedelete-intro-old": "Sie löschen von der Datei '''„[[Media:$1|$1]]“''' die [$4 Version vom $2, $3 Uhr].",
+       "unusedtemplatestext": "Diese Seite listet alle Seiten im {{ns:template}}-Namensraum auf, die nicht in anderen Seiten eingebunden sind.\nÜberprüfen Sie andere Links zu den Vorlagen, bevor Sie diese löschen.",
+       "unusedimagestext": "Bitte beachten Sie, dass andere Webseiten eine Datei mit einer direkten URL verlinken können. Sie könnte daher hier aufgelistet sein, obwohl sie in aktiver Verwendung ist.",
+       "notargettext": "Sie haben nicht angegeben, auf welche Seite diese Funktion angewendet werden soll.",
+       "booksources-invalid-isbn": "Vermutlich ist die ISBN ungültig.\nBitte prüfen Sie, ob sie korrekt von der Quelle übertragen wurde.",
+       "cachedspecial-viewing-cached-ttl": "Sie sehen die gecachte Version dieser Seite, die bis zu $1 alt sein kann.",
+       "cachedspecial-viewing-cached-ts": "Sie sehen die gecachte Version dieser Seite, die möglicherweise nicht aktuell ist.",
+       "mailnologintext": "Sie müssen [[Special:UserLogin|angemeldet sein]] und eine bestätigte E-Mail-Adresse in Ihren [[Special:Preferences|Einstellungen]] eingetragen haben, um anderen Benutzern E-Mails schicken zu können.",
+       "emailpagetext": "Sie können {{GENDER:$1|dem Benutzer|der Benutzerin}} mit dem unten stehenden Formular eine E-Mail senden.\nAls Absender wird die E-Mail-Adresse aus Ihren [[Special:Preferences|Einstellungen]] eingetragen, damit {{GENDER:$1|der Benutzer|die Benutzerin}} Ihnen direkt antworten kann.",
+       "emailccsubject": "Kopie Ihrer Nachricht an $1: $2",
+       "emailsenttext": "Ihre E-Mail wurde verschickt.",
+       "nowatchlist": "Es befinden sich keine Einträge auf Ihrer Beobachtungsliste.",
+       "watchlistanontext": "Sie müssen sich $1, um Ihre Beobachtungsliste sehen oder Einträge auf ihr bearbeiten zu können.",
+       "watchnologin": "Sie sind nicht angemeldet",
+       "addedwatchtext": "Die Seite „[[:$1]]“ wurde zu Ihrer [[Special:Watchlist|Beobachtungsliste]] hinzugefügt.\n\nSpätere Änderungen an dieser Seite und der dazugehörigen Diskussionsseite werden dort gelistet.",
+       "removedwatchtext": "Die Seite „[[:$1]]“ wurde von Ihrer [[Special:Watchlist|Beobachtungsliste]] entfernt.",
+       "watchlist-details": "Sie beobachten {{PLURAL:$1|1 Seite|$1 Seiten}}.",
+       "enotif_body": "Hallo $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nZusammenfassung des Bearbeiters: $PAGESUMMARY $PAGEMINOREDIT\n\nKontakt zum Bearbeiter:\nE-Mail: $PAGEEDITOR_EMAIL\nWiki: $PAGEEDITOR_WIKI\n\nBei weiterer Aktivität auf der Seite werden Ihnen so lange keine weiteren Benachrichtigungs-E-Mails gesendet, bis Sie die Seite wieder angemeldet besucht haben.\nAuf Ihrer Beobachtungsliste können Sie alle Benachrichtigungsmarkierungen zusammen zurücksetzen.\n\nIhr freundliches {{SITENAME}}-Benachrichtigungssystem\n\n--\nUm die Einstellungen der E-Mail-Benachrichtigung anzupassen, besuchen Sie {{canonicalurl:{{#special:Preferences}}}}.\n\nUm die Einstellungen Ihrer Beobachtungsliste anzupassen, besuchen Sie {{canonicalurl:{{#special:EditWatchlist}}}}.\n\nUm diese Seite von Ihrer Beobachtungsliste zu entfernen, besuchen Sie $UNWATCHURL.\n\nRückmeldungen und weitere Hilfe: $HELPPAGE",
+       "historywarning": "'''Achtung:''' Die Seite, die Sie löschen möchten, hat eine Versionsgeschichte mit etwa $1 {{PLURAL:$1|Version|Versionen}}:",
+       "confirmdeletetext": "Sie sind dabei, eine Seite mit allen zugehörigen älteren Versionen zu löschen. Bitte bestätigen Sie, dass Sie sich der Konsequenzen bewusst sind, und dass Sie in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]] handeln.",
+       "deletedtext": "„$1“ wurde gelöscht. Im $2 finden Sie eine Liste der letzten Löschungen.",
+       "sessionfailure": "Es gab ein Problem bei der Übertragung Ihrer Benutzerdaten.\nDiese Aktion wurde daher sicherheitshalber abgebrochen, um eine falsche Zuordnung Ihrer Änderungen zu einem anderen Benutzer zu verhindern.\nBitte gehen Sie zurück zur vorherigen Seite, laden Sie sie erneut und versuchen Sie, den Vorgang erneut auszuführen.",
+       "protect-text": "Hier können Sie den Schutzstatus der Seite „$1“ einsehen und ändern.",
+       "protect-locked-blocked": "Sie können den Seitenschutz nicht ändern, da Ihr Benutzerkonto gesperrt ist. Hier sind die aktuellen Seitenschutz-Einstellungen der Seite '''„$1“:'''",
+       "protect-locked-access": "Ihr Benutzerkonto verfügt nicht über die notwendigen Rechte zur Änderung des Seitenschutzes. Hier sind die aktuellen Seitenschutzeinstellungen für die Seite '''„$1“:'''",
+       "protect-cantedit": "Sie können die Sperre dieser Seite nicht ändern, da Sie keine Berechtigung zum Bearbeiten der Seite haben.",
+       "undeleteextrahelp": "* Um die Seite mitsamt aller Versionen wiederherzustellen, wählen Sie keine Version aus, geben eine Begründung an und klicken dann auf „{{int:undeletebtn}}“.\n* Um lediglich bestimmte Versionen der Seite wiederherzustellen, wählen Sie die betreffenden Versionen einzeln aus, geben eine Begründung an und klicken dann auf „{{int:undeletebtn}}“.",
+       "undeletehistory": "Wenn Sie diese Seite wiederherstellen, werden auch alle alten Versionen wiederhergestellt.\nWenn seit der Löschung eine neue Seite gleichen Namens erstellt wurde, werden die wiederhergestellten Versionen chronologisch in die Versionsgeschichte eingeordnet.",
+       "undeleterevdel": "Die Wiederherstellung wird nicht durchgeführt, wenn die aktuellste Version versteckt ist oder versteckte Teile enthält.\nIn diesem Fall darf die aktuellste Version nicht markiert werden oder ihr Status muss auf den einer normalen Version geändert werden.\nVersionen von Dateien, auf die Sie keinen Zugriff haben, werden nicht wiederhergestellt.",
+       "undeletedpage": "'''$1''' wurde wiederhergestellt.\n\nIm [[Special:Log/delete|Lösch-Logbuch]] finden Sie eine Übersicht der gelöschten und wiederhergestellten Seiten.",
+       "undelete-show-file-confirm": "Sind Sie sicher, dass Sie eine gelöschte Version der Datei „<nowiki>$1</nowiki>“ vom $2, $3 Uhr sehen wollen?",
+       "tooltip-namespace_association": "Dieses Auswahlfeld anklicken, um den Ihrer Auswahl zugehörigen Diskussionsnamensraum, oder im umgekehrten Fall, den zugehörigen Namensraum, mit einzubeziehen",
+       "blockiptext": "Mit diesem Formular sperren Sie eine IP-Adresse oder einen Benutzernamen, so dass von dort keine Änderungen mehr vorgenommen werden können.\nDies sollte nur erfolgen, um Vandalismus zu verhindern und in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]].\nBitte geben Sie den Grund für die Sperre an.",
+       "ipb-blockingself": "Sie sind gerade dabei, sich selbst zu sperren! Möchten Sie das wirklich tun?",
+       "ipb-confirmhideuser": "Sie sind gerade dabei, einen Benutzer im Modus „Benutzer verstecken“ zu sperren. Dies führt dazu, dass der Benutzername in allen Listen und Logbüchern unterdrückt wird. Möchten Sie das wirklich tun?",
+       "unblockiptext": "Mit diesem Formular können Sie eine IP-Adresse oder einen Benutzer freigeben.",
+       "autoblocker": "Automatische Sperre, da Sie eine gemeinsame IP-Adresse mit [[User:$1|$1]] benutzen. Der bei der Sperren von „$1“ angegebene Grund lautet: „$2“.",
+       "ipb-needreblock": "„$1“ ist bereits gesperrt. Möchten Sie die Sperrparameter ändern?",
+       "proxyblockreason": "Ihre IP-Adresse wurde gesperrt, da sie ein offener Proxy ist. Bitte kontaktieren Sie Ihren Internet-Provider oder Ihre Systemadministratoren und informieren Sie sie über dieses mögliche Sicherheitsproblem.",
+       "cant-see-hidden-user": "Der Benutzer, den Sie versuchen zu sperren, wurde bereits gesperrt und verborgen. Da Sie das „hideuser“-Recht nicht haben, können Sie die Benutzersperre nicht sehen und nicht bearbeiten.",
+       "ipbblocked": "Sie können keine anderen Benutzer sperren oder entsperren, da Sie selbst gesperrt sind",
+       "ipbnounblockself": "Sie haben nicht die Berechtigung, sich selbst zu entsperren",
+       "locknoconfirm": "Sie haben das Bestätigungsfeld nicht markiert.",
+       "lockdbsuccesstext": "Die {{SITENAME}}-Datenbank wurde gesperrt.<br />Bitte geben Sie die Datenbank [[Special:UnlockDB|wieder frei]], sobald die Wartung abgeschlossen ist.",
+       "movepagetext": "Mit untenstehendem Formular können Sie eine Seite umbenennen, indem Sie sie mitsamt allen Versionen auf einen neuen Titel verschieben.\nDer alte Titel wird danach zum neuen weiterleiten.\nSie können Weiterleitungen, die auf den Originaltitel verlinken, automatisch korrigieren lassen.\nStellen Sie sicher, dass Sie im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfen.\nSie sind dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, letztere ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass Sie die Umbenennung rückgängig machen können, sofern Sie einen Fehler gemacht haben. Sie können hingegen keine existierende Seite überschreiben.\n\n'''Warnung!'''\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nSie sollten daher die Konsequenzen verstanden haben, bevor Sie jetzt fortfahren.",
+       "movepagetext-noredirectfixer": "Mit untenstehendem Formular können Sie eine Seite umbenennen, indem Sie sie mitsamt allen Versionen auf einen neuen Titel verschieben.\nDer alte Titel wird danach zum neuen weiterleiten.\nStellen Sie sicher, dass Sie im Anschluss alle [[Special:DoubleRedirects|doppelten]] oder [[Special:BrokenRedirects|defekten Weiterleitungen]] überprüfen.\nSie sind dafür verantwortlich, dass Links weiterhin auf das korrekte Ziel verweisen.\n\nDie Seite wird '''nicht''' verschoben, sofern es bereits eine Seite mit dem vorgesehenen Titel gibt, es sei denn, diese ist eine Weiterleitung ohne Versionsgeschichte.\nDies bedeutet, dass Sie die Umbenennung rückgängig machen können, sofern Sie einen Fehler gemacht haben. Sie können hingegen keine existierende Seite überschreiben.\n\n'''Warnung!'''\nDie Verschiebung kann weitreichende und unerwartete Folgen für häufig besuchte Seiten haben.\nSie sollten daher die Konsequenzen verstanden haben, bevor Sie jetzt fortfahren.",
+       "movepagetalktext": "Die dazugehörige Diskussionsseite wird, sofern vorhanden, mitverschoben, '''es sei denn:'''\n*Es existiert bereits eine Diskussionsseite mit diesem Namen, oder\n*Sie wählen die unten stehende Option ab.\n\nIn diesen Fällen müssen Sie, falls gewünscht, den Inhalt der Seite von Hand verschieben oder zusammenführen.\n\nBitte den '''neuen''' Titel unter '''Ziel''' eintragen, darunter die Umbenennung bitte '''begründen.'''",
+       "moveuserpage-warning": "'''Warnung:''' Sie sind dabei, eine Benutzerseite zu verschieben. Bitte bedenken Sie, dass dadurch nur die Benutzerseite verschoben, '''nicht''' aber der Benutzer umbenannt wird.",
+       "movenologintext": "Sie müssen ein registrierter Benutzer und [[Special:UserLogin|angemeldet]] sein, um eine Seite zu verschieben.",
+       "movenotallowed": "Sie haben nicht die erforderliche Berechtigung, um Seiten verschieben zu können.",
+       "movenotallowedfile": "Sie haben nicht die erforderliche Berechtigung, um Dateien verschieben zu können.",
+       "cant-move-user-page": "Sie haben nicht die erforderliche Berechtigung, Benutzerhauptseiten verschieben zu können.",
+       "cant-move-to-user-page": "Sie haben nicht die Berechtigung, Seiten auf eine Benutzerseite zu verschieben (mit Ausnahme von Benutzerunterseiten).",
+       "articleexists": "Unter diesem Namen existiert bereits eine Seite. Bitte wählen Sie einen anderen Namen.",
+       "delete_and_move_text": "== Löschung erforderlich ==\n\nDie Seite „[[:$1]]“ existiert bereits. Möchten Sie diese löschen, um die Seite verschieben zu können?",
+       "file-exists-sharedrepo": "Der gewählte Dateiname wird bereits in einem gemeinsam genutzten Repositorium verwendet.\nBitte wählen Sie einen anderen Namen.",
+       "exporttext": "Mit dieser Spezialseite können Sie den Text inklusive der Versionsgeschichte einzelner Seiten in eine XML-Datei exportieren.\nDie Datei kann in ein anderes MediaWiki-Wiki über die [[Special:Import|Importfunktion]] eingespielt werden.\n\nTragen Sie den oder die entsprechenden Seitentitel in das folgende Textfeld ein (pro Zeile jeweils nur eine Seite).\n\nAlternativ ist der Export auch mit der Syntax [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] möglich, beispielsweise für die [[{{MediaWiki:Mainpage}}]].",
+       "allmessagestext": "Dies ist eine Liste der MediaWiki-Systemtexte.\nBitte besuchen Sie die Seiten [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [//translatewiki.net translatewiki.net], sofern Sie sich an der Lokalisierung von MediaWiki beteiligen möchten.",
+       "import-interwiki-text": "Wählen Sie ein Wiki und eine Seite zum Importieren aus.\nDie Versionsdaten und Benutzernamen bleiben dabei erhalten.\nAlle Transwiki-Import-Aktionen werden im [[Special:Log/import|Import-Logbuch]] protokolliert.",
+       "import-token-mismatch": "Verlust der Sessiondaten. Bitte versuchen Sie es erneut.",
+       "import-error-edit": "Die Seite „$1“ wurde nicht importiert, da Sie nicht berechtigt sind, sie zu bearbeiten.",
+       "import-error-create": "Die Seite „$1“ wurde nicht importiert, da Sie nicht berechtigt sind, sie zu erstellen.",
+       "javascripttest-pagetext-frameworks": "Bitte wählen Sie eine der folgenden Prüfumgebungen aus: $1",
+       "javascripttest-pagetext-skins": "Wählen Sie eine Benutzeroberfläche zur Durchführung der Tests aus:",
+       "tooltip-pt-userpage": "Ihre Benutzerseite",
+       "tooltip-pt-anonuserpage": "Benutzerseite der IP-Adresse, von der aus Sie Änderungen durchführen",
+       "tooltip-pt-mytalk": "Ihre Diskussionsseite",
+       "tooltip-pt-mycontris": "Liste Ihrer Beiträge",
+       "tooltip-n-mainpage": "Besuchen Sie die Hauptseite",
+       "tooltip-n-mainpage-description": "Besuchen Sie die Hauptseite",
+       "tooltip-n-portal": "Über das Projekt, was Sie tun können, wo was zu finden ist",
+       "tooltip-watch": "Diese Seite zu Ihrer Beobachtungsliste hinzufügen",
+       "tooltip-summary": "Geben Sie eine kurze Zusammenfassung ein.",
+       "spamprotectiontext": "Der Text, die Sie speichern wollen, wurde vom Spamschutzfilter blockiert.\nDas liegt wahrscheinlich an einem Link auf eine externe Seite.",
+       "markedaspatrollederrortext": "Sie müssen eine Seitenänderung auswählen.",
+       "mediawarning": "'''Warnung:''' Dieser Dateityp kann böswilligen Programmcode enthalten.\nDurch das Herunterladen und Öffnen der Datei kann Ihr Computer beschädigt werden.",
+       "confirmemail_noemail": "Sie haben keine gültige E-Mail-Adresse in Ihren [[Special:Preferences|persönlichen Einstellungen]] eingetragen.",
+       "confirmemail_text": "{{SITENAME}} erfordert, dass Sie Ihre E-Mail-Adresse bestätigen (authentifizieren), bevor Sie die erweiterten E-Mail-Funktionen benutzen können. Klicken Sie bitte auf die unten stehende, mit „Bestätigungscode zuschicken“ beschriftete Schaltfläche, damit eine automatisch erstellte E-Mail an die angegebene Adresse geschickt wird. Diese E-Mail enthält eine Web-Adresse mit einem Bestätigungscode. Indem Sie diese Webseite in Ihrem Webbrowser öffnen, bestätigen Sie, dass die angegebene E-Mail-Adresse korrekt und gültig ist.",
+       "confirmemail_pending": "Es wurde Ihnen bereits ein Bestätigungscode per E-Mail zugeschickt.\nWenn Sie Ihr Benutzerkonto erst vor kurzem erstellt haben, warten Sie bitte noch ein paar Minuten auf die E-Mail, bevor Sie einen neuen Code anfordern.",
+       "confirmemail_oncreate": "Ein Bestätigungs-Code wurde an Ihre E-Mail-Adresse gesandt. Dieser Code wird für die Anmeldung nicht benötigt, jedoch wird er zur Aktivierung der E-Mail-Funktionen innerhalb des Wikis gebraucht.",
+       "confirmemail_sendfailed": "{{SITENAME}} konnte die Bestätigungs-E-Mail nicht an Sie versenden.\nBitte prüfen Sie die E-Mail-Adresse auf ungültige Zeichen.\n\nRückmeldung des Mailservers: $1",
+       "confirmemail_invalid": "Ungültiger Bestätigungscode. Möglicherweise ist der Bestätigungszeitraum verstrichen. Versuchen Sie bitte, die Bestätigung zu wiederholen.",
+       "confirmemail_needlogin": "Sie müssen sich $1, um Ihre E-Mail-Adresse zu bestätigen.",
+       "confirmemail_success": "Ihre E-Mail-Adresse wurde erfolgreich bestätigt. Sie können sich jetzt [[Special:UserLogin|anmelden]].",
+       "confirmemail_loggedin": "Ihre E-Mail-Adresse wurde erfolgreich bestätigt.",
+       "confirmemail_body": "Hallo,\n\njemand mit der IP-Adresse $1, wahrscheinlich Sie selbst, hat das Benutzerkonto „$2“ bei {{SITENAME}} registriert.\n\nUm die E-Mail-Funktionen von {{SITENAME}} (wieder) zu aktivieren und um zu bestätigen,\ndass dieses Benutzerkonto wirklich zu Ihrer E-Mail-Adresse und damit zu Ihnen gehört, öffnen Sie bitte folgenden Link in Ihrem Browser:\n\n$3\n\nWenn Sie das genannte Benutzerkonto *nicht* registriert haben, folgen Sie diesem Link, um den Bestätigungsprozess abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis zum $6, $7 Uhr.",
+       "confirmemail_body_set": "Jemand mit der IP-Adresse $1, wahrscheinlich Sie selbst,\nhat die E-Mail-Adresse des Benutzerkontos „$2“ auf {{SITENAME}} zu dieser E-Mail-Adresse abgeändert.\n\nUm zu bestätigen, dass dieses Benutzerkonto wirklich zu Ihnen gehört\nund um die E-Mail-Funktionen auf {{SITENAME}} zu aktivieren, öffnen Sie bitte den folgenden Link in Ihrem Browser:\n\n$3\n\nFalls das Konto *nicht* zu Ihnen gehört, bitte den nachfolgenden Link öffnen,\num die Bestätigung der E-Mail-Adresse abzubrechen:\n\n$5\n\nDieser Bestätigungscode ist gültig bis $4.",
+       "deletedwhileediting": "Achtung: Diese Seite wurde gelöscht, nachdem Sie angefangen haben, sie zu bearbeiten!\nIm [{{fullurl:{{#special:Log}}|type=delete&page={{FULLPAGENAMEE}}}} Lösch-Logbuch] finden Sie den Grund für die Löschung.\nWenn Sie die Seite speichern, wird sie neu angelegt.",
+       "confirmrecreate": "Benutzer [[User:$1|$1]] ([[User talk:$1|Diskussion]]) hat diese Seite gelöscht, nachdem Sie angefangen haben, sie zu bearbeiten. Die Begründung lautete:\n: ''$2''\nBitte bestätigen Sie, dass Sie diese Seite wirklich neu erstellen möchten.",
+       "watchlistedit-normal-explain": "Dies sind die Einträge Ihrer Beobachtungsliste. Um Einträge zu entfernen, markieren Sie die Kästchen neben den Einträgen und klicken Sie am Ende der Seite auf „{{int:Watchlistedit-normal-submit}}“. Sie können Ihre Beobachtungsliste auch im [[Special:EditWatchlist/raw|Listenformat bearbeiten]].",
+       "watchlistedit-normal-done": "{{PLURAL:$1|Ein Eintrag wurde|$1 Einträge wurden}} von Ihrer Beobachtungsliste entfernt:",
+       "watchlistedit-raw-explain": "Dies sind die Einträge Ihrer Beobachtungsliste im Listenformat. Die Einträge können zeilenweise gelöscht oder hinzugefügt werden.\nPro Zeile ist ein Eintrag erlaubt.\nSobald Sie fertig sind, klicken Sie auf „{{int:Watchlistedit-raw-submit}}“.\nSie können auch die [[Special:EditWatchlist|Standardseite]] zum Bearbeiten benutzen.",
+       "watchlistedit-raw-done": "Ihre Beobachtungsliste wurde gespeichert.",
+       "dberr-again": "Warten Sie einige Minuten und versuchen Sie dann neu zuladen.",
+       "dberr-usegoogle": "Sie könnten in der Zwischenzeit mit Google suchen.",
+       "dberr-outofdate": "Beachten Sie, dass der Suchindex unserer Inhalte bei Google veraltet sein kann.",
+       "feedback-bugornote": "Sofern Sie detailliert ein technisches Problem beschreiben möchten, melden Sie bitte [$1 einen Fehler].\nAnderenfalls können Sie auch das untenstehende einfache Formular nutzen. Ihr Kommentar wird, zusammen mit Ihrem Benutzernamen und der Version des von Ihnen verwendeten Webbrowsers sowie Betriebssystems, auf der Seite „[$3 $2]“ hinzugefügt.",
+       "feedback-thanks": "Vielen Dank. Ihre Rückmeldung wurde auf der Seite „[$2 $1]“ gespeichert.",
+       "feedback-bugcheck": "Super! Bitte überprüfen Sie noch, ob es sich hierbei nicht um einen bereits [$1 bekannten Fehler] handelt.",
+       "api-error-badaccess-groups": "Sie haben nicht die Berechtigung Dateien in dieses Wiki hochzuladen.",
+       "api-error-hookaborted": "Die von Ihnen vorgesehene Anpassung kann nicht durchgeführt werden (Unterbrechung durch eine Programmschnittstelle).",
+       "api-error-mustbeloggedin": "Um Dateien hochladen zu können, müssen Sie angemeldet sein."
 }
index 54ba6b0..eecd71f 100644 (file)
@@ -92,7 +92,7 @@
        "tog-watchdefault": "Selbst geänderte Seiten und Dateien automatisch beobachten",
        "tog-watchmoves": "Selbst verschobene Seiten und Dateien automatisch beobachten",
        "tog-watchdeletion": "Selbst gelöschte Seiten und Dateien automatisch beobachten",
-       "tog-watchrollback": "Seiten, bei denen ich eine Zurücksetzung durchgeführt habe, der Beobachtungsliste hinzufügen.",
+       "tog-watchrollback": "Seiten, bei denen ich eine Zurücksetzung durchgeführt habe, automatisch beobachten",
        "tog-minordefault": "Eigene Änderungen standardmäßig als geringfügig markieren",
        "tog-previewontop": "Vorschau oberhalb des Bearbeitungsfensters anzeigen",
        "tog-previewonfirst": "Beim ersten Bearbeiten immer die Vorschau anzeigen",
        "tog-watchlisthidepatrolled": "Kontrollierte Änderungen in der Beobachtungsliste ausblenden",
        "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-showhiddencats": "Versteckte Kategorien anzeigen",
        "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.",
        "viewsourcetext": "Du kannst den Quelltext dieser Seite betrachten und kopieren:",
        "viewyourtext": "Du kannst den Quelltext '''deiner Bearbeitung''' dieser Seite betrachten und kopieren:",
        "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
-       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "editinginterface": "<strong>Warnung:</strong> Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.",
+       "translateinterface": "Um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern, verwende bitte [//translatewiki.net/ translatewiki.net], das MediaWiki-Lokalisierungsprojekt.",
        "cascadeprotected": "Diese Seite ist zur Bearbeitung gesperrt. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, die mittels der Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}:\n$2",
        "namespaceprotected": "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
        "customcssprotected": "Du hast nicht die Berechtigung, diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.",
        "content-model-text": "Klartext",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Seiten, die doppelte Argumente in Vorlagenaufrufen verwenden",
+       "duplicate-args-category-desc": "Die Seite enthält Vorlagenaufrufe, die Duplikate von Argumenten verwenden, wie <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> oder <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Achtung:''' Diese Seite enthält zu viele Aufrufe aufwändiger Parserfunktionen.\n\nSie darf nicht mehr als $2 {{PLURAL:$2|Aufruf|Aufrufe}} haben, es {{PLURAL:$1|ist aktuell $1 Aufruf|sind aktuell $1 Aufrufe}}.",
        "expensive-parserfunction-category": "Seiten, die aufwändige Parserfunktionen zu oft aufrufen",
        "post-expand-template-inclusion-warning": "Warnung: Die Größe eingebundener Vorlagen ist zu groß, einige Vorlagen können nicht eingebunden werden.",
        "mergehistory-same-destination": "Ausgangs- und Zielseite dürfen nicht identisch sein",
        "mergehistory-reason": "Grund:",
        "mergelog": "Vereinigungs-Logbuch",
-       "pagemerge-logentry": "vereinigte [[$1]] in [[$2]] (Versionen bis $3)",
        "revertmerge": "Vereinigung rückgängig machen",
        "mergelogpagetext": "Dies ist das Logbuch der vereinigten Versionsgeschichten.",
        "history-title": "$1: Versionsgeschichte",
        "search-result-category-size": "{{PLURAL:$1|1 Seite|$1 Seiten}} ({{PLURAL:$2|1 Unterkategorie|$2 Unterkategorien}}, {{PLURAL:$3|1 Datei|$3 Dateien}})",
        "search-redirect": "(Weiterleitung von „$1“)",
        "search-section": "(Abschnitt $1)",
+       "search-category": "(Kategorie $1)",
        "search-file-match": "(treffende Dateiinhalte)",
        "search-suggest": "Meintest du „$1“?",
        "search-interwiki-caption": "Schwesterprojekte",
        "gender-female": "Ich bin weiblich",
        "prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um dich anzureden sowie als Hinweis für andere durch Verwendung des zutreffenden grammatikalischen Geschlechts.\nDiese Information ist öffentlich.",
        "email": "E-Mail",
-       "prefs-help-realname": "Dies ist eine freiwillige Angabe. Damit kann dein bürgerlicher Name deinen Beiträgen zugeordnet werden.",
+       "prefs-help-realname": "Der bürgerliche Name ist optional.\nFalls angegeben, kann er verwendet werden, um dir eine Zuordnung für deine Beiträge zu geben.",
        "prefs-help-email": "Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern du dein Passwort vergessen hast.",
        "prefs-help-email-others": "Mit anderen Benutzern kannst du auch über die Benutzerdiskussionsseiten Kontakt aufnehmen, ohne dass du deine Identität offenlegen musst.",
        "prefs-help-email-required": "Es wird eine gültige E-Mail-Adresse benötigt.",
        "statistics": "Statistik",
        "statistics-header-pages": "Seitenstatistik",
        "statistics-header-edits": "Bearbeitungsstatistik",
-       "statistics-header-views": "Seitenaufrufstatistik",
        "statistics-header-users": "Benutzerstatistik",
        "statistics-header-hooks": "Andere Statistiken",
        "statistics-articles": "Inhaltsseiten",
        "statistics-files": "Hochgeladene Dateien",
        "statistics-edits": "Seitenbearbeitungen",
        "statistics-edits-average": "Bearbeitungen pro Seite im Durchschnitt",
-       "statistics-views-total": "Seitenaufrufe gesamt",
-       "statistics-views-total-desc": "Aufrufe nicht vorhandener Seiten und von Spezialseiten werden nicht berücksichtigt.",
-       "statistics-views-peredit": "Seitenaufrufe pro Bearbeitung",
        "statistics-users": "Registrierte [[Special:ListUsers|Benutzer]]",
        "statistics-users-active": "Aktive Benutzer",
        "statistics-users-active-desc": "Benutzer mit Bearbeitungen {{PLURAL:$1|während der letzten 24 Stunden|während der vergangenen $1 Tage}}",
-       "statistics-mostpopular": "Meistbesuchte Seiten",
        "pageswithprop": "Seiten mit einer Seiteneigenschaft",
        "pageswithprop-legend": "Seiten mit einer Seiteneigenschaft",
        "pageswithprop-text": "Diese Spezialseite listet Seiten auf, die eine bestimmte Seiteneigenschaft verwenden.",
        "uncategorizedtemplates": "Nicht kategorisierte Vorlagen",
        "unusedcategories": "Verwaiste Kategorien",
        "unusedimages": "Verwaiste Dateien",
-       "popularpages": "Beliebteste Seiten",
        "wantedcategories": "Gewünschte Kategorien",
        "wantedpages": "Gewünschte Seiten",
        "wantedpages-badtitle": "Ungültiger Titel im Ergebnis: $1",
        "pager-older-n": "{{PLURAL:$1|vorheriger|vorherige $1}}",
        "suppress": "Oversight",
        "querypage-disabled": "Diese Spezialseite wurde aus Gründen der Leistungserhaltung deaktiviert.",
+       "apihelp": "API-Hilfe",
+       "apihelp-no-such-module": "Modul „$1“ nicht gefunden.",
        "booksources": "ISBN-Suche",
        "booksources-search-legend": "Suche nach Bezugsquellen für Bücher",
        "booksources-search": "Suchen",
        "tooltip-pt-mycontris": "Liste eigener Beiträge",
        "tooltip-pt-login": "Sich anzumelden wird zwar gerne gesehen, ist aber keine Pflicht.",
        "tooltip-pt-logout": "Abmelden",
+       "tooltip-pt-createaccount": "Du wirst ermuntert, ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht verpflichtend.",
        "tooltip-ca-talk": "Diskussion zum Seiteninhalt",
        "tooltip-ca-edit": "Seite bearbeiten. Bitte vor dem Speichern die Vorschaufunktion benutzen.",
        "tooltip-ca-addsection": "Neuen Abschnitt beginnen",
        "tooltip-feed-atom": "Atom-Feed dieser Seite",
        "tooltip-t-contributions": "Liste der Beiträge von diesem Benutzer ansehen",
        "tooltip-t-emailuser": "Eine E-Mail an diesen Benutzer senden",
+       "tooltip-t-info": "Weitere Informationen über diese Seite",
        "tooltip-t-upload": "Dateien hochladen",
        "tooltip-t-specialpages": "Liste aller Spezialseiten",
        "tooltip-t-print": "Druckansicht dieser Seite",
        "others": "anderen",
        "siteusers": "{{SITENAME}}-{{PLURAL:$2|Benutzer}} $1",
        "anonusers": "{{PLURAL:$2|unangemeldetem|unangemeldeten}} {{SITENAME}}-{{PLURAL:$2|Benutzer|Benutzern}} $1",
-       "creditspage": "Seiteninformationen",
-       "nocredits": "Für diese Seite sind keine Informationen vorhanden.",
+       "creditspage": "Seitenzuschreibung",
+       "nocredits": "Für diese Seite sind keine Zuschreibungen vorhanden.",
        "spamprotectiontitle": "Spamschutzfilter",
        "spamprotectiontext": "Der Text, die du speichern willst, wurde vom Spamschutzfilter blockiert.\nDas liegt wahrscheinlich an einem Link auf eine externe Seite.",
        "spamprotectionmatch": "'''Der folgende Text wurde vom Spamfilter gefunden: ''$1'''''",
        "pageinfo-robot-policy": "Indizierung durch Suchmaschinen",
        "pageinfo-robot-index": "Erlaubt",
        "pageinfo-robot-noindex": "Nicht erlaubt",
-       "pageinfo-views": "Anzahl der Seitenaufrufe",
        "pageinfo-watchers": "Anzahl der Beobachter der Seite",
        "pageinfo-few-watchers": "Weniger als {{PLURAL:$1|ein|$1}} Beobachter",
        "pageinfo-redirects-name": "Anzahl der Weiterleitungen zu dieser Seite",
        "unknown_extension_tag": "Unbekanntes Parsertag „$1“",
        "duplicate-defaultsort": "Achtung: Der Sortierungsschlüssel „$2“ überschreibt den vorher verwendeten Schlüssel „$1“.",
        "duplicate-displaytitle": "<strong>Warnung:</strong> Der Anzeigetitel „$2“ überschreibt den früheren Anzeigetitel „$1“.",
+       "invalid-indicator-name": "<strong>Fehler:</strong> Das Attribut <code>name</code> des Seitenstatusindikators darf nicht leer sein.",
        "version": "Version",
        "version-extensions": "Installierte Erweiterungen",
        "version-skins": "Installierte Benutzeroberflächen",
        "revdelete-uname-unhid": "Benutzername freigegeben",
        "revdelete-restricted": "Einschränkungen gelten auch für Administratoren",
        "revdelete-unrestricted": "Einschränkungen für Administratoren aufgehoben",
+       "logentry-merge-merge": "$1 {{GENDER:$2|vereinigte}} $3 in die Seite „$4“ (Versionen bis zum $5)",
        "logentry-move-move": "$1 {{GENDER:$2|verschob}} die Seite $3 nach $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|verschob}} die Seite $3 nach $4, ohne dabei eine Weiterleitung anzulegen",
        "logentry-move-move_redir": "$1 {{GENDER:$2|verschob}} die Seite $3 nach $4 und überschrieb dabei eine Weiterleitung",
        "api-error-stashfailed": "Interner Fehler: Der Server konnte keine temporäre Datei speichern.",
        "api-error-publishfailed": "Interner Fehler: Der Server konnte die temporäre Datei nicht veröffentlichen.",
        "api-error-stasherror": "Beim Hochladen der Datei gab es einen Fehler.",
+       "api-error-stashedfilenotfound": "Die vorab gespeicherte Datei wurde beim Versuch, sie vom Speicher hochzuladen, nicht gefunden.",
+       "api-error-stashpathinvalid": "Der Pfad, unter dem die gespeicherte Datei gefunden werden sollte, war ungültig.",
+       "api-error-stashfilestorage": "Beim Speichern der Datei in den Speicher gab es einen Fehler.",
+       "api-error-stashzerolength": "Der Server konnte die Datei nicht speichern, da sie eine Länge von Null hat.",
+       "api-error-stashnotloggedin": "Du musst angemeldet sein, um Dateien in den Hochladespeicher zu speichern.",
+       "api-error-stashwrongowner": "Die Datei, auf die du im Speicher zugreifen möchtest, gehört nicht dir.",
+       "api-error-stashnosuchfilekey": "Der Dateischlüssel, auf den du im Speicher zugreifen möchtest, ist nicht vorhanden.",
        "api-error-timeout": "Der Server hat nicht innerhalb der erwarteten Zeit reagiert.",
        "api-error-unclassified": "Ein unbekannter Fehler ist aufgetreten.",
        "api-error-unknown-code": "Unbekannter Fehler: „$1“",
index 250d9fb..95472a5 100644 (file)
        "unprotectthispage": "Starkerdışe ena peler bıvurne",
        "newpage": "Pela newiye",
        "talkpage": "Ena pele sero werêne",
-       "talkpagelinktext": "Vatenayış",
+       "talkpagelinktext": "Werênayış",
        "specialpage": "Pela xısusiye",
        "personaltools": "Hacetê şexsiy",
        "articlepage": "Pela zerreki bıvêne",
        "mergehistory-reason": "Sebeb:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "Qeydé zew kerdışi",
-       "pagemerge-logentry": "[[$1]] u [[$2]] yew kerd (revizyonî heta $3)",
        "revertmerge": "Abırnê",
        "mergelogpagetext": "Cêr de yew liste esta ke mocnena ra, raya tewr peyêne kamci pela tarixi be a bine ra şanawa pê.",
        "history-title": "Tarixê çımraviyarnayışê \"$1\"",
        "action-deleterevision": "nê çımraviyarnayışi bestere",
        "action-deletedhistory": "tarixê ena pel ki estereyî biya, ey bivine",
        "action-browsearchive": "pelanê esterıteyan bıgeyre",
-       "action-undelete": "ena pele reyna biyere",
+       "action-undelete": "ena pele meestere",
        "action-suppressrevision": "revizyone ki nimnaye biye reyna bivîne u restore bike",
        "action-suppressionlog": "enê qeydê xısusi bıvêne",
        "action-block": "enê karberi vurnayışi ra bıreyne",
        "statistics": "İstatistiki",
        "statistics-header-pages": "İstatistikê pele",
        "statistics-header-edits": "Îstatistikê vurnayîşî",
-       "statistics-header-views": "Îstatistiksê vînayîşî",
        "statistics-header-users": "Îstatistiksê karberî",
        "statistics-header-hooks": "Îstatistiksê binî",
        "statistics-articles": "Pelanê tedesteyî",
        "statistics-files": "Dosyayê bar biye",
        "statistics-edits": "{{SITENAME}} saz kerdış ra hetana newke amora vırnayışan",
        "statistics-edits-average": "Her pele sero nısbi vurnayış",
-       "statistics-views-total": "Yekunî bivîne",
-       "statistics-views-total-desc": "Peleyê ke çınyê yana xısusiyê e nina zerre nêkerdê",
-       "statistics-views-peredit": "Ser her vurnayîşî de vînayîşî",
        "statistics-users": "Qeyd biye [[Special:ListUsers|karberî]]",
        "statistics-users-active": "Karberê aktifi",
        "statistics-users-active-desc": "{{PLURAL:$1|roco peyin de|$1 roco peyin de}} karber ê ke kar kerdê.",
-       "statistics-mostpopular": "Pelayanê ke tewr zafî vînî biye",
        "pageswithprop": "Peli be yew xısusiyetê pele",
        "pageswithprop-legend": "Peli be yew xısusiyetê pele",
        "pageswithprop-text": "Na per pimanen pera kena liste.",
        "uncategorizedtemplates": "Şablonê ke bêkategoriyê",
        "unusedcategories": "Kategoriyê ke nêgureniyê",
        "unusedimages": "Dosyeyê ke nê xebtênê",
-       "popularpages": "Pelî ke populer o.",
        "wantedcategories": "Kategoriyê ke waziyayê",
        "wantedpages": "Peleye ke waştênê",
        "wantedpages-badtitle": "sernuşte meqbul niyo: $1",
        "categoriesfrom": "Kategoriyê ke be ninan dest pêkenê, bımocne:",
        "special-categories-sort-count": "goreyê çendi rêz ker.",
        "special-categories-sort-abc": "alfabetik rêz ker",
-       "deletedcontributions": "İştiraqê karberan de besternayına",
-       "deletedcontributions-title": "Îştirakê karberî wederna",
+       "deletedcontributions": "İştırakê karberi esterdi",
+       "deletedcontributions-title": "İştırakê karberi esterdi",
        "sp-deletedcontributions-contribs": "iştıraqi",
        "linksearch": "Gıreyê teberi cı geyrê",
        "linksearch-pat": "bıgêr motif:",
        "sp-contributions-newbies-sub": "Qe hesebê newe",
        "sp-contributions-newbies-title": "Îştîrakê karberî ser hesabê neweyî",
        "sp-contributions-blocklog": "Qeydê blokey",
-       "sp-contributions-deleted": "İştırakê karberi esterd",
+       "sp-contributions-deleted": "iştırakê karberi esterdi",
        "sp-contributions-uploads": "barkerdey",
        "sp-contributions-logs": "qeydi",
        "sp-contributions-talk": "werênayış",
        "pageinfo-robot-policy": "Weziyetê motor de cıgeyrayışi",
        "pageinfo-robot-index": "İndeksbiyayen",
        "pageinfo-robot-noindex": "İndeksnêbiyayen",
-       "pageinfo-views": "Amarina mocnayışan",
        "pageinfo-watchers": "Amariya pela serykeran",
        "pageinfo-few-watchers": "$1 ra tayê {{PLURAL:$1|seyrker|seyrkeri}}",
        "pageinfo-redirects-name": "Hetenayışê na perer",
        "hours": "{{PLURAL:$1|$1 saete|$1 saetan}}",
        "days": "{{PLURAL:$1|$1 roce|$1 roci}}",
        "weeks": "{{PLURAL:$1|$1 hefte|$1 heftey}}",
-       "months": "{{PLURAL:$1|aşme|$1 aşman}}",
+       "months": "{{PLURAL:$1|aşme|$1 aşmi}}",
        "years": "{{PLURAL:$1|$1 serre|$1 serri}}",
        "ago": "Verê $1",
        "just-now": "tafte nıka",
index 69db69d..e079cf5 100644 (file)
        "mergehistory-same-destination": "Žrědłowy bok a celowy bok njesmějotej identiskej byś",
        "mergehistory-reason": "Pśicyna:",
        "mergelog": "Protokol zjadnośenja",
-       "pagemerge-logentry": "zjadnośi [[$1]] do [[$2]] (Wersije až do $3)",
        "revertmerge": "Zjadnośenje anulěrowaś",
        "mergelogpagetext": "Dołojce jo lisćina nejnowejšych zjadnośenjow historije boka z drugej.",
        "history-title": "$1: Wersijowe stawizny",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistika bokow",
        "statistics-header-edits": "Statistika změnow",
-       "statistics-header-views": "Statistiku zwobrazniś",
        "statistics-header-users": "Statistika wužywarjow",
        "statistics-header-hooks": "Druga statistika",
        "statistics-articles": "Wopśimjeśowe boki",
        "statistics-files": "Nagrate dataje",
        "statistics-edits": "Změny bokow wót załoženja {{SITENAME}}",
        "statistics-edits-average": "Změny na bok w pśerězku",
-       "statistics-views-total": "Zwobraznjenja dogromady",
-       "statistics-views-total-desc": "Woglědanja na njeeksistěrujucych bokach a specialnych bokach njejsu zapśimjone",
-       "statistics-views-peredit": "Zwobraznjenja na změnu",
        "statistics-users": "Zregistrěrowane [[Special:ListUsers|wužywarje]]",
        "statistics-users-active": "Aktiwne wužywarje",
        "statistics-users-active-desc": "Wužywarje, kótarež su {{PLURAL:$1|cora|w slědnyma $1 dnjoma|w slědnych $1 dnjach|w slědnych $1 dnjach}} aktiwne byli",
-       "statistics-mostpopular": "Nejwěcej woglědane boki",
        "pageswithprop": "Boki z kakosću boka",
        "pageswithprop-legend": "Boki z kakosću boka",
        "pageswithprop-text": "Toś ten bok nalicyjo boki, kótarež wužywaju wěstu kakosć boka.",
        "uncategorizedtemplates": "Njekategorizěrowane pśedłogi",
        "unusedcategories": "Njewužywane kategorije",
        "unusedimages": "Njewužywane dataje",
-       "popularpages": "Woblubowane boki",
        "wantedcategories": "Póžedane kategorije",
        "wantedpages": "Póžedane boki",
        "wantedpages-badtitle": "Njepłaśiwy titel we wuslědku: $1",
        "pageinfo-robot-policy": "Indicěrowanje pśez roboty",
        "pageinfo-robot-index": "Dowólony",
        "pageinfo-robot-noindex": "Zakazany",
-       "pageinfo-views": "Licba zwobraznjenjow",
        "pageinfo-watchers": "Licba  wobglědowarjow boka",
        "pageinfo-few-watchers": "Mjenjej ako $1 {{PLURAL:$1|wobglědowaŕ|wobglědowarja|wobglědowarje|wobglědowarjow}}",
        "pageinfo-redirects-name": "Licba dalejpósrědnjenjow k toś tomu bokoju",
index d0bd90b..de7ba43 100644 (file)
        "mergehistory-same-destination": "Wowonod om korikoton do bolikon awu milo do miagal",
        "mergehistory-reason": "Sabab:",
        "mergelog": "Log pinisompuru",
-       "pagemerge-logentry": "pisompuruo [[$1]] sumuang id [[$2]] (sinimakan gisom do $3)",
        "revertmerge": "Kada piisoo",
        "mergelogpagetext": "Id siriba diti nopo nga lis kawawagu do pinisompuruan susuyan tiso-iso bolikon kumaa doid bolikon do suai.",
        "history-title": "Susuyan sinimakan do \"$1\"",
index 703f898..6620701 100644 (file)
        "passwordreset-legend": "ސިއްރުބަސް އައު ކުރައްވާ",
        "passwordreset-email": "އީމެއިލް އެޑްރެސް:",
        "changeemail": "އީމެއިލް އެޑްރެސް ބަދަލުކުރައްވާ",
-       "changeemail-header": "އެކައުންޓްގެ އީމެއިލް އެޑްރެސް ބަދަލުކުރައްވާ",
        "changeemail-oldemail": "މިހާރު ބޭނުންކުރާ އީމެއިލް އެޑްރެސް:",
        "changeemail-newemail": "އައު އީމެއިލް އެޑްރެސް:",
        "changeemail-password": "ތިޔަބޭފުޅާގެ {{SITENAME}} ސިއްރުބަސް:",
        "changeemail-submit": "އީމެއިލް ބަދަލުކުރައްވާ",
-       "changeemail-cancel": "މަންސޫޚް",
        "bold_sample": "ބޯ އިބާރާތް",
        "bold_tip": "ބޯ އިބާރާތް",
        "italic_sample": "ކަތި އިބާރާތް",
        "statistics": "ތަފާސްހިސާބުތައް",
        "statistics-header-pages": "ޞަފްޙާގެ ތަފާސްހިސާބު",
        "statistics-header-edits": "އުނިއިތުރުތަކުގެ ތަފާސްހިސާބު",
-       "statistics-header-views": "ތަފާސްހިސާބު ބައްލަވާ",
        "statistics-header-users": "މެންބަރުގެ ތަފާސްހިސާބު",
        "statistics-header-hooks": "އެހެނިހެން ތަފާސްހިސާބު",
        "statistics-articles": "މަޒުމޫނުތައް",
        "statistics-users": "ރަޖިސްޓަރކުރެވިފައިވާ [[Special:ListUsers|މެމްބަރުން]]",
        "statistics-users-active": "ހަރަކާތްތެރި މެމްބަރުން",
        "statistics-users-active-desc": "ފާއިތުވެދިޔަ {{PLURAL:$1|ދުވަސް|$1 ދުވަސްތައް}} ތެރޭގައި ކޮންމެވެސް ކަމެއް ކޮށްފައިވާ މެމްބަރުން",
-       "statistics-mostpopular": "އެންމެ މަޤްބޫލް ޞަފްޙާތައް",
        "brokenredirects": "އޮޅިފައިވާ މިސްރާބުތައް",
        "nbytes": "$1 {{PLURAL:$1|ބައިޓް|ބައިޓްތައް}}",
        "unusedcategories": "ބޭނުންނުކުރެވޭ ގިސްމުތައް",
        "unusedimages": "ބޭނުންނުކުރެވޭ ފައިލުތައް",
-       "popularpages": "މަޤްބޫލު ޞަފްޙާތައް",
        "wantedcategories": "ބޭނުންފުޅުވާ ގިސްމުތައް",
        "wantedpages": "ބޭނުންފުޅުވާ ޞަފްޙާތައް",
        "shortpages": "ކުރު ޞަފްޙާތައް",
        "move": "ނަން/ތަން ބަދަލުކުރައްވާ",
        "movethispage": "މި ޞަފްހާގެ ނަންބަދަލުކުރައްވާ",
        "booksources": "ފޮތްތަކުގެ މަސްދަރުތައް",
-       "booksources-go": "ދުރުވޭ",
        "allpages": "ހުރިހާ ޞަފްޙާތައް",
        "nextpage": "ކުރިއަށް ($1)",
        "prevpage": "ފަހަތަށް ($1)",
        "exif-iimcategory-pol": "ސިޔާސަތު",
        "exif-iimcategory-sci": "ސައިންސާއި ޓެކްނޮލޮޖީ",
        "exif-iimcategory-spo": "ކުޅިވަރު",
-       "watchlistall2": "ހުރިހާ",
        "namespacesall": "ހުރިހާ",
        "confirmemail": "އީމޭލު އެޑްރެސް ޔަގީންކުރައްވާ",
        "confirm_purge_button": "ރަނގަޅު",
index 988dc2c..0c81529 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "CFynn",
                        "Tenzin",
-                       "Ævar Arnfjörð Bjarmason <avarab@gmail.com>"
+                       "Ævar Arnfjörð Bjarmason <avarab@gmail.com>",
+                       "아라"
                ]
        },
        "sunday": "འབྲུག་གཟའ་ཟླཝ་",
        "remembermypassword": "གློག་རིག་དེ་གུར་ ངེ་གི་ནང་བསྐྱོད་སེམས་ཁར་བཞག (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "login": "ནང་བསྐྱོད།",
        "nav-login-createaccount": "ནང་བསྐྱོད་འབད་ / རྩིས་ཐོ་གསརཔ་བཟོ།",
-       "loginprompt": "{{SITENAME}} ནང་ལུ་ ནང་བསྐྱོད་འབད་ནིའི་དོན་ལུ་ ཁྱོད་ཀྱིས་ ཀུ་ཀིསི་འདི་ལྕོགས་ཅན་བཟོ་དགོ།",
        "userlogin": "ནང་བསྐྱོད་འབད་ / རྩིས་ཐོ་གསརཔ་བཟོ།",
        "logout": "ཕྱིར་བསྐྱོད།",
        "userlogout": "ཕྱིར་བསྐྱོད།",
        "recentchanges": "འཕྲལ་གྱི་བསྒྱུར་བཅོས",
        "recentchanges-feed-description": "འབྱུང་སའི་ནང་ ཝི་ཀི་ལུ་འཕྲལ་གྱི་བསྒྱུར་བཅོས་འབད་མི་འདི་ རྗེས་འཚོལ་འབད།",
        "rcnotefrom": "འོག་གི་ཚུ་ '''$2''' (up to '''$1''' shown) ལས་ཚུར་གྱི་བསྒྱུར་བཅོས་ཨིན།",
-       "rclistfrom": "$1 ལས་ འགོ་བཟུང་སྟེ་ བསྒྱུར་བཅོས་གསརཔ་ཚུ་སྟོན་",
+       "rclistfrom": "$3 $2 ལས་ འགོ་བཟུང་སྟེ་ བསྒྱུར་བཅོས་གསརཔ་ཚུ་སྟོན་",
        "rcshowhideminor": "$1 གལ་གནད་ཆུང་བའི་ཞུན་དག།",
        "rcshowhidebots": "$1 བོཊིསི།",
        "rcshowhideliu": "$1 ནང་བསྐྱོད་འབད་ཡོད་པའི་ལག་ལེན་པ་ཚུ་",
        "upload": "ཡིག་སྣོད་སྐྱེལ་བཙུགས་འབད།",
        "uploadbtn": "ཡིག་སྣོད་སྐྱེལ་བཙུགས་འབད།",
        "uploadlogpage": "ལོག་སྐྱེལ་བཙུགས་འབད།",
-       "uploadedimage": "\"[[$1]]\" སྐྱེལ་བཙུགས་འབད་ཡོདཔ།",
        "listfiles": "ཡིག་སྣོད་ཐོ་ཡིག།",
        "file-anchor-link": "ཡིག་སྣོད།",
        "filehist": "ཡིག་སྣོད་སྤྱོད་ཤུལ།",
        "log": "ལོགསི།",
        "all-logs-page": "ལོག་སི་ཆ་མཉམ།",
        "allpages": "ཤོག་ལེབ་ག་ར།",
-       "alphaindexline": "$1 ལས་ $2",
        "nextpage": "ཤུལ་མའི་ཤོག་ལེབ་ ($1)",
        "prevpage": "ཧེ་མའི་ཤོག་ལེབ་ ($1)",
        "allpagesfrom": "ཤོག་ལེབ་བཀྲམ་སྟོན་འགོ་བཙུགས་:",
        "watchthispage": "ཤོག་ལེབ་འདི་ལྟ།",
        "unwatch": "བལྟ་བཤོལ།",
        "watchlist-details": "{{PLURAL:$1|$1 ཤོག་ལེབ་|$1 ཤོག་ལེབ་ཚུ་}} ཁག་ཆེ་བའི་བློ་ཤོག་ བལྟ་ཞིབ་མ་འབད་བས།",
-       "wlshowlast": "མཇུག་གི་ ཆུ་ཚོད་ $1 ཉིནམ་ $2  $3 སྟོན་",
+       "wlshowlast": "མཇུག་གི་ ཆུ་ཚོད་ $1 ཉིནམ་ $2   སྟོན་",
        "watching": "བལྟ་ཞིབ་འབད་དོ་་་",
        "unwatching": "བལྟ་ཞིབ་འབད་བཤོལ་དོ་་་",
        "deletepage": "ཤོག་ལེབ་བཏོན་གཏང་།",
        "metadata-expand": "རྒྱ་བསྐྱེད་ཅན་གྱི་རྒྱས་བཤད་སྟོན།",
        "metadata-collapse": "རྒྱ་བསྐྱེད་ཅན་གྱི་རྒྱས་བཤད་ཚུ་སྦ།",
        "metadata-fields": "མེ་ཊ་གནས་སྡུད་ཐིག་ཁྲམ་ ཧྲམ་པའི་སྐབས་ལུ་ འཕྲིན་དོན་འདི་ནང་ ཐོ་བཀོད་འབད་་ཡོད་པའི་ ཨི་ཨེགསི་ཨའི་ཨེཕ་ མེ་ཊ༌གནས་སྡུད་འདི་ གཟུགས་བརྙན་ཤོག་ལེབ་བཀྲམ་སྟོན་གུ་ གྲངས་སུ་བཙུགས་འོང་།\nགཞན་ཚུ་ སྔོན་སྒྲིག་གི་ཐོག་ལས་སྦ་འོང་།\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "ཆ་མཉམ།",
        "namespacesall": "ཆ་མཉམ།",
        "monthsall": "ཆ་མཉམ།",
        "watchlisttools-view": "འབྲེལ་བ་ཡོད་པའི་བསྒྱུར་བཅོས་ཚུ་སྟོན།",
index f0f9b71..6a9db68 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Cbrown1023",
-                       "Natsubee"
+                       "Natsubee",
+                       "아라"
                ]
        },
        "tog-hideminor": "Ɣla tɔtrɔ suewo le tɔtrɔ yeyeawo me",
        "qbedit": "Trɔ asi le eŋu",
        "qbpageoptions": "Axa sia",
        "qbmyoptions": "Nyeƒe axawo",
-       "vector-action-delete": "Tutui",
-       "vector-action-move": "Ɖɔli eƒe nɔƒe",
-       "vector-view-create": "Dze egɔme",
-       "vector-view-edit": "Trɔ asi le eŋu",
-       "vector-view-history": "Kpɔ xoxoawo",
-       "vector-view-view": "Xlẽ",
-       "vector-view-viewsource": "Kpɔ alesi woŋlɔe",
        "errorpagetitle": "Vodada",
        "returnto": "Gbugbɔ yi $1.",
        "tagline": "Tso {{SITENAME}}",
        "talkpagelinktext": "Nyamedzroƒe",
        "specialpage": "Axa Tɔxe",
        "personaltools": "Wòƒe dɔwɔnuwo",
-       "postcomment": "Akpa yeye",
        "talk": "Nyamedzroƒe",
        "toolbox": "Dɔwɔnuɖaka",
        "otherlanguages": "Le gbe bubuwo me",
        "searchmenu-new": "'''Dze axa \"[[:$1]]\" sia ŋlɔm ɖe wiki la dzi!'''",
        "searchprofile-everything": "Nuɖesiaɖe",
        "searchprofile-articles-tooltip": "Dii le $1",
-       "searchprofile-project-tooltip": "Dii le $1",
        "search-result-size": "$1 ({{PLURAL:$2|nya 1|nya $2}})",
        "search-suggest": "Ɖe wò be: $1",
        "search-interwiki-more": "(kɔ kpe ɖe eŋu)",
        "recentchanges": "Tɔtrɔ yeyewo",
        "recentchanges-legend": "Tatiawo na tɔtrɔ yeyewo",
        "rcnotefrom": "Tɔtrɔwo siwo wowɔ tso '''$2''' (wofia vaseɖe '''$1''') le afii.",
-       "rclistfrom": "Fia tɔtrɔ yeyewo tso $1",
+       "rclistfrom": "Fia tɔtrɔ yeyewo tso $3 $2",
        "rcshowhideminor": "$1 tɔtrɔ suewo",
        "rcshowhidebots": "$1 bɔtwo",
        "rcshowhideliu": "$1 ezãla siwo ŋlɔ ŋkɔ",
        "pager-older-n": "{{PLURAL:$1|1 xoxoa|$1 xoxoawo}}",
        "booksources": "Agbalɛ̃wo ƒe tsoƒe",
        "booksources-search-legend": "Di agbalẽwo ƒe tsoƒewo",
-       "booksources-go": "Yi",
        "specialloguserlabel": "Ezãla:",
        "speciallogtitlelabel": "Ta nya:",
        "allpages": "Axawo katã",
-       "alphaindexline": "$1 vaseɖe $2",
        "nextpage": "Axa yometɔ ($1)",
        "prevpage": "Axa do ŋgɔ ($1)",
        "allpagesfrom": "Fia axawo tso:",
        "listgrouprights-group": "Hame",
        "watch": "Le ŋku ɖe eŋu",
        "watchthispage": "Le ŋku ɖe axa sia ŋu",
-       "wlshowlast": "Fia gaƒoƒo $1 ŋkeke $2 mamleawo. $3",
+       "wlnote": "Afisia wofia {{PLURAL:$1|tɔtrɔ '''1''' mamlea|tɔtrɔ '''$1''' mamleawo}} le {{PLURAL:$2|gaƒoƒo mamlea si|gaƒoƒo '''$2''' mamleawo siwo}} vayi la me.",
+       "wlshowlast": "Fia gaƒoƒo $1 ŋkeke $2 mamleawo.",
        "deletepage": "Tutu axa sia",
        "delete-confirm": "Tutu \"$1\"",
        "delete-legend": "Tutui",
        "nextdiff": "Tɔtrɔ yeyea →",
        "newimages": "Nutata yeyewo",
        "ilsubmit": "Dii",
-       "watchlistall2": "katã",
        "namespacesall": "wokatã",
        "monthsall": "wokatã",
        "imgmultipagenext": "axa yometɔ",
index ffec586..057709c 100644 (file)
@@ -23,7 +23,7 @@
        "tog-watchmoves": "Zûnta al pàgini e i file spustê int i tgnû 'd ôc specêl.",
        "tog-watchdeletion": "Zûnta al pàgini e i file scanşlê int i tgnû 'd ôc specêl.",
        "tog-watchrollback": "Zûta al pàgini in dóv' ó fât al ritōren a la pàgina 'd préma a i tgnû 'd ôc specêl",
-       "tog-minordefault": "Sògna ògni mudéfica cme céca (sōl cme pre-stabilî)",
+       "tog-minordefault": "Sègna ògni mudéfica cme céca (sōl cme pre-stabilî)",
        "tog-previewontop": "Fà vèder còl ch' ò fât sōver la caşèla ed mudéfica e mìa sòta.",
        "tog-previewonfirst": "Fà vèder còl ch' ò fât almēno 'na vôlta préma 'd salvêr",
        "tog-enotifwatchlistpages": "Mândon un avîş cun la pôsta eletrônica quând a vîn cambiê 'na pàgina o un file preşèint int i tgnû 'd ôc specêl",
        "tog-watchlisthideanons": "Lōga al mudéfichi 'd j utèint sèinsa nòm int i tgnû 'd ôc specêl",
        "tog-watchlisthidepatrolled": "Lōga al mudéfichi verifichêdi int i tgnû 'd ôc specêl",
        "tog-ccmeonemails": "Mândom 'na côpia di mesâg spidî a chiêter utèint",
-       "tog-diffonly": "An fê mia vèder còl che gh'é dèinter int la pàgina dôp al cunfrûnt tr'al versiòun",
+       "tog-diffonly": "An fêr mia vèder còl che gh'é dèinter int la pàgina dôp al cunfrûnt tr'al versiòun",
        "tog-showhiddencats": "Fà vèder al categoréi lughêdi",
-       "tog-norollbackdiff": "An fê mia vèder al cunfrûnt tr' al versiòun dôp avèir fât un \"rollback\"",
+       "tog-norollbackdiff": "An fêr mia vèder al cunfrûnt tr' al versiòun dôp avèir fât un \"rollback\"",
        "tog-useeditwarning": "Avîşom quând a vâgh fōra da 'na pàgina d' mudéfica e an n'ò mìa salvê al mudéfichi fâti",
-       "tog-prefershttps": "Drōva sèimper un colegamèint sicûr quând ét fê l'ingès",
+       "tog-prefershttps": "Drōva sèimper un colegamèint sicûr quând ét fê l'ingrès",
        "underline-always": "Sèimper",
        "underline-never": "Mài",
        "underline-default": "Mantî al j impustasiòun dal navigadōr o 'd la skin",
        "toolbox": "Strumèint",
        "userpage": "Guêrda la pàgina utèint",
        "projectpage": "Guêrda la pàgina dal prugèt",
-       "imagepage": "Guêrda la pàgina dal 'file'",
+       "imagepage": "Guêrda la pàgina dal file",
        "mediawikipage": "Guêrda al mesâg",
        "templatepage": "Guêrda 'l mudèl",
        "viewhelppage": "Guêrda la pàgina 'd ajót",
        "viewsourcelink": "guêrda la surzéia",
        "editsectionhint": "Mudéfica la sesiòn: $1",
        "toc": "Argumèint",
-       "showtoc": "Fà vèder",
+       "showtoc": "fà vèder",
        "hidetoc": "Lōga",
        "collapsible-collapse": "Stréca",
        "collapsible-expand": "Şlêrga",
        "nstab-media": "File multimediêl",
        "nstab-special": "Pàgina specêla",
        "nstab-project": "Pàgina 'd servési",
-       "nstab-image": "'File'",
+       "nstab-image": "File",
        "nstab-mediawiki": "Mesâg",
        "nstab-template": "Mudèl",
        "nstab-help": "Pàgina 'd ajót",
        "no-null-revision": "An pōl èser fât 'na versiòun mìa vâlida per la pàgina \"$1\"",
        "badtitle": "Tétol mìa curèt.",
        "badtitletext": "Al tétol ed la pàgina serchêda l'é vōd, şbaliê opór al deşvîn da 'n erōr int i colegamèint di côdis o int i colegamèint druvê in wiki. In pió al pré avèir ûn o pió carâter ch'an pōlen mìa èser druvê int i tétol.",
-       "perfcached": "Al j infurmasiòun ché sòta vînen registrêdi int la \"cache\" dal databêş e an pōlen mìa èser arnuvê. Int la \"cache\" a gh'é  un mâsim ed {{PLURAL:$1|un rişultêt |$1 rişultêt}} ch' es pōl/en druvêr.",
-       "perfcachedts": "Al j infurmasiòun ché sòta vînen registrêdi int la \"cache\" dal databêş e l'ûltma vôlta l' è stê arnuvê al  $ 1. Int la \"cache\" a gh'é  un mâsim ed {{PLURAL:$4|un rişultêt |$4 rişultêt}} ch' es pōl/en druvêr.",
+       "perfcached": "Al j infurmasiòun ché sòta vînen registrêdi int la \"cache\" dal databêş e an pōlen mìa èser arnuvê. Int la \"cache\" a gh'é  un mâsim ed {{PLURAL:$1|un rişultêt |$1 rişultêt}} ch' es pōlen druvêr.",
+       "perfcachedts": "Al j infurmasiòun ché sòta vînen registrêdi int la cache dal databêş e l'ûltma vôlta l' è stê arnuvê al  $1. Int la cache a gh'é  un mâsim ed {{PLURAL:$4|un rişultêt |$4 rişultêt}} ch' es pōlen druvêr.",
        "querypage-no-updates": "J arnuvamèint ed la pàgina în p'r al mumèint fērom. Al j infurmasiòun dèinter a la pàgina a gnirân mia arnuvêdi.",
        "viewsource": "Guêrda la surzéia",
        "viewsource-title": "Guêrda la surzéia 'd $1",
        "viewsourcetext": "L'é pusébil vèder e cupiêr al côdis surzéia ed cla pàgina ché.",
        "viewyourtext": "L'é pusébil vèder e cupiêr al côdis surzéia dal \"tō mudéfichi\" ed cla pàgina ché:",
        "protectedinterface": "Cla pàgina ché la gh'à 'n elemèint ch' al fa pêrt dal colegamèint tra utèint e al progrâma 'd cól sît ché e l'é prutèta per schivşêr pusébil abûş. Per zuntêr o mudufichêr tradusiòun per tót i sistēma wiki druvêr [//translatewiki.net/ translatewiki.net], al prugèt 'd adatamèint a ògni léngva 'd MediaWiki.",
-       "editinginterface": "'''Atèinti:''' Al tèst ed cla pàgina ché 'l fa pêrt dal colegamèint tra utèint e 'l progrâma dal sît.  Tót' al modéfichi fâti a cla pàgina ché a gnîran spustêdi insém a i mesâg vést da tót j utèint ed cól wiki ché. Per zuntêr o mudufichêr tradusiòun vâlidi per tót i wiki, cunsîdra la pusibilitê 'd druvêr [/ / translatewiki.net / translatewiki.net], al prugèt 'd adatamèint a ògni léngva 'd MediaWiki.",
+       "editinginterface": "<strong>Atèinti:</strong> Al tèst ed cla pàgina ché 'l fa pêrt dal colegamèint tra utèint e 'l prugrâma dal sît.  Tót' al modéfichi fâti a cla pàgina ché a se spècen in sém a i mesâg vést per tót j utèint ed cól wiki ché.",
+       "translateinterface": "Per zuntêr o mudifichêr al tradusiòun vâlidi in sém a tót i wiki, drōva [//translatewiki.net/ translatewiki.net], al prugèt Media Wiki p'r al léngui di divêrs pôst.",
        "cascadeprotected": "Insém a cla pàgina ché an n'é mìa pusébil fêr dal mudéfichi perchè l'é dèinter {{PLURAL:$1|int la pàgina sgnêda ché  'd sègvit, ch' l'é stêda prutèta|int al pàgini sgnêdi ché  'd sègvit, ch' în stêdi prutèti}} cun la prutesiòun ch' la 's arfà in cuntinvasiòun:\n$2",
        "namespaceprotected": "An 's gh'à mìa i permès necesâri per mudifichêr al pàgini dal spâsi di nòm <strong>$1</strong>.",
        "customcssprotected": "An 's gh'à mìa i permès necesâri per mudifichêr cla pàgina CSS ché, perchè la gh'à dèinter al j impustasiòun personêli 'd n' êter utèint.",
        "nowiki_sample": "Mèt dèinter ché al tèst mìa furmatê",
        "nowiki_tip": "An badêr mìa la furmatasiòun wiki",
        "image_tip": "Mèt dèinter al file",
-       "media_tip": "Colegamèint al 'file'",
+       "media_tip": "Colegamèint al file",
        "sig_tip": "Fîrma cun la dâta e l'ōra",
        "hr_tip": "Rîga spiâna (drōva cun giudési)",
-       "summary": "Sûnt:",
+       "summary": "Ogèt:",
        "subject": "Argumèint (tétol):",
        "minoredit": "Còsta l'é 'na mudéfica céca",
        "watchthis": "Tîn adrē a cla pàgina ché",
        "content-model-text": "tèst normêl",
        "content-model-javascript": "linguâg JavaScript",
        "content-model-css": "fòj de stîl CSS",
+       "duplicate-args-category": "Pàgini che drōven argumèint dópiê in ciamêdi a i mudē",
+       "duplicate-args-category-desc": "La pàgina la gh'à dèinter ciamêdi a mudē che drōven argumèint dupiê,cme per eşèimpi <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Atensiòun:''' cla pàgina ché la gh'à trôpi ciamêdi ala funsiòun parse. A n' in duvré avèir mēno 'd $2, adèsa a {{PLURAL:$1|'gh n'é $1}}.",
        "expensive-parserfunction-category": "Pàgini cun trôpi ciamêdi a la funsiòun parser.",
        "post-expand-template-inclusion-warning": "'''Atensiòun:''' la grandèsa di mudē més dèinter l'é trôp grôsa. Soquânt mudē gnirâ mìa més dèinter.",
        "mergehistory-same-destination": "Al pàgini 'd urégin e 'd arîv an pōlen mìa cumbinêr",
        "mergehistory-reason": "Mutîv:",
        "mergelog": "Uniòun",
-       "pagemerge-logentry": "l'à unî [[$1]] a [[$2]] (versiòun fîn a $3)",
        "revertmerge": "Scanşèla l'uniòun",
        "mergelogpagetext": "Ed sègvit în elenchêdi la j ûltmi operasiòun 'd uniòun ed la stòria ed dō pàgini.",
        "history-title": "$1 stòria dal mudéfichi",
        "searchprofile-everything": "Tót",
        "searchprofile-advanced": "Specêla",
        "searchprofile-articles-tooltip": "Sèirca in $1",
-       "searchprofile-images-tooltip": "Sèirca 'file'",
+       "searchprofile-images-tooltip": "Sèirca file",
        "searchprofile-everything-tooltip": "Sērca dapertót (ânch int al pàgini 'd discusuòun).",
        "searchprofile-advanced-tooltip": "Sērca int i spâsi di nòm fât só mzûra.",
        "search-result-size": "$1 ({{PLURAL:$2|'na parôla|$2 parôli}})",
        "search-result-category-size": "{{PLURAL:$1|1 utèint|$1 utèint}} ({{PLURAL:$2|1 sotcategoréia|$2 sotcategoréi}},{{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(sesiòun $1)",
+       "search-category": "(categoréia $1)",
        "search-file-match": "(relasiòun dèinter al file)",
        "search-suggest": "Fōrsi 't serchêv $1",
        "search-interwiki-caption": "Prugèt fradē",
        "searchrelated": "coleghê",
        "searchall": "tót",
        "showingresults": "Ed sègvit {{PLURAL:$1|a vîn preşentê al mâsim <strong>1</strong> rişultêt| a vînen preşentê al mâsim <strong>$1</strong> rişultêt}} a partîr dal nómer #<strong>$2</strong>.",
-       "showingresultsinrange": "{{PLURAL:$1|A vîn mustrê| a vînen mustrê}} sòta {{PLURAL:$1|<strong>1</strong> rişultêt|<strong>$1</strong> rişultêt}} dal #<strong>$2</strong> al #<strong>$3</strong>.",
+       "showingresultsinrange": "{{PLURAL:$1|Sòt a vîn mustrê| Sòt a vînen mustrê}}  {{PLURAL:$1|<strong>1</strong> rişultêt|<strong>$1</strong> rişultêt}} dal <strong>$2</strong> al <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Rişultêt <strong>$1</strong> ed <strong>$3</strong>|Rişultêt <strong>$1 - $2</strong> ed <strong>$3</strong>}}",
        "search-nonefound": "La sērca an n'à mìa dê di rişultê.",
        "powersearch-legend": "Sèirca specêla",
        "search-external": "Sèirca fâta fōra",
        "searchdisabled": "La sèirca intêrna ed {{SITENAME}} l'a funsiòuna mìa; int al mèinter a s' pōl pruvêr a druvêr un mutōr ed sèirca d'ed fōra cme Google. (A gh' è da nutêr però che còl che gh'é dèinter in {{SITENAME}} che es câten in chi mutōr a prém èser mìa arnuvê.)",
        "search-error": "É sucès un erōr mèinter a's fêva la sèirca:$1",
-       "preferences": "Preferèinsa",
+       "preferences": "Preferèinsi",
        "mypreferences": "Preferèinsi",
        "prefs-edits": "Mudéfichi fâti:",
        "prefsnologintext2": "Es prèiga ed l'ingres per impustêr al tō  preferèinsi 'd utèint.",
        "gender-female": "L'é registrêda in sém a {{SITENAME}}",
        "prefs-help-gender": "L'impustasiòun ed cla preferèinsa ché l'é a siēlta. Al progrâma al drōva cól valōr ché per parlêr cun tè e numinêret cun chiêter cun al druvêr al gèner ed gramâtica gióst. Cl'infurmasiòun ché la srà póblica.",
        "email": "E-mail",
-       "prefs-help-realname": "Druvêr al nòm vèira l'é 'na siēlta personêla; s' es pèinsa 'd druvêrel al gnirâ uşê per dêr la paternitê di lavōr spidî.",
+       "prefs-help-realname": "Al nòm vèira l'é da druvêr a piaşèir. Se druvê, al pōl èser uşê per dêr la paternitê al lavōr fât.",
        "prefs-help-email": "Mèter l'indéris ed la tó pôsta eletrônica an n'é mia necesâri, mó al permèt ed ricêver la cêva 'd ingrès se per chêş ét la scurdés.",
        "prefs-help-email-others": "Ét pō ânca sernîr ed lasêr che chiêter a 's mèten in cuntât  tēgh cun la pôsta eletrônica cun al colegamèint da la tó pàgina utèint o da còla 'd discusiòun.  Al tó indirés al vîn mìa fât savèir a quî ch'ét 's mèten in cuntât tēgh.",
        "prefs-help-email-required": "L'indirés ed pôsta eletrônica l'é ubligatôri.",
        "right-upload": "Cârga un file",
        "right-reupload": "Al scré in sém a 'n file ch' al gh'é bèle",
        "right-reupload-own": "Al scré in sém a 'n file ch' al gh'é bèle carghê da l'istès utèint",
+       "right-reupload-shared": "Al souvrascrév int al pôst file ch' în int l'archévi spartî",
        "right-upload_by_url": "Cârga un file da un indirés URL",
        "right-purge": "Al pulés la memôria pruvişôria dal sît sèinsa cunfērma.",
        "right-autoconfirmed": "An n'é mìa ublighê al lémit 'd asiòun per IP",
        "right-bigdelete": "Scanşèla pàgini cun la stòria 'd la pàgina lònghi",
        "right-deletelogentry": "Al scanşèla e al tōrna mèter vōş ed regéster bèin precîşi",
        "right-deleterevision": "Al lōga versiòun precîşi dal pàgini",
+       "right-deletedhistory": "Al fà vèder al versiòun ed la stòria scanşlêdi sèinsa al tèst che gh'é unî",
+       "right-deletedtext": "Al fà veder al tèst scanşlê e al mudéfichi tr'al versiòun scanşlêdi",
+       "right-browsearchive": "Al sêrca int al pàgini scanşlêdi",
+       "right-undelete": "Recópra 'na pàgina",
+       "right-suppressrevision": "Al vèd, al lōga e al tōra mèter versiòun precîşi dal pàgini a utèint bast' ech sìa",
+       "right-viewsuppressed": "Al vèd versiòun lughêdi a utèint bast' ech sìa",
+       "right-suppressionlog": "Al fà vèder i regéster privê",
+       "right-block": "Blôca al mudéfichi da pêrta 'd êter utèint",
+       "right-blockemail": "L'impidés a 'n utèint de spidîr la pôsta eletrônica",
+       "right-hideuser": "Blôca un nòm utèint, e 'l lōga al póblich",
+       "right-ipblock-exempt": "Al vèd mìa i blôch 'd IP, i blôch avtomâtich e i blôch ed range IP",
+       "right-proxyunbannable": "An vèder mìa i blôch avtomâtich di proxi",
+       "right-unblockself": "A şblôca ló 'stès",
+       "right-protect": "Câmbia i livē 'd prutesiòun e mudéfica 'l pàgini prutèti in ripetisiòun",
+       "right-editprotected": "Mudéfica 'l pàgini prutèti cun \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "Mudéfica 'l pàgini prutèti cun \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editinterface": "Mudéfica al colegamèint tra sistēma e utèint",
        "newuserlogpage": "Utèint nōv",
        "action-read": "lēzer cla pàgina ché",
        "action-edit": "Mudifichêr cla pàgina ché",
        "action-createpage": "inventêr pàgini",
        "action-move": "spustêr cla pàgina ché",
-       "action-movefile": "spustêr cól 'file' ché",
-       "action-upload": "carghêr cól 'file' ché",
+       "action-movefile": "spustêr cól file ché",
+       "action-upload": "carghêr cól file ché",
        "action-delete": "scanşlêr cla pàgina ché",
        "nchanges": "$1\n{{PLURAL:$1|mudéfica|mudéfichi}}",
        "recentchanges": "Ûltmi mudéfichi",
        "recentchangeslinked-summary": "Cla pàgina specêla ché la fà vèder al j ûltmi mudéfichi al pàgini coleghêdi da còla sgnêda (o dèinter int la categoréia sgnêda). Al pàgini dèint a la tó lésta 'd j [[Special:Watchlist|tgnû sòt ôc specêl]] în sgnêdi in '''grasèt'''.",
        "recentchangeslinked-page": "Nòm ' d la pàgina.",
        "recentchangeslinked-to": "Fà vèder sōl al mudéfichi fâti al pàgini coleghêdi a còla sgnêda.",
-       "upload": "Cârga un 'file'",
+       "upload": "Cârga un file",
        "uploadlogpage": "Fil carghê",
-       "filedesc": "Sûnt.",
+       "filedesc": "Particulêr.",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
        "listfiles_date": "Dâta",
        "listfiles_name": "Nòm",
        "listfiles_user": "Utèint",
-       "file-anchor-link": "'File'",
+       "file-anchor-link": "File",
        "filehist": "Stòria 'd la pàgina",
        "filehist-help": "Fà cléch insém a 'n gróp dâta/ōra per vèder al file cm'é l'ēra int al mumèint e-sgnê",
        "filehist-revert": "armèt",
        "filehist-user": "Utèint",
        "filehist-dimensions": "Amzûri",
        "filehist-comment": "Cumèint",
-       "imagelinks": "Ûş dal 'file'",
+       "imagelinks": "Ûş dal file",
        "linkstoimage": "{{PLURAL:$1|Int la pàgina seguèint a gh'é|Int al seguèinti $1 pàgini a gh'é}} colegamèint al file:",
        "nolinkstoimage": "Nisóna pàgina la gh'à colegamèint al file",
        "sharedupload-desc-here": "Cól file ché al deşvîn da $1 e al pōl èser druvê da êter prugèt. Ed sègvit a vîn fât vèder la spiegasiòun che gh'é int la [$2 pàgina de spiegasiòun dal file].",
        "nolinkshere": "Nisóna pàgina la gh'à dèinter colegamèint che pûnten a '''[[:$1]]'''.",
        "isredirect": "Pàgina redirect",
        "istemplate": "uniòun",
-       "isimage": "Colegamèint vêrs al 'file'",
+       "isimage": "Colegamèint vêrs al file",
        "whatlinkshere-prev": "{{PLURAL:$1|còl préma|quî préma $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|còl dôp|quî dôp $1}}",
        "whatlinkshere-links": "← colegamèint",
        "allmessages-filter-submit": "Và",
        "thumbnail-more": "Ingrandés",
        "thumbnail_error": "Erōr mèinter ét fêv la miniadûra:$1",
-       "import-upload-filename": "Nòm dal 'file':",
+       "import-upload-filename": "Nòm dal file:",
        "import-comment": "Argumèint:",
        "import-upload": "Cârga infurmasiòun XML",
        "tooltip-pt-userpage": "La tó pàgina utèint",
        "tooltip-feed-atom": "Feed Atom per cla pàgina ché.",
        "tooltip-t-contributions": "Lèsta di lavōr fât da cl'utèint ché.",
        "tooltip-t-emailuser": "Mânda un mesâg cun la pòsta eletrônica a cl'utèint ché",
-       "tooltip-t-upload": "Cârga un 'file'",
+       "tooltip-t-upload": "Cârga un file",
        "tooltip-t-specialpages": "Elèinch ed tót al pàgini specêli",
        "tooltip-t-print": "Per stampêr cla pàgina ché.",
        "tooltip-t-permalink": "Colegamèint fés a cla versiòun ché 'd  la pàgina.",
        "tooltip-ca-nstab-user": "Guêrda la pàgina utèint",
        "tooltip-ca-nstab-special": "Còsta ché l'é 'na pàgina specêlal l'an pōl mìa èser mudifichêda",
        "tooltip-ca-nstab-project": "Guêrda la pàgina dal prugèt",
-       "tooltip-ca-nstab-image": "Guêrda la pàgina dal 'file'",
+       "tooltip-ca-nstab-image": "Guêrda la pàgina dal file",
        "tooltip-ca-nstab-template": "Guêrda 'l mudèl",
        "tooltip-ca-nstab-help": "Guêrda la pàgina d'ajót",
        "tooltip-ca-nstab-category": "Guêrda la pàgina 'd la categoréia",
        "tooltip-summary": "Mèt dèinter un sût cèch.",
        "others": "êter",
        "pageinfo-header-edits": "Stòria dal mudéfichi",
-       "pageinfo-views": "Nómer dal vîşiti",
        "pageinfo-watchers": "Nómer  'd utèint che gh'àn la pàgina sòt ôc.",
        "pageinfo-edits": "Nómer totêl dal mudéfichi",
        "pageinfo-authors": "Nómer totêl di divêrs avtôr",
        "ilsubmit": "Sērca",
        "bydate": "per dâta",
        "ago": "$1 fa",
-       "bad_image_list": "La manēra l'é còsta:\n\na vînen cunsidrê sōl j elèinch puntê (ríghi che cumîncen cun al carâter *). Al prém colegamèint só ògni rîga al dēv èser un colegamèint a un 'file' mìa vrû. I colegamèint che vînen dôp, int l'istèsa rîga, în cunsidrê cme un chêş (oséia, pàgini in dó al 'file' al pōl èser arciamê normalmèint).",
+       "bad_image_list": "La manēra l'é còsta:\n\na vînen cunsidrê sōl j elèinch puntê (ríghi che cumîncen cun al carâter *). Al prém colegamèint só ògni rîga al dēv èser un colegamèint a un file mìa vrû. I colegamèint che vînen dôp, int l'istèsa rîga, în cunsidrê cme un chêş (oséia, pàgini in dó al file al pōl èser arciamê normalmèint).",
        "metadata": "Metadati",
        "metadata-help": "In cól file ché agh'é dal j infurmasiòun zuntêdi, prubabilmèint zuntêdi da la mâchina fotogrâfica o dal scàner druvê per fotografêrel o per fêrel dvintêr digitêl. Se al file l'é stê mudfifichê, soquânt particulêr a prén cumbinêr mìa cun la realtê.",
        "metadata-fields": "I câmp relatîv a i metadati ed la figûra, in lésta in cól mesâg ché, a gnirân més int la pàgina ed la figûra quând la tabèla di metadati l'é mustrêda int la fōrma cûrta. Per impustasiòun pre-stabilîda, chiêter câmp a gnirân lughê. \n* make \n* model \n* datetimeoriginal \n* exposuretime \n* fnumber \n* isospeedratings \n* focallength \n* artist \n* copyright \n* imagedescription \n* gpslatitude \n* gpslongitude \n* gpsaltitude",
        "version-version": "($1)",
        "version-license": "Licèinsa Media Wiki",
        "version-poweredby-others": "êter",
-       "fileduplicatesearch-filename": "Nòm dal 'file':",
+       "fileduplicatesearch-filename": "Nòm dal file:",
        "fileduplicatesearch-submit": "Sērca",
        "specialpages": "Pàgini specêli",
        "external_image_whitelist": "#Lasêr cla pàgina ché acsé cme l'é<pre>\n#Mèter dèinter i pès dal j espresiòun regolêri (sōl la pêrta cla va fra //) ed sègvit\n#Còsti gnirân més a cunfrûnt cun j indirés URL dal figûri d'ed fōra (hotlinked) \n#Al cunbinasiòun asrân fât vèder cme figûri, se no a gnirà fât vèder sōl al colegamèint\n#Al rîghi che cumîncen cun # în cunsidrêdi di cumèint\n#La diferèinsa tr' al lètri grândi e al lètri céchi an gh'à mìa impurtânsa\n\n#Mèter sōver cla rîga ché tót i pès di regex. Lasêr cla rîga ché acsé cme l'é</pre>",
index b2ccc7c..8cd1a32 100644 (file)
        "viewsourcetext": "Μπορείτε να δείτε και να αντιγράψετε τον κώδικα αυτής της σελίδας:",
        "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον κώδικα των '''επεξεργασιών σας''' σε αυτήν τη σελίδα:",
        "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για αποτροπή τυχόν βανδαλισμού.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wikis, παρακαλούμε χρησιμοποιήστε  [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικοποίησης του  MediaWiki.",
-       "editinginterface": "'''Προσοχή:''' Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτή τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για τους άλλους χρήστες. Εάν θέλετε να διορθώσετε τη μετάφραση, μπορείτε να χρησιμοποιήσετε το [//translatewiki.net/ translatewiki.net], το εγχείρημα για με τις μεταφράσεις των μηνυμάτων MediaWiki.",
+       "editinginterface": "<strong>Προειδοποίηση:</strong> Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτήν τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για τους άλλους χρήστες αυτού του wiki.",
        "cascadeprotected": "Αυτή η σελίδα έχει προστατευθεί από επεξεργασία, επειδή περιλαμβάνεται {{PLURAL:$1|στην ακόλουθη σελίδα, που είναι προστατευμένη|στις ακόλουθες σελίδες, που είναι προστατευμένες}} με ενεργοποιημένη τη «διαδοχική» προστασία στο:\n$2",
        "namespaceprotected": "Δεν έχετε άδεια να επεξεργάζεστε σελίδες στον τομέα '''$1'''.",
        "customcssprotected": "Δεν έχετε δικαιώματα για να επεξεργαστείτε αυτή τη σελίδα CSS, επειδή περιέχει προσωπικές ρυθμίσεις άλλου χρήστη.",
        "mergehistory-same-destination": "Οι σελίδες προέλευσης και προορισμού δεν μπορούν να είναι οι ίδιες",
        "mergehistory-reason": "Αιτία:",
        "mergelog": "Συγχώνευση λογαριασμού",
-       "pagemerge-logentry": "το [[$1]] συγχωνεύθηκε στο [[$2]] (εκδόσεις έως και τις $3)",
        "revertmerge": "Αναίρεση συγχώνευσης",
        "mergelogpagetext": "Παρακάτω είναι μια λίστα με τις πιο πρόσφατες συγχωνεύσεις ιστορικού μιας σελίδας σε άλλο.",
        "history-title": "Ιστορικό αναθεωρήσεων της σελίδας «$1»",
        "search-result-category-size": "{{PLURAL:$1|1 μέλος|$1 μέλη}} ({{PLURAL:$2|1 υποκατηγορία|$2 υποκατηγορίες}}, {{PLURAL:$3|1 αρχείο|$3 αρχεία}})",
        "search-redirect": "(ανακατεύθυνση $1)",
        "search-section": "(ενότητα $1)",
+       "search-category": "(κατηγορία $1)",
        "search-file-match": "(ταιριάζει με το περιεχόμενο του αρχείου)",
        "search-suggest": "Μήπως εννοούσατε: $1",
        "search-interwiki-caption": "Αδελφικά εγχειρήματα",
        "statistics": "Στατιστικά",
        "statistics-header-pages": "Στατιστικά σελίδων",
        "statistics-header-edits": "Στατιστικά επεξεργασιών",
-       "statistics-header-views": "Προβολή στατιστικών",
        "statistics-header-users": "Στατιστικά χρηστών",
        "statistics-header-hooks": "Άλλα στατιστικά",
        "statistics-articles": "Σελίδες περιεχομένου",
        "statistics-files": "Αρχεία που έχουν επιφορτωθεί",
        "statistics-edits": "Επεξεργασίες σελίδων από τη δημιουργία του εγχειρήματος {{SITENAME}}",
        "statistics-edits-average": "Μέσος όρος επεξεργασιών ανά σελίδα",
-       "statistics-views-total": "Συνολικές εμφανίσεις",
-       "statistics-views-total-desc": "Επισκέψεις σε μη υπάρχουσες σελίδες και ειδικές σελίδες δεν συμπεριλαμβάνονται",
-       "statistics-views-peredit": "Εμφανίσεις ανά επεξεργασία",
        "statistics-users": "Εγγεγραμμένοι [[Special:ListUsers|χρήστες]]",
        "statistics-users-active": "Ενεργοί χρήστες",
        "statistics-users-active-desc": "Χρήστες που έχουν κάνει κάποια επεξεργασία μέσα σε {{PLURAL:$1|μέρα|$1 μέρες}}",
-       "statistics-mostpopular": "Οι πιο δημοφιλείς σελίδες",
        "pageswithprop": "Σελίδες με ιδιότητα σελίδας",
        "pageswithprop-legend": "Σελίδες με ιδιότητα σελίδας",
        "pageswithprop-text": "Αυτή η σελίδα ταξινομεί σελίδες που χρησιμοποιούν μια συγκεκριμένη ιδιότητα σελίδας.",
        "uncategorizedtemplates": "Μη κατηγοριοποιημένα πρότυπα",
        "unusedcategories": "Κενές κατηγορίες",
        "unusedimages": "Αχρησιμοποίητες εικόνες",
-       "popularpages": "Δημοφιλείς σελίδες",
        "wantedcategories": "Επιθυμητές κατηγορίες",
        "wantedpages": "Ζητούμενες σελίδες",
        "wantedpages-badtitle": "Μη εγκυρός τίτλος στο σύνολο αποτελέσματος: $1",
        "emailccsubject": "Αντίγραφο του μηνυματός σας στο $1: $2",
        "emailsent": "Το μήνυμα έχει σταλεί",
        "emailsenttext": "Το μήνυμά σας έχει σταλεί.",
-       "emailuserfooter": "Î\91Ï\85Ï\84Ï\8c Ï\84ο Î·Î»ÎµÎºÏ\84Ï\81ονικÏ\8c Î¼Î®Î½Ï\85μα Ï\83Ï\84άλθηκε Î±Ï\80Ï\8c Ï\84ον/Ï\84ην \"$1\" Ï\83Ï\84ον Ï\84ον/Ï\84ην \"$2\" Î¼Î­Ï\83Ï\89 Ï\84ηÏ\82 Î»ÎµÎ¹Ï\84οÏ\85Ï\81γίαÏ\82 \"αÏ\80οÏ\83Ï\84ολήÏ\82 Î¼Î·Î½Ï\85μάÏ\84Ï\89ν\" στο {{SITENAME}}.",
+       "emailuserfooter": "Î\91Ï\85Ï\84Ï\8c Ï\84ο Î¼Î®Î½Ï\85μα Î·Î»ÎµÎºÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\83Ï\84άλθηκε Î±Ï\80Ï\8c {{GENDER:$1|Ï\84ον Ï\87Ï\81ήÏ\83Ï\84η|Ï\84ην Ï\87Ï\81ήÏ\83Ï\84Ï\81ια}} $1 Ï\83{{GENDER:$2|Ï\84ον Ï\87Ï\81ήÏ\83Ï\84η|Ï\84ην Ï\87Ï\81ήÏ\83Ï\84Ï\81ια}} $2 Î¼Î­Ï\83Ï\89 Ï\84ηÏ\82 Î»ÎµÎ¹Ï\84οÏ\85Ï\81γίαÏ\82 Â«Î±Ï\80οÏ\83Ï\84ολήÏ\82 Î¼Î·Î½Ï\8dμαÏ\84οÏ\82 Î·Î»ÎµÎºÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 Ï\83ε Ï\87Ï\81ήÏ\83Ï\84η» στο {{SITENAME}}.",
        "usermessage-summary": "Φεύγετε από τις ειδοποιήσεις συστήματος.",
        "usermessage-editor": "Μηνύματα συστήματος",
        "usermessage-template": "MediaWiki:UserMessage",
        "pageinfo-robot-policy": "Ευρετηρίαση από ρομπότ",
        "pageinfo-robot-index": "Επιτρεπτό",
        "pageinfo-robot-noindex": "Μη επιτρεπτό",
-       "pageinfo-views": "Αριθμός προβολών",
        "pageinfo-watchers": "Αριθμός παρατηρητών σελίδας",
        "pageinfo-few-watchers": "Λιγότεροι από $1 {{PLURAL:$1| ακόλουθος|ακόλουθοι}}",
        "pageinfo-redirects-name": "Αριθμός ανακατευθύνσεων σε αυτήν τη σελίδα",
index 646727b..d444e2c 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Lévi",
-            "Ottaviano II",
-            "Timichal",
-            "Tèstaquêdra"
-        ]
-    },
-    "sunday": "Dmànga",
-    "monday": "Lonedè",
-    "tuesday": "Martedè",
-    "wednesday": "Merculdè",
-    "thursday": "Giuvidè",
-    "friday": "Venerdè",
-    "saturday": "Sâbet",
-    "january": "Znêr",
-    "february": "Fervêr",
-    "march": "Mêrs",
-    "april": "Avrîl",
-    "june": "Zógn",
-    "july": "Lój",
-    "august": "Agòst",
-    "september": "Setèmber",
-    "october": "Utòber",
-    "november": "Nuvèmber",
-    "december": "Dicèmber",
-    "may": "Mâg",
-    "mytalk": "Al mē discusiòun",
-    "returnto": "Tōrna a $1.",
-    "help": "Per quî rivê da pôch",
-    "history_short": "Stôria",
-    "printableversion": "Versiòun ch'la 's pōl stampêr",
-    "permalink": "Colegamèint fés",
-    "edit": "Mudéfica",
-    "delete": "Scanşèla",
-    "protect": "Prutēz",
-    "specialpage": "Pàgina specêla",
-    "talk": "Discusiòun",
-    "jumptosearch": "Sèirca",
-    "currentevents": "Fât e prugèt ed tót",
-    "currentevents-url": "Project:Prugèt_ed_tót",
-    "portal": "Discóter e quistiunêr",
-    "portal-url": "Project:Bar",
-    "nstab-main": "Artécol",
-    "nstab-template": "Mudèl",
-    "logouttext": "''An té pió coleghê''\nÉt pō cuntinvêr a druvêr {{SITENAME}} sèina nòm, o ét pō coleghêret dôp cun l'istès nòm o cun 'n êter.\nGuêrda che soquânti pàgini a 's prén vèder incòra cme s'ét fós coleghê fîn a che an vîn mia pulî la 'cache' dal tó  'browser'.",
-    "userlogin": "Ingrès / regéstret",
-    "logout": "Và fōra",
-    "userlogout": "Và fōra",
-    "userexists": "Al nòm utèint ch'èt siēlt l'è bèle stê druvê.\nCâten un èter, per piaşèir.",
-    "loginsuccess": "'''Adèsa t'é coleghê in {{SITENAME}} cun al nòm utèint \"$1\".'''",
-    "wrongpassword": "La 'password' che t'é més l'è sbaliêda. Prōva incòra.",
-    "blocked-mailpassword": "Per anticipêr abûş, an n'é mía permès druvêr  'n' êtra 'password' da 'n indirés 'IP' bluchê.",
-    "accountcreated": "T'é fât un nōv 'account'.",
-    "summary": "Mutîv d'al cambiamèint:",
-    "minoredit": "Cól cambiamèint ché l'é un gnînt in tót",
-    "watchthis": "Tîn a drē a cla pàgina chè",
-    "savearticle": "Sêlva la pàgina",
-    "showpreview": "Guêrda préma 'd salvêr",
-    "showdiff": "Guêrda al diferèinsi",
-    "anoneditwarning": "'''Atensiòun''': l'ingrès an n'é mía stê fât. Al tó indirés 'IP' al gnirà scrét int la stòria di cambiamèint ed cla pàgina ché.",
-    "anontalkpagetext": "''Còsta  l'é la pàgina 'd discusiòun 'd un utèint sèinsa nòm  ch' an n'à mìa incòra fât un utèinsa o che in tót al manēri l' al drōva mìa.''\nPer arcgnòsrel l'é dòunca necesâri druvêr al nómer dal só indirés IP. J indirés IP a pōlen èser spartî da pió utèint. Se  t'é un utèint sèinsa nòm e 't pèins che i cumèint preşèint in cla pàgina ché an 't riguêrden mìa [[Special:UserLogin/signup|fà 'na nōva utèinsa]] o [[Special:UserLogin|vîn dèinter cun còla ch' ét gh' ê bèle]] per fêr in môd 'd an èser mìa cunfûş in futûr cun êter utèint sèinsa nòm.",
-    "editing": "Cambiamèint ed $1",
-    "yourdiff": "Diferèinsi",
-    "templatesused": "{{PLURAL:$1|Modèl druvê|Modē druvê}} in cla pàgina ché:",
-    "mypreferences": "preferèinzi",
-    "yourrealname": "Al tō nòm vèira:",
-    "yourlanguage": "Léngua:",
-    "newuserlogpage": "Regéster di nōv utèint",
-    "recentchanges": "Ûltem cambiamèint",
-    "diff": "diferèinsi",
-    "hist": "stôria",
-    "recentchangeslinked": "Mudéfichi coleghêdi",
-    "recentchangeslinked-feed": "Mudéfichi coleghêdi",
-    "recentchangeslinked-toolbox": "Mudéfichi coleghêdi",
-    "upload": "Carghèr un 'file'",
-    "filedesc": "Sûnt",
-    "fileuploadsummary": "Sûnt dal 'file':",
-    "listfiles_size": "Dimensiòun in 'bytes'",
-    "randompage": "'Na pàgina a chêş",
-    "move": "Spôsta",
-    "specialloguserlabel": "Asiòun fâta da:",
-    "allpages": "Tót al pàgini",
-    "watchlist": "I lavōr che guêrd",
-    "watch": "Tîn a drē",
-    "watchthispage": "Tîn a drē  a cla pàgina ché",
-    "excontent": "al contgnû l'ēra: '$1'",
-    "excontentauthor": "al cuntgnû l'ēra: '$1' (e l'ónich avtōr l'ēra '[[Special:Contributions/$2|$2]]')",
-    "confirmdeletetext": "T'é drē scanşlêr 'na pàgina o na figûra, insèm a tóta la só stòria dal 'database'. Per piaşèir cunfērma ch'ét vō scanşlêrla, ch'ét sê j efèt ed la tó decişiòun e ch' la cumbîna cun al léni guîda dal [[{{MediaWiki:Policy-url}}]].",
-    "deletedtext": "\"$1\" l'é stê scanşlê.\nGuèrda $2 per vèder la lésta d'al pàgini ch' în stèdi scanşlèdi da pôch tèimp.",
-    "dellogpage": "Regéster dal scanşladûri",
-    "deletionlog": "regéster dal scanşladûri",
-    "mycontris": "i mē lavōr",
-    "whatlinkshere": "A pûnten ché",
-    "blocklink": "blôca",
-    "contribslink": "còl ch'l'à scrét",
-    "movelogpage": "Regéster di muvimèint",
-    "ilsubmit": "Sērca",
-    "specialpages": "Pàgini specêli"
+       "@metadata": {
+               "authors": [
+                       "Lévi",
+                       "Ottaviano II",
+                       "Timichal",
+                       "Tèstaquêdra",
+                       "Gloria sah"
+               ]
+       },
+       "tog-underline": "Ligàm ipertestuêl:",
+       "tog-hideminor": "Nascònder i cambiamèint piò cìc in di ùltem cambiamèint",
+       "tog-hidepatrolled": "Nascònder i cambiamèint controlê in di ùltem cambiamèint",
+       "tog-newpageshidepatrolled": "Lōga al pàgini virifichêdi da la lésta dal pàgini pió nōvi",
+       "tog-extendwatchlist": "Fà vèder tóti 'l mudéfichi a i tgnû 'd ôc specêl, mìa sōl l'ûltma",
+       "tog-usenewrc": "Unés al mudéfichi per pògin int al j ûltmi mudéfichi e int i tgnû 'd ôc specêl",
+       "tog-numberheadings": "Numerasiòun avtomâtica di tétol ed sesiòun",
+       "tog-showtoolbar": "Fà vèder la bâra di strumèint ed mudéfica",
+       "tog-editondblclick": "Mudéfica dal pàgini cun un dòpi cléch",
+       "tog-editsectiononrightclick": "Mudéfica dal sesiòun cun un cléch a dréta in séma 'l tétol",
+       "tog-watchcreations": "Zûnta al pàgini fâti e i file carghê a i tgnû 'd ôc specêl",
+       "tog-watchdefault": "Zûnta 'l pàgini e i file mudifichê a i tgnû 'd ôc specêl",
+       "tog-watchmoves": "Zûnta 'l pàgini e i file spustê a i tgnû 'd ôc specêl",
+       "tog-watchdeletion": "Zûnta 'l pàgini e i file scanşlê a i tgnû 'd ôc specêl",
+       "tog-watchrollback": "Zûnta a i tgnû 'd ôc specêl al pàgini in dóv'  j ò fât un ritōren a la pàgina 'd préma",
+       "tog-minordefault": "Sègna ógni mudéfica cme céca (sōl fés)",
+       "tog-previewontop": "Fà vèder la pàgina cambiêda sōver la caşèla 'd mudéfica e mìa sòta",
+       "tog-previewonfirst": "Fà vèder la pàgina cambiêda int la préma nudéfica",
+       "tog-oldsig": "Firma ch' a gh' è bèle:",
+       "underline-always": "Sàimper",
+       "underline-never": "Mài",
+       "sunday": "Dmànga",
+       "monday": "Lonedè",
+       "tuesday": "Martedè",
+       "wednesday": "Merculdè",
+       "thursday": "Giuvidè",
+       "friday": "Venerdè",
+       "saturday": "Sâbet",
+       "sun": "Dme.",
+       "mon": "Lun.",
+       "tue": "Mar.",
+       "wed": "Mer.",
+       "thu": "Giu.",
+       "fri": "Ven.",
+       "sat": "Sab.",
+       "january": "Znêr",
+       "february": "Fervêr",
+       "march": "Mêrs",
+       "april": "Avrîl",
+       "june": "Zógn",
+       "july": "Lój",
+       "august": "Agòst",
+       "september": "Setèmber",
+       "october": "Utòber",
+       "november": "Nuvèmber",
+       "december": "Dicèmber",
+       "january-gen": "Znêr",
+       "february-gen": "Fervêr",
+       "march-gen": "Mêrs",
+       "april-gen": "Avrîl",
+       "june-gen": "Zógn",
+       "july-gen": "Lój",
+       "august-gen": "Agòst",
+       "september-gen": "Setèmber",
+       "october-gen": "Utòber",
+       "november-gen": "Novèmber",
+       "december-gen": "Dicèmber",
+       "apr": "Avr",
+       "may": "Mâg",
+       "jun": "Zógn",
+       "jul": "Lój",
+       "aug": "Ago",
+       "sep": "Set",
+       "oct": "Oto",
+       "nov": "Nov",
+       "dec": "Dec",
+       "mytalk": "Al mē discusiòun",
+       "returnto": "Tōrna a $1.",
+       "help": "Ajót",
+       "go": "Va",
+       "searcharticle": "Va",
+       "history": "Stòria dla pàgina",
+       "history_short": "Stôria",
+       "printableversion": "Versiòun ch'la 's pōl stampêr",
+       "permalink": "Colegamèint fés",
+       "print": "Stampèr",
+       "edit": "Mudéfica",
+       "delete": "Scanşèla",
+       "protect": "Prutēz",
+       "specialpage": "Pàgina specêla",
+       "talk": "Discusiòun",
+       "jumptosearch": "Sèirca",
+       "currentevents": "Fât e prugèt ed tót",
+       "currentevents-url": "Project:Prugèt_ed_tót",
+       "portal": "Discóter e quistiunêr",
+       "portal-url": "Project:Bar",
+       "nstab-main": "Artécol",
+       "nstab-template": "Mudèl",
+       "logouttext": "<strong>An té pió coleghê</strong>\n\nGuêrda che soquânti pàgini a 's prén vèder incòra cme s'ét fós coleghê, còst fîn a che an vîn mia pulî la memôria dal tó  navigadōr.",
+       "userlogin": "Ingrès / regéstret",
+       "logout": "Và fōra",
+       "userlogout": "Và fōra",
+       "userexists": "Al nòm utèint ch'èt siēlt l'è bèle stê druvê.\nCâten un èter, per piaşèir.",
+       "loginsuccess": "'''Adèsa t'é coleghê in {{SITENAME}} cun al nòm utèint \"$1\".'''",
+       "wrongpassword": "La password che t'é més l'è şbaliêda. Prōva incòra.",
+       "blocked-mailpassword": "Per anticipêr abûş, an n'é mía permès druvêr  'n' êtra 'password' da 'n indirés 'IP' bluchê.",
+       "accountcreated": "T'é fât un nōv 'account'.",
+       "summary": "Mutîv d'al cambiamèint:",
+       "minoredit": "Cól cambiamèint ché l'é un gnînt in tót",
+       "watchthis": "Tîn a drē a cla pàgina chè",
+       "savearticle": "Sêlva la pàgina",
+       "showpreview": "Guêrda préma 'd salvêr",
+       "showdiff": "Guêrda al diferèinsi",
+       "anoneditwarning": "<strong>Atèinti</strong>: l'ingrès an n'é mía stê fât. S'ét ferê dal mudéfichi al tó indirés IP al srà vést da tót. S'ét <strong>[$1 vîn dèinter]</strong> o <strong>[$2 ét fê 'n' utèinsa nōva]</strong>, al tō mudéfichi srân sgnê al tó nòm, insèm a êter benefési.",
+       "anontalkpagetext": "''Còsta  l'é la pàgina 'd discusiòun 'd un utèint sèinsa nòm  ch' an n'à mìa incòra fât un utèinsa o che in tót al manēri l' al drōva mìa.''\nPer arcgnòsrel l'é dòunca necesâri druvêr al nómer dal só indirés IP. J indirés IP a pōlen èser spartî da pió utèint. Se  t'é un utèint sèinsa nòm e 't pèins che i cumèint preşèint in cla pàgina ché an 't riguêrden mìa [[Special:UserLogin/signup|fà 'na nōva utèinsa]] o [[Special:UserLogin|vîn dèinter cun còla ch' ét gh' ê bèle]] per fêr in môd 'd an èser mìa cunfûş in futûr cun êter utèint sèinsa nòm.",
+       "editing": "Cambiamèint ed $1",
+       "yourdiff": "Diferèinsi",
+       "templatesused": "{{PLURAL:$1|Modèl druvê|Modē druvê}} in cla pàgina ché:",
+       "mypreferences": "preferèinzi",
+       "yourrealname": "Al tō nòm vèira:",
+       "yourlanguage": "Léngua:",
+       "newuserlogpage": "Regéster di nōv utèint",
+       "recentchanges": "Ûltem cambiamèint",
+       "diff": "diferèinsi",
+       "hist": "stôria",
+       "recentchangeslinked": "Mudéfichi coleghêdi",
+       "recentchangeslinked-feed": "Mudéfichi coleghêdi",
+       "recentchangeslinked-toolbox": "Mudéfichi coleghêdi",
+       "upload": "Carghèr un 'file'",
+       "filedesc": "Sûnt",
+       "fileuploadsummary": "Sûnt dal 'file':",
+       "listfiles_size": "Dimensiòun in 'bytes'",
+       "randompage": "'Na pàgina a chêş",
+       "move": "Spôsta",
+       "specialloguserlabel": "Asiòun fâta da:",
+       "allpages": "Tót al pàgini",
+       "watchlist": "I lavōr che guêrd",
+       "watch": "Tîn a drē",
+       "watchthispage": "Tîn a drē  a cla pàgina ché",
+       "excontent": "al contgnû l'ēra: '$1'",
+       "excontentauthor": "al cuntgnû l'ēra: '$1' (e l'ónich avtōr l'ēra '[[Special:Contributions/$2|$2]]')",
+       "confirmdeletetext": "T'é drē scanşlêr 'na pàgina o na figûra, insèm a tóta la só stòria dal 'database'. Per piaşèir cunfērma ch'ét vō scanşlêrla, ch'ét sê j efèt ed la tó decişiòun e ch' la cumbîna cun al léni guîda dal [[{{MediaWiki:Policy-url}}]].",
+       "deletedtext": "\"$1\" l'é stê scanşlê.\nGuèrda $2 per vèder la lésta d'al pàgini ch' în stèdi scanşlèdi da pôch tèimp.",
+       "dellogpage": "Regéster dal scanşladûri",
+       "deletionlog": "regéster dal scanşladûri",
+       "mycontris": "i mē lavōr",
+       "whatlinkshere": "A pûnten ché",
+       "blocklink": "blôca",
+       "contribslink": "còl ch'l'à scrét",
+       "movelogpage": "Regéster di muvimèint",
+       "ilsubmit": "Sērca",
+       "specialpages": "Pàgini specêli"
 }
index 3bd8444..d1569c1 100644 (file)
@@ -1,86 +1,86 @@
 {
-    "@metadata": {
-        "authors": [
-            "Amire80",
-            "Dantman",
-            "Fitoschido",
-            "Hazard-SJ",
-            "Jon Harald Søby",
-            "Lloffiwr",
-            "Reedy",
-            "Shirayuki",
-            "The Evil IP address"
-        ]
-    },
-    "tog-watchcreations": "Add pages I create and files I upload to my watchlist",
-    "tog-watchdefault": "Add pages and files I edit to my watchlist",
-    "tog-watchmoves": "Add pages and files I move to my watchlist",
-    "tog-watchdeletion": "Add pages and files I delete to my watchlist",
-    "category_header": "Pages in category ‘$1’",
-    "category-media-header": "Media in category ‘$1’",
-    "retrievedfrom": "Retrieved from ‘$1’",
-    "page-rss-feed": "‘$1’ RSS feed",
-    "page-atom-feed": "‘$1’ Atom feed",
-    "missing-article": "The database did not find the text of a page that it should have found, named ‘$1’ $2.\n\nThis is usually caused by following an outdated diff or history link to a page that has been deleted.\n\nIf this is not the case, you may have found a bug in the software.\nPlease report this to an [[Special:ListUsers/sysop|administrator]], making note of the URL.",
-    "fileappenderrorread": "Could not read ‘$1’ during append.",
-    "fileappenderror": "Could not append ‘$1’ to ‘$2’.",
-    "filecopyerror": "Could not copy file ‘$1’ to ‘$2’.",
-    "filerenameerror": "Could not rename file ‘$1’ to ‘$2.’",
-    "filedeleteerror": "Could not delete file ‘$1’.",
-    "directorycreateerror": "Could not create directory ‘$1’.",
-    "filenotfound": "Could not find file ‘$1’.",
-    "fileexistserror": "Unable to write to file ‘$1’: File exists.",
-    "unexpected": "Unexpected value: ‘$1’=‘$2’.",
-    "cannotdelete": "The page or file ‘$1’ could not be deleted.\nIt may have already been deleted by someone else.",
-    "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
-    "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
-    "cascadeprotected": "This page has been protected from editing, because it is included in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the ‘cascading’ option turned on:\n$2",
-    "prefs-i18n": "Internationalisation",
-    "license": "Licencing:",
-    "license-header": "Licencing",
-    "uncategorizedpages": "Uncategorised pages",
-    "uncategorizedcategories": "Uncategorised categories",
-    "uncategorizedimages": "Uncategorised files",
-    "uncategorizedtemplates": "Uncategorised templates",
-    "sessionfailure": "There seems to be a problem with your login session;\nthis action has been cancelled as a precaution against session hijacking.\nGo back to the previous page, reload that page and then try again.",
-    "blockiptext": "Use the form below to block write access from a specific IP address or username.\nThis should be done only to prevent vandalism, and in accordance with [[{{MediaWiki:Policy-url}}|policy]].\nFill in a specific reason below (for example, citing particular pages that were vandalised).",
-    "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behaviour/harassment\n** Abusing multiple accounts\n** Unacceptable username",
-    "proxyblockreason": "Your IP address has been blocked because it is an open proxy.\nPlease contact your Internet service provider or technical support of your organisation and inform them of this serious security problem.",
-    "allmessagestext": "This is a list of system messages available in the MediaWiki namespace.\nPlease visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
-    "allmessages-filter": "Filter by customisation state:",
-    "import-error-unserialize": "Revision $2 of page \"$1\" could not be unserialised. The revision was reported to use content model $3 serialised as $4.",
-    "metadata-help": "This file contains additional information, probably added from the digital camera or scanner used to create or digitise it.\nIf the file has been modified from its original state, some details may not fully reflect the modified file.",
-    "exif-ycbcrcoefficients": "Colour space transformation matrix coefficients",
-    "exif-colorspace": "Colour space",
-    "exif-datetimedigitized": "Date and time of digitising",
-    "exif-subsectimedigitized": "DateTimeDigitised subseconds",
-    "exif-exposureprogram": "Exposure Programme",
-    "exif-licenseurl": "URL for copyright licence",
-    "exif-morepermissionsurl": "Alternative licencing information",
-    "exif-organisationinimage": "Organisation depicted",
-    "exif-exposureprogram-2": "Normal programme",
-    "exif-exposureprogram-5": "Creative programme (biased toward depth of field)",
-    "exif-exposureprogram-6": "Action programme (biased toward fast shutter speed)",
-    "exif-subjectdistance-value": "$1 metres",
-    "exif-meteringmode-2": "Centre weighted average",
-    "exif-sensingmethod-2": "One-chip colour area sensor",
-    "exif-sensingmethod-3": "Two-chip colour area sensor",
-    "exif-sensingmethod-4": "Three-chip colour area sensor",
-    "exif-sensingmethod-5": "Colour sequential area sensor",
-    "exif-sensingmethod-8": "Colour sequential linear sensor",
-    "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metres}} above sea level",
-    "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metres}} below sea level",
-    "exif-gpsspeed-k": "Kilometres per hour",
-    "exif-gpsdestdistance-k": "Kilometres",
-    "exif-ycbcrpositioning-1": "Centred",
-    "exif-iimcategory-lab": "Labour",
-    "confirmemail_invalidated": "Email address confirmation cancelled",
-    "version-license": "MediaWiki Licence",
-    "version-ext-license": "Licence",
-    "version-ext-colheader-license": "Licence",
-    "version-license-title": "Licence for $1",
-    "version-license-not-found": "No detailed licence information was found for this extension.",
-    "version-credits-summary": "We would like to recognise the following persons for their contribution to [[Special:Version|MediaWiki]].",
-    "version-license-info": "MediaWiki is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version.\n\nMediaWiki 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 Licence for more details.\n\nYou should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU General Public Licence] along with this programme; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html read it online].",
-    "feedback-error1": "Error: Unrecognised result from API"
+       "@metadata": {
+               "authors": [
+                       "Amire80",
+                       "Dantman",
+                       "Fitoschido",
+                       "Hazard-SJ",
+                       "Jon Harald Søby",
+                       "Lloffiwr",
+                       "Reedy",
+                       "Shirayuki",
+                       "The Evil IP address",
+                       "Vogone"
+               ]
+       },
+       "tog-watchcreations": "Add pages I create and files I upload to my watchlist",
+       "tog-watchdefault": "Add pages and files I edit to my watchlist",
+       "tog-watchmoves": "Add pages and files I move to my watchlist",
+       "tog-watchdeletion": "Add pages and files I delete to my watchlist",
+       "category_header": "Pages in category ‘$1’",
+       "category-media-header": "Media in category ‘$1’",
+       "retrievedfrom": "Retrieved from ‘$1’",
+       "page-rss-feed": "‘$1’ RSS feed",
+       "page-atom-feed": "‘$1’ Atom feed",
+       "missing-article": "The database did not find the text of a page that it should have found, named ‘$1’ $2.\n\nThis is usually caused by following an outdated diff or history link to a page that has been deleted.\n\nIf this is not the case, you may have found a bug in the software.\nPlease report this to an [[Special:ListUsers/sysop|administrator]], making note of the URL.",
+       "filecopyerror": "Could not copy file ‘$1’ to ‘$2’.",
+       "filerenameerror": "Could not rename file ‘$1’ to ‘$2.’",
+       "filedeleteerror": "Could not delete file ‘$1’.",
+       "directorycreateerror": "Could not create directory ‘$1’.",
+       "filenotfound": "Could not find file ‘$1’.",
+       "unexpected": "Unexpected value: ‘$1’=‘$2’.",
+       "cannotdelete": "The page or file ‘$1’ could not be deleted.\nIt may have already been deleted by someone else.",
+       "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "cascadeprotected": "This page has been protected from editing, because it is included in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the ‘cascading’ option turned on:\n$2",
+       "prefs-i18n": "Internationalisation",
+       "license": "Licencing:",
+       "license-header": "Licencing",
+       "licenses-edit": "Edit licence options",
+       "uncategorizedpages": "Uncategorised pages",
+       "uncategorizedcategories": "Uncategorised categories",
+       "uncategorizedimages": "Uncategorised files",
+       "uncategorizedtemplates": "Uncategorised templates",
+       "sessionfailure": "There seems to be a problem with your login session;\nthis action has been cancelled as a precaution against session hijacking.\nGo back to the previous page, reload that page and then try again.",
+       "blockiptext": "Use the form below to block write access from a specific IP address or username.\nThis should be done only to prevent vandalism, and in accordance with [[{{MediaWiki:Policy-url}}|policy]].\nFill in a specific reason below (for example, citing particular pages that were vandalised).",
+       "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behaviour/harassment\n** Abusing multiple accounts\n** Unacceptable username",
+       "proxyblockreason": "Your IP address has been blocked because it is an open proxy.\nPlease contact your Internet service provider or technical support of your organisation and inform them of this serious security problem.",
+       "movecategorypage-warning": "<strong>Warning:</strong> You are about to move a category page. Please note that only the page will be moved and any pages in the old category will <em>not</em> be recategorised into the new one.",
+       "allmessagestext": "This is a list of system messages available in the MediaWiki namespace.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessages-filter": "Filter by customisation state:",
+       "import-error-unserialize": "Revision $2 of page \"$1\" could not be unserialised. The revision was reported to use content model $3 serialised as $4.",
+       "metadata-help": "This file contains additional information, probably added from the digital camera or scanner used to create or digitise it.\nIf the file has been modified from its original state, some details may not fully reflect the modified file.",
+       "exif-ycbcrcoefficients": "Colour space transformation matrix coefficients",
+       "exif-colorspace": "Colour space",
+       "exif-datetimedigitized": "Date and time of digitising",
+       "exif-subsectimedigitized": "DateTimeDigitised subseconds",
+       "exif-exposureprogram": "Exposure Programme",
+       "exif-licenseurl": "URL for copyright licence",
+       "exif-morepermissionsurl": "Alternative licencing information",
+       "exif-organisationinimage": "Organisation depicted",
+       "exif-exposureprogram-2": "Normal programme",
+       "exif-exposureprogram-5": "Creative programme (biased toward depth of field)",
+       "exif-exposureprogram-6": "Action programme (biased toward fast shutter speed)",
+       "exif-subjectdistance-value": "$1 metres",
+       "exif-meteringmode-2": "Centre weighted average",
+       "exif-sensingmethod-2": "One-chip colour area sensor",
+       "exif-sensingmethod-3": "Two-chip colour area sensor",
+       "exif-sensingmethod-4": "Three-chip colour area sensor",
+       "exif-sensingmethod-5": "Colour sequential area sensor",
+       "exif-sensingmethod-8": "Colour sequential linear sensor",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|metre|metres}} above sea level",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|metre|metres}} below sea level",
+       "exif-gpsspeed-k": "Kilometres per hour",
+       "exif-gpsdestdistance-k": "Kilometres",
+       "exif-ycbcrpositioning-1": "Centred",
+       "exif-iimcategory-lab": "Labour",
+       "confirmemail_invalidated": "Email address confirmation cancelled",
+       "version-license": "MediaWiki Licence",
+       "version-ext-license": "Licence",
+       "version-ext-colheader-license": "Licence",
+       "version-license-title": "Licence for $1",
+       "version-license-not-found": "No detailed licence information was found for this extension.",
+       "version-credits-summary": "We would like to recognise the following persons for their contribution to [[Special:Version|MediaWiki]].",
+       "version-license-info": "MediaWiki is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version.\n\nMediaWiki 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 Licence for more details.\n\nYou should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU General Public Licence] along with this programme; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html read it online].",
+       "feedback-error1": "Error: Unrecognised result from API"
 }
index fc47178..341f626 100644 (file)
        "viewsourcetext": "You can view and copy the source of this page:",
        "viewyourtext": "You can view and copy the source of <strong>your edits</strong> to this page:",
        "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
-       "editinginterface": "<strong>Warning:</strong> You are editing a page that is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "<strong>Warning:</strong> You are editing a page that is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.",
+       "translateinterface": "To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "This page has been protected from editing because it is included in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the \"cascading\" option turned on:\n$2",
        "namespaceprotected": "You do not have permission to edit pages in the <strong>$1</strong> namespace.",
        "customcssprotected": "You do not have permission to edit this CSS page because it contains another user's personal settings.",
        "content-model-text": "plain text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Pages using duplicate arguments in template calls",
+       "duplicate-args-category-desc": "The page contains template calls that use duplicates of arguments, such as <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "<strong>Warning:</strong> This page contains too many expensive parser function calls.\n\nIt should have less than $2 {{PLURAL:$2|call|calls}}, there {{PLURAL:$1|is now $1 call|are now $1 calls}}.",
        "expensive-parserfunction-category": "Pages with too many expensive parser function calls",
        "post-expand-template-inclusion-warning": "<strong>Warning:</strong> Template include size is too large.\nSome templates will not be included.",
        "search-result-category-size": "{{PLURAL:$1|1 member|$1 members}} ({{PLURAL:$2|1 subcategory|$2 subcategories}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(section $1)",
+       "search-category": "(category $1)",
        "search-file-match": "(matches file content)",
        "search-suggest": "Did you mean: $1",
        "search-interwiki-caption": "Sister projects",
        "gender-female": "She edits wiki pages",
        "prefs-help-gender": "Setting this preference is optional.\nThe software uses its value to address you and to mention you to others using the appropriate grammatical gender.\nThis information will be public.",
        "email": "Email",
-       "prefs-help-realname": "Real name is optional.\nIf you choose to provide it, this will be used for giving you attribution for your work.",
+       "prefs-help-realname": "Real name is optional.\nIf provided, it may be used to give you attribution for your work.",
        "prefs-help-email": "Email address is optional, but is needed for password resets, should you forget your password.",
        "prefs-help-email-others": "You can also choose to let others contact you by email through a link on your user or talk page.\nYour email address is not revealed when other users contact you.",
        "prefs-help-email-required": "Email address is required.",
        "statistics-summary": "",
        "statistics-header-pages": "Page statistics",
        "statistics-header-edits": "Edit statistics",
-       "statistics-header-views": "View statistics",
        "statistics-header-users": "User statistics",
        "statistics-header-hooks": "Other statistics",
        "statistics-articles": "Content pages",
        "statistics-files": "Uploaded files",
        "statistics-edits": "Page edits since {{SITENAME}} was set up",
        "statistics-edits-average": "Average edits per page",
-       "statistics-views-total": "Views total",
-       "statistics-views-total-desc": "Views to non-existing pages and special pages are not included",
-       "statistics-views-peredit": "Views per edit",
        "statistics-users": "Registered [[Special:ListUsers|users]]",
        "statistics-users-active": "Active users",
        "statistics-users-active-desc": "Users who have performed an action in the last {{PLURAL:$1|day|$1 days}}",
-       "statistics-mostpopular": "Most viewed pages",
        "statistics-footer": "",
        "pageswithprop": "Pages with a page property",
        "pageswithprop-summary": "",
        "unusedcategories-summary": "",
        "unusedimages": "Unused files",
        "unusedimages-summary": "",
-       "popularpages": "Popular pages",
-       "popularpages-summary": "",
        "wantedcategories": "Wanted categories",
        "wantedcategories-summary": "",
        "wantedpages": "Wanted pages",
        "pager-older-n": "{{PLURAL:$1|older 1|older $1}}",
        "suppress": "Oversight",
        "querypage-disabled": "This special page is disabled for performance reasons.",
+       "apihelp": "API help",
+       "apihelp-summary": "",
+       "apihelp-no-such-module": "Module \"$1\" not found.",
+       "apihelp-link": "[[Special:ApiHelp/$1|$2]]",
        "booksources": "Book sources",
        "booksources-summary": "",
        "booksources-search-legend": "Search for book sources",
        "accesskey-pt-mycontris": "y",
        "accesskey-pt-login": "o",
        "accesskey-pt-logout": "",
+       "accesskey-pt-createaccount": "",
        "accesskey-ca-talk": "t",
        "accesskey-ca-edit": "e",
        "accesskey-ca-addsection": "+",
        "accesskey-feed-atom": "",
        "accesskey-t-contributions": "",
        "accesskey-t-emailuser": "",
+       "accesskey-t-info": "",
        "accesskey-t-permalink": "",
        "accesskey-t-print": "p",
        "accesskey-t-upload": "u",
        "tooltip-pt-mycontris": "A list of your contributions",
        "tooltip-pt-login": "You are encouraged to log in; however, it is not mandatory",
        "tooltip-pt-logout": "Log out",
+       "tooltip-pt-createaccount": "You are encouraged to create an account and log in; however, it is not mandatory",
        "tooltip-ca-talk": "Discussion about the content page",
        "tooltip-ca-edit": "You can edit this page. Please use the preview button before saving",
        "tooltip-ca-addsection": "Start a new section",
        "tooltip-feed-atom": "Atom feed for this page",
        "tooltip-t-contributions": "A list of contributions of this user",
        "tooltip-t-emailuser": "Send an email to this user",
+       "tooltip-t-info": "More information about this page",
        "tooltip-t-upload": "Upload files",
        "tooltip-t-specialpages": "A list of all special pages",
        "tooltip-t-print": "Printable version of this page",
        "pageinfo-robot-policy": "Indexing by robots",
        "pageinfo-robot-index": "Allowed",
        "pageinfo-robot-noindex": "Disallowed",
-       "pageinfo-views": "Number of views",
        "pageinfo-watchers": "Number of page watchers",
        "pageinfo-few-watchers": "Fewer than $1 {{PLURAL:$1|watcher|watchers}}",
        "pageinfo-redirects-name": "Number of redirects to this page",
        "unknown_extension_tag": "Unknown extension tag \"$1\"",
        "duplicate-defaultsort": "<strong>Warning:</strong> Default sort key \"$2\" overrides earlier default sort key \"$1\".",
        "duplicate-displaytitle": "<strong>Warning:</strong> Display title \"$2\" overrides earlier display title \"$1\".",
+       "invalid-indicator-name": "<strong>Error:</strong> Page status indicators' <code>name</code> attribute must not be empty.",
        "version": "Version",
        "version-summary": "",
        "version-extensions": "Installed extensions",
        "revdelete-uname-unhid": "username unhidden",
        "revdelete-restricted": "applied restrictions to administrators",
        "revdelete-unrestricted": "removed restrictions for administrators",
+       "logentry-merge-merge": "$1 {{GENDER:$2|merged}} $3 into $4 (revisions up to $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moved}} page $3 to $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moved}} page $3 to $4 without leaving a redirect",
        "logentry-move-move_redir": "$1 {{GENDER:$2|moved}} page $3 to $4 over redirect",
        "api-error-stashfailed": "Internal error: Server failed to store temporary file.",
        "api-error-publishfailed": "Internal error: Server failed to publish temporary file.",
        "api-error-stasherror": "There was an error while uploading the file to stash.",
+       "api-error-stashedfilenotfound": "The stashed file was not found when attempting to upload it from the stash.",
+       "api-error-stashpathinvalid": "The path at which the stashed file should have been found was invalid.",
+       "api-error-stashfilestorage": "There was an error while storing the file in the stash.",
+       "api-error-stashzerolength": "The server could not stash the file, because it had zero length.",
+       "api-error-stashnotloggedin": "You must be logged in to save files in the upload stash.",
+       "api-error-stashwrongowner": "The file you were attempting to access in the stash does not belong to you.",
+       "api-error-stashnosuchfilekey": "The file key you were attempting to access in the stash does not exist.",
        "api-error-timeout": "The server did not respond within the expected time.",
        "api-error-unclassified": "An unknown error occurred.",
        "api-error-unknown-code": "Unknown error: \"$1\".",
index 8b1c980..458a3ea 100644 (file)
        "viewsourcetext": "Vi povas rigardi kaj kopii la fonton de la paĝo:",
        "viewyourtext": "Vi povas vidi kaj kopii la fonton de '''viaj redaktoj''' al ĉi tiu paĝo:",
        "protectedinterface": "Ĉi tiu paĝo provizas interfacan tekston por la programaro, kaj estas ŝlosita por malebligi misuzon.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
-       "editinginterface": "'''Atentu:''' Vi redaktas paĝon, kiu provizas interfacan tekston por la programaro.\nŜanĝoj de ĉi tiu teksto ŝanĝos aspekton de la interfaco por aliaj uzantoj de ĉi tiu vikio.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
+       "editinginterface": "<strong>Atentu:</strong> Vi redaktas paĝon, kiu provizas interfacan tekston por la programaro.\nŜanĝoj de ĉi tiu teksto ŝanĝos aspekton de la interfaco por aliaj uzantoj de ĉi tiu vikio.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
        "cascadeprotected": "Ĉi tiu paĝo estas protektita kontraŭ redaktado, ĉar ĝi estas inkludita en la {{PLURAL:$1|sekvan paĝon, kiu|sekvajn paĝojn, kiuj}} estas {{PLURAL:$1|protektata|protektataj}} kun la \"kaskada\" opcio ŝaltita sur:\n$2",
        "namespaceprotected": "Vi ne rajtas redakti paĝojn en la '''$1''' nomspaco.",
        "customcssprotected": "Vi ne rajtas redakti ĉi tiun CSS-paĝon, ĉar ĝi enhavas personajn alĝustigojn de alia uzanto.",
        "logdelete-selected": "{{PLURAL:$1|Selektata protokola evento|Selektataj protokolaj eventoj}}:",
        "revdelete-text-text": "Forigitaj versioj ankoraŭ restas en la versia historio, sed partoj de ilia enhavo ne estas alireblaj por la publiko.",
        "revdelete-text-file": "Forigitaj dosieraj versioj ankoraŭ restas en la dosiera historio, sed partoj de ilia enhavo ne estas alireblaj por la publiko.",
-       "revdelete-text-others": "Aliaj administrantoj sur {{SITENAME}} ankoraŭ havas aliron al la kaŝita enhavo kaj povas malforigi ĝin denove per ĉi tiu sama interfaco, tiel longe kiel aldonaj restriktoj ne estas difinitaj.",
+       "revdelete-text-others": "Aliaj administrantoj ankoraŭ havas aliron al la kaŝita enhavo kaj povas malforigi ĝin, tiel longe kiel aldonaj restriktoj ne estas difinitaj.",
        "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:\n* Ebla kalumnia informo\n* Netaŭga persona informo\n*: ''hejmaj adresoj kaj telefonnumeroj, ŝtataj identnumeroj, ktp.''",
        "revdelete-legend": "Fari videblecajn limigojn",
        "mergehistory-same-destination": "Fontaj kaj destinaj paĝoj ne povas esti la samon",
        "mergehistory-reason": "Kialo:",
        "mergelog": "Protokolo de kunigoj",
-       "pagemerge-logentry": "kunigis [[$1]] en [[$2]] (versioj ĝis $3)",
        "revertmerge": "Malkunigi",
        "mergelogpagetext": "Jen listo de la plej lastatempaj kunigoj de unu paĝhistorio en alian.",
        "history-title": "Revizio-historio de \"$1\"",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membroj}} ({{PLURAL:$2|1 subkategorio|$2 subkategorioj}}, {{PLURAL:$3|1 dosiero|$3 dosieroj}})",
        "search-redirect": "(alidirektilo $1)",
        "search-section": "(sekcio $1)",
+       "search-file-match": "(kongruas kun dosiera enhavo)",
        "search-suggest": "Ĉu vi intenciis: $1",
        "search-interwiki-caption": "Kunprojektoj",
        "search-interwiki-default": "Rezultoj de $1:",
        "searchall": "ĉiuj",
        "showingresults": "Montras {{PLURAL:$1|'''1''' trovitan|'''$1''' trovitajn}} ekde la #'''$2'''-a.",
        "showingresultsinrange": "Malsupre montriĝas {{PLURAL:$1|<strong>1</strong> rezulto|<strong>$1</strong> rezultoj}} en la intervalo #<strong>$2</strong> ĝis #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Rezulto <strong>$1</strong> el <strong>$3</strong>|Rezultoj <strong>$1 - $2</strong> el <strong>$3</strong>}}",
        "search-nonefound": "La serĉomendo rezultis kun neniuj trafoj.",
        "powersearch-legend": "Progresa serĉo",
        "powersearch-ns": "Serĉi en nomspacoj:",
        "preferences": "Preferoj",
        "mypreferences": "Preferoj",
        "prefs-edits": "Nombro de redaktoj:",
-       "prefsnologintext2": "Bonvolu $1, por ŝanĝi viajn preferojn.",
+       "prefsnologintext2": "Bonvolu ensaluti, por ŝanĝi viajn preferojn.",
        "prefs-skin": "Etoso",
        "skin-preview": "Antaŭrigardo",
        "datedefault": "Nenia prefero",
        "recentchanges-label-plusminus": "La paĝa grandeco ŝanĝiĝis je ĉi tiu nombro de bajtoj",
        "recentchanges-legend-heading": "'''Klarigo:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vidu ankaŭ [[Special:NewPages|liston de novaj paĝoj]])",
-       "rcnotefrom": "Malsupre estas ŝanĝoj ekde <strong>$2</strong> ({{PLURAL:$1|lasta|lastaj}} <strong>$1</strong>).",
+       "rcnotefrom": "Malsupre estas la {{PLURAL:$5|ŝanĝo|ŝanĝoj}} ekde <strong>$3, $4</strong> (montrante ĝis <strong>$1</strong>).",
        "rclistfrom": "Montri novajn ŝanĝojn ekde \"$3 $2\"",
        "rcshowhideminor": "$1 redaktetojn",
        "rcshowhideminor-show": "Montri",
        "license": "Permesiloj:",
        "license-header": "Permesiloj:",
        "nolicense": "Neniu elektita",
+       "licenses-edit": "Modifi opciojn de permesilo",
        "license-nopreview": "(Antaŭvido ne montrebla)",
-       "upload_source_url": " (valida, publike atingebla URL-o)",
+       "upload_source_url": " (via elektita dosiero de valida, publike atingebla URL-o)",
        "upload_source_file": "(dosiero elektita de via komputilo)",
        "listfiles-delete": "forigi",
        "listfiles-summary": "Ĉi tiu speciala paĝo montras ĉiujn alŝutitajn dosierojn.\nKiam oni filtras ĝin laŭ uzanto, nur la aktuala versio de la dosiero estos montrita.",
        "statistics": "Statistiko",
        "statistics-header-pages": "Paĝaj statistikoj",
        "statistics-header-edits": "Redaktaj statistikoj",
-       "statistics-header-views": "Vidi statistikojn",
        "statistics-header-users": "Pri la uzantaro",
        "statistics-header-hooks": "Aliaj statistikoj",
        "statistics-articles": "Enhavaj paĝoj",
        "statistics-files": "Alŝutitaj dosieroj",
        "statistics-edits": "Paĝaj redaktoj ekde {{SITENAME}} estis starigita",
        "statistics-edits-average": "Averaĝa kvanto de redaktoj je paĝo",
-       "statistics-views-total": "Vidoj entutaj",
-       "statistics-views-total-desc": "Ne inkluzivante vidojn al ne-ekzistantaj paĝoj kaj specialaj paĝoj",
-       "statistics-views-peredit": "Po rigardoj por redakto",
        "statistics-users": "Registritaj [[Special:ListUsers|uzantoj]]",
        "statistics-users-active": "Aktivaj uzantoj",
        "statistics-users-active-desc": "Uzantoj kiuj faris agon en la {{PLURAL:$1|lasta tago|lastaj $1 tagoj}}",
-       "statistics-mostpopular": "Plej ofte montrataj paĝoj",
        "pageswithprop": "Paĝoj kun paĝa atributo",
        "pageswithprop-legend": "Paĝoj kun paĝa atributo",
        "pageswithprop-text": "Ĉi tiu paĝo listigas paĝoj kiu uzas iajn paĝajn ecojn.",
        "uncategorizedtemplates": "Neenkategoriigitaj ŝablonoj",
        "unusedcategories": "Neuzitaj kategorioj",
        "unusedimages": "Neuzataj bildoj",
-       "popularpages": "Plej vizitataj paĝoj",
        "wantedcategories": "Dezirataj kategorioj",
        "wantedpages": "Dezirataj paĝoj",
        "wantedpages-badtitle": "Malvalida titolo en rezulta aro: $1",
        "pager-older-n": "{{PLURAL:$1|pli malnova 1|pli malnovaj $1}}",
        "suppress": "Superrigardo",
        "querypage-disabled": "Tiu ĉi speciala paĝo estas malfunkciigita pro rendimentaj kialoj.",
+       "apihelp-no-such-module": "Modulo \"$1\" ne estis trovita.",
        "booksources": "Libroservoj",
        "booksources-search-legend": "Serĉi librofontojn",
+       "booksources-search": "Serĉi",
        "booksources-text": "Jen ligilaro al aliaj TTT-ejoj, kiuj vendas librojn,\nkaj/aŭ informumos pri la libro ligita.\nLa {{SITENAME}} ne estas komerce ligita al tiuj vendejoj, kaj la listo ne estu\nkomprenata kiel rekomendo aŭ reklamo.",
        "booksources-invalid-isbn": "La donata ISBN verŝajne estas nevalida; kontrolu pri erara kopiado el la originala fonto.",
        "specialloguserlabel": "Faranto:",
        "delete-edit-reasonlist": "Redakti kialojn de forigo",
        "delete-toobig": "Ĉi tiu paĝo havas grandan redakto-historion, pli ol $1 {{PLURAL:$1|version|versiojn}}. Forigo de ĉi tiaj paĝoj estis limigitaj por preventi akcidentan disrompigon de {{SITENAME}}.",
        "delete-warning-toobig": "Ĉi tiu paĝo havas grandan redakto-historion, pli ol $1 {{PLURAL:$1|version|versiojn}}. Forigo de ĝi povas disrompigi operacion de {{SITENAME}}; forigu singarde.",
+       "deleteprotected": "Vi ne povas forigi ĉi tiun paĝon ĉar ĝi estis protektita.",
        "deleting-backlinks-warning": "'''Atentigo:'''\n[[Special:WhatLinksHere/{{FULLPAGENAME}}|Aliaj paĝoj]] ligas al aŭ transkludas tiun ĉi forigotan paĝon.",
        "rollback": "Restarigi antaŭan redakton",
        "rollback_short": "Malfari",
        "ipb-change-block": "Reforbari la uzanton kun ĉi tiuj preferoj",
        "ipb-confirm": "Konfirmi forbaron",
        "badipaddress": "Neniu uzanto, aŭ la IP-adreso estas misformita.",
-       "blockipsuccesssub": "Oni sukcese forbaris la adreson/nomon.",
+       "blockipsuccesssub": "Forbaro sukcesis.",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] estas forbarita. <br />\nVidu la [[Special:BlockList|liston de forbaroj]] por kontroli.",
        "ipb-blockingself": "Vi preskaŭ forbaros vin mem! Ĉu vi certas ke vi volas fari ĉi tiel?",
        "ipb-confirmhideuser": "Vi preskaŭ forbaras uzanto kun \"kaŝi uzanton\" ŝalta. Ĉi tiu kaŝi la nomon de uzanto en ĉiuj listoj ka protokoloj. Ĉu vi certas ke vi volas fari ĉi tiel?",
        "unblocked": "[[User:$1|$1]] estas restarigita.",
        "unblocked-range": "$1 estis malforbarita",
        "unblocked-id": "Forbaro $1 estas forigita.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] estis malforbarita.",
        "blocklist": "Forbaritaj uzantoj",
        "ipblocklist": "Forbaritaj uzantoj",
        "ipblocklist-legend": "Trovi forbaritan uzanton.",
        "movepagetalktext": "La movo aŭtomate kunportos la diskuto-paĝon, se tia ekzistas, '''krom se:'''\n*Vi movas la paĝon tra nomspacoj (ekz de ''Nomo'' je ''User:Nomo''),\n*Ne malplena diskuto-paĝo jam ekzistas je la nova nomo, aŭ\n*Vi malelektas la suban ŝaltilon.\n\nTiujokaze, vi nepre permane kunigu la diskuto-paĝojn se vi tion deziras.",
        "movearticle": "Alinomigi paĝon",
        "moveuserpage-warning": "'''Averto:''' Vi preskaŭ alinomigas paĝon de uzanto. Bonvolu noti ke nur la paĝo estos alinomigita kaj la uzanto mem ''ne'' estos alinomigita.",
+       "movecategorypage-warning": "<strong>Averto:</strong> Vi baldaŭ movos kategorian paĝon. Bonvolu noti ke, nur la paĝo estos movita, kaj la paĝoj en la malnova kategorio <em>ne</em> transiros en la novan kategorion.",
        "movenologintext": "Vi nepre estu registrita uzanto kaj [[Special:UserLogin|ensalutu]] por rajti movi paĝojn.",
        "movenotallowed": "Vi ne rajtas movi paĝojn.",
        "movenotallowedfile": "Vi ne havas rajton alinomigi dosierojn.",
        "cant-move-user-page": "Vi ne rajtas movi radikajn uzanto-paĝojn.",
        "cant-move-to-user-page": "Vi ne rajtas movi paĝon al uzantopaĝo (krom al uzantosubpaĝo).",
+       "cant-move-category-page": "Vi ne rajtas movi kategoriajn paĝojn.",
+       "cant-move-to-category-page": "Vi ne rajtas movi paĝon al kategoria paĝo.",
        "newtitle": "Al nova titolo",
        "move-watch": "Atenti ĉi tiun paĝon",
        "movepagebtn": "Alinomigi paĝon",
        "tooltip-feed-atom": "Atom-fonto por ĉi tiu paĝo",
        "tooltip-t-contributions": "Rigardi la liston de kontribuoj de tiu ĉi uzanto",
        "tooltip-t-emailuser": "Sendi retmesaĝon al tiu ĉi uzanto",
+       "tooltip-t-info": "Pli da informo pri ĉi tiu paĝo",
        "tooltip-t-upload": "Alŝuti bildojn aŭ dosierojn",
        "tooltip-t-specialpages": "Listo de ĉiuj specialaj paĝoj",
        "tooltip-t-print": "Printebla versio de ĉi tiu paĝo",
        "pageinfo-robot-policy": "Indeksado per robotoj",
        "pageinfo-robot-index": "Permesata",
        "pageinfo-robot-noindex": "Malpermesata",
-       "pageinfo-views": "Nombro de rigardoj",
        "pageinfo-watchers": "Nombro de paĝatentantoj",
        "pageinfo-few-watchers": "Malpli ol $1 {{PLURAL:$1|atentanto|atentantoj}}",
        "pageinfo-redirects-name": "Nombro da alidirektiloj al ĉi tiu paĝo",
        "logentry-rights-rights": "$1 ŝanĝis grupan membrecon por $3 de $4 al $5",
        "logentry-rights-rights-legacy": "$1 ŝanĝis grupan membrecon por $3",
        "logentry-rights-autopromote": "$1 estis aŭtomate {{GENDER:$2|altrangigita}} de $4 al $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|alŝutis}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|alŝutis}} novan version de $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|alŝutis}} $3",
        "rightsnone": "(nenia)",
        "revdelete-summary": "redaktoresumon",
        "mediastatistics-table-mimetype": "MIME-tipo",
        "mediastatistics-table-count": "Nombro de dosieroj",
        "mediastatistics-header-unknown": "Nekonata",
+       "mediastatistics-header-bitmap": "Rastrumaj bildoj",
+       "mediastatistics-header-drawing": "Desegnaĵoj (vektoraj bildoj)",
        "mediastatistics-header-audio": "Sonaj",
        "mediastatistics-header-video": "Videaj dosieroj",
        "mediastatistics-header-multimedia": "Multmediaj",
        "mediastatistics-header-office": "Oficejaj",
-       "mediastatistics-header-text": "Tekstaj"
+       "mediastatistics-header-text": "Tekstaj",
+       "mediastatistics-header-executable": "Plenumeblaj dosieroj",
+       "json-error-syntax": "Sintaksa eraro"
 }
index 1a36046..4ce5532 100644 (file)
                        "Amitie 10g",
                        "Eurodyne",
                        "Gleki",
-                       "Jonathan rrr"
+                       "Jonathan rrr",
+                       "Paynekiller92"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "viewsourcetext": "Puedes ver y copiar el código fuente de esta página:",
        "viewyourtext": "Puedes ver y copiar el código de <strong>tus ediciones</strong> a esta página:",
        "protectedinterface": "Esta página proporciona el texto de la interfaz del software en este wiki, y está protegida para prevenir el abuso.\nPara agregar o cambiar las traducciones para todos los wikis, por favor, usa [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
-       "editinginterface": "<strong>Advertencia:</strong> Estás editando una página usada para proporcionar el texto de la interfaz para el software. \nLos cambios en esta página afectarán la apariencia de la interfaz para los demás usuarios de este wiki. \nPara añadir o cambiar las traducciones de todos los wikis utiliza [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
+       "editinginterface": "<strong>Advertencia:</strong> Estás editando una página usada para proporcionar el texto de la interfaz para el software. \nLos cambios en esta página afectarán la apariencia de la interfaz para los demás usuarios de este wiki.",
+       "translateinterface": "Para añadir o cambiar traducciones para todos los wikis, usa [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
        "cascadeprotected": "Esta página ha sido protegida para su edición, porque está incluida en {{PLURAL:$1|la siguiente página|las siguientes páginas}}, que están protegidas con la opción de «cascada»:\n$2",
        "namespaceprotected": "No tienes permiso para editar las páginas del espacio de nombres <strong>$1</strong>.",
        "customcssprotected": "No tienes permiso para editar esta página CSS, porque contiene configuraciones personales de otro usuario.",
        "mergehistory-same-destination": "Las páginas de origen y destino no pueden ser la misma",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Registro de fusiones",
-       "pagemerge-logentry": "fusionó [[$1]] en [[$2]] (revisiones hasta $3)",
        "revertmerge": "Deshacer fusión",
        "mergelogpagetext": "Debajo está una lista de las fusiones más recientes de historial de una página en otra.",
        "history-title": "Historial de revisiones de «$1»",
        "search-result-category-size": "{{PLURAL:$1|1 miembro|$1 miembros}} ({{PLURAL:$2|1 subcategoría|$2 subcategorías}}, {{PLURAL:$3|1 fichero|$3 ficheros}})",
        "search-redirect": "(redirige desde $1)",
        "search-section": "(sección $1)",
+       "search-category": "(categoría $1)",
        "search-file-match": "(coincide con el contenido del archivo)",
        "search-suggest": "Quizás quieres buscar: $1",
        "search-interwiki-caption": "Proyectos hermanos",
        "searchall": "todos",
        "showingresults": "Abajo se {{PLURAL:$1|muestra '''1''' resultado|muestran hasta '''$1''' resultados}} comenzando por el n.º '''$2'''.",
        "showingresultsinrange": "Abajo se muestran hasta {{PLURAL:$1|<strong>1</strong> resultado|<strong>$1</strong> resultados}} en el rango #<strong>$2</strong> hasta #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Resultado <strong>$1</strong> de <strong>$3</strong>|Resultados <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "No hay resultados que cumplan los criterios de búsqueda.",
        "powersearch-legend": "Búsqueda avanzada",
        "powersearch-ns": "Buscar en los espacios de nombres:",
        "gender-female": "Femenino",
        "prefs-help-gender": "Opcional: el software utiliza esta preferencia para dirigirse a ti con el género gramatical apropiado. Esta información es pública.",
        "email": "Correo electrónico",
-       "prefs-help-realname": "El nombre real es opcional. Si decides proporcionarlo, se usará para dar atribución a tu trabajo.",
+       "prefs-help-realname": "El nombre real es opcional. Si lo proporcionas, se usará para dar atribución a tu trabajo.",
        "prefs-help-email": "La dirección de correo electrónico es opcional, pero es necesaria para el restablecimiento de tu contraseña, en caso de que la olvides.",
        "prefs-help-email-others": "También puedes permitir que otros usuarios te contacten por correo a través de un enlace en tus páginas de usuario y de discusión.\nTu dirección de correo no se revela cuando otros usuarios te contactan.",
        "prefs-help-email-required": "Es necesario proporcionar una dirección de correo electrónico.",
        "statistics": "Estadísticas",
        "statistics-header-pages": "Estadísticas de páginas",
        "statistics-header-edits": "Estadísticas de ediciones",
-       "statistics-header-views": "Estadísticas de visitas",
        "statistics-header-users": "Estadísticas de usuario",
        "statistics-header-hooks": "Otras estadísticas",
        "statistics-articles": "Páginas de contenido",
        "statistics-files": "Archivos subidos",
        "statistics-edits": "Ediciones en páginas desde que {{SITENAME}} fue instalado",
        "statistics-edits-average": "Media de ediciones por página",
-       "statistics-views-total": "Visitas totales",
-       "statistics-views-total-desc": "No se incluyen accesos a páginas no existentes ni páginas especiales",
-       "statistics-views-peredit": "Visitas por edición",
        "statistics-users": "[[Special:ListUsers|Usuarios]] registrados",
        "statistics-users-active": "Usuarios activos",
        "statistics-users-active-desc": "Usuarios que han ejecutado una acción en {{PLURAL:$1|el último día|los últimos $1 días}}",
-       "statistics-mostpopular": "Páginas más vistas",
        "pageswithprop": "Páginas con una propiedad de página",
        "pageswithprop-legend": "Páginas con una propiedad de página",
        "pageswithprop-text": "Esta página muestra las páginas que usan la propiedad de una página en particular",
        "uncategorizedtemplates": "Plantillas sin categorizar",
        "unusedcategories": "Categorías sin uso",
        "unusedimages": "Imágenes sin uso",
-       "popularpages": "Páginas populares",
        "wantedcategories": "Categorías requeridas",
        "wantedpages": "Páginas requeridas",
        "wantedpages-badtitle": "Título inválido en conjunto de resultados: $1",
        "pager-older-n": "{{PLURAL:$1|1 anterior|$1 anteriores}}",
        "suppress": "Supresor de ediciones",
        "querypage-disabled": "Esta página especial está deshabilitada por motivos de rendimiento.",
+       "apihelp": "Ayuda de la API",
+       "apihelp-no-such-module": "No se encontró el módulo \"$1\".",
        "booksources": "Fuentes de libros",
        "booksources-search-legend": "Buscar fuentes de libros",
        "booksources-search": "Buscar",
        "unblocked": "[[User:$1|$1]] ha sido {{GENDER:$1|desbloqueado|desbloqueada}}",
        "unblocked-range": "$1 ha sido desbloqueado",
        "unblocked-id": "Se ha eliminado el bloqueo $1",
+       "unblocked-ip": "Se ha desbloqueado a [[Special:Contributions/$1|$1]].",
        "blocklist": "Usuarios bloqueados",
        "ipblocklist": "Usuarios bloqueados",
        "ipblocklist-legend": "Encontrar a un usuario bloqueado",
        "tooltip-feed-atom": "Sindicación Atom de esta página",
        "tooltip-t-contributions": "Lista de contribuciones de este usuario",
        "tooltip-t-emailuser": "Enviar un mensaje de correo a este usuario",
+       "tooltip-t-info": "Más información sobre esta página",
        "tooltip-t-upload": "Subir imágenes o archivos multimedia",
        "tooltip-t-specialpages": "Lista de todas las páginas especiales",
        "tooltip-t-print": "Versión imprimible de esta página",
        "pageinfo-robot-policy": "Indización por robots",
        "pageinfo-robot-index": "Permitido",
        "pageinfo-robot-noindex": "No permitido",
-       "pageinfo-views": "Número de vistas",
        "pageinfo-watchers": "Número de usuarios que vigilan la página",
        "pageinfo-few-watchers": "Menos de $1 {{PLURAL:$1|vigilante|vigilantes}}",
        "pageinfo-redirects-name": "Número de redirecciones a esta página",
        "log-name-pagelang": "Registro de cambios en idiomas",
        "log-description-pagelang": "Este es un registro de los cambios en los idiomas de las páginas.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} el idioma de la página «$3» del $4 al $5.",
-       "default-skin-not-found": "¡Oops! La apariencia por defecto de la wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, no está disponible.\n\nLa instalación parece poseer las siguientes opciones de apariencia. Por favor revise [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] para mayor información sobre cómo configurarla y seleccionar la apariencia por defecto.\n\n$2\n\n; Si acaba de instalar MediaWiki:\n: Probablemente la haya instalado desde git, o directamente desde el código fuente usando algún otro método. Esto es lo esperado. Intente instalar algunos sets de apariencia desde [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory]:\n:* Descargando [https://www.mediawiki.org/wiki/Download el instalador tarball], el cual contiene varios sets de apariencia y extensiones. Puede copiar y pegar el directorio <code>skins/</code> desde ahi.\n:* Clonando uno de los repositorios en <code>mediawiki/skins/*</code> via git dentro del directorio <code>skins/</code> de su instaación de MediaWiki.\n: Haciendo esto no debería interferir con su repositorio git si usted es un desarrollador de MediaWiki.\n\n; Si acaba de actualizar MediaWiki:\n: MediaWiki 1.24 y versiones posteriores ya no tiene habilitada la actualización de apariencia (revise [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Puede pegar las siguientes lineas <code>LocalSettings.php</code> para habilitar todos los sets de apariencia que haya configurado:\n\n<pre>$3</pre>\n\n; Si acaba de modificar <code>LocalSettings.php</code>:\n: Compruebe detenidamente posibles errores tipográficos en los nombres de los sets de apariencias.",
-       "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki (<code>$wgDefaultSkin</code>), <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto es lo esperado. MediaWiki 1.24 y versiones posteriores no incluyen ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], siguiendo el siguiente procedimiento:\n:* Descarga el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Clonando alguno de los repositorios en <code>mediawiki/skins/*</code> usando git en el directorio <code>skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] para información sobre cómo habilitar las apariencias y seleccionar la apariencia predeterminada.",
+       "default-skin-not-found": "¡Oops! La apariencia predeterminada de la wiki, definida en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nLa instalación parece poseer las siguientes apariencias. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para mayor información sobre cómo configurar y seleccionar la apariencia predeterminada.\n\n$2\n\n; Si acabas de instalar MediaWiki:\n: Probablemente la hayas instalado desde git, o directamente desde el código fuente usando algún otro método. Esto es lo esperado. Intenta instalar algunas apariencias desde [https://www.mediawiki.org/wiki/Category:All_skins el directorio de apariencias de mediawiki.org] ya sea:\n:* Descargando [https://www.mediawiki.org/wiki/Download el instalador tarball], el cual contiene varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Clonando uno de los repositorios en <code>mediawiki/skins/*</code> via git dentro del directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio git si eres un desarrollador de MediaWiki.\n\n; Si acabas de actualizar MediaWiki:\n: MediaWiki 1.24 y versiones posteriores ya no tiene habilitada la actualización de apariencia (revisa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Puedes pegar las siguientes líneas en <code>LocalSettings.php</code> para habilitar todas las apariencias instaladas:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabas de modificar <code>LocalSettings.php</code>:\n: Comprueba detenidamente posibles errores tipográficos en los nombres de las apariencias.",
+       "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code>$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto es lo esperado. MediaWiki 1.24 y versiones posteriores no incluyen ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], siguiendo el siguiente procedimiento:\n:* Descarga el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Clonando alguno de los repositorios en <code>mediawiki/skins/*</code> usando git en el directorio <code dir=\"ltr\">skins/</code> de tu instalación de MediaWiki.\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para información sobre cómo habilitar las apariencias y seleccionar la predeterminada.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activado)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactivado''')",
        "mediastatistics": "Estadísticas de multimedia",
        "json-error-ctrl-char": "Error de carácter de control, posiblemente codificada incorrectamente",
        "json-error-syntax": "Error de sintaxis",
        "json-error-utf8": "Los caracteres UTF-8 tienen errores de formato; probablemente la codificación es incorrecta.",
-       "json-error-inf-or-nan": "Uno o más valores NAN o INF en el valor a ser codificado",
-       "json-error-unsupported-type": "Fue dado un valor de un tipo que no puede ser codificado"
+       "json-error-inf-or-nan": "Hay uno o más valores «NAN» o «INF» en el valor que se codificará",
+       "json-error-unsupported-type": "Se proporcionó un valor en un tipo que no se puede codificar"
 }
index aca2b46..e5804b1 100644 (file)
@@ -66,7 +66,7 @@
        "tog-prefershttps": "Kasuta sisselogimisel alati turvalist ühendust",
        "underline-always": "Alati",
        "underline-never": "Mitte kunagi",
-       "underline-default": "Kujunduse või võrgulehitseja vaikeväärtus",
+       "underline-default": "Kujunduse või brauseri vaikeväärtus",
        "editfont-style": "Redigeerimisala kirjatüüp:",
        "editfont-default": "Veebilehitseja vaikesäte",
        "editfont-monospace": "Püsisammuga font",
        "viewsourcetext": "Saad vaadata ja kopeerida lehekülje lähteteksti:",
        "viewyourtext": "Saad vaadata ja kopeerida sellel leheküljel tehtud '''enda muudatuste '''lähteteksti:",
        "protectedinterface": "Sellel leheküljel on selle viki tarkvara kasutajaliidese tekst. Väärtarvituse vältimiseks on lehekülg kaitstud.\nEt lisada ja muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [//translatewiki.net/ translatewiki.net].",
-       "editinginterface": "'''Hoiatus:''' Redigeerid tarkvara kasutajaliidese tekstiga lehekülge.\nMuudatused siin mõjutavad kõikide selle viki kasutajate kasutajaliidest.\nEt lisada ja muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "<strong>Hoiatus:</strong> Redigeerid lehekülge, mille teksti kasutatakse tarkvaraliideses.\nMuudatused siin mõjutavad kõikide selle viki kasutajate kasutajaliidest.",
+       "translateinterface": "Et lisada või muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "See lehekülg on muutmise eest kaitstud, sest see on osa {{PLURAL:$1|järgmisest leheküljest|järgmistest lehekülgedest}}, mis on kaskaadkaitse all:\n$2",
        "namespaceprotected": "Sul pole õigust redigeerida lehekülgi nimeruumis '''$1'''.",
        "customcssprotected": "Sul pole õigust seda CSS-lehekülge redigeerida, sest see sisaldab teise kasutaja isiklikke sätteid.",
        "content-model-text": "lihttekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Leheküljed, kus mallikutses on topeltargument",
+       "duplicate-args-category-desc": "Lehekülg sisaldab mallikutseid, kus mõnd argumenti on kasutatud mitu korda, näiteks <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> või <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Hoiatus:''' See lehekülg kasutab liialt palju aeglustavaid laiendusfunktsioone. Neid võiks kasutada vähem kui {{PLURAL:$2|ühel|$2}} korral, praegu on kasutatud {{PLURAL:$1|ühel|$1}} korral.",
        "expensive-parserfunction-category": "Leheküljed, kus on liiga palju kulukaid parserifunktsioone",
        "post-expand-template-inclusion-warning": "'''Hoiatus:''' Väljakutsutavate mallide hulk on liiga suur, mõningaid malle ei näidata.",
        "mergehistory-same-destination": "Allik- ja sihtlehekülg ei saa olla samad.",
        "mergehistory-reason": "Põhjus:",
        "mergelog": "Liitmislogi",
-       "pagemerge-logentry": "liitis lehekülje [[$1]] leheküljega [[$2]] (kuni redaktsioonini $3)",
        "revertmerge": "Tühista liitmine",
        "mergelogpagetext": "Allpool on hiljuti üksteisega liidetud leheküljeajalugude logi.",
        "history-title": "Lehekülje \"$1\" muudatuste ajalugu",
        "search-result-category-size": "{{PLURAL:$1|1 lehekülg|$1 lehekülge}} ({{PLURAL:$2|1 alamkategooria|$2 alamkategooriat}}, {{PLURAL:$3|1 fail|$3 faili}})",
        "search-redirect": "(ümbersuunamine $1)",
        "search-section": "(alaosa $1)",
+       "search-category": "(kategooria \"$1\")",
        "search-file-match": "(vastab faili sisule)",
        "search-suggest": "Kas mõtlesid: $1",
        "search-interwiki-caption": "Sõsarprojektid",
        "gender-female": "Naine",
        "prefs-help-gender": "Selle eelistuse määramine on valikuline.\nTarkvara kasutab valitud väärtust mõnes keeles, et pöörduda sinu poole ja mainida sind teistele, kasutades soole vastavat sõna või sõnavormi.\nSee teave on avalik.",
        "email": "E-post",
-       "prefs-help-realname": "Vabatahtlik. Kui otsustad päris nime avaldada, kasutatakse seda sinu kaastöö seostamiseks sinuga.",
+       "prefs-help-realname": "Tegelik nimi on valikuline.\nKui avaldatud, võidakse seda kasutada sinu kaastöö seostamiseks sinuga.",
        "prefs-help-email": "E-posti aadressi sisestamine pole kohustuslik, kuid võimaldab sul tellida parooli meeldetuletuse, kui peaksid oma parooli unustama.",
        "prefs-help-email-others": "Võid ka paluda teistel sinu kasutaja- või aruteluleheküljel sinuga ühendust võtta, selle asemel, et peaksid oma isikuandmeid avaldama.",
        "prefs-help-email-required": "E-posti aadress on vajalik.",
        "statistics": "Arvandmestik",
        "statistics-header-pages": "Lehekülgede arvandmed",
        "statistics-header-edits": "Redigeerimise arvandmed",
-       "statistics-header-views": "Vaatamise statistika",
        "statistics-header-users": "Kasutajate arvandmed",
        "statistics-header-hooks": "Muud arvandmed",
        "statistics-articles": "Sisulehekülgi",
        "statistics-files": "Üleslaaditud faile",
        "statistics-edits": "Redigeerimisi alates {{GRAMMAR:genitive|{{SITENAME}}}} loomisest",
        "statistics-edits-average": "Keskmiselt redigeerimisi lehekülje kohta",
-       "statistics-views-total": "Lehekülje vaatamisi kokku",
-       "statistics-views-total-desc": "Olematute lehekülgede või erilehekülgede vaatamised on välja arvatud",
-       "statistics-views-peredit": "Vaatamisi redaktsiooni kohta",
        "statistics-users": "Registreeritud [[Special:ListUsers|kasutajaid]]",
        "statistics-users-active": "Aktiivseid kasutajaid",
        "statistics-users-active-desc": "Kasutajad, kes on viimase {{PLURAL:$1|päeva|$1 päeva}} jooksul tegutsenud",
-       "statistics-mostpopular": "Enim vaadatud leheküljed",
        "pageswithprop": "Leheatribuudiga leheküljed",
        "pageswithprop-legend": "Leheatribuudiga leheküljed",
        "pageswithprop-text": "Sellel leheküljel on loetletud mõnd leheatribuuti kasutavad leheküljed.",
        "uncategorizedtemplates": "Kategoriseerimata mallid",
        "unusedcategories": "Kasutamata kategooriad",
        "unusedimages": "Kasutamata failid",
-       "popularpages": "Loetumad leheküljed",
        "wantedcategories": "Kõige oodatumad kategooriad",
        "wantedpages": "Kõige oodatumad leheküljed",
        "wantedpages-badtitle": "Tulemuste seas on vigane pealkiri: $1",
        "pager-older-n": "{{PLURAL:$1|vanem 1|vanemad $1}}",
        "suppress": "Varjamine",
        "querypage-disabled": "See erilehekülg on keelatud, et jõudlust hoida.",
+       "apihelp": "API abi",
+       "apihelp-no-such-module": "Moodulit \"$1\" ei leitud.",
        "booksources": "Raamatuotsimine",
        "booksources-search-legend": "Raamatuotsimine",
        "booksources-search": "Otsi",
        "noindex-category-desc": "Robotid ei indekseeri lehekülge, sest sellel on võlusõna <code><nowiki>__NOINDEX__</nowiki></code> ja lehekülg on nimeruumis, kus see silt on lubatud.",
        "index-category-desc": "Leheküljel on <code><nowiki>__INDEX__</nowiki></code> ja lehekülg on nimeruumis, kus see silt on lubatud ning seetõttu indekseerivad robotid lehekülge seal, kus nad muidu seda ei teeks.",
        "post-expand-template-inclusion-category-desc": "Kõigi mallide hõrendamise järel on lehekülg suurem kui <code>$wgMaxArticleSize</code>, mistõttu jäid mõned mallid hõrendamata.",
-       "post-expand-template-argument-category-desc": "Malli argumendi (midagi kolmekordsete looksulgude vahel, näiteks <code>{{{Foo}}})</code> hõrendamise järel on lehekülg suurem kui <code>$wgMaxArticleSize</code>.",
+       "post-expand-template-argument-category-desc": "Malli argumendi (midagi kolmekordsete looksulgude vahel, näiteks <code>{{{Foo}}}</code>) hõrendamise järel on lehekülg suurem kui <code>$wgMaxArticleSize</code>.",
        "expensive-parserfunction-category-desc": "Lehekülg kasutab liiga palju kulukaid parserifunktsioone nagu <code>#ifexist</code>. Vaata [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit dokumentatsiooni].",
        "broken-file-category-desc": "Leheküljel on katkine pildilink, millega manustatakse fail, mida pole olemas.",
        "hidden-category-category-desc": "Selle kategooria leheküljel on <code><nowiki>__HIDDENCAT__</nowiki></code>, mis vaikimisi ei lase näidata seda kategooriat lehekülgedel kategoorialinkide kastis.",
        "tooltip-pt-preferences": "Sinu eelistused",
        "tooltip-pt-watchlist": "Loend lehekülgedest, mille muudatusi jälgid",
        "tooltip-pt-mycontris": "Sinu kaastööde loend",
-       "tooltip-pt-login": "Me julgustame teid sisse logima, kuid see pole kohustuslik.",
+       "tooltip-pt-login": "See pole küll kohustuslik, aga sul tasub sisse logida.",
        "tooltip-pt-logout": "Logi välja",
+       "tooltip-pt-createaccount": "See pole küll kohustuslik, aga sul tasub konto luua ja sisse logida.",
        "tooltip-ca-talk": "Selle artikli arutelu",
        "tooltip-ca-edit": "Sa saad seda lehekülge muuta. Palun kasuta enne salvestamist eelvaadet.",
        "tooltip-ca-addsection": "Lisa uus alaosa",
        "tooltip-feed-atom": "Selle lehekülje Atom-voog",
        "tooltip-t-contributions": "Kuva selle kasutaja kaastöö",
        "tooltip-t-emailuser": "Saada sellele kasutajale e-kiri",
+       "tooltip-t-info": "Lisateave selle lehekülje kohta",
        "tooltip-t-upload": "Laadi faile üles",
        "tooltip-t-specialpages": "Erilehekülgede loend",
        "tooltip-t-print": "Selle lehe trükiversioon",
        "pageinfo-robot-policy": "Robotindekseering",
        "pageinfo-robot-index": "Lubatud",
        "pageinfo-robot-noindex": "Keelatud",
-       "pageinfo-views": "Vaatamiste arv",
        "pageinfo-watchers": "Lehekülje jälgijate arv",
        "pageinfo-few-watchers": "Alla {{PLURAL:$1|ühe jälgija|$1 jälgija}}",
        "pageinfo-redirects-name": "Sellele leheküljele suunavate lehekülgede arv",
        "unknown_extension_tag": "Tundmatu lisa silt \"$1\".",
        "duplicate-defaultsort": "'''Hoiatus:''' Järjestamisvõti \"$2\" tühistab eespool oleva järjestamisvõtme \"$1\".",
        "duplicate-displaytitle": "<strong>Hoiatus:</strong> Kuvatava pealkirjaga \"$2\" kirjutatakse üle varasem kuvatav pealkiri \"$1\".",
+       "invalid-indicator-name": "<strong>Tõrge:</strong> Lehekülje olekunäidu juures ei tohi atribuudi <code>name</code> väärtus puududa.",
        "version": "Versioon",
        "version-extensions": "Paigaldatud lisad",
        "version-skins": "Paigaldatud kujundused",
        "revdelete-uname-unhid": "nähtavaks tehti kasutajanimi",
        "revdelete-restricted": "kehtestati piirangud administraatoritele",
        "revdelete-unrestricted": "eemaldati administraatoritelt piirangud",
+       "logentry-merge-merge": "$1 {{GENDER:$2|liitis}} lehekülje $3 leheküljega $4 (kuni redaktsioonini $5)",
        "logentry-move-move": "$1 {{GENDER:$2|teisaldas}} lehekülje $3 pealkirja $4 alla",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|teisaldas}} lehekülje $3 pealkirja $4 alla ümbersuunamist maha jätmata",
        "logentry-move-move_redir": "$1 {{GENDER:$2|teisaldas}} lehekülje $3 ümbersuunamise $4 asemele",
        "api-error-stashfailed": "Sisetõrge: Serveril ei õnnestunud ajutist faili talletada.",
        "api-error-publishfailed": "Sisetõrge: Serveril ebaõnnestus ajutise faili avaldamine.",
        "api-error-stasherror": "Selle faili hoidlasse üleslaadimisel ilmnes tõrge.",
+       "api-error-stashedfilenotfound": "Algses hoidlas talletatud faili ei leitud, kui seda sealt üles püüti laadida.",
+       "api-error-stashpathinvalid": "Failitee, kus algse hoidla fail pidanuks leiduma, oli vigane.",
+       "api-error-stashfilestorage": "Faili algsesse hoidlasse talletamisel esines tõrge.",
+       "api-error-stashzerolength": "Server ei saanud faili algses hoidlas talletada, sest fail on tühi.",
+       "api-error-stashnotloggedin": "Pead olema sisse logitud, et salvestada faile üleslaadimise algsesse hoidlasse.",
+       "api-error-stashwrongowner": "Fail, mille juurde algses hoidlas üritasid pääseda, ei kuulu sulle.",
+       "api-error-stashnosuchfilekey": "Failivõtit, mille juurde algses hoidlas üritasid pääseda, pole olemas.",
        "api-error-timeout": "Server ei vastanud oodatud aja sees.",
        "api-error-unclassified": "Ilmnes teadmata tõrge.",
        "api-error-unknown-code": "Teadmata tõrge: \"$1\"",
        "mediastatistics-header-office": "Kontoritarkvara failid",
        "mediastatistics-header-text": "Tekstifailid",
        "mediastatistics-header-executable": "Täitmisfailid",
-       "mediastatistics-header-archive": "Tihendatud vormingud"
+       "mediastatistics-header-archive": "Tihendatud vormingud",
+       "json-warn-trailing-comma": "$1 lõpukoma eemaldati JSON-ist.",
+       "json-error-unknown": "JSON-iga oli probleem. Tõrge: $1",
+       "json-error-depth": "Suurim võimalik pinusügavus on ületatud.",
+       "json-error-state-mismatch": "Vigane või väärdunud JSON",
+       "json-error-ctrl-char": "Juhtmärgi tõrge; see võib olla valesti kodeeritud",
+       "json-error-syntax": "Süntaksitõrge",
+       "json-error-utf8": "Väärdunud UTF-8 märgid; need võivad olla valesti kodeeritud",
+       "json-error-recursion": "Vähemalt üks rekursiivne viide kodeeritavas väärtuses",
+       "json-error-inf-or-nan": "Vähemalt üks NAN- või INF-väärtus kodeeritavas väärtuses",
+       "json-error-unsupported-type": "Ette tuli tüüp, mille väärtust ei saa kodeerida"
 }
index 9fb339c..294d230 100644 (file)
        "edit-gone-missing": "Ezin da orria eguneratu. Ezabatu omen dute.",
        "edit-conflict": "Aldaketa gatazka.",
        "edit-no-change": "Zure edizioa baztertu da testua aldatu ez duzulako.",
+       "postedit-confirmation-created": "Orrialdea sortu da.",
+       "postedit-confirmation-restored": "Orrialdea leheneratua izan da.",
        "postedit-confirmation-saved": "Zure aldaketa gorde da.",
        "edit-already-exists": "Ezin izan da orri berria sortu.\nJada existitzen da.",
        "defaultmessagetext": "Testu lehenetsia",
        "mergehistory-same-destination": "Jatorri eta helmugako orriak ezin dira berdinak izan",
        "mergehistory-reason": "Arrazoia:",
        "mergelog": "Bateratze erregistroa",
-       "pagemerge-logentry": "[[$1]] [[$2]](r)ekin batu da ($3(e)raino berrikuspenak)",
        "revertmerge": "Bereiztu",
        "mergelogpagetext": "Jarraian dagoen zerrendak orrialde baten historiatik beste batera egindako azken bateratzeak erakusten ditu.",
        "history-title": "«$1» orriaren historia berrikuspena",
        "rcnotefrom": "Jarraian azaltzen diren aldaketak data honetatik aurrerakoak dira: <b>$2</b> (gehienez <b>$1</b> erakusten dira).",
        "rclistfrom": "Erakutsi $3 $2 ondorengo aldaketa berriak",
        "rcshowhideminor": "$1 aldaketa txikiak",
+       "rcshowhideminor-show": "Erakutsi",
+       "rcshowhideminor-hide": "Ezkutatu",
        "rcshowhidebots": "$1 bot-ak",
-       "rcshowhideliu": "$1 erabiltzaile erregistratuak",
+       "rcshowhidebots-show": "Erakutsi",
+       "rcshowhidebots-hide": "Ezkutatu",
+       "rcshowhideliu": "$1 erregistratutako erabiltzaileak",
+       "rcshowhideliu-show": "Erakutsi",
+       "rcshowhideliu-hide": "Ezkutatu",
        "rcshowhideanons": "$1 erabiltzaile anonimoak",
+       "rcshowhideanons-show": "Erakutsi",
+       "rcshowhideanons-hide": "Ezkutatu",
        "rcshowhidepatr": "$1 patruilatutako aldaketak",
+       "rcshowhidepatr-show": "Erakutsi",
+       "rcshowhidepatr-hide": "Ezkutatu",
        "rcshowhidemine": "$1 nire ekarpenak",
+       "rcshowhidemine-show": "Erakutsi",
+       "rcshowhidemine-hide": "Ezkutatu",
        "rclinks": "Erakutsi azken $2 egunetako $1 aldaketak<br />$3",
        "diff": "ezb",
        "hist": "hist",
        "randomincategory": "Kategoriako ausazko orrialdea",
        "randomincategory-invalidcategory": "\"$1\" ez da kategoria izen baliagarri bat.",
        "randomincategory-nopages": "Ez dago orrialderik [[:Category:$1|$1]] kategorian.",
+       "randomincategory-category": "Kategoria:",
        "randomredirect": "Ausazko birbideratzea",
        "randomredirect-nopages": "Ez dago birzuzenketarik \"$1\" izen-tartean.",
        "statistics": "Estatistikak",
        "statistics-header-pages": "Orrialdeen estatistikak",
        "statistics-header-edits": "Aldaketen estatistikak",
-       "statistics-header-views": "Ikustaldien estatistikak",
        "statistics-header-users": "Erabiltzaile estatistikak",
        "statistics-header-hooks": "Beste estatistikak",
        "statistics-articles": "Edukiak dituzten orrialdeak",
        "statistics-files": "Igotako fitxategiak",
        "statistics-edits": "{{SITENAME}} sortu zenetik eginiko aldaketa kopurua",
        "statistics-edits-average": "Bataz-besteko aldaketak orrialdeko",
-       "statistics-views-total": "Ikusitako orrialdeak guztira",
-       "statistics-views-peredit": "Ikusitako orrialdeak aldaketa bakoitzeko",
        "statistics-users": "Izen-emandako [[Special:ListUsers|lankideak]]",
        "statistics-users-active": "Lankide aktiboak",
        "statistics-users-active-desc": "Aurreko {{PLURAL:$1|egunean|egunetan}} jardueraren bat gauzatu duten erabiltzaileak",
-       "statistics-mostpopular": "Orri bisitatuenak",
        "pageswithprop": "Orrialde propietatea duten orrialdeak",
        "pageswithprop-legend": "Orrialde propietatea duten orrialdeak",
        "pageswithprop-prop": "Ezaugarriaren izena:",
        "uncategorizedtemplates": "Sailkatu gabeko txantiloiak",
        "unusedcategories": "Erabili gabeko kategoriak",
        "unusedimages": "Erabili gabeko fitxategiak",
-       "popularpages": "Orrialde bisitatuenak",
        "wantedcategories": "Eskatutako kategoriak",
        "wantedpages": "Eskatutako orrialdeak",
        "wantedpages-badtitle": "Izenburu okerra hautatutako emaitzetan: $1",
        "wlheader-enotif": "Posta bidezko ohartarazpena gaituta dago.",
        "wlheader-showupdated": "Bisitatu zenituen azken alditik aldaketak izan dituzten orrialdeak '''beltzez''' nabarmenduta daude.",
        "wlnote": "Jarraian {{PLURAL:$2|ikus daiteke azken orduko|ikus daitezke azken '''$2''' orduetako}} azken {{PLURAL:$1|aldaketa|'''$1''' aldaketak}}, $3, $4 gisa.",
-       "wlshowlast": "Erakutsi azken $1 orduak $2 egunak",
+       "wlshowlast": "Erakutsi azken $1 orduak, azken $2 egunak",
        "watchlist-options": "Jarraitze-zerrendaren aukerak",
        "watching": "Zerrendan gehitzen...",
        "unwatching": "Zerrendatik kentzen...",
        "pageinfo-robot-policy": "Errobotak indexatzea egiten",
        "pageinfo-robot-index": "Baimendua",
        "pageinfo-robot-noindex": "Debekatua",
-       "pageinfo-views": "Bistaratze-kopurua",
        "pageinfo-watchers": "Orriaren jarraitzaileen kopurua",
        "pageinfo-few-watchers": "{{PLURAL:$1|Ikusle bat|$1 ikusle}} baino gutxiago",
        "pageinfo-redirects-name": "Orri honetara dakarten birzuzenketak",
        "version-hook-name": "Estentsioaren izena",
        "version-hook-subscribedby": "Hauen harpidetzarekin",
        "version-version": "(Bertsioa $1)",
+       "version-no-ext-name": "[izenik gabe]",
        "version-license": "MediaWiki Lizentzia",
        "version-ext-license": "Lizentzia",
        "version-ext-colheader-name": "Luzapena",
        "revdelete-restricted": "administratzaileentzako mugak ezarri dira",
        "revdelete-unrestricted": "administratzaileentzako mugak kendu dira",
        "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-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, birbideratze bat gainidatzita, birbideratzerik utzi gabe",
        "logentry-patrol-patrol": "$1(e)k $3 orrialdearen $4 berrikuzpena patruilatutzat {{GENDER:$2|markatu}} du",
        "expand_templates_remove_comments": "Iruzkinak kendu",
        "expand_templates_remove_nowiki": "Ezabatu <nowiki> etiketen emaitzak",
        "expand_templates_generate_xml": "Erakutsi XML parse zuhaitza",
-       "expand_templates_preview": "Aurreikusi"
+       "expand_templates_preview": "Aurreikusi",
+       "pagelang-language": "Hizkuntza",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 byte}} ($2; %$3)",
+       "mediastatistics-table-count": "Fitxategi kopurua",
+       "mediastatistics-header-video": "Bideoak",
+       "json-error-syntax": "Sintaxi-errorea"
 }
index 4c90782..414ad12 100644 (file)
@@ -6,7 +6,8 @@
                        "The Evil IP address",
                        "Urhixidur",
                        "Xuacu",
-                       "아라"
+                       "아라",
+                       "Babanwalia"
                ]
        },
        "tog-underline": "Surrayal atihus:",
        "qbedit": "Eital",
        "qbpageoptions": "Esta páhina",
        "qbmyoptions": "Las mis páhinas",
-       "faq": "FAQ",
+       "faq": "ਆਮ ਸੁਆਲ਼",
        "faqpage": "Project:FAQ",
        "actions": "Acionis",
        "namespaces": "Espáciu nombris",
        "mergehistory-comment": "Mesturau [[:$1]] en [[:$2]]: $3",
        "mergehistory-reason": "Razón:",
        "mergelog": "Rustrihu e fusionis",
-       "pagemerge-logentry": "S'á uñificau [[$1]] en [[$2]] (hata la revisión $3)",
        "revertmerge": "Desuñifical",
        "mergelogpagetext": "Embahu se muestra una lista colas úrtimas uñificacionis d'estorialis.",
        "history-title": "Estorial de revisionis de \"$1\"",
        "statistics": "Estaísticas",
        "statistics-header-pages": "Estaísticas de la página",
        "statistics-header-edits": "Estaísticas d'eición",
-       "statistics-header-views": "Guipal estaísticas",
        "statistics-header-users": "Estaísticas d´usuáriu",
        "statistics-pages": "Páginas",
        "statistics-pages-desc": "Tolas páginas nel wiki, encruyendu carabas, redirecionis...",
        "statistics-users": "[[Special:ListUsers|Usuárius rustrius]]",
        "statistics-users-active": "Ussuárius ativus",
        "statistics-users-active-desc": "Ussuárius que aigan hechu anguna ación {{PLURAL:$1|nel úrtimu dia|enus úrtimus $1 dias}}",
-       "statistics-mostpopular": "Páhinas mas visoreás",
        "doubleredirects": "Redirecionis dobris",
        "brokenredirects": "Redirecionis eschangás",
        "brokenredirectstext": "Las siguientis redirecionis atijan a páginas que nu dessistin:",
        "uncategorizedtemplates": "Prantillas sin categoria",
        "unusedcategories": "Categorias abaldonás",
        "unusedimages": "Archivus abaldonaus",
-       "popularpages": "Páhinas polularis",
        "wantedcategories": "Categorias deseás",
        "wantedpages": "Páhinas deseás",
        "wantedfiles": "Archivus nedessitaus",
index e2e5c2b..f79f369 100644 (file)
                        "Oldstoneage",
                        "Omid.koli",
                        "Alirezaaa",
-                       "Mogoeilor"
+                       "Mogoeilor",
+                       "Hosseinblue"
                ]
        },
-       "tog-underline": "خطکشیدن زیر پیوندها:",
+       "tog-underline": "خط کشیدن زیر پیوندها:",
        "tog-hideminor": "تغییرات جزئی از فهرست تغییرات اخیر پنهان شوند",
        "tog-hidepatrolled": "ویرایش‌های گشت‌خورده از فهرست تغییرات اخیر پنهان شوند",
        "tog-newpageshidepatrolled": "صفحه‌های گشت‌خورده از فهرست صفحه‌های تازه پنهان شوند",
        "viewsourcetext": "می‌توانید متن مبدأ این صفحه را مشاهده کنید یا از آن نسخه بردارید:",
        "viewyourtext": "می‌توانید کد مبدأ '''ویرایش‌هایتان''' در این صفحه را ببینید و کپی کنید:",
        "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی برای واسط کاربر این نرم‌افزار در این ویکی است و به منظور پیشگیری از خرابکاری محافظت شده‌است.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
-       "editinginterface": "'''هشدار:''' صفحه‌ای که ویرایش می‌کنید شامل متنی است که در واسط کاربر این نرم‌افزار به کار رفته‌است.\nتغییر این صفحه منجر به تغییر ظاهر واسط کاربر این نرم‌افزار برای دیگر کاربران خواهد شد.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
+       "editinginterface": "<strong>هشدار:</strong> صفحه‌ای که ویرایش می‌کنید شامل متنی است که در واسط کاربر این نرم‌افزار به کار رفته‌است.\nتغییر این صفحه منجر به تغییر ظاهر واسط کاربر این نرم‌افزار برای دیگر کاربران خواهد شد.",
+       "translateinterface": "برای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
        "cascadeprotected": "این صفحه در مقابل ویرایش محافظت شده‌است چون در {{PLURAL:$1|صفحهٔ|صفحه‌های}} محافظت‌شدهٔ زیر که گزینهٔ «آبشاری» در {{PLURAL:$1|آن|آن‌ها}} انتخاب شده قرار گرفته‌است:\n$2",
        "namespaceprotected": "شما اجازهٔ ویرایش صفحه‌های فضای نام '''$1''' را ندارید.",
        "customcssprotected": "شما اجازهٔ ویرایش این صفحهٔ سی‌اس‌اس را ندارید، زیرا حاوی تنظیم‌های شخصی یک کاربر دیگر است.",
        "content-model-text": "متنی ساده",
        "content-model-javascript": "جاوااسکریپت",
        "content-model-css": "سی‌اس‌اس",
+       "duplicate-args-category": "صفحه‌های دارای آرگومان تکراری در فراخوانی الگو",
+       "duplicate-args-category-desc": "صفحاتی که دارای آرگومان تکراری هستند مانند، <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> یا <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''هشدار:''' این صفحه حاوی تعدادی زیادی فراخوانی دستورهای تجزیه‌گر است.\n\nتعداد آن‌ها باید کمتر از $2 {{PLURAL:$2|فراخوانی|فراخوانی}} باشد، و اینک {{PLURAL:$1|$1 فراخوانی|$1 فراخوانی}} است.",
        "expensive-parserfunction-category": "صفحه‌هایی که حاوی تعداد زیادی فراخوانی سنگین دستورهای تجزیه‌گر هستند",
        "post-expand-template-inclusion-warning": "هشدار: الگو بیش از اندازه بزرگ است.\nبرخی الگوها ممکن است شامل نشوند.",
        "mergehistory-same-destination": "صفحهٔ مبدأ و مقصد نمی‌تواند یکی باشد",
        "mergehistory-reason": "دلیل:",
        "mergelog": "سیاههٔ ادغام",
-       "pagemerge-logentry": "[[$1]] در [[$2]] ادغام شد (نسخه‌های تا $3)",
        "revertmerge": "واگردانی ادغام",
        "mergelogpagetext": "در زیر سیاههٔ آخرین موارد ادغام تاریخچهٔ یک صفحه در صفحه‌ای دیگر را می‌بینید.",
        "history-title": "$1: تاریخچهٔ ویرایش‌ها",
        "showhideselectedversions": "تغییر پدیداری نسخه‌های انتخاب‌شده",
        "editundo": "خنثی‌سازی",
        "diff-empty": "(بدون تفاوت)",
-       "diff-multi-sameuser": "({{PLURAL:$1|یک نسخهٔ میانی|$1 نسخهٔ میانی}} توسط کاربر مشابهی که نشان داده نشده)",
+       "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|یافت|یافت}}  نشد.\n\nمعمولاً در اثر پیوند به تاریخچهٔ به‌روز نشدهٔ صفحهٔ حذف شده است.\nمی‌توانید جزئیات بیشتر را در [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سیاههٔ حذف] بیابید.",
        "search-result-category-size": "{{PLURAL:$1|یک عضو|$1 عضو}} ({{PLURAL:$2|یک زیررده|$2 زیررده}}، {{PLURAL:$3|یک پرونده|$3 پرونده}})",
        "search-redirect": "(تغییرمسیر $1)",
        "search-section": "(بخش $1)",
+       "search-category": "(رده  $1)",
        "search-file-match": "(تشابه محتوی پرونده)",
        "search-suggest": "آیا منظورتان این بود: $1",
        "search-interwiki-caption": "پروژه‌های خواهر",
        "gender-female": "زن",
        "prefs-help-gender": "انجام این تنظیم اختیاری است.\nنرم‌افزار از این مقدار برای اشارهٔ صحیح به جنسیت و ذکر شما برای دیگران با استفاده از دستور زبان درست استفاده می‌کند.\nاین اطلاعات عمومی خواهند بود.",
        "email": "رایانامه",
-       "prefs-help-realname": "نام واقعی اختیاری است.\nاگر آن را وارد کنید هنگام ارجاع به آثارتان و انتساب آن‌ها به شما از نام واقعی‌تان استفاده خواهد شد.",
+       "prefs-help-realname": "نام واقعی اختیاری است.\nاگر وارد شده است هنگام ارجاع به آثارتان و انتساب آن‌ها به شما ممکن است از نام واقعی‌تان استفاده شود.",
        "prefs-help-email": "نشانی رایانامه اختیاری‌است، اما فرستادن گذرواژه‌ای جدید را اگر گذرواژهٔ خود را فراموش کنید ممکن می‌کند.",
        "prefs-help-email-others": "شما همچنین می‌توانید انتخاب کنید که کاربران بتوانند از طریق پیوندی در صفحهٔ کاربری یا صفحهٔ بحث کاربری‌تان به شما رایانامه بفرستند.\nنشانی رایانامه شما زمانی که دیگران با شما تماس بگیرند فاش نمی‌شود.",
        "prefs-help-email-required": "نشانی رایانامه الزامی‌است.",
        "statistics": "آمار",
        "statistics-header-pages": "آمار صفحه",
        "statistics-header-edits": "آمار ویرایش‌ها",
-       "statistics-header-views": "آمار بازدیدها",
        "statistics-header-users": "آمار کاربران",
        "statistics-header-hooks": "آمارهای دیگر",
        "statistics-articles": "صفحه‌های محتوایی",
        "statistics-files": "پرونده‌های بارگذاری‌شده",
        "statistics-edits": "ویرایش صفحه‌ها از هنگامی که {{SITENAME}} راه‌اندازی شده",
        "statistics-edits-average": "متوسط ویرایش‌ها به ازای هر صفحه",
-       "statistics-views-total": "مجموع بازدیدها",
-       "statistics-views-total-desc": "بازدید صفحه‌های ناموجود و صفحه‌های ویژه شامل نشده‌است",
-       "statistics-views-peredit": "تعداد بازدید به ازای هر ویرایش",
        "statistics-users": "[[Special:ListUsers|کاربران]] ثبت‌نام کرده",
        "statistics-users-active": "کاربران فعال",
        "statistics-users-active-desc": "کاربرانی که در {{PLURAL:$1|روز|$1 روز}} قبل فعالیتی انجام داده‌اند",
-       "statistics-mostpopular": "صفحه‌هایی که بیشترین تعداد بازدیدکننده را داشته‌اند",
        "pageswithprop": "صفحه‌های دارای خاصیت صفحه",
        "pageswithprop-legend": "صفحه‌های دارای خاصیت صفحه",
        "pageswithprop-text": "این صفحه فهرستی است از صفحه‌هایی که از یک خاصیت صفحهٔ خاص استفاده می‌کنند.",
        "uncategorizedtemplates": "الگوهای رده‌بندی‌نشده",
        "unusedcategories": "رده‌های استفاده‌نشده",
        "unusedimages": "پرونده‌های استفاده‌نشده",
-       "popularpages": "صفحه‌های محبوب",
        "wantedcategories": "رده‌های مورد نیاز",
        "wantedpages": "صفحه‌های مورد نیاز",
        "wantedpages-badtitle": "عنوان نامجاز در مجموعهٔ نتایج: $1",
        "protectedpages-timestamp": "برچسب زمان",
        "protectedpages-page": "صفحه",
        "protectedpages-expiry": "انقضا",
-       "protectedpages-performer": "در حال حفاظت از کاربر",
+       "protectedpages-performer": "کاربر حفاظت‌کننده",
        "protectedpages-params": "پارامترهای حفاظت",
        "protectedpages-reason": "دلیل",
        "protectedpages-unknown-timestamp": "ناشناس",
        "pager-older-n": "{{PLURAL:$1|یک مورد قدیمی‌تر|$1 مورد قدیمی‌تر}}",
        "suppress": "نظارت",
        "querypage-disabled": "این صفحه ویژه به دلایل عملکردی غیرفعال شده‌است.",
+       "apihelp": "راهنمای API",
+       "apihelp-no-such-module": "پودمان \" $1 \" یافت نشد.",
        "booksources": "منابع کتاب",
        "booksources-search-legend": "جستجوی منابع کتاب",
        "booksources-isbn": "شابک:",
        "autoblockid": "شناسه قطع دسترسی خودکار #$1",
        "block": "بستن کاربر",
        "unblock": "بازکردن کاربر",
-       "blockip": "مسدودکردن {{GENDER:$1|کاربر}}",
+       "blockip": "بستن {{GENDER:$1|کاربر}}",
        "blockip-legend": "بستن کاربر",
        "blockiptext": "از فرم زیر برای بستن دسترسی ویرایش یک نشانی آی‌پی یا نام کاربری مشخص استفاده کنید.\nاین کار فقط فقط باید برای جلوگیری از خرابکاری و بر اساس [[{{MediaWiki:Policy-url}}|سیاست قطع دسترسی]] انجام شود.\nدلیل مشخص این کار را در زیر ذکر کنید (مثلاً با ذکر صفحه‌های به‌خصوصی که مورد خرابکاری واقع شده‌اند).",
        "ipaddressorusername": "نشانی آی‌پی یا نام کاربری:",
        "contribslink": "مشارکت‌ها",
        "emaillink": "ارسال رایانامه",
        "autoblocker": "به طور خودکار بسته شد چون آی‌پی شما به تازگی توسط کاربر «[[User:$1|$1]]» استفاده شده‌است.\nدلیل قطع دسترسی $1 چنین است \"$2\"",
-       "blocklogpage": "سÛ\8cاÙ\87Ù\87Ù\94 Ø¨Ø³ØªÙ\87â\80\8cشدÙ\86â\80\8cÙ\87ا",
+       "blocklogpage": "سÛ\8cاÙ\87Ù\87Ù\94 Ø¨Ø³ØªÙ\86",
        "blocklog-showlog": "دسترسی این کاربر در گذشته بسته شده‌است.\nسیاههٔ قطع دسترسی در زیر نمایش یافته است:",
        "blocklog-showsuppresslog": "دسترسی این کاربر قبلاً بسته شده و این کاربر پنهان شده‌است.\nسیاههٔ قطع دسترسی در زیر نمایش یافته است:",
        "blocklogentry": "«[[$1]]» را تا $2 بست $3",
        "import-interwiki-templates": "تمام الگوها را شامل شود",
        "import-interwiki-submit": "درون‌ریزی شود",
        "import-interwiki-namespace": "فضای نام مقصد:",
-       "import-interwiki-rootpage": "مقصد صفحه ٔ مبنا (اختیاری):",
+       "import-interwiki-rootpage": "ریشهٔ صفحهٔ مقصد (اختیاری):",
        "import-upload-filename": "نام پرونده:",
        "import-comment": "توضیح:",
        "importtext": "لطفاً پرونده را از ویکی منبع با کمک [[Special:Export|ابزار برون‌بری]] دریافت کنید.\nسپس آن را روی دستگاه‌تان ذخیره کنید و اینجا بارگذاری نمایید.",
        "importuploaderrortemp": "در بارگذاری پروندهٔ درون‌ریزی، اشکال رخ داد.\nپوشهٔ موقت پیدا نشد.",
        "import-parse-failure": "خطا در تجزیهٔ اکس‌ام‌ال بارگذاری‌شده",
        "import-noarticle": "صفحه‌ای برای بارگذاری وجود ندارد!",
-       "import-nonewrevisions": "Ù\87Û\8cÚ\86 Ø¨Ø§Ø²Ø¨Û\8cÙ\86Û\8c Ù\88ارد Ù\86شدÙ\87 (همه یا در حال حاضر وجود دارند، یا به دلیل خطا‌ها نادیده گرفته شده‌اند).",
+       "import-nonewrevisions": "Ù\86سخÙ\87â\80\8cاÛ\8c Ø¯Ø±Ù\88Ù\86â\80\8cرÛ\8cزÛ\8c Ù\86شد (همه یا در حال حاضر وجود دارند، یا به دلیل خطا‌ها نادیده گرفته شده‌اند).",
        "xml-error-string": "$1 در سطر $2، ستون $3 (بایت $4): $5",
        "import-upload": "بارگذاری داده اکس‌ام‌ال",
        "import-token-mismatch": "از دست رفتن اطلاعات نشست کاربری. لطفاً دوباره امتحان کنید.",
        "tooltip-pt-mycontris": "فهرست مشارکت‌های شما",
        "tooltip-pt-login": "توصیه می‌شود که به سامانه وارد شوید، گرچه اجباری نیست",
        "tooltip-pt-logout": "خروج از سامانه",
+       "tooltip-pt-createaccount": "از شما دعوت می‌شود که حساب کاربری بسازید و به سامانه وارد شوید؛ هرچند که ساخت حساب کاربری اختیاری است.",
        "tooltip-ca-talk": "گفتگو پیرامون محتوای صفحه",
        "tooltip-ca-edit": "شما می‌توانید این صفحه را ویرایش کنید. لطفاً پیش از ذخیره از دکمهٔ پیش‌نمایش استفاده کنید.",
        "tooltip-ca-addsection": "بخشی جدید ایجاد کنید",
        "tooltip-feed-atom": "خبرنامهٔ اتم برای این صفحه",
        "tooltip-t-contributions": "فهرست مشارکت‌های این کاربر",
        "tooltip-t-emailuser": "فرستادن رایانامه به این کاربر",
+       "tooltip-t-info": "اطلاعات بیشتر دربارهٔ این صفحه",
        "tooltip-t-upload": "بارگذاری تصاویر و پرونده‌های دیگر",
        "tooltip-t-specialpages": "فهرستی از همهٔ صفحه‌های ویژه",
        "tooltip-t-print": "نسخهٔ قابل چاپ این صفحه",
        "pageinfo-robot-policy": "‌فهرست‌کردن توسط ربات‌ها",
        "pageinfo-robot-index": "مجاز",
        "pageinfo-robot-noindex": "نامجاز",
-       "pageinfo-views": "شمار بازدیدها",
        "pageinfo-watchers": "شمار پی‌گیری‌کنندگان صفحه",
        "pageinfo-few-watchers": "کمتر از  $1 {{PLURAL:$1| پی‌گیر|پی‌گیر}}",
        "pageinfo-redirects-name": "تعداد تغییرمسیرها به این صفحه",
        "unknown_extension_tag": "برچسب ناشناختهٔ افزونه «$1»",
        "duplicate-defaultsort": "هشدار: ترتیب پیش‌فرض «$2» ترتیب پیش‌فرض قبلی «$1» را باطل می‌کند.",
        "duplicate-displaytitle": "<strong>هشدار:</strong> نمایش عنوان \" $2 \"باعث ابطال پیش نمایش عنوان\" $1 \" می‌شود.",
+       "invalid-indicator-name": "<strong>خطا:</strong>ویژگی های شاخص‌های وضعیت صفحهٔ <code>name</code> نباید خالی باشند.",
        "version": "نسخه",
        "version-extensions": "افزونه‌های نصب‌شده",
        "version-skins": "پوسته‌های نصب شده",
        "revdelete-uname-unhid": "نام کاربری را آشکار کرد",
        "revdelete-restricted": "مدیران را محدود کرد",
        "revdelete-unrestricted": "محدودیت مدیران را لغو کرد",
+       "logentry-merge-merge": "$1  $3  را به  $4 {{GENDER:$2| ادغام کرد}} (نسخه تا  $5)",
        "logentry-move-move": "$1 صفحهٔ $3 را به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-move-move-noredirect": "$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-move-move_redir": "$1 صفحهٔ $3 را به $4 که تغییرمسیر بود {{GENDER:$2|منتقل کرد}}",
        "api-error-stashfailed": "خطای داخلی: کارساز نمی‌تواند پرونده موقت را ذخیره کند.",
        "api-error-publishfailed": "خطای داخلی: کارساز نمی‌تواند پرونده موقت را ذخیره کند.",
        "api-error-stasherror": "هنگام انتقال پوشه برای ذخیره خطایی بود.",
+       "api-error-stashedfilenotfound": "زمانی که تلاش برای بارگذاری فایل استش بود، فایل استش یافت نشد.",
+       "api-error-stashpathinvalid": "مسیری که فایل استش در آن باید یافت می‌شد اشتباه است.",
+       "api-error-stashfilestorage": "برای ذخیرهٔ فایل استش خطایی رخ داده است.",
+       "api-error-stashzerolength": "سرور نمی‌تواند فایل استش را ذخیره کند چون حجم آن صفر است.",
+       "api-error-stashnotloggedin": "برای ذخیرهٔ فایل‌ها در بارگذاری استش باید وارد سامانه شده‌باشید.",
+       "api-error-stashwrongowner": "فایلی که در استش قصد داشتید به آن دسترسی داشته‌باشید متعلق به شما نیست.",
+       "api-error-stashnosuchfilekey": "کلیدی که در فایل استش می خواستید به آن دسترسی داشته‌باشید، وجود ندارد.",
        "api-error-timeout": "کارساز در زمان انتظار هیچ پاسخی نداد.",
        "api-error-unclassified": "یک خطای ناشناخته رخ داد.",
        "api-error-unknown-code": "خطای ناشناخته: \" $1 \"",
index c24788b..78fa818 100644 (file)
@@ -4,7 +4,8 @@
                        "Amire80",
                        "Amkoullel",
                        "Guaka (on ff.wikipedia.org)",
-                       "Ibrahima"
+                       "Ibrahima",
+                       "아라"
                ]
        },
        "tog-underline": "Diidtol jokke",
        "mytalk": "Yeewtere",
        "navigation": "Peeragol",
        "faq": "FAQ",
-       "vector-action-addsection": "Ɓeydi toɓɓere",
-       "vector-action-move": "Dirtin",
-       "vector-view-create": "Sos",
-       "vector-view-edit": "Taƴto",
-       "vector-view-history": "Yiyto aslol",
-       "vector-view-view": "Tar",
-       "vector-view-viewsource": "Yiyto ɗaɗol",
        "actions": "Baɗe",
        "namespaces": "Boowal inɗe",
        "variants": "Lomtooɗe",
        "talkpagelinktext": "Yeewtere",
        "specialpage": "Hello heeriingo",
        "personaltools": "Kuutorɗe maa keeriiɗe",
-       "postcomment": "Taƴre hesere",
        "articlepage": "Yiyto hello loowdi ngoo",
        "talk": "Kaldigal",
        "views": "Jiyte",
        "remembermypassword": "Siiftor ceŋagol am e ndee wanngorde (so heewii ko {{PLURAL:$1|ñalawma|balɗe}}$1)",
        "login": "Seŋo",
        "nav-login-createaccount": "Seŋo / uddit konte",
-       "loginprompt": "Alaa e sago kurminaa kukiije ngam seŋaade e {{SITENAME}}.",
        "userlogin": "Seŋo / uddit konte",
        "userlogout": "Seŋto",
        "nologin": "A alaa konte tawo? $1.",
        "searchmenu-exists": "'''Ena woodi hello ena wiyee \"[[:$1]]\" e oo wiki.'''",
        "searchmenu-new": "'''Sos hello \"[[:$1]]\" e oo wiki!'''",
        "searchprofile-articles": "Kello loowdi",
-       "searchprofile-project": "Hello ballal e Eɓɓoore",
        "searchprofile-images": "Sawmejaajo",
        "searchprofile-everything": "Fofof",
        "searchprofile-advanced": "Ceeɓtore",
        "searchprofile-articles-tooltip": "Yiylo e $1",
-       "searchprofile-project-tooltip": "Yiylo e $1",
        "searchprofile-images-tooltip": "Yiylo piille",
        "searchprofile-everything-tooltip": "Yiylo loowdi fof (waɗoe heen kelle jeewte)",
        "searchprofile-advanced-tooltip": "Yiylo e boowe inɗe peŋtore",
        "search-section": "(taƴre $1)",
        "search-suggest": "Maa taw njiɗ-ɗaa wiyde ko: $1",
        "searchall": "fof",
-       "showingresultsheader": "{{PLURAL:$5|Njaltudi'''$1''' of '''$3'''|Jaltuɗe'''$1 - $2''' of '''$3'''}} for '''$4'''",
        "search-nonefound": "Alaa njaltudi arti e ndee ɗaɓɓitannde.",
        "mypreferences": "Cuɓoraade",
        "recentchanges": "Wailitooji kesi",
        "recentchanges-label-newpage": "Ngoo taƴto sosii hello heso",
        "recentchanges-label-bot": "Ngoo taƴto waɗi ɗum ko botol",
        "recentchanges-label-unpatrolled": "Ngoo taƴto suwaa tawo ƴeewteede",
-       "rclistfrom": "Hollu bayle kese puɗɗiiɗe gila $1",
+       "rclistfrom": "Hollu bayle kese puɗɗiiɗe gila $3 $2",
        "rclinks": "Hollu bayle $1 cakkitiiɗe baɗaaɗe e balɗe $2 ɓannuɗe ɗee<br />$3",
        "diff": "ceer",
        "hist": "aslol",
        "pager-older-n": "{{PLURAL:$1|ɓennungol 1|ɓennuɗi $1}}",
        "booksources": "Sewnde defte",
        "log": "Loge",
-       "alphaindexline": "$1 haa $2",
        "allarticles": "Winndannde hesere",
        "allpagessubmit": "Yah",
        "linksearch-line": "$1 ko-ko jokkaa e $2",
index 1e6b4c8..6cccd40 100644 (file)
        "view-pool-error": "Valitettavasti palvelimet ovat ylikuormittuneet tällä hetkellä.\nLiian monta käyttäjää yrittää tarkastella tätä sivua.\nOdota hetki ennen kuin yrität uudelleen.\n\n$1",
        "generic-pool-error": "Valitettavasti palvelimet ovat ylikuormittuneet tällä hetkellä.\nLiian monta käyttäjää yrittää tarkastella tätä sivua.\nOdota hetki ennen kuin yrität uudelleen.",
        "pool-timeout": "Lukon aikakatkaisu.",
-       "pool-queuefull": "Lukkojono on täysi.",
+       "pool-queuefull": "Prosessijoukon jono on täynnä",
        "pool-errorunknown": "Tuntematon virhe.",
        "pool-servererror": "Pool counter -palvelu ei ole käytettävissä ($1).",
        "aboutsite": "Tietoja {{GRAMMAR:elative|{{SITENAME}}}}",
        "cannotdelete-title": "Sivua $1 ei voi poistaa",
        "delete-hook-aborted": "Laajennuskoodi esti poiston antamatta syytä.",
        "no-null-revision": "Nollamuokkausta sivulla \"$1\" ei voi tehdä",
-       "badtitle": "Virheellinen otsikko",
+       "badtitle": "Kelvoton sivun nimi",
        "badtitletext": "Pyytämäsi sivunimi oli virheellinen, tyhjä tai väärin linkitetty kieltenvälinen tai wikienvälinen nimi.\nSiinä saattaa olla yksi tai useampi sellainen merkki, jota ei voi käyttää sivujen nimissä.",
        "perfcached": "Nämä tiedot ovat välimuistista eivätkä välttämättä ole ajan tasalla. Välimuistissa on saatavilla enintään {{PLURAL:$1|yksi tulos|$1 tulosta}}.",
        "perfcachedts": "Nämä tiedot ovat välimuistista, ja ne on päivitetty viimeksi $1. Välimuistissa on saatavilla enintään {{PLURAL:$4|yksi tulos|$4 tulosta}}.",
        "viewsourcetext": "Voit katsoa ja kopioida tämän sivun lähdetekstiä:",
        "viewyourtext": "Voit tarkastella ja kopioida lähdekoodin '''tekemistäsi muutoksista''' tähän sivuun:",
        "protectedinterface": "Tämä sivu sisältää ohjelmiston käyttöliittymätekstiä ja on suojattu häiriköinnin estämiseksi.\nViestien kääntäminen tulisi tehdä [//translatewiki.net/ translatewiki.netissä] – MediaWikin kotoistusprojektissa.",
-       "editinginterface": "'''Varoitus:''' Muokkaat sivua, joka sisältää ohjelmiston käyttöliittymätekstiä.\nMuutokset tähän sivuun vaikuttavat muiden käyttäjien käyttöliittymän ulkoasuun tässä wikissä.\nViestien kääntäminen tulisi tehdä [//translatewiki.net/ translatewiki.netissä] – MediaWikin kotoistusprojektissa.",
+       "editinginterface": "<strong>Varoitus:</strong> Olet muokkaamassa sivua, joka sisältää ohjelmiston käyttöliittymän tekstiä.\nMuutokset tähän sivuun vaikuttavat muiden käyttäjien käyttöliittymän ulkoasuun tässä wikissä.",
+       "translateinterface": "Jos haluat lisätä tai muuttaa käännöksiä kaikissa wikeissä, käytä siihen MediaWikin kääntämistä varten rakennettua sivustoa [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Tämä sivu on suojattu muokkauksilta, koska se on sisällytetty {{PLURAL:$1|seuraavaan tarttuvasti suojattuun sivuun|seuraaviin tarttuvasti suojattuihin sivuihin}}:\n$2",
        "namespaceprotected": "Et voi muokata sivuja nimiavaruudessa '''$1'''.",
        "customcssprotected": "Sinulla ei ole oikeutta muuttaa tätä CSS-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.",
        "longpageerror": "'''Virhe: Lähettämäsi tekstin pituus on {{PLURAL:$1|kilotavu|$1 kilotavua}}. Tekstiä ei voida tallentaa, koska se on pitempi kuin sallittu enimmäispituus {{PLURAL:$2|yksi kilotavu|$2 kilotavua}}.'''",
        "readonlywarning": "'''Varoitus: Tietokanta on lukittu huoltoa varten, joten et pysty tallentamaan muokkauksiasi juuri nyt.'''\nSaattaa olla paras leikata ja liimata tekstisi omaan tekstitiedostoosi ja tallentaa se tänne myöhemmin.\n\nLukitsemisen syy: $1",
        "protectedpagewarning": "'''Varoitus: Tämä sivu on suojattu niin, että vain ylläpitäjät voivat muokata sitä.'''\nAlla on viimeisin lokitapahtuma:",
-       "semiprotectedpagewarning": "'''Huomautus:''' Tämä sivu on suojattu niin, että vain rekisteröityneet käyttäjät voivat muokata sitä.\nAlla on viimeisin lokitapahtuma:",
+       "semiprotectedpagewarning": "<strong>Huomaa:</strong> Tämä sivu on suojattu niin, että vain rekisteröityneet käyttäjät voivat muokata sitä.\nAlla on viimeisin lokitapahtuma:",
        "cascadeprotectedwarning": "<strong>Varoitus:</strong> Vain ylläpitäjät voivat muokata tätä sivua, koska se on sisällytetty {{PLURAL:$1|seuraavaan tarttuvasti suojattuun sivuun|seuraaviin tarttuvasti suojattuihin sivuihin}}:",
        "titleprotectedwarning": "'''Varoitus: Tämä sivunimi on suojattu niin, että sivun luomiseen tarvitaan [[Special:ListGroupRights|erityisiä oikeuksia]].'''\nAlla on viimeisin lokitapahtuma:",
        "templatesused": "Tällä sivulla {{PLURAL:$1|käytetty malline|käytetyt mallineet}}:",
        "content-model-text": "pelkkä teksti",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Sivut, jotka käyttävät kaksinkertaisia argumentteja mallinekutsuissa",
        "expensive-parserfunction-warning": "Tällä sivulla on liian monta hitaiden laajennusfunktioiden kutsua.\nKutsuja pitäisi olla alle $2 {{PLURAL:$2|kappale|kappaletta}}, mutta nyt niitä on $1 {{PLURAL:$1|kappale|kappaletta}}.",
        "expensive-parserfunction-category": "Sivut, joissa on liian monta vaativaa jäsenninfunktiota",
        "post-expand-template-inclusion-warning": "'''Varoitus:''' Sisällytettyjen mallineiden koko on liian suuri.\nJoitakin mallineita ei ole sisällytetty.",
        "mergehistory-same-destination": "Lähde- ja kohdesivut eivät voi olla samat",
        "mergehistory-reason": "Syy:",
        "mergelog": "Yhdistämisloki",
-       "pagemerge-logentry": "yhdisti kohteen [[$1]] kohteeseen [[$2]] (versiot $3 saakka)",
        "revertmerge": "Peru yhdistäminen",
        "mergelogpagetext": "Alla on loki viimeisimmistä muutoshistorioiden yhdistämisistä.",
        "history-title": "Sivun ”$1” muutoshistoria",
        "search-result-category-size": "{{PLURAL:$1|1 jäsen|$1 jäsentä}} ({{PLURAL:$2|1 alaluokka|$2 alaluokkaa}}, {{PLURAL:$3|1 tiedosto|$3 tiedostoa}})",
        "search-redirect": "(ohjaus $1)",
        "search-section": "(osio $1)",
+       "search-category": "(luokka $1)",
        "search-file-match": "(vastaa tiedoston sisältöä)",
        "search-suggest": "Tarkoititko: $1",
        "search-interwiki-caption": "Sisarprojektit",
        "searchall": "kaikki",
        "showingresults": "Alla on vain {{PLURAL:$1|<strong>1</strong> hakutulos|<strong>$1</strong> hakutulosta}} alkaen tuloksesta nro <strong>$2</strong>.",
        "showingresultsinrange": "Alla näytetään {{PLURAL:$1|<strong>1</strong> tulos|<strong>$1</strong> tulosta}} väliltä <strong>$2</strong> – <strong>$3</strong>.",
-       "search-showingresults": "{{PLURAL:$4|Tulos <strong>$1</strong> enimmäismäärästä <strong>$3</strong>|Tulokset <strong>$1 - $2</strong> enimmäismäärästä <strong>$3</strong>}}",
+       "search-showingresults": "{{PLURAL:$4|Tulos <strong>$1</strong> enimmäismäärästä <strong>$3</strong>|Tulokset <strong>$1  $2</strong> enimmäismäärästä <strong>$3</strong>}}",
        "search-nonefound": "Hakusi ei tuottanut tulosta.",
        "powersearch-legend": "Laajennettu haku",
        "powersearch-ns": "Hae nimiavaruuksista:",
        "powersearch-remember": "Muista valinta tulevia hakuja varten",
        "search-external": "Ulkoinen haku",
        "searchdisabled": "Tekstihaku on poistettu toistaiseksi käytöstä suuren kuorman vuoksi. Voit käyttää alla olevaa Googlen hakukenttää sivujen etsimiseen, kunnes haku tulee taas käyttöön. <small>Huomaa, että ulkopuoliset kopiot {{GRAMMAR:genitive|{{SITENAME}}}} sisällöstä eivät välttämättä ole ajan tasalla.</small>",
-       "search-error": "Virhe ilmaantui haettaessa: $1",
+       "search-error": "Hakutoiminnossa on havaittu virhe: $1",
        "preferences": "Asetukset",
        "mypreferences": "Asetukset",
        "prefs-edits": "Muokkauksia",
        "gender-female": "Nainen",
        "prefs-help-gender": "Tämän asetuksen määrittäminen on vapaaehtoista.\nOhjelmisto käyttää annettua arvoa viitaten sinuun oikealla kieliopillisella suvulla.\nTämä tieto on julkinen.",
        "email": "Sähköpostitoiminnot",
-       "prefs-help-realname": "Vapaaehtoinen. Nimesi näytetään käyttäjätunnuksesi sijasta sivun tekijäluettelossa.",
+       "prefs-help-realname": "Oikean nimen ilmoittaminen on vapaaehtoista.\nJos ilmoitettu, sitä voidaan käyttää tekijän mainitsemiseen.",
        "prefs-help-email": "Vapaaehtoinen, mutta tarvitaan uuden salasanan pyytämiseen, jos unohdat salasanasi.",
        "prefs-help-email-others": "Voit myös antaa muiden käyttäjien ottaa yhteyttä sinuun sähköpostilla. Osoitteesi ei paljastu toisen käyttäjän ottaessa sinuun yhteyttä.",
        "prefs-help-email-required": "Sähköpostiosoite on pakollinen.",
        "statistics": "Tilastot",
        "statistics-header-pages": "Sivutilastot",
        "statistics-header-edits": "Muokkaustilastot",
-       "statistics-header-views": "Katselutilastot",
        "statistics-header-users": "Käyttäjätilastot",
        "statistics-header-hooks": "Muut tilastot",
        "statistics-articles": "Sisältösivuja",
        "statistics-files": "Tallennettuja tiedostoja",
        "statistics-edits": "Muokkauksia {{GRAMMAR:genitive|{{SITENAME}}}} perustamisen jälkeen",
        "statistics-edits-average": "Keskimäärin yhtä sivua muokattu",
-       "statistics-views-total": "Sivuja katsottu yhteensä",
-       "statistics-views-total-desc": "Näyttökertoihin eivät sisälly toimintosivut eikä sivut, joita ei ole olemassa",
-       "statistics-views-peredit": "Sivuja katsottu muokkausta kohden",
        "statistics-users": "Rekisteröityneitä [[Special:ListUsers|käyttäjiä]]",
        "statistics-users-active": "Aktiivisia käyttäjiä",
        "statistics-users-active-desc": "Käyttäjät, jotka ovat suorittaneet jonkin toiminnon {{PLURAL:$1|edellisen päivän|edellisten $1 päivän}} aikana.",
-       "statistics-mostpopular": "Katsotuimmat sivut",
        "pageswithprop": "Sivut sivun ominaisuuden mukaan",
        "pageswithprop-legend": "Sivut sivun ominaisuuden mukaan",
        "pageswithprop-text": "Tällä sivulla on lueteltu sivut, jotka käyttävät erityistä sivun ominaisuutta.",
        "uncategorizedtemplates": "Luokittelemattomat mallineet",
        "unusedcategories": "Käyttämättömät luokat",
        "unusedimages": "Käyttämättömät tiedostot",
-       "popularpages": "Suositut sivut",
        "wantedcategories": "Halutut luokat",
        "wantedpages": "Halutut sivut",
        "wantedpages-badtitle": "Virheellinen otsikko tuloksissa: $1",
        "pager-older-n": "{{PLURAL:$1|1 vanhempi|$1 vanhempaa}} →",
        "suppress": "Häivytys",
        "querypage-disabled": "Tämä toimintosivu on poistettu käytöstä suorituskykysyistä.",
+       "apihelp": "API-apu",
+       "apihelp-no-such-module": "Moduulia ”$1” ei löydy.",
        "booksources": "Kirjalähteet",
        "booksources-search-legend": "Etsi kirjalähteitä",
        "booksources-isbn": "ISBN",
        "deletionlog": "poistoloki",
        "reverted": "Palautettu aikaisempaan versioon",
        "deletecomment": "Syy:",
-       "deleteotherreason": "Muu syy tai tarkennus",
+       "deleteotherreason": "Muu syy tai tarkennus:",
        "deletereasonotherlist": "Muu syy",
        "deletereason-dropdown": "* Yleiset poistosyyt\n** Spam tai mainossivu\n** Vandalismi\n** Tekijänoikeusrikkomus\n** Sivun tekijän pyyntö\n** Virheellinen ohjaus",
        "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-toobig": "Tällä sivulla on pitkä muokkaushistoria, yli $1 {{PLURAL:$1|versio|versiota}}. \nTämänkaltaisten sivujen poistamista on rajoitettu. Tällä ehkäistään sivuston {{SITENAME}} vaurioitumista tahattomasti.",
        "delete-warning-toobig": "Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistaminen voi haitata sivuston suorituskykyä.",
        "deleteprotected": "Et voi poistaa tätä sivua, koska se on suojattu.",
        "deleting-backlinks-warning": "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa [[Special:WhatLinksHere/{{FULLPAGENAME}}|linkkejä muilta sivuilta]], tai sivu on sisällytetty muuhun sivuun.",
        "invert": "Käänteinen valinta",
        "tooltip-invert": "Valitse tämä kohta, jos haluat piilottaa muutokset sivuihin valitussa nimiavaruudessa (ja liittyviin nimiavaruuksiin, jos valittu)",
        "namespace_association": "Liittyvä nimiavaruus",
-       "tooltip-namespace_association": "Valitse tämä kohta, jos haluat sisällyttää ne keskustelu- tai aihe-nimiavaruudet, jotka liittyvät valittuun nimiavaruuteen",
+       "tooltip-namespace_association": "Valitse tämä kohta, jos haluat haun sisältävän myös sen keskustelu- tai aihe-nimiavaruuden, joka liittyy valittuun nimiavaruuteen",
        "blanknamespace": "(sivut)",
        "contributions": "{{GENDER:$1|Käyttäjän}} muokkaukset",
        "contributions-title": "Käyttäjän $1 muokkaukset",
        "unblockiptext": "Tällä lomakkeella voit poistaa käyttäjän tai IP-osoitteen muokkauseston.",
        "ipusubmit": "Poista tämä esto",
        "unblocked": "Käyttäjän [[User:$1|$1]] esto on poistettu",
-       "unblocked-range": "$1 ei ole enää estettynä",
+       "unblocked-range": "Osoitealueen $1 muokkausesto on poistettu.",
        "unblocked-id": "Esto $1 on poistettu",
        "unblocked-ip": "Käyttäjän [[Special:Contributions/$1|$1]] esto on poistettu.",
        "blocklist": "Estetyt käyttäjät",
        "tooltip-pt-mycontris": "Lista omista muokkauksista",
        "tooltip-pt-login": "Kirjaudu sisään tai luo tunnus",
        "tooltip-pt-logout": "Kirjaudu ulos",
+       "tooltip-pt-createaccount": "On suositeltavaa luoda käyttäjätunnus ja kirjautua sisään. Se ei kuitenkaan ole pakollista.",
        "tooltip-ca-talk": "Keskustele sisällöstä",
        "tooltip-ca-edit": "Muokkaa tätä sivua",
        "tooltip-ca-addsection": "Aloita keskustelu uudesta aiheesta",
        "tooltip-feed-atom": "Atom-syöte tälle sivulle",
        "tooltip-t-contributions": "Näytä lista tämän käyttäjän muokkauksista",
        "tooltip-t-emailuser": "Lähetä sähköpostia tälle käyttäjälle",
+       "tooltip-t-info": "Enemmän tietoa tästä sivusta",
        "tooltip-t-upload": "Tallenna tiedostoja",
        "tooltip-t-specialpages": "Näytä toimintosivut",
        "tooltip-t-print": "Tulostettava versio",
        "pageinfo-robot-policy": "Hakukonemerkinnät",
        "pageinfo-robot-index": "Indeksoitava",
        "pageinfo-robot-noindex": "Ei indeksoitava",
-       "pageinfo-views": "Katselukertojen määrä",
        "pageinfo-watchers": "Sivun tarkkailijoiden lukumäärä",
        "pageinfo-few-watchers": "Vähemmän kuin $1 {{PLURAL:$1|tarkkailija|tarkkailijaa}}",
        "pageinfo-redirects-name": "Sivulle johtavat ohjaukset",
        "unknown_extension_tag": "Tuntematon laajennuskoodi ”$1”.",
        "duplicate-defaultsort": "'''Varoitus:''' Oletuslajitteluavain ”$2” korvaa aiemman oletuslajitteluavaimen ”$1”.",
        "duplicate-displaytitle": "<strong>Varoitus:</strong> Näytettävä otsikko \"$2\" päällekirjoittaa edellisen otsikon \"$1\".",
+       "invalid-indicator-name": "<strong>Virhe:</strong> Sivun tilan osoittimien attribuutti <code>name</code> ei saa olla tyhjä.",
        "version": "Versio",
        "version-extensions": "Asennetut laajennukset",
        "version-skins": "Asennetut ulkoasut",
        "revdelete-uname-unhid": "käyttäjätunnus palautettu näkyviin",
        "revdelete-restricted": "asetti rajoitukset ylläpitäjille",
        "revdelete-unrestricted": "poisti rajoitukset ylläpitäjiltä",
+       "logentry-merge-merge": "$1 {{GENDER:$2|yhdisti}} sivun $3 sivuun $4 (versiot $5 saakka)",
        "logentry-move-move": "$1 {{GENDER:$2|siirsi}} sivun $3 uudelle nimelle $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|siirsi}} sivun $3 uudelle nimelle $4 luomatta ohjausta",
        "logentry-move-move_redir": "$1 {{GENDER:$2|siirsi}} sivun $3 ohjauksen $4 päälle",
index 3bc686f..5006722 100644 (file)
        "search-suggest": "Tarkoititko: $1",
        "searchrelated": "relateerattu",
        "searchall": "kaikki",
-       "showingresultsheader": "{{PLURAL:$5|Resyltaatit'''$1'''–'''$3'''|Resyltaatit'''$1'''–'''$2''' kaiken joukosta '''$3''' }} haule '''$4'''",
        "search-nonefound": "Ei yhtään resyltaattia sinun kysymyksheen",
        "mypreferences": "Omat inställninkit",
        "youremail": "E-posti:",
        "pager-older-n": "{{PLURAL:$1|1 vanheempi|$1 vanheempaa}} →",
        "booksources": "Kirjalähteet",
        "booksources-search-legend": "Hae kirjalähtheitä",
-       "booksources-go": "Mene",
        "log": "Lokit",
        "allpages": "Kaikki sivut",
        "allarticles": "Kaikki sivut",
        "watch": "Valvo",
        "unwatch": "Lopeta valvonta",
        "watchlist-details": "Valvontalistala on {{PLURAL:$1|$1 sivu|$1 sivua}} (keskustelusivuja mukhaan laskematta)",
-       "wlshowlast": "Näytä viimiset $1 tiimat eli $2 päivät$3",
+       "wlshowlast": "Näytä viimiset $1 tiimat eli $2 päivät",
        "watchlist-options": "Valvontalistan altternatiivit",
        "actioncomplete": "Tehty",
        "actionfailed": "Tehty epäonnistui",
        "metadata": "Meettataatta",
        "metadata-help": "Tämä fiili sisältää lisätietoja esimerkiks kuvanlukijan, eli kuvakäsittelyprukrammin lisätietoja. Kaikki tiot ei en´nää välttämättä vastaa toelisuutheen, jos kuvvaa on mookattu sen alkuperäisen luomisen jälkhiin.",
        "metadata-fields": "Seuraavaa meettataatta kentät listattu tässä informasuunissa, sisälethään näkyvänä kuvasivussa, kun meettataatta taulukko kolapsaa. Muut piilotethaan stantartina.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "kaikki",
        "namespacesall": "kaikki",
        "monthsall": "kaikki",
        "watchlisttools-view": "Näytä muutokset",
index 7c825a0..959e8ff 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Jose77 (on fj.wikipedia.org)"
-        ]
-    },
-    "sunday": "Sigatabu",
-    "monday": "Moniti",
-    "tuesday": "Tusiti",
-    "wednesday": "Vukelulu",
-    "thursday": "Lotulevu",
-    "friday": "Vakaraubuka",
-    "saturday": "Vakarauwai",
-    "sun": "Sigatabu",
-    "mon": "Moniti",
-    "tue": "Tusiti",
-    "wed": "Vukelulu",
-    "thu": "Lotulevu",
-    "fri": "Vakaraubuka",
-    "sat": "Vakarauwai",
-    "january": "Janueri",
-    "february": "Veverueri",
-    "march": "Maji",
-    "april": "Epereli",
-    "july": "Jiulai",
-    "august": "Okosita",
-    "september": "Seviteba",
-    "october": "Okotova",
-    "november": "Noveba",
-    "december": "Tiseba",
-    "january-gen": "Janueri",
-    "february-gen": "Veverueri",
-    "march-gen": "Maji",
-    "april-gen": "Evereli",
-    "may-gen": "Me",
-    "july-gen": "Jiulai",
-    "august-gen": "Okosita",
-    "september-gen": "Seviteba",
-    "october-gen": "Okotova",
-    "november-gen": "Noveba",
-    "december-gen": "Tiseba",
-    "jan": "Janueri",
-    "feb": "Veverueri",
-    "mar": "Maji",
-    "apr": "Epereli",
-    "may": "Me",
-    "jun": "June",
-    "jul": "Julai",
-    "aug": "Okosita",
-    "sep": "Seviteba",
-    "oct": "Okotova",
-    "nov": "Noveba",
-    "dec": "Tiseba",
-    "cancel": "Sasamaki",
-    "mytalk": "Noqu vosa",
-    "navigation": "Vakatasosoko",
-    "qbedit": "Veisautaki",
-    "help": "Veivuke",
-    "search": "Vaqaqara",
-    "searchbutton": "Vaqaqara",
-    "go": "Lako",
-    "searcharticle": "Lako",
-    "history_short": "Tukuni",
-    "printableversion": "Tikina e rawa ni tabaki",
-    "permalink": "Sema tudei",
-    "edit": "Veisautaki",
-    "delete": "Vakarusa",
-    "protect": "Taqomaki",
-    "unprotect": "Sega ni taqomaki",
-    "talk": "Veiwasei",
-    "toolbox": "Kato ni yaya",
-    "otherlanguages": "Veimataqali vosa",
-    "jumptonavigation": "Vakatasosoko",
-    "jumptosearch": "Vaqaqara",
-    "currentevents": "Tukutuku kuruvaki",
-    "currentevents-url": "Project:Tukutuku kuruvaki",
-    "edithelp": "Veivukei",
-    "mainpage": "Tabana levu",
-    "mainpage-description": "Tabana levu",
-    "portal": "Soqosoqo toso",
-    "editsection": "Veisautaki",
-    "editold": "Veisautaki",
-    "nstab-main": "Vola volai",
-    "yourname": "Yaca vakayagataki",
-    "yourpassword": "Yaca vuni",
-    "yourpasswordagain": "Vola tale na Yaca vuni",
-    "remembermypassword": "Nanuma na yacaqu ena komipiuta oqo (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Curu mai",
-    "userlogin": "Curu mai / Dolava nomu Akaude",
-    "logout": "Curu yani",
-    "userlogout": "Curu yani",
-    "nologinlink": "Dolava nomu Akaude",
-    "createaccount": "Dolava nomu Akaude",
-    "gotaccountlink": "Curu mai",
-    "summary": "Kena i Soqoni:",
-    "watchthis": "Vakaraica toka na tabana oqo",
-    "savearticle": "Vakabula na tabana oqo",
-    "showpreview": "Vakaraitaka na kenai yaloyalo",
-    "showdiff": "Vakaritaka na veisau",
-    "loginreqlink": "Curu mai",
-    "mypreferences": "Ulutaga taleitaki",
-    "searchresultshead": "Vaqaqara",
-    "youremail": "I vola livaliva *:",
-    "username": "Yaca vakayagataki:",
-    "email": "I vola livaliva",
-    "recentchanges": "Veisau vovou",
-    "recentchangeslinked": "Veisau e veiwekani",
-    "recentchangeslinked-feed": "Veisau e veiwekani",
-    "recentchangeslinked-toolbox": "Veisau e veiwekani",
-    "upload": "Vakasinaita",
-    "uploadbtn": "Vakasinaita",
-    "filedesc": "Kena i Soqoni",
-    "fileuploadsummary": "Kena i Soqoni:",
-    "watchthisupload": "Vakaraica toka na tabana oqo",
-    "randompage": "Vakawasoma",
-    "brokenredirects-edit": "Veisautaki",
-    "brokenredirects-delete": "Vakarusa",
-    "newpages-username": "Yaca vakayagataki:",
-    "move": "Toso",
-    "movethispage": "Toso na tabana oqo",
-    "allpagessubmit": "Lako",
-    "defemailsubject": "{{SITENAME}} I vola livaliva",
-    "watchlist": "Ulutaga yadravi",
-    "watch": "Vakaraica mada",
-    "watchthispage": "Vakaraica toka na tabana oqo",
-    "restriction-edit": "Veisautaki",
-    "restriction-move": "Toso",
-    "undelete-search-submit": "Vaqaqara",
-    "mycontris": "Noqu I takitaki",
-    "whatlinkshere": "Sema cava oqo",
-    "ipbreason": "Vuna",
-    "move-page-legend": "Toso kina yasana kadua",
-    "movearticle": "Toso kina yasana kadua",
-    "move-watch": "Vakaraica toka na tabana oqo",
-    "movepagebtn": "Toso kina yasana kadua",
-    "movereason": "Vuna",
-    "tooltip-pt-preferences": "Ulutaga taleitaki",
-    "tooltip-pt-logout": "Curu yani",
-    "tooltip-ca-move": "Toso na tabana oqo",
-    "tooltip-search": "Vaqaqara {{SITENAME}}",
-    "tooltip-p-logo": "Tabana levu",
-    "ilsubmit": "Vaqaqara",
-    "imgmultigo": "Lako!",
-    "table_pager_limit_submit": "Lako",
-    "specialpages": "Tabana vakamareqeti"
+       "@metadata": {
+               "authors": [
+                       "Jose77 (on fj.wikipedia.org)"
+               ]
+       },
+       "sunday": "Sigatabu",
+       "monday": "Moniti",
+       "tuesday": "Tusiti",
+       "wednesday": "Vukelulu",
+       "thursday": "Lotulevu",
+       "friday": "Vakaraubuka",
+       "saturday": "Vakarauwai",
+       "sun": "Sigatabu",
+       "mon": "Moniti",
+       "tue": "Tusiti",
+       "wed": "Vukelulu",
+       "thu": "Lotulevu",
+       "fri": "Vakaraubuka",
+       "sat": "Vakarauwai",
+       "january": "Janueri",
+       "february": "Veverueri",
+       "march": "Maji",
+       "april": "Epereli",
+       "july": "Jiulai",
+       "august": "Okosita",
+       "september": "Seviteba",
+       "october": "Okotova",
+       "november": "Noveba",
+       "december": "Tiseba",
+       "january-gen": "Janueri",
+       "february-gen": "Veverueri",
+       "march-gen": "Maji",
+       "april-gen": "Evereli",
+       "may-gen": "Me",
+       "july-gen": "Jiulai",
+       "august-gen": "Okosita",
+       "september-gen": "Seviteba",
+       "october-gen": "Okotova",
+       "november-gen": "Noveba",
+       "december-gen": "Tiseba",
+       "jan": "Janueri",
+       "feb": "Veverueri",
+       "mar": "Maji",
+       "apr": "Epereli",
+       "may": "Me",
+       "jun": "June",
+       "jul": "Julai",
+       "aug": "Okosita",
+       "sep": "Seviteba",
+       "oct": "Okotova",
+       "nov": "Noveba",
+       "dec": "Tiseba",
+       "cancel": "Sasamaki",
+       "mytalk": "Noqu vosa",
+       "navigation": "Vakatasosoko",
+       "qbedit": "Veisautaki",
+       "help": "Veivuke",
+       "search": "Vaqaqara",
+       "searchbutton": "Vaqaqara",
+       "go": "Lako",
+       "searcharticle": "Lako",
+       "history_short": "Tukuni",
+       "printableversion": "Tikina e rawa ni tabaki",
+       "permalink": "Sema tudei",
+       "edit": "Veisautaki",
+       "delete": "Vakarusa",
+       "protect": "Taqomaki",
+       "unprotect": "Sega ni taqomaki",
+       "talk": "Veiwasei",
+       "toolbox": "Kato ni yaya",
+       "otherlanguages": "Veimataqali vosa",
+       "jumptonavigation": "Vakatasosoko",
+       "jumptosearch": "Vaqaqara",
+       "currentevents": "Tukutuku kuruvaki",
+       "currentevents-url": "Project:Tukutuku kuruvaki",
+       "edithelp": "Veivukei",
+       "mainpage": "Tabana levu",
+       "mainpage-description": "Tabana levu",
+       "portal": "Soqosoqo toso",
+       "editsection": "Veisautaki",
+       "editold": "Veisautaki",
+       "nstab-main": "Vola volai",
+       "yourname": "Yaca vakayagataki",
+       "yourpassword": "Yaca vuni",
+       "yourpasswordagain": "Vola tale na Yaca vuni",
+       "remembermypassword": "Nanuma na yacaqu ena komipiuta oqo (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Curu mai",
+       "userlogin": "Curu mai / Dolava nomu Akaude",
+       "logout": "Curu yani",
+       "userlogout": "Curu yani",
+       "nologinlink": "Dolava nomu Akaude",
+       "createaccount": "Dolava nomu Akaude",
+       "gotaccountlink": "Curu mai",
+       "summary": "Kena i Soqoni:",
+       "watchthis": "Vakaraica toka na tabana oqo",
+       "savearticle": "Vakabula na tabana oqo",
+       "showpreview": "Vakaraitaka na kenai yaloyalo",
+       "showdiff": "Vakaritaka na veisau",
+       "loginreqlink": "Curu mai",
+       "mypreferences": "Ulutaga taleitaki",
+       "searchresultshead": "Vaqaqara",
+       "youremail": "I vola livaliva *:",
+       "username": "Yaca vakayagataki:",
+       "email": "I vola livaliva",
+       "recentchanges": "Veisau vovou",
+       "recentchangeslinked": "Veisau e veiwekani",
+       "recentchangeslinked-feed": "Veisau e veiwekani",
+       "recentchangeslinked-toolbox": "Veisau e veiwekani",
+       "upload": "Vakasinaita",
+       "uploadbtn": "Vakasinaita",
+       "filedesc": "Kena i Soqoni",
+       "fileuploadsummary": "Kena i Soqoni:",
+       "watchthisupload": "Vakaraica toka na tabana oqo",
+       "randompage": "Vakawasoma",
+       "brokenredirects-edit": "Veisautaki",
+       "brokenredirects-delete": "Vakarusa",
+       "newpages-username": "Yaca vakayagataki:",
+       "move": "Toso",
+       "movethispage": "Toso na tabana oqo",
+       "allpagessubmit": "Lako",
+       "defemailsubject": "{{SITENAME}} I vola livaliva",
+       "watchlist": "Ulutaga yadravi",
+       "watch": "Vakaraica mada",
+       "watchthispage": "Vakaraica toka na tabana oqo",
+       "restriction-edit": "Veisautaki",
+       "restriction-move": "Toso",
+       "undelete-search-submit": "Vaqaqara",
+       "mycontris": "Noqu I takitaki",
+       "whatlinkshere": "Sema cava oqo",
+       "ipbreason": "Vuna",
+       "move-page-legend": "Toso kina yasana kadua",
+       "movearticle": "Toso kina yasana kadua",
+       "move-watch": "Vakaraica toka na tabana oqo",
+       "movepagebtn": "Toso kina yasana kadua",
+       "movereason": "Vuna",
+       "tooltip-pt-preferences": "Ulutaga taleitaki",
+       "tooltip-pt-logout": "Curu yani",
+       "tooltip-ca-move": "Toso na tabana oqo",
+       "tooltip-search": "Vaqaqara {{SITENAME}}",
+       "tooltip-p-logo": "Tabana levu",
+       "ilsubmit": "Vaqaqara",
+       "imgmultigo": "Lako!",
+       "table_pager_limit_submit": "Lako",
+       "specialpages": "Tabana vakamareqeti"
 }
index 54a9bf2..6b1479e 100644 (file)
        "mergehistory-same-destination": "Keldu og málsíðan kunnu ikki vera tann sama",
        "mergehistory-reason": "Orsøk:",
        "mergelog": "Samanblandingar gerðalisti (loggur)",
-       "pagemerge-logentry": "flættaði [[$1]] inn í [[$2]] (versjónir fram til $3)",
        "revertmerge": "Angra samanflætting",
        "mergelogpagetext": "Niðanfyri er ein listi við teimum nýggjastu samanflættingunum av einari síðu søgu til eina aðra.",
        "history-title": "Eftirlitssøgan hjá \"$1\"",
        "statistics": "Hagtøl",
        "statistics-header-pages": "Síðu hagtøl",
        "statistics-header-edits": "Rætti hagtøl",
-       "statistics-header-views": "Vís hagtøl",
        "statistics-header-users": "Brúkarahagtøl",
        "statistics-header-hooks": "Onnur hagtøl",
        "statistics-articles": "Innihaldssíður",
        "statistics-files": "Fílur lagdar upp",
        "statistics-edits": "Síðurættingar síðan {{SITENAME}} varð stovnað",
        "statistics-edits-average": "Miðal rættingar pr. síðu",
-       "statistics-views-total": "Sýningar tilsamans",
-       "statistics-views-total-desc": "Sýningar á síðum ið ikki eru til longur og á serstakar síður eru ikki taldar við",
-       "statistics-views-peredit": "Sýningar fyri hvørja rætting",
        "statistics-users": "Skrásettir [[Special:ListUsers|brúkarir]]",
        "statistics-users-active": "Virknir brúkarir",
        "statistics-users-active-desc": "Brúkarar ið hava framt eina handling seinasta/u {{PLURAL:$1|døgnið|$1 dagarnar}}",
-       "statistics-mostpopular": "Mest sæddu síður",
        "pageswithprop": "Síður við síðueginleika",
        "pageswithprop-legend": "Síður við einum síðueginleika",
        "pageswithprop-text": "Henda síðan vísir síður ein lista yvir síður, sum hava ein serstakan síðueginleika.",
        "uncategorizedtemplates": "Óbólkaðar fyrimyndir",
        "unusedcategories": "Óbrúktir bólkar",
        "unusedimages": "Óbrúktar fílur",
-       "popularpages": "Umtóktar síður",
        "wantedcategories": "Ynsktir bólkar",
        "wantedpages": "Ynsktar síður",
        "wantedpages-badtitle": "Ógyldugt heiti í úrslitunum: $1",
        "pageinfo-robot-policy": "Indeksering av robottum",
        "pageinfo-robot-index": "Loyvt",
        "pageinfo-robot-noindex": "Ikki loyvt",
-       "pageinfo-views": "Tal av skoðanum",
        "pageinfo-watchers": "Tal av síðu eygleiðarum",
        "pageinfo-few-watchers": "Færri enn $1 {{PLURAL:$1|eftirlitsbrúkari|eftirlitsbrúkarar}}",
        "pageinfo-redirects-name": "Tal av víðaristillingum til hesa síðu",
index 4b54e40..15eeca8 100644 (file)
        "viewsourcetext": "Vous pouvez voir et copier le contenu de la page :",
        "viewyourtext": "Vous pouvez voir et copier le contenu de '''vos modifications''' à cette page :",
        "protectedinterface": "Cette page fournit du texte d'interface pour le logiciel sur ce wiki, et est protégée pour éviter les abus.\nPour ajouter ou modifier des traductions sur tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet de localisation de MediaWiki.",
-       "editinginterface": "'''Attention''' : vous êtes en train de modifier une page utilisée pour créer le texte de l’interface du logiciel. Les changements sur cette page se répercuteront sur l’apparence de l’interface utilisateur pour les autres utilisateurs de ce wiki.\nPour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet d’internationalisation de MediaWiki.",
+       "editinginterface": "<strong>Attention :</strong> vous êtes en train de modifier une page utilisée pour créer le texte de l’interface du logiciel.\nLes changements sur cette page se répercuteront sur l’apparence de l’interface utilisateur pour les autres utilisateurs de ce wiki.",
+       "translateinterface": "Pour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet de localisation de MédiaWiki.",
        "cascadeprotected": "Cette page est protégée car elle est incluse par {{PLURAL:$1|la page suivante, qui a été protégée|les pages suivantes, qui ont été protégées}} avec l’option « protection en cascade » activée :\n$2",
        "namespaceprotected": "Vous n'avez pas la permission de modifier les pages de l'espace de noms « '''$1''' ».",
        "customcssprotected": "Vous n'avez pas la permission de modifier cette page de CSS, car elle contient les paramètres personnels d'un autre utilisateur.",
        "content-model-text": "texte brut",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Pages utilisant des arguments dupliqués dans les appels de modèle",
+       "duplicate-args-category-desc": "La page contient des appels de modèle qui utilisent des arguments dupliqués, comme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Attention : cette page contient de trop nombreux appels à des fonctions coûteuses de l'analyseur syntaxique.\n\nIl devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu'il y en a maintenant $1.",
        "expensive-parserfunction-category": "Pages avec trop d'appels dispendieux de fonctions de l'analyseur syntaxique",
        "post-expand-template-inclusion-warning": "Attention : Cette page contient trop d'inclusions de modèles. Certaines inclusions ne seront pas effectuées.",
        "mergehistory-reason": "Motif :",
        "mergehistory-revisionrow": "$1 ($2) $3 — $4 $5 $6",
        "mergelog": "Journal des fusions",
-       "pagemerge-logentry": "[[$1]] fusionnée avec [[$2]] (versions jusqu'au $3)",
        "revertmerge": "Séparer",
        "mergelogpagetext": "Voici la liste des plus récentes fusions de l’historique d’une page dans celui d’une autre.",
        "history-title": "$1 : Historique des versions",
        "search-result-category-size": "$1 membre{{PLURAL:$1||s}} ($2 sous-catégorie{{PLURAL:$2||s}}, $3 fichier{{PLURAL:$3||s}})",
        "search-redirect": "(redirection depuis $1)",
        "search-section": "(section $1)",
+       "search-category": "(catégorie $1)",
        "search-file-match": "(correspond au contenu du fichier)",
        "search-suggest": "Essayez avec cette orthographe : $1",
        "search-interwiki-caption": "Projets frères",
        "gender-female": "Elle modifie des pages du wiki",
        "prefs-help-gender": "Définir cette préférence est facultatif.\nCe logiciel utilise sa valeur pour s’adresser à vous et vous mentionner aux autres en utilisant le bon genre grammatical.\nCette information sera publique.",
        "email": "Courriel",
-       "prefs-help-realname": "Facultatif : si vous le spécifiez, il sera utilisé pour vous attribuer vos contributions.",
+       "prefs-help-realname": "Le vrai nom est facultatif.\nS’il est fourni, il sera utilisé pour vous attribuer vos contributions.",
        "prefs-help-email": "L'adresse de courriel est facultative, mais elle est nécessaire pour réinitialiser votre mot de passe, si vous veniez à l'oublier.",
        "prefs-help-email-others": "Vous pourriez aussi choisir de laisser les autres vous contacter sur votre page de discussion utilisateur sans que soit nécessaire de révéler votre identité.",
        "prefs-help-email-required": "Une adresse de courriel est requise.",
        "statistics": "Statistiques",
        "statistics-header-pages": "Statistiques des pages",
        "statistics-header-edits": "Statistiques des modifications",
-       "statistics-header-views": "Statistiques des visites",
        "statistics-header-users": "Statistiques des utilisateurs",
        "statistics-header-hooks": "Autres statistiques",
        "statistics-articles": "Pages de contenu",
        "statistics-files": "Fichiers importés",
        "statistics-edits": "Modifications de pages depuis l'installation de {{SITENAME}}",
        "statistics-edits-average": "Nombre moyen de modifications par page",
-       "statistics-views-total": "Visites",
-       "statistics-views-total-desc": "Les vues des pages non existantes et des pages spéciales ne sont pas incluses",
-       "statistics-views-peredit": "Visites par modification",
        "statistics-users": "[[Special:ListUsers|Utilisateurs]] enregistrés",
        "statistics-users-active": "Utilisateurs actifs",
        "statistics-users-active-desc": "Utilisateurs ayant fait au moins une action durant {{PLURAL:$1|le dernier jours|les $1 derniers jours}}",
-       "statistics-mostpopular": "Pages les plus consultées",
        "pageswithprop": "Pages avec une propriété de page",
        "pageswithprop-legend": "Pages avec une propriété de page",
        "pageswithprop-text": "Cette page liste les pages qui utilisent une propriété de page particulière.",
        "uncategorizedtemplates": "Modèles sans catégories",
        "unusedcategories": "Catégories inutilisées",
        "unusedimages": "Fichiers orphelins",
-       "popularpages": "Pages les plus consultées",
        "wantedcategories": "Catégories les plus demandées",
        "wantedpages": "Pages les plus demandées",
        "wantedpages-badtitle": "Titre invalide dans les résultats : $1",
        "pager-older-n": "{{PLURAL:$1|plus ancienne|$1 plus anciennes}}",
        "suppress": "Superviser",
        "querypage-disabled": "Cette page spéciale est désactivée pour des raisons de performances.",
+       "apihelp": "Aide de l’API",
+       "apihelp-no-such-module": "Le module « $1 » est introuvable.",
        "booksources": "Ouvrages de référence",
        "booksources-search-legend": "Rechercher parmi des ouvrages de référence",
        "booksources-isbn": "ISBN :",
        "tooltip-pt-mycontris": "La liste de vos contributions",
        "tooltip-pt-login": "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier ; ce n'est cependant pas obligatoire.",
        "tooltip-pt-logout": "Se déconnecter",
+       "tooltip-pt-createaccount": "Il vous est conseillé de créer un compte et de vous connecter ; cependant, ce n’est pas obligatoire",
        "tooltip-ca-talk": "Discussion au sujet de cette page de contenu",
        "tooltip-ca-edit": "Vous pouvez modifier cette page.\nVeuillez utiliser le bouton de prévisualisation avant d'enregistrer.",
        "tooltip-ca-addsection": "Commencer une nouvelle section",
        "tooltip-feed-atom": "Flux Atom pour cette page",
        "tooltip-t-contributions": "Voir la liste des contributions de cet utilisateur",
        "tooltip-t-emailuser": "Envoyer un courriel à cet utilisateur",
+       "tooltip-t-info": "Plus d’information sur cette page",
        "tooltip-t-upload": "Envoyer une image ou fichier média sur le serveur",
        "tooltip-t-specialpages": "Liste de toutes les pages spéciales",
        "tooltip-t-print": "Version imprimable de cette page",
        "pageinfo-robot-policy": "Indexation par robots",
        "pageinfo-robot-index": "Autorisée",
        "pageinfo-robot-noindex": "Interdite",
-       "pageinfo-views": "Nombre de vues",
        "pageinfo-watchers": "Nombre de contributeurs ayant la page dans leur liste de suivi",
        "pageinfo-few-watchers": "Moins de $1 {{PLURAL:$1|observateur|observateurs}}",
        "pageinfo-redirects-name": "Nombre de redirections vers cette page",
        "unknown_extension_tag": "Balise d’extension « $1 » inconnue",
        "duplicate-defaultsort": "Attention : la clé de tri par défaut « $2 » écrase la précédente clé « $1 ».",
        "duplicate-displaytitle": "<strong>Attention :</strong> Le titre d'affichage «$2» remplace l'ancien titre d'affichage «$1».",
+       "invalid-indicator-name": "<strong>Erreur :</strong> L’attribut <code>name</code> des indicateurs d’état de la page ne doit pas être vide.",
        "version": "Version",
        "version-extensions": "Extensions installées",
        "version-skins": "Habillages installés",
        "revdelete-uname-unhid": "nom d'utilisateur affiché",
        "revdelete-restricted": "restrictions appliquées aux administrateurs",
        "revdelete-unrestricted": "restrictions retirées pour les administrateurs",
+       "logentry-merge-merge": "$1 {{GENDER:$2|a fusionné}} $3 en $4 (révisions jusqu’à $5)",
        "logentry-move-move": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4 sans laisser de redirection",
        "logentry-move-move_redir": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4 par-dessus une redirection",
        "api-error-stashfailed": "Erreur interne : le serveur n'a pas pu enregistrer le fichier temporaire.",
        "api-error-publishfailed": "Erreur interne: Le serveur n'a pas pu publier le fichier temporaire.",
        "api-error-stasherror": "Une erreur s'est produite lors du téléchargement du fichier pour le dissimuler.",
+       "api-error-stashedfilenotfound": "Le fichier caché n’a pas été trouvé lors de la tentative pour le télécharger depuis sa cachette.",
+       "api-error-stashpathinvalid": "Le chemin où aurait dû se trouver le fichier caché n’est pas valide.",
+       "api-error-stashfilestorage": "Une erreur s’est produite en stockant le fichier dans la cachette.",
+       "api-error-stashzerolength": "Le serveur n’a pas pu cacher le fichier, car il a une taille de zéro.",
+       "api-error-stashnotloggedin": "Vous devez être connecté pour enregistrer des fichiers dans la cachette de téléchargement.",
+       "api-error-stashwrongowner": "Le fichier auquel vous essayez d’accéder dans la cachette ne vous appartient pas.",
+       "api-error-stashnosuchfilekey": "La clé du fichier auquel vous essayez d’accéder dans la cachette n’existe pas.",
        "api-error-timeout": "Le serveur n'a pas répondu dans le délai imparti.",
        "api-error-unclassified": "Une erreur inconnue s'est produite",
        "api-error-unknown-code": "Erreur inconnue : « $1 »",
        "mediastatistics-table-totalbytes": "Taille combinée",
        "mediastatistics-header-unknown": "Inconnu",
        "mediastatistics-header-bitmap": "Images raster",
-       "mediastatistics-header-drawing": "Desseins (images vectorielles)",
+       "mediastatistics-header-drawing": "Dessins (images vectorielles)",
        "mediastatistics-header-audio": "Audio",
        "mediastatistics-header-video": "Vidéos",
        "mediastatistics-header-multimedia": "Média riche",
index 0b328e5..6bee7ed 100644 (file)
@@ -20,7 +20,6 @@
        "tog-showtoolbar": "Montrer la barre d'outils des changements (JavaScript)",
        "tog-editondblclick": "Faire un clic-double pour changer la page (JavaScript)",
        "tog-editsectiononrightclick": "Changer une section en faisant un clic droit sus son nom (JavaScript)",
-       "tog-rememberpassword": "Garder mon mot de passe (for a maximum of $1 {{PLURAL:$1|day|days}})",
        "tog-watchcreations": "Additionner les pages que je crée à ma liste des pages guettées",
        "tog-watchdefault": "Additionner les pages que je change à ma liste des pages guettées",
        "tog-watchmoves": "Additionner les pages que je renomme à ma liste des pages guettées",
        "qbmyoptions": "Mes options",
        "faq": "Questions Communes",
        "faqpage": "Project:Questions Communes",
-       "vector-action-delete": "Supprimer",
-       "vector-action-protect": "Protéger",
        "errorpagetitle": "Erreur",
        "returnto": "Retourner back à la page $1.",
        "tagline": "Un article de {{SITENAME}}",
        "talkpagelinktext": "Discuter",
        "specialpage": "Page espéciale",
        "personaltools": "Outils personnels",
-       "postcomment": "Nouvelle section",
        "articlepage": "Voir l'article",
        "talk": "Discussion",
        "views": "Vues",
        "filedeleteerror": "Impossible d'ôter le dossier \"$1\".",
        "directorycreateerror": "Impossible de créer le directoire \"$1\".",
        "filenotfound": "Impossible de trouver le dossier \"$1\".",
-       "fileexistserror": "Impossible d'écrire dans le dossier \"$1\": le dossier est là",
        "unexpected": "Valeur pas prévue: \"$1\"=\"$2\".",
        "formerror": "Erreur: impossible d'envoyer l'application",
        "badarticleerror": "Cette action peut pas être faite sus cette page.",
        "externaldberror": "Soit y avait une erreur avec la base d'information de certification extérieur, soit vous avez pas la permission de renouveler votre compte extérieur.",
        "login": "Connecter",
        "nav-login-createaccount": "Connecter / créer un compte",
-       "loginprompt": "Il faut partir les cookies pour connecter à {{SITENAME}}.",
        "userlogin": "Connecter / créer un compte",
        "logout": "Déconnecter",
        "userlogout": "Déconnecter",
        "savearticle": "Sauver la page",
        "preview": "Vue d'avance",
        "showpreview": "Vue d'avance",
-       "showlivepreview": "Vue d'avance vite",
        "showdiff": "Montrer les changements",
        "anoneditwarning": "'''Attention:''' Vous êtes pas connecté.  Votre adresse IP vas être sauvée dans la liste des changements pour cette page.",
        "missingsummary": "'''Attention:'''  Vous avez pas mis de description.  Si vous cliquez le bouton \"Sauver\" encore, votre changement va être sauvé sans description.",
        "prefs-custom-js": "Custom JavaScript",
        "youremail": "E-mail:",
        "username": "Nom d'useur:",
-       "uid": "Numéro d'useur:",
        "yourrealname": "Vrai nom:",
        "yourlanguage": "Langue:",
        "yourvariant": "Différent:",
index 6db997a..7adc6a3 100644 (file)
        "mergehistory-same-destination": "Les pâges d’origina et de dèstinacion pôvont pas étre la méma",
        "mergehistory-reason": "Rêson :",
        "mergelog": "Jornal de les fusions",
-       "pagemerge-logentry": "[[$1]] fusionâye dedens [[$2]] (vèrsions tant qu’u $3)",
        "revertmerge": "Sèparar",
        "mergelogpagetext": "Vê-que na lista de les fusions les ples novèles de l’historico d’una pâge dedens celi d’un’ôtra.",
        "history-title": "Historico de les vèrsions de « $1 »",
        "statistics": "Statistiques",
        "statistics-header-pages": "Statistiques de les pâges",
        "statistics-header-edits": "Statistiques des changements",
-       "statistics-header-views": "Statistiques de les vues",
        "statistics-header-users": "Statistiques des utilisators",
        "statistics-header-hooks": "Ôtres statistiques",
        "statistics-articles": "Pâges de contegnu",
        "statistics-files": "Fichiérs tèlèchargiês",
        "statistics-edits": "Changements de pâges dês l’enstalacion de {{SITENAME}}",
        "statistics-edits-average": "Nombro moyen de changements per pâge",
-       "statistics-views-total": "Soma de les vues",
-       "statistics-views-total-desc": "Les vues de les pâges pas ègzistentes et de les pâges spèciâles sont pas avouéc",
-       "statistics-views-peredit": "Vues per changement",
        "statistics-users": "[[Special:ListUsers|Utilisators]] encartâs",
        "statistics-users-active": "Utilisators actifs",
        "statistics-users-active-desc": "Utilisators qu’ant fêt por lo muens un’accion pendent {{PLURAL:$1|lo jorn passâ|los $1 jorns passâs}}",
-       "statistics-mostpopular": "Pâges les ples vues",
        "pageswithprop": "Pâges avouéc na propriètât de pâge",
        "pageswithprop-legend": "Pâges avouéc na propriètât de pâge",
        "pageswithprop-text": "Ceta pâge liste les pâges qu’emplèyont na propriètât de pâge particuliére.",
        "uncategorizedtemplates": "Modèlos sen catègories",
        "unusedcategories": "Catègories pas empleyêes",
        "unusedimages": "Fichiérs pas empleyês",
-       "popularpages": "Pâges populères",
        "wantedcategories": "Catègories demandâyes",
        "wantedpages": "Pâges demandâyes",
        "wantedpages-badtitle": "Titro pas justo dedens l’ensemblo de rèsultats : $1",
        "pageinfo-robot-policy": "Statut de motor de rechèrche",
        "pageinfo-robot-index": "Endèxâblo",
        "pageinfo-robot-noindex": "Pas endèxâblo",
-       "pageinfo-views": "Nombro de visualisacions",
        "pageinfo-watchers": "Nombro de contributors qu’ont la pâge dedens lor lista de survelyence",
        "pageinfo-redirects-name": "Redirèccions de vers ceta pâge",
        "pageinfo-subpages-name": "Sot-pâges de ceta pâge",
index 6674ede..743f91f 100644 (file)
        "mergehistory-same-destination": "Det iarst an det ööder sidj mut ei detsalew wees",
        "mergehistory-reason": "Grünj:",
        "mergelog": "Ferianangs-logbuk",
-       "pagemerge-logentry": "[[$1]] efter [[$2]] tuupfeerd (werjuunen bit $3)",
        "revertmerge": "Det tuupfeeren turagsaat",
        "mergelogpagetext": "Diar as det logbuk faan a tuupfeerd sidjen.",
        "history-title": "$1: Ferluup faan a werjuunen",
        "statistics": "Statistik",
        "statistics-header-pages": "Sidjenstatistik",
        "statistics-header-edits": "Statistik faan feranrangen",
-       "statistics-header-views": "Statistik faan kliks üüb sidjen",
        "statistics-header-users": "Brükerstatistik",
        "statistics-header-hooks": "Ööder statistiken",
        "statistics-articles": "Artiikler",
        "statistics-files": "Huuchschüürd datein",
        "statistics-edits": "Feranrangen, sant {{SITENAME}} maaget wurden as",
        "statistics-edits-average": "Feranrangen per sidj uun't madel",
-       "statistics-views-total": "Kliks üüb det sidj",
-       "statistics-views-total-desc": "Kliks üüb sidjen, diar't goorei jaft of \"Spezial-\"sidjen wurd ei mätääld.",
-       "statistics-views-peredit": "Kliks per feranrang",
        "statistics-users": "Registriaret [[Special:ListUsers|brükern]]",
        "statistics-users-active": "Aktiif brükern",
        "statistics-users-active-desc": "Brükern, diar wat bewerket haa uun a leetst {{PLURAL:$1|dai|$1 daar}}",
-       "statistics-mostpopular": "Sidjen mä a miast kliks",
        "pageswithprop": "Sidjen mä en sidjeneegenoort",
        "pageswithprop-legend": "Sidjen mä en sidjeneegenoort",
        "pageswithprop-text": "Detheer Spezial-sidj feert sidjen mä was sidjeneegenoorten ap.",
        "uncategorizedtemplates": "Föörlaagen saner kategorii",
        "unusedcategories": "Kategoriin, diar ei brükt wurd",
        "unusedimages": "Datein, diar ei brükt wurd",
-       "popularpages": "Miats uunluket sidjen",
        "wantedcategories": "Kategoriin, diar brükt wurd",
        "wantedpages": "Sidjen, diar brükt wurd",
        "wantedpages-badtitle": "Diar as en artiikelnööm ei tuläät uun: $1",
        "pageinfo-robot-policy": "Faan bots indisiaret",
        "pageinfo-robot-index": "Tuläät",
        "pageinfo-robot-noindex": "Ei tuläät",
-       "pageinfo-views": "Taal faan kliks üüb det sidj",
        "pageinfo-watchers": "Taal faan brükern, diar det sidj uun't uug haa",
        "pageinfo-few-watchers": "Maner üs {{PLURAL:$1|ään brüker|$1 brükern}}, diar det sidj uun't uug haa",
        "pageinfo-redirects-name": "Taal faan widjerfeerangen tu detdiar sidj",
        "log-name-pagelang": "Logbuk för spriak-feranrangen",
        "log-description-pagelang": "Det as en logbuk för sidjenspriak-feranrangen",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|hää}} det sidjenspriak för $3 faan $4 tu $5 feranert.",
-       "default-skin-not-found": "Hoppla! Die in <code dir=\"ltr\">$wgDefaultSkin</code> als <code>$1</code> definierte Standardbenutzeroberfläche für dein Wiki ist nicht verfügbar.\n\nDeine Installation scheint die folgenden Benutzeroberflächen zu enthalten. Siehe [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de das Benutzerhandbuch] zur Aktivierung und Auswahl des Standards.\n\n$2\n\n; Falls du gerade MediaWiki installiert hast:\n: Du hast vermutlich von Git oder direkt vom Quellcode mithilfe einer anderen Methode installiert. Dies wird erwartet. Versuche einige Benutzeroberflächen aus dem  [https://www.mediawiki.org/wiki/Category:All_skins MediaWiki.org-Benutzeroberflächenverzeichnis] zu installieren, indem du:\n:* Den [https://www.mediawiki.org/wiki/Download/de Tarball-Installer] herunterlädst, der mit verschiedenen Benutzeroberflächen und Erweiterungen kommt. Du kannst das Verzeichnis <code>skins/</code> kopieren und einfügen.\n:* Eine der <code>mediawiki/skins/*</code>-Repositorien über Git in das <code dir=\"ltr\">skins/</code>-Verzeichnis deiner MediaWiki-Installation klonst.\n: Dies sollte nicht dein Git-Repositorium beeinträchtigen, falls du ein MediaWiki-Entwickler bist.\n\n; Falls du gerade MediaWiki aktualisiert hast:\n: MediaWiki 1.24 und neuere Versionen aktivieren nicht mehr automatisch installierte Benutzeroberflächen (siehe das [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Benutzerhandbuch]). Du kannst die folgenden Zeilen in die Datei <code>LocalSettings.php</code> einfügen, um alle derzeit installierten Benutzeroberflächen zu aktivieren:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Falls du gerade <code>LocalSettings.php</code> geändert hast:\n: Überprüfe die Namen der Benutzeroberflächen auf Tippfehler.",
-       "default-skin-not-found-no-skins": "Hoppla! Die in <code>$wgDefaultSkin</code> als <code>$1</code> definierte Standardbenutzeroberfläche für dein Wiki ist nicht verfügbar.\n\nDu hast keine installierten Benutzeroberflächen.\n\n; Falls du gerade MediaWiki installiert oder aktualisiert hast:\n: Du hast vermutlich von Git oder direkt vom Quellcode mithilfe einer anderen Methode installiert. Dies wird erwartet. MediaWiki 1.24 und neuere Versionen enthalten keine Benutzeroberflächen im Haupt-Repositorium. Versuche einige Benutzeroberflächen aus dem [https://www.mediawiki.org/wiki/Category:All_skins MediaWiki.org-Benutzeroberflächenverzeichnis] zu installieren, indem du:\n:* Den [https://www.mediawiki.org/wiki/Download/de Tarball-Installer] herunterlädst, der mit verschiedenen Benutzeroberflächen und Erweiterungen kommt. Du kannst das  <code>skins/</code>-Verzeichnis kopieren und einfügen.\n:* Eine der <code>mediawiki/skins/*</code>-Repositorien über Git in das <code dir=\"ltr\">skins/</code>-Verzeichnis deiner MediaWiki-Installation klonst.\n: Dies sollte nicht dein Git-Repositorium beeinträchtigen, falls du ein MediaWiki-Entwickler bist. Siehe das [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Benutzerhandbuch] zur Aktivierung von Benutzeroberflächen und Auswahl des Standards.",
+       "default-skin-not-found": "Uuha! Uun <code dir=\"ltr\">$wgDefaultSkin</code> as fäästlaanj, dat <code>$1</code> dan standard-skak as. Man hi as ei diar!\n\nDin instalatjuun hää wel jodiar skaker. Luke uk uun't [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de brüker-hoonbuk], am skaker tu aktiwiarin an standards iinturachten.\n\n$2\n\n; Wan dü MediaWiki jüst instaliaret heest:\n: Dü heest was faan Git of direkt faan a kwelcode instaliaret. Do as det nian woner. Dü könst skaker ütj det [https://www.mediawiki.org/wiki/Category:All_skins MediaWiki.org-Skakfertiaknis] instaliare. Diarför skel dü:\n:* Di [https://www.mediawiki.org/wiki/Download/de Tarball-Installer] deelloose, hi komt mä ünlik skaker an ütjwidjangen. Dü könst det  <code>skins/</code>-fertiaknis kopiare an iinsaat.\n:* Ian faan a <code>mediawiki/skins/*</code>-fertiaknissen auer Git iin uun det <code dir=\"ltr\">skins/</code>-fertiaknis faan din MediaWiki-Instalatjuun auerskriiw.\n: Det skul din Git-fertiaknis ei uunstaken maage, wan dü en MediaWiki-ütjwerker beest.\n\n; Wan dü jüst MediaWiki aktualisiaret heest:\n: MediaWiki 1.24 an neier werjuunen aktiwiare instaliaret skaker ei muar faan salew (luke uk iin uun det [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery brüker-hoonbuk]). Dü könst jodiar räen uun det datei <code>LocalSettings.php</code> iinsaat, am aal a instaliaret skaker tu aktiwiarin:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Wan dü jüst <code>LocalSettings.php</code> feranert heest:\n: Heest dü a skaker uk aaltumaal rocht skrewen?",
+       "default-skin-not-found-no-skins": "Uuha! Uun <code>$wgDefaultSkin</code> as fäästlaanj, dat <code>$1</code> dan standard-skak as. Man hi as ei diar!\n\nDü heest goor nian skak instaliaret.\n\n; Wan dü MediaWiki jüst instaliaret of aktualisiaret heest:\n: Dü heest was faan Git of direkt faan a kwelcode instaliaret. Do as det nian woner. MediaWiki 1.24 an neier werjuunen haa nian skak uun't hood-fertiaknis. Dü könst skaker ütj det [https://www.mediawiki.org/wiki/Category:All_skins MediaWiki.org-Skakfertiaknis] instaliare. Diarför skel dü:\n:* Di [https://www.mediawiki.org/wiki/Download/de Tarball-Installer] deelloose, hi komt mä ünlik skaker an ütjwidjangen. Dü könst det  <code>skins/</code>-fertiaknis kopiare an iinsaat.\n:* Ian faan a <code>mediawiki/skins/*</code>-fertiaknissen auer Git iin uun det <code dir=\"ltr\">skins/</code>-fertiaknis faan din MediaWiki-Instalatjuun auerskriiw.\n: Det skul din Git-fertiaknis ei uunstaken maage, wan dü en MediaWiki-ütjwerker beest. Luke uk uun't [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de brüker-hoonbuk], am skaker tu aktiwiarin an standards iinturachten.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktiwiaret)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''ufsteld''')",
        "mediastatistics": "Statistik faan meedien",
index a2490b8..9887e73 100644 (file)
        "statistics": "Statistichis",
        "statistics-header-pages": "Statistichis su lis pagjinis",
        "statistics-header-edits": "Statistichis sui cambiaments",
-       "statistics-header-views": "Statistichis su lis viodudis",
        "statistics-header-users": "Statistichis dai utents",
        "statistics-header-hooks": "Altris statistichis",
        "statistics-articles": "Pagjinis di contignûts",
        "statistics-files": "Files cjamâts sù",
        "statistics-edits": "Cambiaments scomençant de instalazion di {{SITENAME}}",
        "statistics-edits-average": "Medie dai cambiaments par ogni pagjine",
-       "statistics-views-total": "Viodudis totâls",
-       "statistics-views-peredit": "Viodudis par cambiament",
        "statistics-users": "[[Special:ListUsers|Utents]] regjistrâts",
        "statistics-users-active": "Utents atîfs",
        "statistics-users-active-desc": "Utents che a àn fat une azion {{PLURAL:$1|intal ultin dì|intai ultins $1 dîs}}",
-       "statistics-mostpopular": "Pagjinis plui visitadis",
        "doubleredirects": "Re-indreçaments doplis",
        "brokenredirects": "Re-indreçaments che no funzionin",
        "brokenredirectstext": "I re-indreçaments ca sot a mandin a pagjinis che no esistin:",
        "uncategorizedtemplates": "Modei cence une categorie",
        "unusedcategories": "Categoriis no dopradis",
        "unusedimages": "Files no doprâts",
-       "popularpages": "Pagjinis popolârs",
        "wantedcategories": "Categoriis desideradis",
        "wantedpages": "Pagjinis desideradis",
        "wantedfiles": "Files desiderâts",
index 65d4bd9..b0c02ce 100644 (file)
@@ -11,7 +11,8 @@
                        "Snakesteuben",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Robin0van0der0vliet"
                ]
        },
        "tog-underline": "Keppelings ûnderstreekje:",
        "listingcontinuesabbrev": "(ferfolch)",
        "index-category": "Yndeksearre siden",
        "noindex-category": "Net-yndeksearre siden",
-       "about": "Ynfo",
+       "about": "Oer",
        "article": "Ynhâld side",
        "newwindow": "(nij finster)",
-       "cancel": "Ofbrekke",
+       "cancel": "Annulearje",
        "moredotdotdot": "Mear...",
        "mypage": "Myn side",
        "mytalk": "Myn oerlis",
        "faqpage": "Project:Faak stelde fragen",
        "namespaces": "Nammeromten",
        "variants": "Farianten",
-       "errorpagetitle": "Fout",
+       "errorpagetitle": "Flater",
        "returnto": "Werom nei \"$1\".",
        "tagline": "Ut {{SITENAME}}",
        "help": "Help",
        "permalink": "Fêste keppeling",
        "print": "Ofdrukke",
        "view": "Lêze",
-       "edit": "Feroarje",
+       "edit": "Bewurkje",
        "create": "Oanmeitsje",
        "editthispage": "Side bewurkje",
        "create-this-page": "Dizze side oanmeitsje",
        "jumptonavigation": "navigaasje",
        "jumptosearch": "sykje",
        "view-pool-error": "Ekskuseare, de tsjinners hawwe it op it stuit te drok.\nTefolle meidoggers probearje dizze side te besjen.\nWachtsje efkes foardatsto op 'e nij tagong ta dizze side probearrest te krijen.\n\n$1",
-       "aboutsite": "Oer de {{SITENAME}}",
+       "aboutsite": "Oer {{SITENAME}}",
        "aboutpage": "Project:Ynfo",
        "copyright": "Ynhâld is beskikber ûnder de $1.",
        "copyrightpage": "{{ns:project}}:Auteursrjocht",
        "badaccess-groups": "De frege hanneling is foarbehâlden oan brûkers yn {{PLURAL:$2|'e groep|ien fan de groepen}}: $1.",
        "versionrequired": "Ferzje $1 fan MediaWiki is eask",
        "versionrequiredtext": "Ferzje $1 fan MediaWiki is eask om dizze side te brûken. Mear ynfo is beskikber op 'e side [[Special:Version|softwareferzje]].",
-       "ok": "Goed",
+       "ok": "OK",
        "retrievedfrom": "Untfongen fan \"$1\"",
        "youhavenewmessages": "Jo hawwe $1 ($2).",
        "youhavenewmessagesmulti": "Jo hawwe nije berjochten op $1",
        "toc": "Ynhâld",
        "showtoc": "sjen litte",
        "hidetoc": "net sjen litte",
+       "confirmable-yes": "Ja",
+       "confirmable-no": "Nee",
        "thisisdeleted": "\"$1\" lêze of werombringe?",
        "viewdeleted": "$1 sjen litte?",
        "restorelink": "$1 wiske {{PLURAL:$1|ferzje|ferzjes}}",
        "nosuchactiontext": "De opdracht yn de URL is ûnjildich.\nMooglik hasto in typefout makke yn de URL of in ferkearde keppeling folge.\nIt soe likegoed in programmatuerflater fan {{SITENAME}} wêze kinne.",
        "nosuchspecialpage": "Unbekende side",
        "nospecialpagetext": "Jo hawwe in Wiki-side opfrege dy't net bekend is by it Wiki-programma.",
-       "error": "Fout",
+       "error": "Flater",
        "databaseerror": "Databankfout",
+       "databaseerror-error": "Flater: $1",
        "laggedslavemode": "Warskôging: Mûglik binne resinte bewurkings noch net trochfierd.",
        "readonly": "Databank is 'Net-skriuwe'.",
        "enterlockreason": "Skriuw wêrom de databank 'net-skriuwe' makke is, en hoenear't men wêr nei alle gedachten wer skriuwe kin.",
        "virus-scanfailed": "scannen is mislearre (koade $1)",
        "virus-unknownscanner": "ûnbekend antivirus:",
        "logouttext": "'''Jo binne no ôfmeld.'''\n\nGuon siden kinne noch foar it ljocht komme, krekt as wiesto noch oanmeld. Asto de cache fan dyn webblêder leechhellest feroaret dat wer.",
-       "yourname": "Jo meidochnamme:",
-       "userlogin-yourname": "Meidoggersnamme",
+       "yourname": "Brûkersnamme:",
+       "userlogin-yourname": "Brûkersnamme",
        "userlogin-yourname-ph": "Jou dyn brûkersnamme",
        "createacct-another-username-ph": "Jou dyn brûkersnamme",
-       "yourpassword": "Jo wachtwurd",
+       "yourpassword": "Wachtwurd:",
        "userlogin-yourpassword": "Wachtwurd",
        "userlogin-yourpassword-ph": "Jou dyn wachtwurd",
        "createacct-yourpassword-ph": "Jou dyn wachtwurd",
        "resetpass_forbidden": "Wachtwurden kinne net feroare wurde",
        "resetpass-no-info": "Jo moatte oanmeld wêze foar't Jo dizze side brûke kinne.",
        "resetpass-submit-loggedin": "Wachtwurd feroarje",
-       "resetpass-submit-cancel": "Ofbrekke",
+       "resetpass-submit-cancel": "Annulearje",
        "resetpass-wrong-oldpass": "It momintele of tydlike wachtwurd is ûnjildich.\nMûglik hawwe Jo Jo wachtwurd al feroare of in nij tydlik wachtwurd oanfrege.",
        "resetpass-temp-password": "Tydlik wachtwurd:",
        "passwordreset-legend": "Wachtwurd weromsette",
-       "passwordreset-username": "Meidoggernamme",
+       "passwordreset-username": "Brûkersnamme:",
        "passwordreset-domain": "Domein:",
        "passwordreset-email": "E-mailadres:",
        "passwordreset-emailtitle": "Akkountdetails op {{SITENAME}}",
        "mergehistory-same-destination": "De boarneside en de doelside kinne net deselde wêze",
        "mergehistory-reason": "Reden:",
        "mergelog": "Gearfoegingslogboek",
-       "pagemerge-logentry": "[[$1]] kombinearre mei [[$2]] (maksimaal $3 ferzjes)",
        "revertmerge": "Gearfoeging ûngedien meitsje",
        "mergelogpagetext": "Hjirûnder stiet in list fan resinte gearfoegings fan ien side-skiednis nei in oaren.",
        "history-title": "Sideskiednis fan \"$1\"",
        "timezoneregion-indian": "Yndyske Oseaan",
        "timezoneregion-pacific": "Stille Oseaan",
        "allowemail": "Lit my ek netpost fan oare meidoggers krije",
-       "prefs-searchoptions": "Sykynstellings",
+       "prefs-searchoptions": "Sykje",
        "prefs-namespaces": "Nammeromten",
        "default": "standert",
-       "prefs-files": "Triemen",
+       "prefs-files": "Triemmen",
        "prefs-custom-js": "Persoanlik JS",
        "prefs-emailconfirm-label": "Netpostbefêstiging:",
-       "youremail": "Jo netpostadres:",
-       "username": "Meidochnamme:",
+       "youremail": "E-mail:",
+       "username": "{{GENDER:$1|Brûkersnamme}}:",
        "prefs-memberingroups": "Lid fan {{PLURAL:$1|groep|groepen}}:",
        "yourrealname": "Jo wiere namme:",
        "yourlanguage": "Taal:",
        "gender-male": "Man",
        "gender-female": "Frou",
        "prefs-help-gender": "Kar: dit wurdt troch de programmatuer brûkt om de goeie oansprekfoarm te kiezen.\nDizze ynformaasje is foar oare meidoggers te sjen.",
-       "email": "E-post",
+       "email": "E-mail",
        "prefs-help-realname": "Echte namme is net ferplicht; as jo dy opjouwe kin dy namme brûkt wurde om jo erkenning te jaan foar jo wurk.",
        "prefs-help-email": "E-post is opsjoneel, mar makket it mûglik jo wachtwurd te stjoeren as jo it fergetten hawwe.\nJo kinne ek oaren de mûglikheid jaan kontakt mei jo op te nimmen troch in ferwizing op jo brûkers- en oerlisside, sûnder dat jo jo identiteit oer hoege te jaan.",
        "prefs-help-email-required": "Hjir is in e-mailadres foar nedich.",
        "action-userrights": "alle brûkersrjochten bewurkje",
        "action-userrights-interwiki": "brûkersrjochten fan brûkers fan oare wiki's bewurkje",
        "action-siteadmin": "de database ôfslute of iepenstelle",
+       "action-sendemail": "e-mail stjoere:",
        "nchanges": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
+       "enhancedrc-history": "skiednis",
        "recentchanges": "Koartlyn feroare",
        "recentchanges-legend": "Opsjes foar resinte feroarings",
        "recentchanges-summary": "De lêste feroarings fan de {{SITENAME}}.",
        "statistics": "Statistyk",
        "statistics-header-pages": "Sidestatistiken",
        "statistics-header-edits": "Bewurkingsstatistiken",
-       "statistics-header-views": "Sidewerjefte-statistiken",
        "statistics-header-users": "Meidogger-statistyk",
        "statistics-articles": "Ynhâldlike siden",
        "statistics-pages": "Siden",
        "statistics-files": "Triemmen",
        "statistics-edits": "Sidebewurkings sûnt it begjin fan {{SITENAME}}",
        "statistics-edits-average": "Trochstrings tal bewurkings per side",
-       "statistics-views-total": "Totaal oantal werjûne siden",
-       "statistics-views-peredit": "Werjûne siden per bewurking",
        "statistics-users": "Registrearre [[Special:ListUsers|brûkers]]",
        "statistics-users-active": "Aktive brûkers",
        "statistics-users-active-desc": "Brûkers dy't yn 'e ôfrûne {{PLURAL:$1|dei|$1 dagen}} in hanneling útfierd hawwe",
-       "statistics-mostpopular": "Meast besjoene siden",
        "doubleredirects": "Dûbelde synonimen",
        "doubleredirectstext": "<b>Let op!</b> Der kinne missen yn dizze list stean! Dat komt dan ornaris troch oare keppelings ûnder de \"#REDIRECT\". Eltse rigel jout keppelings nei it earste synonym, it twadde synonym en dan it werklike doel.",
        "double-redirect-fixed-move": "[[$1]] is ferplakt en is no in trochferwizing nei [[$2]]",
        "uncategorizedtemplates": "Net-kategorisearre sjabloanen",
        "unusedcategories": "Lege kategoryen",
        "unusedimages": "Lossteande ôfbylden",
-       "popularpages": "Populêre siden",
        "wantedcategories": "Nedige kategoryen",
        "wantedpages": "Nedige siden",
        "wantedfiles": "Net-besteande triemmen mei ferwizings",
        "listusers-creationsort": "Oarderje op dei fan oanmeitsjen",
        "usereditcount": "$1 {{PLURAL:$1|bewurking|bewurkings}}",
        "newpages": "Nije siden",
-       "newpages-username": "Meidoggernamme:",
+       "newpages-username": "Brûkersnamme:",
        "ancientpages": "Alde siden",
        "move": "Werneam",
        "movethispage": "Werneam dizze side",
        "noemailtitle": "Gjin e-postadres",
        "noemailtext": "Dizze meidogger hat gjin jildich e-postadres ynsteld, of hat oanjûn gjin post fan oare meidoggers krije te wollen.",
        "nowikiemailtext": "Dizze brûker wol gjin e-mail ûntfange fan oare brûkers.",
+       "emailusername": "Brûkersnamme:",
        "email-legend": "In e-mail ferstjoere nei in oare brûker fan {{SITENAME}}",
        "emailfrom": "Fan:",
        "emailto": "Oan:",
-       "emailsubject": "Oer",
+       "emailsubject": "Ûnderwerp:",
        "emailmessage": "Berjocht:",
        "emailsend": "Stjoer",
        "emailsent": "Berjocht stjoerd",
        "undelete-search-prefix": "Lit siden sjen dy't begjinne mei:",
        "undelete-search-submit": "Sykje",
        "undelete-no-results": "Gjin oerienkommende siden fûn yn it wisk argyf.",
+       "undelete-show-file-submit": "Ja",
        "namespace": "Nammeromte:",
        "invert": "Seleksje útsein",
        "blanknamespace": "(Haadnammerûmte)",
        "unblocklink": "lit yn",
        "change-blocklink": "blokkade feroarje",
        "contribslink": "bydragen",
+       "emaillink": "e-mail stjoere:",
        "autoblocker": "Jo wiene útsletten om't jo ynternet-adres oerienkomt mei dat fan \"[[User:$1|$1]]\". Foar it útsluten fan dy meidogger waard dizze reden jûn: \"$2\".",
        "blocklogpage": "Utslútloch",
        "blocklogentry": "\"[[$1]]\" útsletten foar $2 $3",
        "allmessagesdefault": "Standerttekst",
        "allmessagescurrent": "Tekst yn de nijste ferzje",
        "allmessagestext": "Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte.\nSjoch: [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], [//translatewiki.net translatewiki.net].",
+       "allmessages-language": "Taal:",
        "thumbnail-more": "Fergrutsje",
        "filemissing": "Triem net fûn",
        "thumbnail_error": "Flater by it oanmeitsjen fan thumbnail: $1",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|meidogger|meidoggers}} $1",
        "spamprotectiontext": "De side dy't jo fêstlizze woene is blokkearre troch in spam filter. Dit wurdt wierskynlik feroarsake troch in ferwizing nei in ekstern webstee.",
        "spamprotectionmatch": "De neikommende tekst hat it spam filter aktivearre: $1",
+       "pageinfo-contentpage-yes": "Ja",
+       "pageinfo-protect-cascading-yes": "Ja",
        "markaspatrolleddiff": "Markearje as kontroleare",
        "markaspatrolledtext": "Markearje dizze side as kontrolearre",
        "markedaspatrolled": "Markearre as kontrolearre",
        "version-other": "Oare",
        "version-version": "(Ferzje $1)",
        "version-license": "Lisinsje",
+       "version-ext-colheader-version": "Ferzje",
        "version-software": "Ynsteld software",
        "version-software-product": "Produkt",
        "version-software-version": "Ferzje",
        "compare-rev2": "Revyzje 2",
        "compare-submit": "Ferlykje",
        "compare-invalid-title": "Unjildige titel.",
+       "htmlform-no": "Nee",
+       "htmlform-yes": "Ja",
        "revdelete-restricted": "hat beheinings oplein oan behearders",
        "revdelete-unrestricted": "hat beheinings foar behearders goedmakke",
        "rightsnone": "(gjin)",
        "revdelete-summary": "gearfetting bewurkje",
        "feedback-subject": "Underwerp:",
        "feedback-message": "Berjocht:",
-       "feedback-cancel": "Ofbrekke",
+       "feedback-cancel": "Annulearje",
        "feedback-submit": "Feedback ferstjoere",
        "feedback-close": "Dien",
        "searchsuggest-search": "Sykje",
        "expand_templates_ok": "Okee",
-       "expand_templates_remove_comments": "Berjochten fuorthelje"
+       "expand_templates_remove_comments": "Berjochten fuorthelje",
+       "pagelang-language": "Taal"
 }
index c5e6ee6..a269e4a 100644 (file)
        "uncategorizedtemplates": "Teimpléid gan chatagóir",
        "unusedcategories": "Catagóirí nach n-úsáidtear",
        "unusedimages": "Íomhánna nach n-úsáidtear",
-       "popularpages": "Leathanaigh is mó cuairteanna orthu",
        "wantedcategories": "Catagóirí agus iarraidh ag gabháil leis",
        "wantedpages": "Leathanaigh de dhíth",
        "mostlinked": "Leathanaigh is mó naisc chucu",
index 97ef897..87835e9 100644 (file)
        "statistics": "İstatistikalar",
        "statistics-header-pages": "Sayfa istatistikaları",
        "statistics-header-edits": "Diişmäkleri istatistikaları",
-       "statistics-header-views": "Resim istatikaları",
        "statistics-header-users": "Kullanıcı istatistikaları",
        "statistics-header-hooks": "Başka istatistakalar",
        "statistics-articles": "Yazılar",
        "statistics-files": "Üklenmiş dosyeler",
        "statistics-edits": "{{SITENAME}} kurulmaa beeri yapmaa sayfa diişmäkleri",
        "statistics-edits-average": "Her yapraktaki diişmäklerin sayısı",
-       "statistics-views-total": "Hepsi resimlär",
-       "statistics-views-total-desc": "Var nica olmadı hem maasus yapraklarından resim eklenmee",
-       "statistics-views-peredit": "Diişmäk başına resimlär",
        "statistics-users": "Registratlı [[Special:ListUsers|kullanıcılar]]",
        "statistics-users-active": "Aktivli kullanıcılar",
        "statistics-users-active-desc": "Bitki {{PLURAL:$1|gün|$1 günde}} çalışmaa yapmaa kullanıcılar",
-       "statistics-mostpopular": "En anılmış yazılar",
        "doubleredirects": "İki kerä yönnendirmeler",
        "brokenredirects": "Var olmayan yazıya yapılmış yönnendirmeler",
        "withoutinterwiki": "Başka dillerä baalantısı olmayan sayfalar",
index 7f6ceeb..8cfff81 100644 (file)
@@ -14,7 +14,8 @@
                        "아라",
                        "Mywood",
                        "Duolaimi",
-                       "Impersonator 1"
+                       "Impersonator 1",
+                       "Babanwalia"
                ]
        },
        "tog-underline": "下划链接",
        "qbedit": "编写",
        "qbpageoptions": "个页",
        "qbmyoptions": "偶𠮶选项",
-       "faq": "FAQ",
+       "faq": "ਆਮ ਸੁਆਲ਼",
        "faqpage": "Project:问得蛮多𠮶问题",
        "actions": "动作",
        "namespaces": "空间名",
        "statistics": "数据",
        "statistics-header-pages": "页面数据",
        "statistics-header-edits": "编辑数据",
-       "statistics-header-views": "查看数据",
        "statistics-header-users": "用户数据",
        "statistics-header-hooks": "别𠮶数据",
        "statistics-articles": "内容页",
        "statistics-files": "上载正𠮶档案",
        "statistics-edits": "自从{{SITENAME}}设定𠮶页面编辑数",
        "statistics-edits-average": "每页𠮶平均编辑数",
-       "statistics-views-total": "查看𠮶统共数",
-       "statistics-views-peredit": "每到编辑查看数",
        "statistics-users": "注册过𠮶[[Special:ListUsers|用户]]",
        "statistics-users-active": "活跃用户",
        "statistics-users-active-desc": "头$1日操作过𠮶用户",
-       "statistics-mostpopular": "眵𠮶人最多𠮶页面",
        "doubleredirects": "双重重定向",
        "doubleredirectstext": "底下𠮶重定向链接到别只重定向页面:",
        "double-redirect-fixed-move": "[[$1]]拕移动正,佢个下拕重定向到[[$2]]。",
        "uncategorizedtemplates": "冇归类𠮶模版",
        "unusedcategories": "冇使用𠮶分类",
        "unusedimages": "冇使用𠮶图像",
-       "popularpages": "热门页面",
        "wantedcategories": "等撰𠮶分类",
        "wantedpages": "等撰𠮶页面",
        "mostlinked": "最多链接𠮶页面",
index 3e0a10a..6203e9d 100644 (file)
        "statistics": "數據",
        "statistics-header-pages": "頁面數據",
        "statistics-header-edits": "編輯數據",
-       "statistics-header-views": "查看數據",
        "statistics-header-users": "用戶數據",
        "statistics-header-hooks": "別嗰數據",
        "statistics-articles": "內容頁",
        "statistics-files": "上載正嗰檔案",
        "statistics-edits": "自從{{SITENAME}}設定嗰頁面編輯數",
        "statistics-edits-average": "每頁嗰平均編輯數",
-       "statistics-views-total": "查看嗰統共數",
-       "statistics-views-peredit": "每到編輯查看數",
        "statistics-users": "註冊過嗰[[Special:ListUsers|用戶]]",
        "statistics-users-active": "活躍用戶",
        "statistics-users-active-desc": "頭$1日操作過嗰用戶",
-       "statistics-mostpopular": "眵嗰人頂多嗰頁面",
        "doubleredirects": "雙重重定向頁面",
        "doubleredirectstext": "底下嗰重定向連結到別隻重定向頁面:",
        "double-redirect-fixed-move": "[[$1]]拕移動正,佢箇下拕重定向到[[$2]]。",
        "uncategorizedtemplates": "冇歸類嗰模板",
        "unusedcategories": "冇使用嗰分類",
        "unusedimages": "冇使用嗰圖像",
-       "popularpages": "熱門頁面",
        "wantedcategories": "等撰嗰分類",
        "wantedpages": "等撰嗰頁面",
        "mostlinked": "頂多連結嗰頁面",
index ea10570..503770b 100644 (file)
        "mergehistory-reason": "Adhbhar:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "Loga a' cho-aonaidh",
-       "pagemerge-logentry": "chaidh [[$1]] a cho-aonadh dha [[$2]] (mùthaidhean suas ri $3)",
        "revertmerge": "Dì-aonaich",
        "mergelogpagetext": "Chì thu liosta nan co-aonaidhean as ùire eadar eachdraidh dhuilleagan gu h-ìosail.",
        "history-title": "Eachdraidh nam mùthaidhean aig \"$1\"",
        "statistics": "Stadastaireachd",
        "statistics-header-pages": "Stadastaireachd nan duilleagan",
        "statistics-header-edits": "Deasaich an stadastaireachd",
-       "statistics-header-views": "Seall an stadastaireachd",
        "statistics-header-users": "Stadastaireachd a' chleachdaiche",
        "statistics-header-hooks": "Stadastaireachd eile",
        "statistics-articles": "Duilleagan susbainte",
        "statistics-files": "Faidhlichean a chaidh a luchdadh suas",
        "statistics-edits": "Deasachaidhean air duilleagan on a chaidh {{SITENAME}} a stèidheachadh",
        "statistics-edits-average": "Deasachaidhean cuibheasach air duilleag",
-       "statistics-views-total": "Seallaidhean iomlan",
-       "statistics-views-total-desc": "Chan fhaic thu na seallaidhean air duilleagan nach eil ann no air duilleag shònraichte",
-       "statistics-views-peredit": "Seallaidhean air gach deasachadh",
        "statistics-users": "[[Special:ListUsers|Cleachdaichean]] clàraichte",
        "statistics-users-active": "Cleachdaichean gnìomhach",
        "statistics-users-active-desc": "Cleachdaichean a rinn gnìomh rè {{PLURAL:$1|an $1 latha|an $1 latha|nan $1 làithean|an $1 latha}} mu dheireadh",
-       "statistics-mostpopular": "Na duilleagan air an deach sealltainn as trice",
        "pageswithprop": "Duilleagan le buadh duilleige",
        "pageswithprop-legend": "Duilleagan le buadh duilleige",
        "pageswithprop-text": "Seallaidh an duilleag seo duilleagan dhut air a bheil buadh duilleige shònraichte.",
        "uncategorizedtemplates": "Teamplaidean gun roinn-seòrsa",
        "unusedcategories": "Roinnean-seòrsa gun chleachdadh",
        "unusedimages": "Faidhlichean gun chleachdadh",
-       "popularpages": "Duilleagan air a bheil fèill mhòr",
        "wantedcategories": "Roinnean-seòrsa a thathar 'gan iarraidh",
        "wantedpages": "Duilleagan a thathar 'gan iarraidh",
        "wantedpages-badtitle": "Tha tiotal mì-dhligheach am measg nan toraidhean: $1",
        "pageinfo-robot-policy": "Inneacsadh le robotairean",
        "pageinfo-robot-index": "Ceadaichte",
        "pageinfo-robot-noindex": "Neo-cheadaichte",
-       "pageinfo-views": "Air a sealltainn",
        "pageinfo-watchers": "A' cumail sùil air",
        "pageinfo-few-watchers": "Tha nas lugha na $1 a' cumail sùil air",
        "pageinfo-redirects-name": "Ath-stiùiridhean dhan duilleag seo",
index e1b69f4..5ff1b41 100644 (file)
        "otherlanguages": "Outras linguas",
        "redirectedfrom": "(Redirixido desde \"$1\")",
        "redirectpagesub": "Páxina de redirección",
+       "redirectto": "Redirixir cara a:",
        "lastmodifiedat": "A última modificación desta páxina foi o $1 ás $2.",
        "viewcount": "Esta páxina foi visitada {{PLURAL:$1|unha vez|$1 veces}}.",
        "protectedpage": "Páxina protexida",
        "viewsourcetext": "Pode ver e copiar o código fonte desta páxina:",
        "viewyourtext": "Pode ver e copiar o código fonte '''das súas edicións''' nesta páxina:",
        "protectedinterface": "Esta páxina fornece o texto da interface do software e está protexida para evitar o seu abuso.\nPara engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Main_Page?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
-       "editinginterface": "'''Aviso:''' Está editando unha páxina usada para fornecer o texto da interface do software.\nOs cambios nesta páxina afectarán á aparencia da interface dos outros usuarios do wiki.\nPara engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Main_Page?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
+       "editinginterface": "<strong>Aviso:</strong> Está editando unha páxina usada para fornecer o texto da interface do software.\nOs cambios feitos nesta páxina afectarán á aparencia da interface dos outros usuarios do wiki.",
+       "translateinterface": "Para engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Special:MainPage?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
        "cascadeprotected": "Esta páxina foi protexida fronte á edición debido a que está incluída {{PLURAL:$1|na seguinte páxina protexida, que ten|nas seguintes páxinas protexidas, que teñen}} a \"protección en serie\" activada:\n$2",
        "namespaceprotected": "Non ten os permisos necesarios para modificar páxinas no espazo de nomes '''$1'''.",
        "customcssprotected": "Non ten os permisos necesarios para modificar esta páxina de CSS, dado que contén a configuración persoal doutro usuario.",
        "content-model-text": "texto simple",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Páxinas con argumentos duplicados nas chamadas aos modelos",
+       "duplicate-args-category-desc": "Esta páxina contén as chamadas aos modelos que utilizan argumentos duplicados, como <code><nowiki>{{exemplo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{exemplo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Aviso:''' Esta páxina contén demasiadas chamadas a funcións analíticas custosas.\n\nDebe ter menos {{PLURAL:$2|dunha chamada|de $2 chamadas}}, e agora hai $1.",
        "expensive-parserfunction-category": "Páxinas con moitas chamadas a funcións analíticas custosas",
        "post-expand-template-inclusion-warning": "'''Aviso:''' O tamaño do modelo é moi grande.\nAlgúns modelos non se incluirán.",
        "mergehistory-same-destination": "A páxina de orixe e a páxina de destino non pode ser a mesma",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Rexistro de fusións",
-       "pagemerge-logentry": "fusionou \"[[$1]]\" con \"[[$2]]\" (revisións ata o $3)",
        "revertmerge": "Desfacer a fusión",
        "mergelogpagetext": "A continuación hai unha lista coas fusións máis recentes do historial dunha páxina co doutra.",
        "history-title": "Historial de revisións de \"$1\"",
        "search-relatedarticle": "Relacionado",
        "searchrelated": "relacionado",
        "searchall": "todo",
-       "showingresults": "{{PLURAL:$1|Móstrase '''1''' resultado|Móstranse '''$1''' resultados}}, comezando polo número '''$2'''.",
+       "showingresults": "{{PLURAL:$1|Móstrase <strong>1</strong> resultado|Móstranse <strong>$1</strong> resultados}}, comezando polo número <strong>$2</strong>.",
        "showingresultsinrange": "{{PLURAL:$1|Móstrase <strong>1</strong> resultado|Móstranse <strong>$1</strong> resultados}}, comezando polo número <strong>$2</strong> e rematando polo número <strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$5|Resultado <strong>$1</strong> de <strong>$3</strong>|Resultados do <strong>$1</strong> ao <strong>$2</strong>, dun total de <strong>$3</strong>}}",
        "search-nonefound": "Non se atopou ningún resultado que coincidise coa procura.",
        "powersearch-legend": "Busca avanzada",
        "powersearch-ns": "Procurar nos espazos de nomes:",
        "gender-female": "Ela edita as páxinas do wiki",
        "prefs-help-gender": "Definir esta preferencia é opcional.\nO software usa este valor para dirixirse á súa persoa e para facerlle mencións mediante o xénero gramatical axeitado.\nEsta información será pública.",
        "email": "Correo electrónico",
-       "prefs-help-realname": "O nome real é opcional.\nSe escolle dalo utilizarase para atribuírlle o seu traballo.",
+       "prefs-help-realname": "O nome real é opcional.\nEn caso de revelalo, utilizarase para atribuírlle o seu traballo.",
        "prefs-help-email": "O enderezo de correo electrónico é opcional, pero permite que se lle envíe un contrasinal novo se se esquece del.",
        "prefs-help-email-others": "Tamén pode optar por deixar aos outros que se poidan poñer en contacto con vostede a través da súa páxina de usuario sen necesidade de revelar a súa identidade.",
        "prefs-help-email-required": "Cómpre o enderezo de correo electrónico.",
        "prefs-tokenwatchlist": "Pase",
        "prefs-diffs": "Diferenzas",
        "prefs-help-prefershttps": "Esta preferencia ha aplicarse no seu vindeiro acceso ao sistema.",
+       "prefswarning-warning": "Fixo cambios nas súas preferencias que aínda non se gardaron.\nSe deixa esta páxina sen premer en \"Gardar\", non se actualizarán as súas preferencias.",
        "prefs-tabs-navigation-hint": "Consello: Pode empregar as frechas esquerda e dereita para navegar polas lapelas da lista.",
        "email-address-validity-valid": "O enderezo de correo electrónico semella válido",
        "email-address-validity-invalid": "Escriba un enderezo de correo electrónico válido",
        "statistics": "Estatísticas",
        "statistics-header-pages": "Estatísticas das páxinas",
        "statistics-header-edits": "Estatísticas das edicións",
-       "statistics-header-views": "Estatísticas das visitas",
        "statistics-header-users": "Estatísticas dos usuarios",
        "statistics-header-hooks": "Outras estatísticas",
        "statistics-articles": "Páxinas de contido",
        "statistics-files": "Ficheiros cargados",
        "statistics-edits": "Edicións nas páxinas des que se creou {{SITENAME}}",
        "statistics-edits-average": "Media de edicións por páxina",
-       "statistics-views-total": "Visitas totais",
-       "statistics-views-total-desc": "Non se inclúen as visitas ás páxinas inexistentes e especiais",
-       "statistics-views-peredit": "Visitas por edición",
        "statistics-users": "[[Special:ListUsers|Usuarios]] rexistrados",
        "statistics-users-active": "Usuarios activos",
        "statistics-users-active-desc": "Usuarios que teñen levado a cabo unha acción {{PLURAL:$1|no último día|nos últimos $1 días}}",
-       "statistics-mostpopular": "Páxinas máis vistas",
        "pageswithprop": "Páxinas cunha propiedade de páxina",
        "pageswithprop-legend": "Páxinas cunha propiedade de páxina",
        "pageswithprop-text": "Esta páxina lista aquelas páxinas que utilizan unha propiedade de páxina determinada.",
        "uncategorizedtemplates": "Modelos sen categorías",
        "unusedcategories": "Categorías sen uso",
        "unusedimages": "Imaxes sen uso",
-       "popularpages": "Páxinas populares",
        "wantedcategories": "Categorías requiridas",
        "wantedpages": "Páxinas requiridas",
        "wantedpages-badtitle": "Título inválido fixado nos resultados: $1",
        "pager-older-n": "{{PLURAL:$1|unha anterior|$1 anteriores}}",
        "suppress": "Supervisor",
        "querypage-disabled": "Esta páxina especial está desactivada por razóns de rendemento.",
+       "apihelp": "Axuda coa API",
+       "apihelp-no-such-module": "Non se atopou o módulo \"$1\".",
        "booksources": "Fontes bibliográficas",
        "booksources-search-legend": "Procurar fontes bibliográficas",
+       "booksources-search": "Procurar",
        "booksources-text": "A continuación aparece unha lista de ligazóns cara a outros sitios web que venden libros novos e usados, neles tamén pode obter máis información sobre as obras que está a buscar:",
        "booksources-invalid-isbn": "O ISBN inserido parece non ser válido; comprobe que non haxa erros ao copialo da fonte orixinal.",
        "specialloguserlabel": "Executante:",
        "wlheader-enotif": "A notificación por correo electrónico está activada.",
        "wlheader-showupdated": "As páxinas que cambiaron desde a súa última visita móstranse en '''negra'''.",
        "wlnote": "A continuación {{PLURAL:$1|está a última modificación|están as últimas <strong>$1</strong> modificacións}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} ata o $3 ás $4.",
-       "wlshowlast": "Mostrar as últimas $1 horas, os últimos $2 días ou",
+       "wlshowlast": "Mostrar as últimas $1 horas e os últimos $2 días",
        "watchlist-options": "Opcións de vixilancia",
        "watching": "Vixiando...",
        "unwatching": "Deixando de vixiar...",
        "protect-othertime": "Outra duración:",
        "protect-othertime-op": "outra duración",
        "protect-existing-expiry": "Período de caducidade actual: $2 ás $3",
+       "protect-existing-expiry-infinity": "Período de caducidade actual: infinito",
        "protect-otherreason": "Outro motivo:",
        "protect-otherreason-op": "Outro motivo",
        "protect-dropdown": "*Motivos frecuentes para a protección\n** Vandalismo excesivo\n** Publicidade excesiva\n** Guerra de edicións\n** Páxina moi visitada",
        "unblockip": "Desbloquear un usuario",
        "unblockiptext": "Use o seguinte formulario para dar de novo acceso de escritura a un enderezo IP ou usuario que estea bloqueado.",
        "ipusubmit": "Retirar o bloqueo",
-       "unblocked": "[[User:$1|$1]] foi {{GENDER:$1|desbloqueado|desbloqueada}}",
-       "unblocked-range": "$1 foi desbloqueado",
-       "unblocked-id": "O bloqueo $1 foi eliminado",
+       "unblocked": "[[User:$1|$1]] foi {{GENDER:$1|desbloqueado|desbloqueada}}.",
+       "unblocked-range": "$1 foi desbloqueado.",
+       "unblocked-id": "O bloqueo $1 foi eliminado.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] foi desbloqueado.",
        "blocklist": "Usuarios bloqueados",
        "ipblocklist": "Usuarios bloqueados",
        "ipblocklist-legend": "Buscar un usuario bloqueado",
        "tooltip-pt-preferences": "As miñas preferencias",
        "tooltip-pt-watchlist": "A lista de páxinas cuxas modificacións está a seguir",
        "tooltip-pt-mycontris": "Lista das súas contribucións",
-       "tooltip-pt-login": "Recoméndaselle rexistrarse, se ben non é obrigatorio.",
+       "tooltip-pt-login": "Recoméndaselle rexistrarse, se ben non é obrigatorio",
        "tooltip-pt-logout": "Saír ao anonimato",
+       "tooltip-pt-createaccount": "Recoméndaselle crear unha conta e acceder ao sistema, se ben non é obrigatorio",
        "tooltip-ca-talk": "Conversa acerca do contido desta páxina",
        "tooltip-ca-edit": "Pode modificar esta páxina; antes de gardala, por favor, utilice o botón de vista previa",
        "tooltip-ca-addsection": "Comezar unha nova sección",
        "tooltip-feed-atom": "Fonte de novas Atom desta páxina",
        "tooltip-t-contributions": "Ver a lista de contribucións {{GENDER:{{BASEPAGENAME}}|deste usuario|desta usuaria}}",
        "tooltip-t-emailuser": "Enviarlle unha mensaxe a {{GENDER:{{BASEPAGENAME}}|este usuario|esta usuaria}} por correo electrónico",
+       "tooltip-t-info": "Máis información sobre esta páxina",
        "tooltip-t-upload": "Subir ficheiros",
        "tooltip-t-specialpages": "Lista de todas as páxinas especiais",
        "tooltip-t-print": "Versión para imprimir da páxina",
        "pageinfo-robot-policy": "Indexación por robots",
        "pageinfo-robot-index": "Permitida",
        "pageinfo-robot-noindex": "Non permitida",
-       "pageinfo-views": "Número de visitas",
        "pageinfo-watchers": "Número de vixiantes da páxina",
        "pageinfo-few-watchers": "Menos de $1 {{PLURAL:$1|vixiante|vixiantes}}",
        "pageinfo-redirects-name": "Número de redireccións cara a esta páxina",
        "unknown_extension_tag": "Etiqueta de extensión descoñecida \"$1\"",
        "duplicate-defaultsort": "<strong>Aviso:</strong> A clave de ordenación por defecto \"$2\" anula a clave de ordenación anterior por defecto \"$1\".",
        "duplicate-displaytitle": "'''Aviso:''' O título mostrado \"$2\" anula o título anterior \"$1\".",
+       "invalid-indicator-name": "<strong>Erro:</strong> O atributo <code>name</code> dos indicadores do estado da páxina non pode estar baleiro.",
        "version": "Versión",
        "version-extensions": "Extensións instaladas",
        "version-skins": "Aparencias instaladas",
        "revdelete-uname-unhid": "descubriu o nome de usuario",
        "revdelete-restricted": "aplicou restricións aos administradores",
        "revdelete-unrestricted": "eliminou restricións aos administradores",
+       "logentry-merge-merge": "$1 {{GENDER:$2|fusionou}} \"$3\" con \"$4\" (revisións ata o $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\"",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\" sen deixar unha redirección",
        "logentry-move-move_redir": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\" sobre unha redirección",
index 1a20c4d..4ba2bcc 100644 (file)
@@ -1,52 +1,52 @@
 {
-    "@metadata": {
-        "authors": [
-            "AminSanaei",
-            "Varg",
-            "محک"
-        ]
-    },
-    "moredotdotdot": "ویشتر...",
-    "mypage": "می هنه‌شر",
-    "mytalk": "می گب",
-    "anontalk": "اَ آی.پیˇ گب",
-    "qbfind": "یاتن",
-    "qbedit": "دچین واچین",
-    "returnto": "واگرد به $1.",
-    "search": "واموج",
-    "searchbutton": "واموج",
-    "go": "بوشو",
-    "searcharticle": "بوشو",
-    "history_short": "تارئخ",
-    "printableversion": "پرینتی نوسخه",
-    "permalink": "مؤنسنی پیوند",
-    "edit": "دچین واچین",
-    "editthispage": "اَ هنه‌شره (صفحه‌یه) دچین‌واچین بکون.",
-    "create-this-page": "اَ هنه‌شره (صفحه‌یه) چاکون.",
-    "deletethispage": "اَ هنه‌شره پاکأ کون.",
-    "newpage": "تازه هنه‌شر (تازه صفحه)",
-    "talkpagelinktext": "گب",
-    "talk": "گب",
-    "toolbox": "ابزار جیگا",
-    "jumpto": "واز بکون به:",
-    "jumptonavigation": "گردسن",
-    "jumptosearch": "واموج",
-    "currentevents": "تازه چیؤن",
-    "mainpage": "گت صفحه",
-    "mainpage-description": "گت صفحه",
-    "portal": "امه جیگا",
-    "privacy": "رازبداری",
-    "editsection": "دچین‌واچین",
-    "editold": "دچین‌واچین",
-    "nstab-main": "وانیویس (مقاله)",
-    "nstab-user": "کاربری هنه‌شر",
-    "nstab-category": "رج",
-    "searchresults": "واموج‌دموجˇ نتایج",
-    "searchresults-title": "واموج‌دموجˇ نتایج، «$1»ˇ واسی",
-    "allpagessubmit": "بشو",
-    "categories": "رجؤن",
-    "sp-contributions-talk": "گب",
-    "blocklink": "دَوَسته ببه",
-    "tooltip-ca-edit": "شمه تانید اَ هنه‌شره (صفحه) دچین‌واچین بکونید. بی‌زحمت قبل از ان‌کی ذخیره بکونید، پیش‌نمایشˇ دوکمه جا استفاده بکونید.",
-    "tooltip-ca-history": "اَ هنه‌شر (صفحه)ˇ قدیمی نسخه‌یان"
+       "@metadata": {
+               "authors": [
+                       "AminSanaei",
+                       "Varg",
+                       "محک"
+               ]
+       },
+       "moredotdotdot": "ویشتر...",
+       "mypage": "می هنه‌شر",
+       "mytalk": "می گب",
+       "anontalk": "اَ آی.پیˇ گب",
+       "qbfind": "یاتن",
+       "qbedit": "دچین واچین",
+       "returnto": "واگرد به $1.",
+       "search": "واموج",
+       "searchbutton": "واموج",
+       "go": "بوشو",
+       "searcharticle": "بوشو",
+       "history_short": "تارئخ",
+       "printableversion": "پرینتی نوسخه",
+       "permalink": "مؤنسنی پیوند",
+       "edit": "دچین واچین",
+       "editthispage": "اَ هنه‌شره (صفحه‌یه) دچین‌واچین بکون.",
+       "create-this-page": "اَ هنه‌شره (صفحه‌یه) چاکون.",
+       "deletethispage": "اَ هنه‌شره پاکأ کون.",
+       "newpage": "تازه هنه‌شر (تازه صفحه)",
+       "talkpagelinktext": "گب",
+       "talk": "گب",
+       "toolbox": "ابزار جیگا",
+       "jumpto": "واز بکون به:",
+       "jumptonavigation": "گردسن",
+       "jumptosearch": "واموج",
+       "currentevents": "تازه چیؤن",
+       "mainpage": "گت صفحه",
+       "mainpage-description": "گت صفحه",
+       "portal": "امه جیگا",
+       "privacy": "رازبداری",
+       "editsection": "دچین‌واچین",
+       "editold": "دچین‌واچین",
+       "nstab-main": "وانیویس (مقاله)",
+       "nstab-user": "کاربری هنه‌شر",
+       "nstab-category": "رج",
+       "searchresults": "واموج‌دموجˇ نتایج",
+       "searchresults-title": "واموج‌دموجˇ نتایج، «$1»ˇ واسی",
+       "allpagessubmit": "بشو",
+       "categories": "رجؤن",
+       "sp-contributions-talk": "گب",
+       "blocklink": "دَوَسته ببه",
+       "tooltip-ca-edit": "شمه تانید اَ هنه‌شره (صفحه) دچین‌واچین بکونید. بی‌زحمت قبل از ان‌کی ذخیره بکونید، پیش‌نمایشˇ دوکمه جا استفاده بکونید.",
+       "tooltip-ca-history": "اَ هنه‌شر (صفحه)ˇ قدیمی نسخه‌یان"
 }
index 02ef1b2..b9e8b50 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Hugo.arg",
-            "P. S. F. Freitas",
-            "Perla"
-        ]
-    },
-    "tog-underline": "Haiguy joajuha",
-    "tog-hideminor": "Eñomi ñemyatyrõ michĩva «ñemoambue pyahúpe»",
-    "tog-extendwatchlist": "Eipyso tembiapo rapykueho rysýi opaite ñemoambue ikatúvape",
-    "tog-usenewrc": "Ñemoambue ojejapo ramóva (ndoikói opaite 'navegador'-pe)",
-    "tog-numberheadings": "Mbopapapy ijehegui myakãha",
-    "tog-showtoolbar": "Ehechauka ñemyatyrõ renda",
-    "underline-always": "Akói",
-    "underline-never": "Araka'eve",
-    "sunday": "arateĩ",
-    "monday": "arakői",
-    "tuesday": "araapy",
-    "wednesday": "ararundy",
-    "thursday": "arapo",
-    "friday": "arapoteĩ",
-    "saturday": "arapokői",
-    "sun": "arateĩ",
-    "mon": "arakõi",
-    "tue": "araapy",
-    "wed": "ararundy",
-    "thu": "arapo",
-    "fri": "arapoteĩ",
-    "january": "jasyteĩ",
-    "february": "jasykői",
-    "march": "jasyapy",
-    "april": "jasyrundy",
-    "may_long": "jasypo",
-    "june": "jasypoteĩ",
-    "july": "jasypokői",
-    "august": "jasypoapy",
-    "september": "jasyporundy",
-    "october": "jasypa",
-    "november": "jasypateĩ",
-    "december": "jasypakői",
-    "january-gen": "jasyteĩ",
-    "february-gen": "jasykõi",
-    "march-gen": "jasyapy",
-    "april-gen": "jasyrundy",
-    "may-gen": "jasypo",
-    "june-gen": "jasypoteĩ",
-    "july-gen": "jasypokõi",
-    "august-gen": "jasypoapy",
-    "september-gen": "jasyporundy",
-    "october-gen": "jasypa",
-    "november-gen": "jasypateĩ",
-    "december-gen": "jasypakõi",
-    "jan": "jasyteĩ",
-    "feb": "jasykõi",
-    "mar": "jasyapy",
-    "apr": "jasyrundy",
-    "may": "jasypo",
-    "jun": "jasypoteĩ",
-    "jul": "jasypokõi",
-    "aug": "jasypoapy",
-    "sep": "jasyporundy",
-    "oct": "jasypa",
-    "nov": "jasypateĩ",
-    "dec": "jasypakõi",
-    "pagecategories": "{{PLURAL:$1|Ñemohenda|Ñemohendakuéra}}",
-    "about": "Rehegua",
-    "article": "Kuatiahai",
-    "newwindow": "(Ojepe'a peteĩ ovetã pyahu)",
-    "cancel": "Mbotove",
-    "mypage": "Che kuatiarogue",
-    "mytalk": "Che myangekõi",
-    "navigation": "Kundaharã",
-    "qbfind": "Heka",
-    "qbedit": "Jehaijey",
-    "tagline": "{{SITENAME}}megua",
-    "help": "Pytyvõhára",
-    "search": "Heka",
-    "searchbutton": "Heka",
-    "go": "Ha",
-    "searcharticle": "Ha",
-    "history": "Tembiasakue",
-    "history_short": "Tembiasakue",
-    "printableversion": "Osẽma haguãicha",
-    "edit": "Jehaijey",
-    "delete": "Mboje'o",
-    "undelete_short": "Restaurar $1 ediciones",
-    "newpage": "Pyahu kuatia",
-    "talkpagelinktext": "ñe'ẽ",
-    "specialpage": "Kuatiarogue mba'echĩchĩ",
-    "personaltools": "Tapicha rembipuru",
-    "postcomment": "Emoĩ ne remimo'ã",
-    "talk": "Myangekõi",
-    "views": "Techakuéra",
-    "toolbox": "Tembiporu",
-    "mediawikipage": "Hecha kuatiarogue marandu",
-    "viewtalkpage": "Hecha myangekõi",
-    "otherlanguages": "Ambue ñe'ẽ",
-    "redirectedfrom": "(Oñembohapejeýva $1)",
-    "lastmodifiedat": "Ko kuatiarogue oñemoambuejeýkuri: $2, $1.",
-    "viewcount": "Esta página ha sido visitada $1 veces.",
-    "jumpto": "Kundaharãme jeho",
-    "jumptonavigation": "kundaharã",
-    "jumptosearch": "Jeheka",
-    "aboutsite": "Ári {{SITENAME}}",
-    "aboutpage": "Project:Rehegua",
-    "copyright": "Tembikuaa'aty ikatu ojepuru <i>$1</i> rekópe",
-    "currentevents": "Ag̃agua",
-    "disclaimers": "Marandu leiguigua",
-    "edithelp": "Jehairã ñepytyvõ",
-    "mainpage": "Ape",
-    "mainpage-description": "Ape",
-    "portal": "Tekohapegua",
-    "privacy": "Polítika marandu ñeñangareko rehegua",
-    "privacypage": "Project:Polítika marandu ñeñangareko rehegua",
-    "youhavenewmessagesmulti": "Reguereko marandu pyahu $1",
-    "editsection": "jehaijey",
-    "editold": "jehaijey",
-    "editsectionhint": "Jehaijey vore: $1",
-    "toc": "Tembikuaa'aty rechaukaha",
-    "showtoc": "hechauka",
-    "hidetoc": "toñemi",
-    "restorelink": "$1 ediciones borradas",
-    "red-link-title": "$1 (ndaipóri ko togue)",
-    "nstab-main": "Kuatiahai",
-    "nstab-user": "Puruhára",
-    "nstab-media": "Media rogue",
-    "nstab-special": "Mba'echĩchĩ",
-    "nstab-project": "Mba'e apopyrã rogue",
-    "nstab-image": "Ñongatupy",
-    "nstab-mediawiki": "Marandu",
-    "nstab-template": "Tembiecharã",
-    "nstab-help": "Pytyvõ",
-    "nstab-category": "Ñemohenda",
-    "nosuchaction": "Upe tembiapo ndaipóri",
-    "ns-specialprotected": "Las páginas en el espacio de nombres Especial no se pueden editar.",
-    "yourname": "Hero",
-    "yourpassword": "Ne remiñemi",
-    "yourpasswordagain": "Repita ne remiñemi",
-    "remembermypassword": "Aipota chemomandu'ajepi amba'apo jave (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Terañemboguapy/Ke",
-    "nav-login-createaccount": "Terañemboguapy/Ke",
-    "userlogin": "Terañemboguapy/Ke",
-    "logout": "Sẽ",
-    "userlogout": "Sẽ",
-    "nologin": "¿Ne'ĩrãpa remohenda nde réra? '''$1'''.",
-    "nologinlink": "Téra ñemohenda",
-    "loginsuccesstitle": "Remoñepyrũ hekopete ne rembiapo",
-    "nosuchusershort": "No hay un usuario con el nombre \"$1\". Compruebe que lo ha escrito correctamente.",
-    "mailmypassword": "Embou chéve ñe'ẽveve rupive peteĩ temiñemĩ pyahu",
-    "loginlanguagelabel": "Ñe'ẽ: $1",
-    "bold_sample": "Haipyre oñemohũvéva",
-    "bold_tip": "Haipyre oñemohũvéva",
-    "italic_sample": "Haipyre ikarẽva",
-    "italic_tip": "Haipyre ikarẽva",
-    "link_tip": "Joaju hyepyguávandi",
-    "extlink_tip": "Joaju okapeguávandi (recuerde añadir el prefijo http://)",
-    "headline_tip": "Teraete mokõiha",
-    "nowiki_tip": "Viki jehaireko ñembo'yke",
-    "image_tip": "Ta'ãnga moĩngepyréva",
-    "media_tip": "Joaju jehai'aty multimediaguándi",
-    "sig_tip": "Teraguapy, arange, aravo",
-    "hr_tip": "Haipuku oñenóva (eipurúke tekotevẽ javénte)",
-    "summary": "Jehaimombyky:",
-    "subject": "Mba'ekuaarã/teraete:",
-    "minoredit": "Kóva ha'e peteĩ jehai mbyky",
-    "watchthis": "Toñeñangareko ko tembiapóre",
-    "savearticle": "Hai",
-    "showpreview": "Tojechauka jehai ñemboguapy mboyve",
-    "showdiff": "Tojechauka ñemoambue",
-    "missingsummary": "'''Atención:''' No has escrito un resumen de edición. Si haces clic nuevamente en «Hai» tu edición se grabará sin él.",
-    "subject-preview": "Previsualización del mba'ekuaarã/teraete:",
-    "newarticletext": "Rehapykuehókuri peteĩ joaju peteĩ kuatiarogue ndaipórivape.\nNde remoheñoisérõ ko kuatiarogue, eñepyrũkatu ehai.\nReikotevẽvérõ marandu, emoñe'ẽ kuatiarogue ñepytyvõ rehegua. Oiméramo reikereínte térã rejavyhaguére, upéicharõ terehojey [[{{MediaWiki:Helppage}}|kuatiarogue mboyveguápe]].",
-    "userinvalidcssjstitle": "'''Aviso:''' No existe la piel \"$1\". Recuerda que las páginas personalizadas .css y .js tienen un título en minúsculas, p.e. Usuario:Foo/vector.css en vez de  Usuario:Foo/Vector.css.",
-    "editing": "Ojehaihína $1",
-    "editingsection": "Ojehaihína $1 (vore)",
-    "editingcomment": "Ojehaihína $1 (comentario)",
-    "yourtext": "Mba'ehaipyre",
-    "cur": "ko'ag̃agua",
-    "last": "ipaha",
-    "historysize": "($1 bytes)",
-    "rev-delundel": "hechauka/toñemi",
-    "logdelete-selected": "'''Seleccionados $1 eventos de registro:'''",
-    "lineno": "Jehai $1:",
-    "editundo": "embyai",
-    "searchresults": "Ojejuhúva jeheka",
-    "prevn": "{{PLURAL:$1|$1}} mboyvegua",
-    "viewprevnext": "Hecha ($1 {{int:pipe-separator}} $2) ($3).",
-    "showingresults": "Abajo se muestran hasta '''$1''' resultados empezando por el nº '''$2'''.",
-    "showingresultsnum": "Abajo se muestran los '''$3''' resultados empezando por el nº '''$2'''.",
-    "preferences": "Mbohoryha",
-    "mypreferences": "Che mbohoryha",
-    "prefs-rc": "Oñemoambue pyahúva",
-    "searchresultshead": "Jeheka",
-    "youremail": "Ñe'ẽveve",
-    "yourlanguage": "Ñe'ẽ:",
-    "gender-male": "Ha'e ohaijey wiki kuatiarogue kuéra",
-    "gender-female": "Ha'e ohaijey wiki kuatiarogue kuéra",
-    "email": "Pareha eleytróniko",
-    "userrights-lookup-user": "Configurar grupos de usuarios",
-    "userrights-user-editname": "Ehaimi peteĩ téra puruháragua:",
-    "editusergroup": "Modificar grupos de usuarios",
-    "editinguser": "Ojehaihína '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
-    "userrights-editusergroup": "Modificar grupos de usuarios",
-    "saveusergroups": "Guardar grupos de usuarios",
-    "userrights-groupsmember": "Pehengue:",
-    "userrights-reason": "Motivo para el cambio:",
-    "group-all": "(opaite)",
-    "nchanges": "$1 ñemoambue",
-    "recentchanges": "Oñemoambue pyahúva",
-    "rclistfrom": "Tojehechauka oñemoambue pyahúva $1 guive",
-    "rcshowhideminor": "$1 jehaijey michĩva",
-    "rcshowhideliu": "$1 puruhára ohejáva teraguapy",
-    "rcshowhideanons": "$1 puruhára ojekuaa'ỹva",
-    "rcshowhidemine": "$1 che jehaijey",
-    "rclinks": "Ápe ojehechakuaa umi $1 oñemoambue pyahúva $2 ára ohasava'ekuépe.<br />$3",
-    "hide": "toñemi",
-    "show": "hechauka",
-    "newsectionsummary": "Pyahuvore: /* $1 */",
-    "recentchangeslinked-title": "Ñemoambue $1 rehegua",
-    "recentchangeslinked-summary": "Ko kuatiarogue hekochĩchĩvape oñembohysýi umi ñemoambue ipyahúva ko'ã kuatiarogue ojoajúvape. Kuatiarogue oĩva tapykueho rysýipe oĩ '''haipyre oñemohũvape'''.",
-    "upload": "Tojehupi jehai'aty",
-    "uploadtext": "Eipuru pe tembipuru oĩva iguýpe ehupi hag̃ua jehai'aty, rehecha térã reheka hag̃ua ta'ãnga ojehupipyrémava eike jehai'aty jehupipyre rysýipe, umi ihupipyréva ha oñemboguémava avei oñemboguapy [[Special:Log/upload|jehai'aty jehupipyrépe]].\nReomĩsérõ ta'ãnga peteĩ kuatiaroguépe, eipuru peteĩ joaju:\n'''<nowiki>[[</nowiki>Imagen<nowiki>:Archivo.jpg]]</nowiki>''', '''<nowiki>[[</nowiki>Imagen<nowiki>:Archivo.png|texto alternativo]]</nowiki>''' o\n'''<nowiki>[[</nowiki>Media<nowiki>:Archivo.ogg]]</nowiki>''' ojoaju hag̃ua hekopete pe jehai'atýre.",
-    "filename": "Téra jehai'aty",
-    "listfiles": "Ta'ãnga rysýi",
-    "listfiles_user": "Puruhára",
-    "file-anchor-link": "Ñongatupy",
-    "filehist-revert": "embojevy",
-    "filehist-current": "ko'ag̃agua",
-    "filehist-datetime": "Ára/Aravo",
-    "filehist-user": "Puruhára",
-    "filehist-comment": "Jehaimombyky",
-    "imagelinks": "Joajukuéra",
-    "filerevert": "Embojevy $1",
-    "filedelete-legend": "Mboje'o jehai'aty",
-    "filedelete-success": "'''$1''' oñembogue'akue",
-    "mimesearch": "Jeheka MIME",
-    "listredirects": "Ñembohapejey rysýi",
-    "unusedtemplates": "Tembiecharã ndojepurúiva",
-    "randompage": "Kuatiarogue oñembosako'íva",
-    "randomredirect": "Oimerãe ñembohapejeýpe jeho",
-    "statistics": "Papyrekokuaa",
-    "doubleredirects": "Ñembohapejey jo'apyre",
-    "brokenredirects": "Ñembohapejey hekopegua'ỹva",
-    "brokenredirects-edit": "jehaijey",
-    "brokenredirects-delete": "mboje'o",
-    "withoutinterwiki": "Kuatiarogue ndorekóiva interwiki",
-    "fewestrevisions": "Kuatiahai sa'ive ijehaijeýva",
-    "nbytes": "$1 bytes",
-    "ncategories": "$1 ñemohendakuéra",
-    "nlinks": "$1 joaju",
-    "nmembers": "$1 kuatiahai",
-    "nrevisions": "$1 revisiones",
-    "nviews": "$1 vistas",
-    "lonelypages": "Kuatiarogue ityre'ỹva",
-    "uncategorizedpages": "Kuatiarogue oñemohenda'ỹva",
-    "uncategorizedcategories": "Ñemohenda noñemohendáiva",
-    "uncategorizedimages": "Ta'ãnga ne'ĩrã oñemohendáva",
-    "uncategorizedtemplates": "Tembiecharã noñemohendáiva",
-    "unusedcategories": "Ñemohenda ojepuru'ỹva",
-    "unusedimages": "Ta'ãnga ndojepurúiva",
-    "wantedcategories": "Ñemohenda oñekotevẽva",
-    "wantedpages": "Kuatiarogue oñekotevẽva",
-    "mostlinked": "Kuatiahai ojoaju hetavéva",
-    "mostlinkedcategories": "Ñemohenda ojoaju hetavéva",
-    "mostlinkedtemplates": "Tembiecharã ojoaju hetavéva",
-    "mostcategories": "Kuatiarogue iñemohenda hetavéva",
-    "mostimages": "Ta'ãnga ojepuruvéva",
-    "mostrevisions": "Kuatiahai hetave ijehaijeýva",
-    "prefixindex": "Kuatiarogue henondepyguáva",
-    "shortpages": "Kuatiarogue mbykýva",
-    "longpages": "Kuatiarogue ipukúva",
-    "deadendpages": "Kuatiarogue ñesẽ'ỹva",
-    "protectedpages": "Kuatiarogue oñeñangarekóva",
-    "listusers": "Puruhára rysýi",
-    "newpages": "Kuatiarogue ipyahúva",
-    "newpages-username": "Hero",
-    "ancientpages": "Kuatiahai hi'arevéva",
-    "move": "Guerova",
-    "movethispage": "Guerova kuatiarogue",
-    "booksources": "Heñóiva kuatiañe'ẽme",
-    "log": "Ñemboguapypyre",
-    "allpages": "Opaite kuatiarogue",
-    "alphaindexline": "$1 $2 peve",
-    "nextpage": "Kuatia rogue upeigua($1)",
-    "prevpage": "Kuatia rogue mboyvegua ($1)",
-    "allpagesfrom": "Ehechauka kuatia rogue oñepyrũva:   -pe",
-    "allpagesto": "Ehechauka kuatia rogue opáva:  -pe",
-    "allarticles": "Opa kuatia rogue",
-    "allinnamespace": "Opa kuatia rogue (pa'ũ $1)",
-    "allpagessubmit": "Hechauka",
-    "categories": "Ñemohendakuéra",
-    "listusers-submit": "Hechauka",
-    "emailuser": "Tojeguerahauka ñe'ẽveve ko puruhárape",
-    "emailpage": "Pareha eleytrónico",
-    "emailmessage": "Marandu",
-    "watchlist": "Tapykueho rysýi",
-    "mywatchlist": "Tapykueho rysýi",
-    "watch": "Ñangareko",
-    "dellogpage": "Ñemboguepyre ñonagatupy",
-    "deletionlog": "ñemboguepyre ñonagatupy",
-    "rollback_short": "Embojevy",
-    "rollbacklink": "Embojevy",
-    "prot_1movedto2": "[[$1]] oñembohasa [[$2]]-pe",
-    "protect-text": "Puedes ver y modificar el nivel de protección de la página '''$1'''.",
-    "undeletedrevisions": "$1 ediciones restauradas",
-    "undeletedrevisions-files": "$1 ediciones y $2 archivos restaurados",
-    "undeletedfiles": "$1 archivos restaurados",
-    "undelete-search-submit": "Heka",
-    "namespace": "Téra rendagua:",
-    "invert": "Toñembo'ovývo mba'eporavopyre",
-    "blanknamespace": "(Tenondeguáva)",
-    "contributions": "Puruhára mba'emoĩmbyre",
-    "mycontris": "Che mba'emoĩmbyre",
-    "sp-contributions-search": "Heka mba'emoĩmbyre",
-    "sp-contributions-submit": "Heka",
-    "whatlinkshere": "Oñembojoajukuaáva ko'ápe",
-    "whatlinkshere-title": "Kuatiarogue ojoajúva \"$1\" rehe",
-    "whatlinkshere-page": "Kuatiarogue:",
-    "linkshere": "Ko'ã kuatiarogue ojoaju '''[[:$1]]''' rehe:",
-    "whatlinkshere-prev": "mboyvegua $1",
-    "whatlinkshere-next": "upeigua $1",
-    "whatlinkshere-links": "← joajukuéra",
-    "blockip": "Ejoko puruhára",
-    "ipblocklist": "IP mbohape rysýi imbotypyréva",
-    "ipblocklist-submit": "Heka",
-    "blocklink": "ejoko",
-    "contribslink": "mba'emoĩmbyre",
-    "blocklogtext": "Esto es un registro de bloqueos y desbloqueos de usuarios. Las direcciones bloqueadas automáticamente no aparecen aquí. Consulte la [[Special:BlockList|IP mbohape rysýi imbotypyréva]] para ver la lista de prohibiciones y bloqueos actualmente vigente.",
-    "movearticle": "Guerova kuatiarogue",
-    "move-watch": "Toñeñangareko ko tembiapóre",
-    "movepagebtn": "Guerova kuatiarogue",
-    "revertmove": "embojevy",
-    "delete_and_move": "Mboje'o ha guerova",
-    "export": "Kuatiarogue ñemondo",
-    "allmessages": "Opaite marandu MediaWikigua",
-    "import-revision-count": "$1 revisiones",
-    "import-logentry-upload-detail": "$1 revisiones",
-    "import-logentry-interwiki-detail": "$1 revisiones desde $2",
-    "tooltip-pt-userpage": "Che puruhárakuatia",
-    "tooltip-pt-mytalk": "Che kuatiarogue myangekõi",
-    "tooltip-pt-preferences": "Che mbohoryha",
-    "tooltip-pt-mycontris": "Tysỹi che mba'emoĩmbyre",
-    "tooltip-ca-move": "Guerova kuatiarogue",
-    "tooltip-p-logo": "Ape",
-    "tooltip-n-mainpage": "Eho ijapépe",
-    "spamprotectiontitle": "Filtro de protección contra spam",
-    "spamprotectiontext": "La página que intentas guardar ha sido bloqueada por el filtro de spam. Esto se debe probablemente a alguno de los un enlaces externos incluidos en ella.",
-    "spamprotectionmatch": "El siguiente texto es el que activó nuestro filtro ''anti-spam'' (contra la publicidad no solicitada): $1",
-    "spambot_username": "Limpieza de spam de MediaWiki",
-    "spam_reverting": "Revirtiendo a la última versión que no contenga enlaces a $1",
-    "spam_blanking": "Todas las revisiones contienen enlaces a $1, blanqueando",
-    "file-info": "tamaño de jehai'aty: $1; tipo MIME: $2",
-    "newimages": "Ta'ãnga pyahu renda",
-    "ilsubmit": "Jeheka",
-    "namespacesall": "opaite",
-    "monthsall": "opaite",
-    "autosumm-new": "Kuatiarogue ipyahúva: $1",
-    "watchlistedit-numitems": "Tu lista de seguimiento tiene $1 páginas, excluyendo las páginas de discusión.",
-    "watchlistedit-normal-title": "Moambue tapykueho rysýi",
-    "watchlistedit-normal-submit": "Mboje'o kuatiarogue",
-    "watchlistedit-normal-done": "$1 páginas han sido borradas de tu lista de seguimiento:",
-    "watchlistedit-raw-titles": "Kuatiarogue:",
-    "watchlistedit-raw-added": "Se han añadido $1 páginas:",
-    "watchlistedit-raw-removed": "$1 páginas han sido borradas:",
-    "version": "Mba'ereko",
-    "specialpages": "Kuatiarogue hekochĩchĩva"
+       "@metadata": {
+               "authors": [
+                       "Hugo.arg",
+                       "P. S. F. Freitas",
+                       "Perla",
+                       "아라"
+               ]
+       },
+       "tog-underline": "Haiguy joajuha",
+       "tog-hideminor": "Eñomi ñemyatyrõ michĩva «ñemoambue pyahúpe»",
+       "tog-extendwatchlist": "Eipyso tembiapo rapykueho rysýi opaite ñemoambue ikatúvape",
+       "tog-usenewrc": "Ñemoambue ojejapo ramóva (ndoikói opaite 'navegador'-pe)",
+       "tog-numberheadings": "Mbopapapy ijehegui myakãha",
+       "tog-showtoolbar": "Ehechauka ñemyatyrõ renda",
+       "underline-always": "Akói",
+       "underline-never": "Araka'eve",
+       "sunday": "arateĩ",
+       "monday": "arakői",
+       "tuesday": "araapy",
+       "wednesday": "ararundy",
+       "thursday": "arapo",
+       "friday": "arapoteĩ",
+       "saturday": "arapokői",
+       "sun": "arateĩ",
+       "mon": "arakõi",
+       "tue": "araapy",
+       "wed": "ararundy",
+       "thu": "arapo",
+       "fri": "arapoteĩ",
+       "january": "jasyteĩ",
+       "february": "jasykői",
+       "march": "jasyapy",
+       "april": "jasyrundy",
+       "may_long": "jasypo",
+       "june": "jasypoteĩ",
+       "july": "jasypokői",
+       "august": "jasypoapy",
+       "september": "jasyporundy",
+       "october": "jasypa",
+       "november": "jasypateĩ",
+       "december": "jasypakői",
+       "january-gen": "jasyteĩ",
+       "february-gen": "jasykõi",
+       "march-gen": "jasyapy",
+       "april-gen": "jasyrundy",
+       "may-gen": "jasypo",
+       "june-gen": "jasypoteĩ",
+       "july-gen": "jasypokõi",
+       "august-gen": "jasypoapy",
+       "september-gen": "jasyporundy",
+       "october-gen": "jasypa",
+       "november-gen": "jasypateĩ",
+       "december-gen": "jasypakõi",
+       "jan": "jasyteĩ",
+       "feb": "jasykõi",
+       "mar": "jasyapy",
+       "apr": "jasyrundy",
+       "may": "jasypo",
+       "jun": "jasypoteĩ",
+       "jul": "jasypokõi",
+       "aug": "jasypoapy",
+       "sep": "jasyporundy",
+       "oct": "jasypa",
+       "nov": "jasypateĩ",
+       "dec": "jasypakõi",
+       "pagecategories": "{{PLURAL:$1|Ñemohenda|Ñemohendakuéra}}",
+       "about": "Rehegua",
+       "article": "Kuatiahai",
+       "newwindow": "(Ojepe'a peteĩ ovetã pyahu)",
+       "cancel": "Mbotove",
+       "mypage": "Che kuatiarogue",
+       "mytalk": "Che myangekõi",
+       "navigation": "Kundaharã",
+       "qbfind": "Heka",
+       "qbedit": "Jehaijey",
+       "tagline": "{{SITENAME}}megua",
+       "help": "Pytyvõhára",
+       "search": "Heka",
+       "searchbutton": "Heka",
+       "go": "Ha",
+       "searcharticle": "Ha",
+       "history": "Tembiasakue",
+       "history_short": "Tembiasakue",
+       "printableversion": "Osẽma haguãicha",
+       "edit": "Jehaijey",
+       "delete": "Mboje'o",
+       "undelete_short": "Restaurar $1 ediciones",
+       "newpage": "Pyahu kuatia",
+       "talkpagelinktext": "ñe'ẽ",
+       "specialpage": "Kuatiarogue mba'echĩchĩ",
+       "personaltools": "Tapicha rembipuru",
+       "talk": "Myangekõi",
+       "views": "Techakuéra",
+       "toolbox": "Tembiporu",
+       "mediawikipage": "Hecha kuatiarogue marandu",
+       "viewtalkpage": "Hecha myangekõi",
+       "otherlanguages": "Ambue ñe'ẽ",
+       "redirectedfrom": "(Oñembohapejeýva $1)",
+       "lastmodifiedat": "Ko kuatiarogue oñemoambuejeýkuri: $2, $1.",
+       "viewcount": "Esta página ha sido visitada $1 veces.",
+       "jumpto": "Kundaharãme jeho",
+       "jumptonavigation": "kundaharã",
+       "jumptosearch": "Jeheka",
+       "aboutsite": "Ári {{SITENAME}}",
+       "aboutpage": "Project:Rehegua",
+       "copyright": "Tembikuaa'aty ikatu ojepuru <i>$1</i> rekópe",
+       "currentevents": "Ag̃agua",
+       "disclaimers": "Marandu leiguigua",
+       "edithelp": "Jehairã ñepytyvõ",
+       "mainpage": "Ape",
+       "mainpage-description": "Ape",
+       "portal": "Tekohapegua",
+       "privacy": "Polítika marandu ñeñangareko rehegua",
+       "privacypage": "Project:Polítika marandu ñeñangareko rehegua",
+       "youhavenewmessagesmulti": "Reguereko marandu pyahu $1",
+       "editsection": "jehaijey",
+       "editold": "jehaijey",
+       "editsectionhint": "Jehaijey vore: $1",
+       "toc": "Tembikuaa'aty rechaukaha",
+       "showtoc": "hechauka",
+       "hidetoc": "toñemi",
+       "restorelink": "$1 ediciones borradas",
+       "red-link-title": "$1 (ndaipóri ko togue)",
+       "nstab-main": "Kuatiahai",
+       "nstab-user": "Puruhára",
+       "nstab-media": "Media rogue",
+       "nstab-special": "Mba'echĩchĩ",
+       "nstab-project": "Mba'e apopyrã rogue",
+       "nstab-image": "Ñongatupy",
+       "nstab-mediawiki": "Marandu",
+       "nstab-template": "Tembiecharã",
+       "nstab-help": "Pytyvõ",
+       "nstab-category": "Ñemohenda",
+       "nosuchaction": "Upe tembiapo ndaipóri",
+       "ns-specialprotected": "Las páginas en el espacio de nombres Especial no se pueden editar.",
+       "yourname": "Hero",
+       "yourpassword": "Ne remiñemi",
+       "yourpasswordagain": "Repita ne remiñemi",
+       "remembermypassword": "Aipota chemomandu'ajepi amba'apo jave (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Terañemboguapy/Ke",
+       "nav-login-createaccount": "Terañemboguapy/Ke",
+       "userlogin": "Terañemboguapy/Ke",
+       "logout": "Sẽ",
+       "userlogout": "Sẽ",
+       "nologin": "¿Ne'ĩrãpa remohenda nde réra? '''$1'''.",
+       "nologinlink": "Téra ñemohenda",
+       "loginsuccesstitle": "Remoñepyrũ hekopete ne rembiapo",
+       "nosuchusershort": "No hay un usuario con el nombre \"$1\". Compruebe que lo ha escrito correctamente.",
+       "mailmypassword": "Embou chéve ñe'ẽveve rupive peteĩ temiñemĩ pyahu",
+       "loginlanguagelabel": "Ñe'ẽ: $1",
+       "bold_sample": "Haipyre oñemohũvéva",
+       "bold_tip": "Haipyre oñemohũvéva",
+       "italic_sample": "Haipyre ikarẽva",
+       "italic_tip": "Haipyre ikarẽva",
+       "link_tip": "Joaju hyepyguávandi",
+       "extlink_tip": "Joaju okapeguávandi (recuerde añadir el prefijo http://)",
+       "headline_tip": "Teraete mokõiha",
+       "nowiki_tip": "Viki jehaireko ñembo'yke",
+       "image_tip": "Ta'ãnga moĩngepyréva",
+       "media_tip": "Joaju jehai'aty multimediaguándi",
+       "sig_tip": "Teraguapy, arange, aravo",
+       "hr_tip": "Haipuku oñenóva (eipurúke tekotevẽ javénte)",
+       "summary": "Jehaimombyky:",
+       "subject": "Mba'ekuaarã/teraete:",
+       "minoredit": "Kóva ha'e peteĩ jehai mbyky",
+       "watchthis": "Toñeñangareko ko tembiapóre",
+       "savearticle": "Hai",
+       "showpreview": "Tojechauka jehai ñemboguapy mboyve",
+       "showdiff": "Tojechauka ñemoambue",
+       "missingsummary": "'''Atención:''' No has escrito un resumen de edición. Si haces clic nuevamente en «Hai» tu edición se grabará sin él.",
+       "subject-preview": "Previsualización del mba'ekuaarã/teraete:",
+       "newarticletext": "Rehapykuehókuri peteĩ joaju peteĩ kuatiarogue ndaipórivape.\nNde remoheñoisérõ ko kuatiarogue, eñepyrũkatu ehai.\nReikotevẽvérõ marandu, emoñe'ẽ kuatiarogue ñepytyvõ rehegua. Oiméramo reikereínte térã rejavyhaguére, upéicharõ terehojey [$1 kuatiarogue mboyveguápe].",
+       "userinvalidcssjstitle": "'''Aviso:''' No existe la piel \"$1\". Recuerda que las páginas personalizadas .css y .js tienen un título en minúsculas, p.e. Usuario:Foo/vector.css en vez de  Usuario:Foo/Vector.css.",
+       "editing": "Ojehaihína $1",
+       "editingsection": "Ojehaihína $1 (vore)",
+       "editingcomment": "Ojehaihína $1 (comentario)",
+       "yourtext": "Mba'ehaipyre",
+       "cur": "ko'ag̃agua",
+       "last": "ipaha",
+       "historysize": "($1 bytes)",
+       "rev-delundel": "hechauka/toñemi",
+       "logdelete-selected": "Seleccionados $1 eventos de registro:",
+       "lineno": "Jehai $1:",
+       "editundo": "embyai",
+       "searchresults": "Ojejuhúva jeheka",
+       "prevn": "{{PLURAL:$1|$1}} mboyvegua",
+       "viewprevnext": "Hecha ($1 {{int:pipe-separator}} $2) ($3).",
+       "showingresults": "Abajo se muestran hasta '''$1''' resultados empezando por el nº '''$2'''.",
+       "preferences": "Mbohoryha",
+       "mypreferences": "Che mbohoryha",
+       "prefs-rc": "Oñemoambue pyahúva",
+       "searchresultshead": "Jeheka",
+       "youremail": "Ñe'ẽveve",
+       "yourlanguage": "Ñe'ẽ:",
+       "gender-male": "Ha'e ohaijey wiki kuatiarogue kuéra",
+       "gender-female": "Ha'e ohaijey wiki kuatiarogue kuéra",
+       "email": "Pareha eleytróniko",
+       "userrights-lookup-user": "Configurar grupos de usuarios",
+       "userrights-user-editname": "Ehaimi peteĩ téra puruháragua:",
+       "editusergroup": "Modificar grupos de usuarios",
+       "editinguser": "Ojehaihína '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+       "userrights-editusergroup": "Modificar grupos de usuarios",
+       "saveusergroups": "Guardar grupos de usuarios",
+       "userrights-groupsmember": "Pehengue:",
+       "userrights-reason": "Motivo para el cambio:",
+       "group-all": "(opaite)",
+       "nchanges": "$1 ñemoambue",
+       "recentchanges": "Oñemoambue pyahúva",
+       "rclistfrom": "Tojehechauka oñemoambue pyahúva $3 $2 guive",
+       "rcshowhideminor": "$1 jehaijey michĩva",
+       "rcshowhideliu": "$1 puruhára ohejáva teraguapy",
+       "rcshowhideanons": "$1 puruhára ojekuaa'ỹva",
+       "rcshowhidemine": "$1 che jehaijey",
+       "rclinks": "Ápe ojehechakuaa umi $1 oñemoambue pyahúva $2 ára ohasava'ekuépe.<br />$3",
+       "hide": "toñemi",
+       "show": "hechauka",
+       "newsectionsummary": "Pyahuvore: /* $1 */",
+       "recentchangeslinked-title": "Ñemoambue $1 rehegua",
+       "recentchangeslinked-summary": "Ko kuatiarogue hekochĩchĩvape oñembohysýi umi ñemoambue ipyahúva ko'ã kuatiarogue ojoajúvape. Kuatiarogue oĩva tapykueho rysýipe oĩ '''haipyre oñemohũvape'''.",
+       "upload": "Tojehupi jehai'aty",
+       "uploadtext": "Eipuru pe tembipuru oĩva iguýpe ehupi hag̃ua jehai'aty, rehecha térã reheka hag̃ua ta'ãnga ojehupipyrémava eike jehai'aty jehupipyre rysýipe, umi ihupipyréva ha oñemboguémava avei oñemboguapy [[Special:Log/upload|jehai'aty jehupipyrépe]].\nReomĩsérõ ta'ãnga peteĩ kuatiaroguépe, eipuru peteĩ joaju:\n'''<nowiki>[[</nowiki>Imagen<nowiki>:Archivo.jpg]]</nowiki>''', '''<nowiki>[[</nowiki>Imagen<nowiki>:Archivo.png|texto alternativo]]</nowiki>''' o\n'''<nowiki>[[</nowiki>Media<nowiki>:Archivo.ogg]]</nowiki>''' ojoaju hag̃ua hekopete pe jehai'atýre.",
+       "filename": "Téra jehai'aty",
+       "listfiles": "Ta'ãnga rysýi",
+       "listfiles_user": "Puruhára",
+       "file-anchor-link": "Ñongatupy",
+       "filehist-revert": "embojevy",
+       "filehist-current": "ko'ag̃agua",
+       "filehist-datetime": "Ára/Aravo",
+       "filehist-user": "Puruhára",
+       "filehist-comment": "Jehaimombyky",
+       "imagelinks": "Joajukuéra",
+       "filerevert": "Embojevy $1",
+       "filedelete-legend": "Mboje'o jehai'aty",
+       "filedelete-success": "'''$1''' oñembogue'akue",
+       "mimesearch": "Jeheka MIME",
+       "listredirects": "Ñembohapejey rysýi",
+       "unusedtemplates": "Tembiecharã ndojepurúiva",
+       "randompage": "Kuatiarogue oñembosako'íva",
+       "randomredirect": "Oimerãe ñembohapejeýpe jeho",
+       "statistics": "Papyrekokuaa",
+       "doubleredirects": "Ñembohapejey jo'apyre",
+       "brokenredirects": "Ñembohapejey hekopegua'ỹva",
+       "brokenredirects-edit": "jehaijey",
+       "brokenredirects-delete": "mboje'o",
+       "withoutinterwiki": "Kuatiarogue ndorekóiva interwiki",
+       "fewestrevisions": "Kuatiahai sa'ive ijehaijeýva",
+       "nbytes": "$1 bytes",
+       "ncategories": "$1 ñemohendakuéra",
+       "nlinks": "$1 joaju",
+       "nmembers": "$1 kuatiahai",
+       "nrevisions": "$1 revisiones",
+       "nviews": "$1 vistas",
+       "lonelypages": "Kuatiarogue ityre'ỹva",
+       "uncategorizedpages": "Kuatiarogue oñemohenda'ỹva",
+       "uncategorizedcategories": "Ñemohenda noñemohendáiva",
+       "uncategorizedimages": "Ta'ãnga ne'ĩrã oñemohendáva",
+       "uncategorizedtemplates": "Tembiecharã noñemohendáiva",
+       "unusedcategories": "Ñemohenda ojepuru'ỹva",
+       "unusedimages": "Ta'ãnga ndojepurúiva",
+       "wantedcategories": "Ñemohenda oñekotevẽva",
+       "wantedpages": "Kuatiarogue oñekotevẽva",
+       "mostlinked": "Kuatiahai ojoaju hetavéva",
+       "mostlinkedcategories": "Ñemohenda ojoaju hetavéva",
+       "mostlinkedtemplates": "Tembiecharã ojoaju hetavéva",
+       "mostcategories": "Kuatiarogue iñemohenda hetavéva",
+       "mostimages": "Ta'ãnga ojepuruvéva",
+       "mostrevisions": "Kuatiahai hetave ijehaijeýva",
+       "prefixindex": "Kuatiarogue henondepyguáva",
+       "shortpages": "Kuatiarogue mbykýva",
+       "longpages": "Kuatiarogue ipukúva",
+       "deadendpages": "Kuatiarogue ñesẽ'ỹva",
+       "protectedpages": "Kuatiarogue oñeñangarekóva",
+       "listusers": "Puruhára rysýi",
+       "newpages": "Kuatiarogue ipyahúva",
+       "newpages-username": "Hero",
+       "ancientpages": "Kuatiahai hi'arevéva",
+       "move": "Guerova",
+       "movethispage": "Guerova kuatiarogue",
+       "booksources": "Heñóiva kuatiañe'ẽme",
+       "log": "Ñemboguapypyre",
+       "allpages": "Opaite kuatiarogue",
+       "nextpage": "Kuatia rogue upeigua($1)",
+       "prevpage": "Kuatia rogue mboyvegua ($1)",
+       "allpagesfrom": "Ehechauka kuatia rogue oñepyrũva:   -pe",
+       "allpagesto": "Ehechauka kuatia rogue opáva:  -pe",
+       "allarticles": "Opa kuatia rogue",
+       "allinnamespace": "Opa kuatia rogue (pa'ũ $1)",
+       "allpagessubmit": "Hechauka",
+       "categories": "Ñemohendakuéra",
+       "listusers-submit": "Hechauka",
+       "emailuser": "Tojeguerahauka ñe'ẽveve ko puruhárape",
+       "emailpage": "Pareha eleytrónico",
+       "emailmessage": "Marandu",
+       "watchlist": "Tapykueho rysýi",
+       "mywatchlist": "Tapykueho rysýi",
+       "watch": "Ñangareko",
+       "dellogpage": "Ñemboguepyre ñonagatupy",
+       "deletionlog": "ñemboguepyre ñonagatupy",
+       "rollback_short": "Embojevy",
+       "rollbacklink": "Embojevy",
+       "prot_1movedto2": "[[$1]] oñembohasa [[$2]]-pe",
+       "protect-text": "Puedes ver y modificar el nivel de protección de la página '''$1'''.",
+       "undeletedrevisions": "$1 ediciones restauradas",
+       "undeletedrevisions-files": "$1 ediciones y $2 archivos restaurados",
+       "undeletedfiles": "$1 archivos restaurados",
+       "undelete-search-submit": "Heka",
+       "namespace": "Téra rendagua:",
+       "invert": "Toñembo'ovývo mba'eporavopyre",
+       "blanknamespace": "(Tenondeguáva)",
+       "contributions": "Puruhára mba'emoĩmbyre",
+       "mycontris": "Che mba'emoĩmbyre",
+       "sp-contributions-search": "Heka mba'emoĩmbyre",
+       "sp-contributions-submit": "Heka",
+       "whatlinkshere": "Oñembojoajukuaáva ko'ápe",
+       "whatlinkshere-title": "Kuatiarogue ojoajúva \"$1\" rehe",
+       "whatlinkshere-page": "Kuatiarogue:",
+       "linkshere": "Ko'ã kuatiarogue ojoaju '''[[:$1]]''' rehe:",
+       "whatlinkshere-prev": "mboyvegua $1",
+       "whatlinkshere-next": "upeigua $1",
+       "whatlinkshere-links": "← joajukuéra",
+       "blockip": "Ejoko puruhára",
+       "ipblocklist": "IP mbohape rysýi imbotypyréva",
+       "ipblocklist-submit": "Heka",
+       "blocklink": "ejoko",
+       "contribslink": "mba'emoĩmbyre",
+       "blocklogtext": "Esto es un registro de bloqueos y desbloqueos de usuarios. Las direcciones bloqueadas automáticamente no aparecen aquí. Consulte la [[Special:BlockList|IP mbohape rysýi imbotypyréva]] para ver la lista de prohibiciones y bloqueos actualmente vigente.",
+       "movearticle": "Guerova kuatiarogue",
+       "move-watch": "Toñeñangareko ko tembiapóre",
+       "movepagebtn": "Guerova kuatiarogue",
+       "revertmove": "embojevy",
+       "delete_and_move": "Mboje'o ha guerova",
+       "export": "Kuatiarogue ñemondo",
+       "allmessages": "Opaite marandu MediaWikigua",
+       "import-revision-count": "$1 revisiones",
+       "import-logentry-upload-detail": "$1 revisiones",
+       "import-logentry-interwiki-detail": "$1 revisiones desde $2",
+       "tooltip-pt-userpage": "Che puruhárakuatia",
+       "tooltip-pt-mytalk": "Che kuatiarogue myangekõi",
+       "tooltip-pt-preferences": "Che mbohoryha",
+       "tooltip-pt-mycontris": "Tysỹi che mba'emoĩmbyre",
+       "tooltip-ca-move": "Guerova kuatiarogue",
+       "tooltip-p-logo": "Ape",
+       "tooltip-n-mainpage": "Eho ijapépe",
+       "spamprotectiontitle": "Filtro de protección contra spam",
+       "spamprotectiontext": "La página que intentas guardar ha sido bloqueada por el filtro de spam. Esto se debe probablemente a alguno de los un enlaces externos incluidos en ella.",
+       "spamprotectionmatch": "El siguiente texto es el que activó nuestro filtro ''anti-spam'' (contra la publicidad no solicitada): $1",
+       "spambot_username": "Limpieza de spam de MediaWiki",
+       "spam_reverting": "Revirtiendo a la última versión que no contenga enlaces a $1",
+       "spam_blanking": "Todas las revisiones contienen enlaces a $1, blanqueando",
+       "file-info": "tamaño de jehai'aty: $1; tipo MIME: $2",
+       "newimages": "Ta'ãnga pyahu renda",
+       "ilsubmit": "Jeheka",
+       "namespacesall": "opaite",
+       "monthsall": "opaite",
+       "autosumm-new": "Kuatiarogue ipyahúva: $1",
+       "watchlistedit-normal-title": "Moambue tapykueho rysýi",
+       "watchlistedit-normal-submit": "Mboje'o kuatiarogue",
+       "watchlistedit-normal-done": "$1 páginas han sido borradas de tu lista de seguimiento:",
+       "watchlistedit-raw-titles": "Kuatiarogue:",
+       "watchlistedit-raw-added": "Se han añadido $1 páginas:",
+       "watchlistedit-raw-removed": "$1 páginas han sido borradas:",
+       "version": "Mba'ereko",
+       "specialpages": "Kuatiarogue hekochĩchĩva"
 }
index 8d7786e..bdd92b3 100644 (file)
        "search-suggest": "mhonnunk sodi: $1",
        "searchrelated": "sombondit",
        "searchall": "soglle",
-       "showingresultsheader": "{{PLURAL:$5|'''$3''' hantlem '''$1''' porinam|'''$3''' hantlim '''$1 - $2''' porinam}}, '''$4''' haka",
        "search-nonefound": "Tujea sodak mell khata toslem kai porinam nan.",
        "preferences": "Posondeo",
        "mypreferences": "Posonti",
        "pager-older-n": "{{PLURAL:$1|adlem 1|adlim $1}}",
        "booksources": "Pustokachem mull",
        "booksources-search-legend": "Pustokachim mullam sod",
-       "booksources-go": "Fuddem voch",
        "speciallogtitlelabel": "Vishoi vo vapurpi:",
        "log": "Sotram",
        "allpages": "Sogllim panam",
        "unwatch": "Nodor kadd",
        "watchlist-details": "Tujea sadurvollerint {{PLURAL:$1|$1 pan asa|$1 panam asat}}, ulovpachim panam veglim mezonastanam.",
        "wlheader-showupdated": "Tujea fatle bhette san bodol'lean tim panam '''datt''' dakhoileant.",
-       "wlshowlast": "Xevottchim $1 voram $2 dis $3 dakhoi",
+       "wlshowlast": "Xevottchim $1 voram $2 dis  dakhoi",
        "watchlist-options": "Sadurvollericheo poryay",
        "watching": "Disht dovortanv...",
        "unwatching": "Disht kaddthanv...",
        "metadata": "Metadata",
        "metadata-help": "Hea failin anikui mahiti asa, hi fail korunk uzar kel'le digital camera vo scanner sun tem aila zait.\nZori tor hi failik bodol'lam zalear kai mahiti bodololem failik sarkem mell khaina zait.",
        "metadata-fields": "Metadata chovkott konsollttoch, hea sondexant metadata molleantlea murtipanachea dakhovnnent aspav astolo.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "soglle",
        "namespacesall": "sogllem",
        "monthsall": "sogllem",
        "watchlisttools-view": "Sombondhi bodlopam polloi",
index f0c6be3..cc62704 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Bleakgh",
-            "Jocke Pirat",
-            "Michawiki",
-            "Node ue",
-            "Sajasazi (on got.wikipedia.org)",
-            "Zylbath"
-        ]
-    },
-    "underline-always": "Sinteino",
-    "underline-never": "Niu",
-    "sunday": "Sunnonsdags",
-    "monday": "Meninsdags",
-    "tuesday": "Tiwisdags",
-    "wednesday": "Midiwiko",
-    "thursday": "Þeiƕonsdags",
-    "friday": "Fraujonsdags",
-    "saturday": "𐌸𐍅𐌰𐌷𐌻𐌹𐍃𐌳𐌰𐌲𐍃",
-    "sun": "𐍃𐌿𐌽",
-    "mon": "𐌼𐌴𐌽",
-    "tue": "𐌰𐍂𐌴",
-    "wed": "𐍅𐍉𐌳",
-    "thu": "𐍀𐌰𐌹",
-    "fri": "𐍆𐍂𐌹",
-    "sat": "𐍃𐌰𐌼",
-    "january": "𐌰𐍆𐍄𐌿𐌼𐌰 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-    "february": "𐍆𐌰𐌽𐌹𐌼𐌴𐌽𐍉𐌸𐍃",
-    "march": "𐌺𐌰𐌻𐌳𐌼𐌴𐌽𐍉𐌸𐍃",
-    "april": "𐌲𐍂𐌰𐍃𐌼𐌴𐌽𐍉𐌸𐍃",
-    "may_long": "𐌱𐌻𐍉𐌼𐌰𐌼𐌴𐌽𐍉𐌸𐍃",
-    "june": "𐍅𐌰𐍂𐌼𐌼𐌴𐌽𐍉𐌸𐍃",
-    "july": "𐌷𐌰𐍅𐌹𐌼𐌴𐌽𐍉𐌸𐍃",
-    "august": "𐌰𐍃𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐍃",
-    "september": "𐌰𐌺𐍂𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐍃",
-    "october": "𐍅𐌴𐌹𐌽𐌼𐌴𐌽𐍉𐌸𐍃",
-    "november": "𐍆𐍂𐌿𐌼𐌰 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-    "december": "𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-    "january-gen": "𐌰𐍆𐍄𐌿𐌼𐌹𐌽𐍃 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-    "february-gen": "𐍆𐌰𐌽𐌹𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "march-gen": "𐌺𐌰𐌻𐌳𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "april-gen": "𐌲𐍂𐌰𐍃𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "may-gen": "𐌱𐌻𐍉𐌼𐌰𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "june-gen": "𐍅𐌰𐍂𐌼𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "july-gen": "𐌷𐌰𐍅𐌹𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "august-gen": "𐌰𐍃𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "september-gen": "𐌰𐌺𐍂𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "october-gen": "𐍅𐌴𐌹𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
-    "november-gen": "𐍆𐍂𐌿𐌼𐌹𐌽𐍃 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-    "december-gen": "𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-    "jan": "𐌰𐍆𐍄",
-    "feb": "𐍆𐌰𐌽",
-    "mar": "𐌺𐌰𐌻",
-    "apr": "𐌲𐍂𐌰",
-    "may": "𐌱𐌻𐍉",
-    "jun": "𐍅𐌰𐍂",
-    "jul": "𐌷𐌰𐍅",
-    "aug": "𐌰𐍃𐌰",
-    "sep": "𐌰𐌺𐍂",
-    "oct": "𐍅𐌴𐌹",
-    "nov": "𐍆𐍂𐌿",
-    "dec": "𐌾𐌹𐌿",
-    "pagecategories": "{{PLURAL:$1|𐌷𐌰𐌽𐍃𐌰|𐌷𐌰𐌽𐍃𐍉𐍃}}",
-    "category_header": "𐍃𐌴𐌹𐌳𐍉𐍃 𐌹𐌽𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
-    "subcategories": "Dalaþkunjos",
-    "category-media-header": "𐌼𐌴𐌳𐌾𐌰 𐌹𐌽𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
-    "hidden-categories": "{{PLURAL:$1|𐍆𐌿𐌻𐌲𐌹𐌽𐍃 𐌺𐌰𐍄𐌴𐌲𐍉𐍂𐌹|𐍆𐌿𐌻𐌲𐌹𐌽𐌰𐌹 𐌺𐌰𐍄𐌴𐌲𐍉𐍂𐌾𐍉𐍃}}",
-    "about": "𐌿𐍆𐌰𐍂",
-    "article": "𐍃𐌰𐌸𐍃𐍃𐌴𐌹𐌳𐍉",
-    "newwindow": "(𐌰𐌽𐌳𐌷𐌿𐌻𐌾𐌹𐌸 𐌹𐌽𐌽 𐌽𐌹𐌿𐌾𐌰 𐌰𐌿𐌲𐌰𐌳𐌰𐌿𐍂𐍉)",
-    "cancel": "𐌷𐌰𐌻𐍄𐍃",
-    "moredotdotdot": "𐌼𐌰𐌹𐍃...",
-    "mypage": "𐌼𐌴𐌹𐌽 𐍃𐌴𐌹𐌳𐍉",
-    "mytalk": "𐌼𐌴𐌹𐌽𐌰 𐌼𐌰𐌸𐌻𐌴𐌹",
-    "navigation": "𐍅𐌹𐌲𐌰𐍄𐌰𐌿𐌷𐍄𐍃",
-    "and": "𐌾𐌰𐌷",
-    "qbfind": "𐍃𐍉𐌺𐌴𐌹𐌸",
-    "qbedit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "qbmyoptions": "𐌼𐌴𐌹𐌽𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-    "vector-action-delete": "𐍄𐌰𐌹𐍂𐌰𐌽",
-    "vector-view-create": "𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-    "vector-view-edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "vector-view-history": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍅𐌰𐌿𐍂𐌸𐌰𐌽𐌽𐌰",
-    "vector-view-view": "𐌰𐌽𐌰𐌺𐌿𐌽𐌽𐌰𐌹𐍃",
-    "vector-view-viewsource": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-    "actions": "𐍅𐌰𐌿𐍂𐍃𐍄𐍅𐌴𐌹𐌽𐍃",
-    "namespaces": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐌸𐌴𐌹𐍃",
-    "variants": "𐌼𐌹𐍃𐍃𐌰𐌻𐌴𐌹𐌽𐍃",
-    "errorpagetitle": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰 𐌳𐍅𐌰𐌻𐌹𐍃",
-    "returnto": "𐌲𐌰𐍅𐌰𐌽𐌳𐌾𐌰𐌽 𐌰𐍄 $1.",
-    "tagline": "𐍆𐍂𐌰𐌼 {{SITENAME}}",
-    "help": "𐌷𐌹𐌻𐍀𐌰",
-    "search": "𐍃𐍉𐌺𐌾𐌰𐌽",
-    "searchbutton": "𐍃𐍉𐌺𐌾𐌰𐌽",
-    "go": "𐌲𐌰𐌲𐌲𐌰",
-    "searcharticle": "𐌰𐍆𐌲𐌰𐌲𐌲𐌰𐌽",
-    "history": "𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "history_short": "𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "printableversion": "𐍅𐍂𐌴𐌹𐍄𐌼𐌰𐌷𐍄𐌴𐌹𐌲 𐍃𐌴𐌹𐌳𐍉",
-    "permalink": "𐍃𐌹𐌽𐍄𐌴𐌹𐌽𐍉 𐍃𐍄𐌰𐌽𐌳𐌰𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐌰",
-    "view": "Saíhvan",
-    "edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "create": "𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-    "editthispage": "𐌼𐌰𐌹𐌳𐌾𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
-    "create-this-page": "Skapja þo seido",
-    "delete": "𐍄𐌰𐌹𐍂𐌰𐌽",
-    "deletethispage": "𐍄𐌰𐌹𐍂𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
-    "protect": "𐌱𐌰𐌹𐍂𐌲𐌰𐌽",
-    "protect_change": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "protectthispage": "Baírga þo siedo",
-    "unprotect": "𐌽𐌹𐌱𐌰𐌹𐍂𐌲𐌰",
-    "unprotectthispage": "Nibaírga þo siedo",
-    "newpage": "𐌽𐌹𐌿𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "talkpage": "𐌼𐌰𐌸𐌻𐌴𐌹𐍃𐌴𐌹𐌳𐍉",
-    "talkpagelinktext": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
-    "specialpage": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐍃",
-    "personaltools": "𐍅𐌰𐌹𐍂𐌻𐌴𐌹𐌺𐍃 𐌱𐍂𐌿𐌺𐍅𐌰𐌹𐌷𐍄𐍃",
-    "talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
-    "views": "𐌷𐌹𐍅𐌾𐍉𐍃",
-    "toolbox": "𐍄𐌰𐌿𐌹 𐌰𐍂𐌺𐌰",
-    "otherlanguages": "𐌰𐌽𐌸𐌰𐍂 𐍂𐌰𐌶𐌳𐍉𐍃",
-    "redirectedfrom": "(𐌽𐌰𐌿𐌸𐌾𐌰𐌽 𐍆𐍂𐌰𐌼𐌹𐍃 $1)",
-    "redirectpagesub": "𐍄𐌰𐌹𐌺𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
-    "lastmodifiedat": "𐌸𐌰𐍄𐌰 𐍃𐌴𐌹𐌳𐍉 𐍃𐌹𐌽𐌳 𐌼𐌰𐌽𐌰𐌲𐌹𐍃𐍄𐍃 𐌽𐌹𐌿𐌾𐌰 𐌼𐌰𐌹𐌳𐌾𐌹𐌸𐍃 ($2) ($1)",
-    "jumpto": "𐌲𐌰𐌲𐌲𐌰𐌽 𐌰𐍄:",
-    "jumptonavigation": "𐍃𐌴𐌹𐌳𐍉𐌲𐌰𐍅𐌹𐍃𐍃",
-    "jumptosearch": "𐍃𐍉𐌺𐌴𐌹𐌸",
-    "aboutsite": "𐍆𐍂𐌰𐌼 {{SITENAME}}",
-    "aboutpage": "Project:𐌿𐍆𐌰𐍂",
-    "copyrightpage": "{{ns:project}}:𐌼𐌰𐌽𐌻𐌴𐌹𐌺𐌰𐍅𐌹𐍄𐍉𐌸𐌰",
-    "currentevents": "𐌽𐌹𐌿𐌾𐌰 𐍅𐌰𐌹𐌷𐍄𐍃",
-    "currentevents-url": "Project:𐌽𐌹𐌿𐌾𐌰 𐍅𐌰𐌹𐌷𐍄𐍃",
-    "disclaimers": "𐍅𐌰𐌳𐌾𐍉𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
-    "disclaimerpage": "Project:𐍅𐌰𐌳𐌾𐌹𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
-    "edithelp": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌷𐌹𐌻𐍀𐌰",
-    "mainpage": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-    "mainpage-description": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-    "portal": "𐌱𐌰𐌿𐍂𐌲𐌹𐍃 𐌲𐌰𐍅𐌹",
-    "portal-url": "Project:𐌱𐌰𐌿𐍂𐌲𐌹𐍃 𐌲𐌰𐍅𐌹",
-    "privacy": "𐍃𐌿𐌽𐌳𐍂𐌰𐍅𐌿𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
-    "privacypage": "Project:𐍃𐌿𐌽𐌳𐍂𐌰𐍅𐌴𐌹𐌽𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
-    "retrievedfrom": "𐌲𐌰𐌽𐌰𐌼 𐍆𐍂𐌰𐌼 \"$1\"",
-    "youhavenewmessages": "𐌸𐌿 𐌷𐌰𐌱𐌹𐍃 $1 ($2).",
-    "editsection": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "editold": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "editlink": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "viewsourcelink": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-    "editsectionhint": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌳𐌰𐌹𐌻: $1",
-    "toc": "𐌹𐌽𐌽𐌰𐌽𐌰",
-    "showtoc": "𐌰𐌿𐌲𐌾𐌰",
-    "hidetoc": "𐍆𐌹𐌻𐌷𐌰𐌽",
-    "site-rss-feed": "$1 RSS Miþnatifodjan",
-    "site-atom-feed": "$1 𐌰𐍄𐍉𐌼 𐌼𐌹𐌸𐌽𐌰𐍄𐌹𐍆𐍉𐌳𐌾𐌰𐌽",
-    "page-atom-feed": "\"$1\" 𐌰𐍄𐍉𐌼 𐍂𐌹𐌽𐌽𐍉",
-    "red-link-title": "$1 (𐍃𐌴𐌹𐌳𐍉 𐍃𐌹𐌽𐌳 𐌽𐌹𐍃𐍄)",
-    "nstab-main": "𐍃𐌴𐌹𐌳𐍉",
-    "nstab-user": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
-    "nstab-special": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉",
-    "nstab-project": "𐍂𐌴𐌹𐌺𐌹𐍃𐌴𐌹𐌳𐍉",
-    "nstab-image": "𐍆𐌴𐌹𐌻𐌰",
-    "nstab-template": "𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃",
-    "nstab-help": "𐌷𐌹𐌻𐍀𐌰",
-    "nstab-category": "𐌷𐌰𐌽𐍃𐌰",
-    "missing-article": "𐍃𐌰 𐌳𐌰𐍄𐌰𐌱𐌿𐍃 𐌽𐌹 𐌲𐌰𐌽𐌰𐌼 𐌸𐌰𐌽𐌰 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌽 𐌴𐌹 𐌹𐍄𐌰 𐍃𐌺𐌰𐌻 𐌱𐌹𐌲𐌹𐍄𐌰𐌽: \"$1\" $2\n\n(The data base did not find the text of a page that it should have found, named \"$1\" $2.\n\nThis is usually caused by following an outdated diff or history link to a page that has been deleted.\n\nIf this is not the case, you may have found a bug in the software.\nPlease report this to an [[Special:ListUsers/sysop|administrator]], making note of the URL.)",
-    "viewsource": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-    "yourname": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐌽𐌰𐌼𐍉:",
-    "yourpassword": "𐌰𐌽𐌰𐌻𐌰𐌿𐌲𐌽𐍃 𐍅𐌰𐌿𐍂𐌳𐌰:",
-    "login": "Atgaggan",
-    "nav-login-createaccount": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽 / 𐌲𐌰𐌻𐌰𐌽𐌲𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
-    "userlogin": "Atgaggan / gaskapjan niutandis",
-    "logout": "𐌻𐌴𐌹𐌸𐌰𐌽",
-    "userlogout": "𐌻𐌴𐌹𐌸𐌰𐌽",
-    "nologinlink": "Gaskapjan þein niutandis",
-    "createaccount": "𐌲𐌰𐌻𐌰𐌲𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
-    "gotaccount": "Habiþ þu niutandis? '''$1'''",
-    "gotaccountlink": "Atgaggan",
-    "loginlanguagelabel": "Razda: $1",
-    "bold_sample": "𐌰𐌱𐍂𐍃 𐌱𐍉𐌺𐌰",
-    "bold_tip": "𐌰𐌱𐍂 𐍅𐌰𐌿𐍂𐌳𐌰",
-    "italic_sample": "𐍅𐍂𐌰𐌹𐌵𐍃 𐍅𐌰𐌿𐍂𐌳𐌰",
-    "italic_tip": "𐌳𐍂𐌹𐌿𐍃𐍉 𐌱𐍉𐌺𐌰",
-    "link_sample": "𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐌱𐌰𐌽𐌳𐌹 𐌽𐌰𐌼𐍉",
-    "link_tip": "𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐌱𐌰𐌽𐌳𐌹 𐌹𐌽𐌽𐌰𐌽𐌰",
-    "extlink_sample": "http://www.example.com 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐌳𐌰𐌽𐌳𐌹 𐌽𐌰𐌼𐍉",
-    "extlink_tip": "Uta táikjabandi (maúdjan http://)",
-    "headline_sample": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍅𐌰𐌿𐍂𐌳𐌰",
-    "headline_tip": "𐌷𐌰𐌿𐌷𐍃 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌱𐍉𐌺𐌰 •𐌱•",
-    "nowiki_sample": "𐍃𐌰𐍄𐌾𐌴𐌹 𐌿𐌽𐍃𐌽𐌴𐌹𐌸𐌾𐌰𐌽𐌳𐍃 𐍄𐌴𐌺𐍃𐍄 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌼 𐌷𐌹𐍄",
-    "nowiki_tip": "𐌿𐌽𐍅𐌹𐍄𐌾𐌹𐍃 𐍅𐌹𐌺𐌹𐍃𐌽𐌴𐌹𐌸𐌾𐌰𐌽𐌳𐍃",
-    "image_tip": "𐌹𐌽𐌽𐌱𐍉𐌳𐌰𐌽𐍃 𐍆𐌴𐌹𐌻𐌰",
-    "media_tip": "𐍄𐌰𐌹𐌺𐌾𐌰𐌱𐌰𐌽𐌳𐌾𐌹𐍃 𐍆𐌴𐌹𐌻𐌰𐌽𐌹𐍃",
-    "sig_tip": "𐌿𐌽𐌳𐌰𐍂𐌼𐌴𐌻 𐌸𐌴𐌹𐌽𐌰 𐌼𐌹𐌸 𐍃𐍄𐌿𐌽𐌳𐌰𐌼𐌴𐌻𐌰",
-    "hr_tip": "𐍂𐌰𐌹𐌷𐍄𐍃𐌱𐌰𐌿𐍂𐌳 (𐌱𐍂𐌿𐌺𐌾𐌰𐌽 𐌼𐌹𐌸 𐌽𐌹𐌿𐍆𐌰𐍂𐌿𐍃𐍃𐌿𐍃)",
-    "summary": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽𐍃𐍀𐌹𐌻𐌻𐍉𐌽:",
-    "subject": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌱𐍉𐌺𐌰:",
-    "minoredit": "𐍃𐌰 𐌹𐍃𐍄 𐌻𐌴𐌹𐍄𐌹𐌻𐌰 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "watchthis": "𐍅𐌰𐍂𐌰𐌽 𐍃𐌴𐌹𐌳𐍉",
-    "savearticle": "𐌼𐌴𐌻𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "preview": "𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "showpreview": "𐍅𐌹𐍄𐌰𐌽 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰",
-    "showdiff": "𐍅𐌹𐍄𐌰𐌽 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "newarticle": "(Niu)",
-    "updated": "(Nuwisan)",
-    "previewnote": "'''𐍃𐌰𐌷 𐌹𐍃𐍄 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰. 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌲𐌰𐌼𐌴𐌻𐌾𐌹𐌸 𐌽𐌹 𐌰𐍆 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐍃!'''",
-    "editing": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1",
-    "editingsection": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1 (𐍆𐌴𐍂𐌰)",
-    "editingcomment": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1 (𐍂𐍉𐌳𐌾𐌰𐍆𐌴𐍂𐌰)",
-    "yourdiff": "Missalieks",
-    "template-protected": "(𐌲𐌰𐌱𐌰𐌹𐍂𐌲𐌾𐌰𐌽)",
-    "template-semiprotected": "(halb-gabaírgjan)",
-    "post-expand-template-inclusion-warning": "'''𐌷𐍅𐍉𐍄𐌾𐌰𐌽𐌳𐍃:''' 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃. 𐍃𐌿𐌼𐍃 𐍆𐌰𐌿𐍂𐌴𐌼𐌴𐌻𐌴𐌹𐌽𐍉𐍃 𐌽𐌹 𐌼𐌰𐌲 𐍅𐌹𐍃𐌰𐌽 𐌸𐌰𐍂",
-    "post-expand-template-inclusion-category": "𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍂 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃",
-    "currentrev": "𐌽𐌿 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "currentrev-asof": "𐌰𐍆𐍄𐌿𐌼𐍃𐍄𐍃 𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $1",
-    "revisionasof": "𐌲𐌰𐌼𐌰𐌳𐌾𐌴𐌹 𐍆𐍂𐌰𐌼 $1",
-    "revision-info": "Máideins fram $1 bi $2",
-    "previousrevision": "←𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "nextrevision": "Iftuma máideins→",
-    "currentrevisionlink": "𐌽𐌿𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "cur": "𐌽𐌿",
-    "next": "𐌹𐍆𐍄𐌿𐌼𐌰",
-    "last": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍃",
-    "page_first": "frumists",
-    "page_last": "𐍃𐍀𐌴𐌳𐌿𐌼𐌹𐍃𐍄𐍃",
-    "histfirst": "𐍆𐌰𐌿𐍂𐌸𐌹𐍃",
-    "histlast": "𐍃𐍀𐌴𐌳𐌿𐌼𐌹𐍃𐍄𐍃",
-    "history-feed-item-nocomment": "$1 at $2",
-    "revdel-restore": "𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌹𐍃 𐌰𐌽𐌰𐍃𐌹𐌿𐌽𐌼𐌰𐌷𐍄𐌴𐌹𐌲𐍃",
-    "revertmerge": "𐌿𐌽𐌲𐌰𐍄𐌹𐌻𐍉𐍃",
-    "history-title": "𐌰𐍂𐌹𐍃𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌰𐍆 \"$1\"",
-    "lineno": "𐌱𐍉𐌺𐌰𐍂𐌹𐌲𐌹𐌻𐍉 $1:",
-    "editundo": "𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-    "searchresults": "𐍃𐍉𐌺𐌽𐌹𐍃 𐍄𐌰𐌿𐌾𐍉𐍃",
-    "searchresults-title": "𐍃𐍉𐌺𐌽𐌹𐍃 𐍄𐌰𐌿𐌾𐍉𐍃 𐍆𐌰𐌿𐍂 \"$1\"",
-    "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]]\" 𐌸𐌹𐌶𐍉𐍃 𐍅𐌹𐌺𐌾𐍉𐍃!'''",
-    "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": "𐍃𐌺𐍉𐌾𐌹𐍃 𐌹𐌽𐌽𐌰 𐍃𐌹𐌻𐌱𐌰𐍃𐌺𐌰𐍀𐌹𐌸𐍃 𐌽𐌰𐌼𐌰𐌽𐍃𐍄𐌰𐌸",
-    "search-result-size": "$1 ({{PLURAL:$2|•𐌰• 𐍅𐌰𐌿𐍂𐌳|•$2• 𐍅𐌰𐌿𐍂𐌳𐌰}})",
-    "search-redirect": "(𐌰𐍆𐍄𐍂𐌰𐍅𐌴𐌹𐍄𐍃 𐍆𐍂𐌰𐌼 𐌸𐌰𐌼𐌼𐌰 $1)",
-    "search-section": "(𐍆𐌴𐍂𐌰 $1)",
-    "search-suggest": "𐍄𐌰𐌹𐌺𐌽𐌹𐌳𐌰 𐌸𐌿: $1",
-    "searchall": "𐌰𐌻𐌻𐍃",
-    "showingresultsheader": "{{PLURAL:$5|𐍄𐌰𐌿𐌹 '''$1''' 𐌸𐌹𐍃 '''$3'''|𐍄𐌰𐌿𐌾𐍉𐍃 '''$1 - $2''' 𐌸𐌹𐍃 '''$3'''}} 𐌱𐌹 𐌸𐌰𐌼𐌼𐌰 '''$4'''",
-    "search-nonefound": "𐌽𐌹 𐌰𐌹𐌽𐌷𐌿𐌽 𐌲𐌰𐌲𐌹𐌱𐌾𐍉 𐍆𐌿𐌻𐌻𐌾𐌹𐌸 𐍃𐍉𐌺𐌴𐌹𐌽",
-    "powersearch-legend": "𐍃𐍉𐌺𐌴𐌹𐌸",
-    "powersearch-redir": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐍃𐌴𐌹𐌳𐍉𐍃",
-    "preferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
-    "mypreferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰",
-    "prefs-skin": "Seidofill",
-    "skin-preview": "Faúrsaiƕa",
-    "saveprefs": "Melja",
-    "searchresultshead": "Sokeiþ",
-    "grouppage-sysop": "{{ns:project}}:𐍃𐌴𐌹𐌳𐍉𐍆𐌰𐌸𐍃",
-    "rightslog": "Niutandis stutjanlog",
-    "nchanges": "$1 {{PLURAL:$1|máidein|máideins}}",
-    "recentchanges": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍉𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
-    "rcshowhideminor": "$1 lietila máideins",
-    "rcshowhidebots": "$1 bota",
-    "rcshowhideliu": "$1 niutandis",
-    "rcshowhideanons": "$1 gasteis",
-    "rcshowhidemine": "$1 mein máideins",
-    "diff": "𐌻𐌴𐌹𐌺𐍃",
-    "hist": "𐍆𐍂𐌼𐌵",
-    "hide": "𐍆𐌹𐌻𐌷𐌰𐌽",
-    "show": "𐌷𐌿𐌻𐌾𐌰𐌽",
-    "minoreditletter": "l",
-    "newpageletter": "N",
-    "boteditletter": "b",
-    "recentchangeslinked": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌻𐌹𐌴𐌺𐍃",
-    "recentchangeslinked-feed": "Máideinlieks",
-    "recentchangeslinked-toolbox": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌻𐌹𐌴𐌺𐍃",
-    "recentchangeslinked-summary": "𐍃𐍉 𐌹𐍃𐍄 𐌻𐌴𐌹𐍃𐍄𐌰 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴 𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍃 𐍃𐌺𐍉𐍀 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳 𐌿𐍃 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 (𐌰𐌹𐌸𐌸𐌰𐌿 𐌻𐌹𐌸𐌰𐌿𐍃 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹𐌶𐍉𐍃 𐌷𐌰𐌽𐍃𐍉𐍃). 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 [[Special:Watchlist|𐍅𐌹𐍄𐌰𐌽𐌳𐌻𐌴𐌹𐍃𐍄𐍉𐍃 𐌸𐌴𐌹𐌽𐍉𐍃]] 𐍃𐌹𐌽𐌳 '''𐌳𐌹𐌲𐍂𐍃𐍄𐌰𐍆𐍃'''.",
-    "upload": "𐌿𐍃𐌷𐌻𐌰𐌸𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
-    "uploadbtn": "Ushlaþaiþ Feilans",
-    "uploadlogpage": "Log af Ushlaþan",
-    "uploadedimage": "ushlaþiþ \"[[$1]]\"",
-    "watchthisupload": "Witan so seido",
-    "imgfile": "Feilans",
-    "listfiles": "Feilans tala",
-    "file-anchor-link": "𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
-    "filehist": "𐍆𐌴𐌹𐌻𐌰𐌽𐍃 𐌰𐌹𐍂𐌹𐍃",
-    "filehist-help": "𐌺𐌻𐌹𐌺𐍉𐍃 𐌰𐌽𐌰 𐌳𐌰𐍄𐌰𐌹/𐍈𐌴𐌹𐌻𐌰𐌹 𐍃𐌰𐌹𐍈𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽 𐍃𐍅𐌴 𐌰𐍄𐌰𐌿𐌲𐌾𐌹𐌳𐌰 𐍃𐌹𐌺 𐌸𐌰𐌽.",
-    "filehist-current": "𐌽𐌿",
-    "filehist-datetime": "𐍈𐌴𐌹𐌻𐌰",
-    "filehist-thumb": "𐍆𐍉𐍂𐍃𐌾𐌰𐌿",
-    "filehist-thumbtext": "𐍆𐍉𐍂𐍃𐌾𐌰𐌿 𐍆𐌰𐌿𐍂 𐌿𐍃𐌲𐌰𐌱𐌰 𐍆𐍂𐌰𐌼 $1",
-    "filehist-user": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
-    "filehist-dimensions": "𐍅𐌰𐌷𐍃𐍄𐌿𐍃",
-    "filehist-filesize": "Feilans wahstus",
-    "filehist-comment": "𐌻𐌴𐌹𐍄𐌻𐌰𐍃𐍀𐌹𐌻𐌻𐍉𐌽",
-    "imagelinks": "𐍆𐌴𐌹𐌻𐌹𐌽𐍃 𐌱𐍂𐌿𐌺𐌹𐍃",
-    "linkstoimage": "𐌰𐍆𐍄𐌿𐌼𐌰 {{PLURAL:$1|𐍃𐍉 𐍃𐌴𐌹𐌳𐍉 𐌻𐌴𐌹𐌽𐌺𐍉𐌸|𐌸𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳}} 𐌸𐌹𐌶𐍉𐌶𐌿𐌷 𐍆𐌴𐌹𐌻𐍉𐍃",
-    "sharedupload-desc-here": "𐍃𐌰 𐍆𐌴𐌹𐌻𐌰 𐌹𐍃𐍄 𐍆𐍂𐌰𐌼 $1 𐌾𐌰𐌷 𐌼𐌰𐌲 𐍅𐌹𐍃𐌰𐌽 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐍃 𐍆𐍂𐌰𐌼 𐌰𐌻𐌾𐌰𐌹𐌼 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐍉𐌼.\n𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌾𐌰𐌽𐌳𐍃 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐌰𐌹 𐍆𐌴𐌹𐌻𐌰𐌽𐍃𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌾𐌰𐌽𐌳𐌹𐍃 𐌸𐌰𐍂 𐌹𐍃𐍄 𐌳𐌰𐌻𐌰𐌸𐌰 𐌿𐍃𐌲𐌹𐌱𐌰𐌽𐍃.",
-    "filedelete-submit": "Taíran",
-    "mimesearch": "MIME sokeiþ",
-    "listredirects": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐍃𐌴𐌹𐌳𐍉𐍃",
-    "randompage": "𐍃𐌻𐌿𐌼𐍀𐌼𐌰𐍃𐍃𐌹𐌲 𐍃𐌴𐌹𐌳𐍉",
-    "statistics": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐍄𐌹𐍃𐍄𐌹𐌺",
-    "brokenredirects-edit": "(𐌼𐌰𐌹𐌳𐌾𐌰𐌽)",
-    "brokenredirects-delete": "(𐍄𐌰𐌹𐍂𐌰𐌽)",
-    "nbytes": "$1 {{PLURAL:$1|𐌱𐌰𐌹𐍄|𐌱𐌰𐌹𐍄𐌰}}",
-    "ncategories": "$1 {{PLURAL:$1|𐌺𐌿𐌽𐌾𐌰|𐌺𐌿𐌽𐌾𐍉𐍃}}",
-    "nlinks": "$1 {{PLURAL:$1|táikjanbandi|táikjanbandja}}",
-    "nmembers": "$1 {{PLURAL:$1|niutand|niutanda}}",
-    "wantedpages": "Gaírnedum seidam",
-    "shortpages": "𐌻𐌴𐌹𐍄𐌹𐌻𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-    "longpages": "𐌻𐌰𐌲𐌲𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-    "listusers": "𐍂𐌴𐌲𐌹𐍃𐍄𐍂𐌴𐍂𐌰𐌳𐌴 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃",
-    "newpages": "𐌽𐌹𐌿𐌾𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-    "move": "𐌽𐌰𐌼𐌾𐌰𐌽 𐌰𐍆𐍄𐍂𐌰",
-    "movethispage": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽 𐍃𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "specialloguserlabel": "Niutand:",
-    "speciallogtitlelabel": "Namo:",
-    "log": "𐌻𐍉𐌲𐌱𐍉𐌺𐍉𐍃",
-    "all-logs-page": "𐌰𐌻𐌻𐌰 𐌻𐍉𐌲𐍉𐍃",
-    "allpages": "𐌰𐌻𐌻𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐍃",
-    "alphaindexline": "$1 du $2",
-    "nextpage": "𐌹𐍆𐍄𐌿𐌼𐌰 𐍃𐌴𐌹𐌳𐍉 ($1)",
-    "prevpage": "𐌰𐍆𐍄𐌿𐌼𐌰 𐍃𐌴𐌹𐌳𐍉 ($1)",
-    "allarticles": "𐌰𐌻𐌾𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-    "allpagessubmit": "𐌰𐍆𐌲𐌰𐌲𐌲𐌰𐌽",
-    "categories": "𐌺𐌿𐌽𐌾𐍉𐍃",
-    "linksearch-ns": "𐍃𐌴𐌹𐌳𐍉𐍆𐌴𐍂𐌰:",
-    "emailuser": "𐍃𐌰𐌽𐌳𐌾𐌰𐌽 𐌸𐍉 𐌽𐌹𐌿𐍄𐌰𐌽𐌳 𐌱𐍉𐌺𐍉𐌼",
-    "watchlist": "𐌼𐌴𐌹𐌽𐍉𐍃 𐍅𐌹𐍄𐌰𐌽𐌳𐍃𐌻𐌴𐌹𐍃𐍄𐌰",
-    "mywatchlist": "𐌼𐌴𐌹𐌽𐍉𐍃 𐍅𐌹𐍄𐌰𐌽𐌳𐍃𐌻𐌴𐌹𐍃𐍄𐌰",
-    "watch": "𐍅𐌰𐍂𐌰𐌽",
-    "watchthispage": "𐍅𐌰𐍂𐌰𐌽 𐍃𐌴𐌹𐌳𐍉",
-    "unwatch": "𐌽𐌹𐍅𐌰𐍂𐌰𐌽",
-    "watchlist-details": "{{PLURAL:$1|$1 seido|$1 seidona}} witáiþs inu maþleiseidam.",
-    "watching": "Wita...",
-    "unwatching": "Niwita...",
-    "created": "𐌲𐌰𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-    "deletepage": "𐍄𐌰𐌹𐍂𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "delete-legend": "𐍄𐌰𐌹𐍂𐌰𐌽",
-    "actioncomplete": "𐍅𐌰𐍃𐌿𐌷 𐌹𐍄𐌰 𐌲𐌰𐌿𐍃𐍄𐌹𐌿𐌷𐌰𐌽",
-    "dellogpage": "𐍄𐌰𐌹𐍂𐌰 𐌰𐌹𐍂𐍅𐌱𐍉𐌺𐌰",
-    "deleteotherreason": "𐌰𐌽𐌸𐌰𐍂/𐌼𐌰𐌹𐍃 𐌼𐌹𐍄𐍉𐌽𐍃:",
-    "deletereasonotherlist": "𐌰𐌽𐌸𐌰𐍂 𐌼𐌹𐍄𐍉𐌽𐍃",
-    "rollbacklink": "𐌰𐍆𐍅𐌰𐌻𐍅𐌾𐌰𐌽",
-    "protectlogpage": "Log af Baírgjan",
-    "prot_1movedto2": "[[$1]] skiubiþ du [[$2]]",
-    "protect-level-sysop": "𐍃𐌴𐌹𐌳𐍉𐍆𐌰𐌸𐍃 𐌰𐌹𐌽𐌰𐌷𐌰",
-    "protect-expiring": "bláuþiþ $1 (UTC)",
-    "restriction-type": "Freihals:",
-    "restriction-edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-    "restriction-move": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽",
-    "undeletebtn": "𐌰𐍆𐍄𐍂𐌰 𐌲𐌰𐌱𐍉𐍄𐌾𐌰𐌽",
-    "undeletelink": "𐍃𐌰𐌹𐍈𐌰𐌽/𐌰𐍆𐍄𐍂𐌰𐌲𐌰𐍃𐌰𐍄𐌾𐌰𐌽",
-    "undeleteviewlink": "𐍃𐌰𐌹𐍈𐌹𐍃",
-    "undelete-search-submit": "Sokeiþ",
-    "namespace": "𐍃𐌴𐌹𐌳𐍉𐍆𐌴𐍂𐌰:",
-    "invert": "Afwandjan kustus",
-    "blanknamespace": "(𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐍃)",
-    "contributions": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃 𐌰𐌹𐍅𐌻𐌰𐌲𐌹𐍉𐍃",
-    "mycontris": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌰𐌹𐍅𐌻𐌰𐌲𐌹𐍉𐍃",
-    "contribsub2": "𐍆𐌰𐌿𐍂 $1 ($2)",
-    "uctop": "(háubiþ)",
-    "month": "𐍆𐍂𐌰𐌼 𐌼𐌴𐌽𐍉𐌸𐍃 (𐌾𐌰𐌷 𐌰𐍆𐍄𐌿𐌼𐌰):",
-    "year": "𐍆𐍂𐌰𐌼 𐌾𐌴𐍂𐌰 (𐌾𐌰𐌷 𐌰𐍆𐍄𐌿𐌼𐌰):",
-    "sp-contributions-newbies-sub": "Faúr niujis niutandis",
-    "sp-contributions-blocklog": "Logboka af afdraúsjan",
-    "sp-contributions-talk": "Maþleiseido",
-    "whatlinkshere": "𐍈𐌰𐍂𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌷𐌻𐌰𐌲𐌺𐌾𐌰𐌽𐌳 𐌷𐌹𐌳𐍂𐌴",
-    "whatlinkshere-title": "Seidos hwarjis du $1 táiknjan",
-    "isredirect": "𐍄𐌰𐌹𐌺𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
-    "istemplate": "ináukan",
-    "whatlinkshere-prev": "{{PLURAL:$1|aftuma|aftumans $1}}",
-    "whatlinkshere-next": "{{PLURAL:$1|iftuma|iftumans $1}}",
-    "whatlinkshere-links": "← táikajanbandja",
-    "blockip": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
-    "ipbreason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
-    "ipboptions": "𐌱 𐌰𐍅𐍂𐌰:2 hours, 𐌰 𐌳𐌰𐌲𐍃:1 day, 𐌲 𐌳𐌰𐌲𐍉𐍃:3 days, 𐌰 𐍅𐌹𐌺𐍉:1 week, 𐌱 𐍅𐌹𐌺𐍉𐌽𐍃:2 weeks, 𐌰 𐌼𐌴𐌽𐍉𐌸𐍃:1 month, 𐌲 𐌼𐌴𐌽𐍉𐌸𐍉𐍃:3 months, 𐌵 𐌼𐌴𐌽𐍉𐌸𐍉𐍃:6 months, 𐌰 𐌾𐌴𐍂:1 year, 𐌹𐌽𐌿𐍄𐍂𐌹𐌲𐌲𐌴𐌽𐌳𐌴𐌹𐍃:infinite",
-    "ipblocklist-submit": "Sokeiþ",
-    "infiniteblock": "ajukduþs",
-    "blocklink": "𐍅𐌰𐍂𐌲𐌾𐌰𐌽",
-    "unblocklink": "𐍅𐌰𐌽𐌳𐌾𐌰𐌽",
-    "change-blocklink": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐍅𐌰𐌿𐍂𐌾𐌰𐍅𐌰𐌳𐌳𐌾𐌿𐍃",
-    "contribslink": "𐌲𐌹𐌱𐍉𐍃",
-    "blocklogpage": "𐌻𐍉𐌲𐌱𐍉𐌺𐌰 𐌰𐍆 𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌾𐌰𐌽",
-    "blocklogentry": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌹𐌸 [[$1]] 𐍆𐌰𐌿𐍂 $2 $3",
-    "movearticle": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉:",
-    "newtitle": "𐌳𐌿 𐌽𐌹𐌿𐌾𐌹𐍃 𐌽𐌰𐌼𐍉𐍃:",
-    "move-watch": "𐍅𐌹𐍄𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
-    "movepagebtn": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "movelogpage": "Log af skiubans",
-    "movereason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
-    "revertmove": "𐍂𐌰𐌹𐌳𐌾𐌰𐌽",
-    "export": "𐌿𐍄𐌼𐌹𐌸𐍃𐌰𐍄𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
-    "thumbnail-more": "𐌱𐌹𐌰𐌿𐌺𐌰𐌽",
-    "tooltip-pt-userpage": "𐌸𐌴𐌹𐌽𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-pt-mytalk": "𐌸𐌴𐌹𐌽𐌰 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-pt-preferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
-    "tooltip-pt-watchlist": "𐌻𐌴𐌹𐍃𐍄𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌴𐌹 𐌸𐌿 𐌰𐍄𐍅𐌹𐍄𐌰𐌹𐍃 𐍆𐌰𐌿𐍂 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌽𐍃",
-    "tooltip-pt-mycontris": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐌸𐌴𐌹𐌽 𐌲𐌹𐌱𐍉𐌽𐍃",
-    "tooltip-pt-login": "𐌸𐌿 𐌹𐍃 𐌲𐌰𐍈𐌰𐍄𐌾𐌰𐌽𐌳𐍃 𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽; 𐌰𐌸𐌸𐌰𐌽, 𐌽𐌹𐍃𐍄 𐌸𐌰𐌿𐍂𐌱𐌰𐌽𐍃",
-    "tooltip-pt-logout": "𐌻𐌴𐌹𐌸𐌰𐌽",
-    "tooltip-ca-talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌹 𐌱𐌹 𐌲𐌰𐌷𐌰𐌱𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-ca-edit": "𐌸𐌿 𐌼𐌰𐌲𐍄 𐌼𐌰𐌹𐌳𐌾𐌹𐍃 𐌸𐌰𐍄𐌰 𐍃𐌴𐌹𐌳𐍉. 𐌾𐌰𐌱𐌰𐌹 𐍅𐌹𐌻𐌴𐌹𐍃, 𐌱𐍂𐌿𐌺𐌾𐌹𐍃 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐍆𐍂𐌿𐌼𐌰.",
-    "tooltip-ca-addsection": "𐌰𐌽𐌰𐍃𐍄𐍉𐌳𐌾𐌹𐍃 𐌽𐌹𐌿𐌾𐌰 𐌳𐌰𐌹𐌻",
-    "tooltip-ca-viewsource": "𐍃𐍉 𐍃𐌴𐌹𐌳𐍉 𐌹𐍃𐍄 𐌷𐌻𐌴𐌹𐌱𐌾𐌰𐌽𐌳𐍃\n𐌸𐌿 𐌼𐌰𐌲𐍄 𐍃𐌰𐌹𐍈𐌹𐍃 𐌹𐌶𐍉𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-    "tooltip-ca-history": "𐍆𐌰𐌿𐍂𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌸𐌹𐌶𐌿𐌷 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
-    "tooltip-ca-protect": "𐌱𐌰𐌹𐍂𐌲𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-ca-delete": "𐍄𐌰𐌹𐍂𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-ca-move": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-ca-watch": "𐌰𐌽𐌰𐌰𐌿𐌺𐌹𐍃 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 𐌰𐌽𐌰 𐌸𐌴𐌹𐌽𐌰 𐍅𐌹𐍄𐌰𐌽𐌳𐌻𐌴𐌹𐍃𐍄𐌰",
-    "tooltip-search": "𐍃𐍉𐌺𐌾𐌰𐌽 {{SITENAME}}",
-    "tooltip-search-go": "𐍆𐌰𐍂𐌹𐍃 𐌳𐌿 𐍃𐌴𐌹𐌳𐍉𐌽 𐌼𐌹𐌸 𐌲𐌻𐌰𐌲𐌲𐌿𐌾𐌰𐌼𐌰 𐌽𐌰𐌼𐌹𐌽 𐌾𐌰𐌱𐌰𐌹 𐌹𐍃𐍄",
-    "tooltip-search-fulltext": "𐍃𐍉𐌺𐌾𐌰𐌽 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐍆𐌰𐌿𐍂 𐌸𐌰𐌽𐌰 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌽",
-    "tooltip-p-logo": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-n-mainpage": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍃𐌰 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-n-mainpage-description": "𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐍃𐌰 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-n-portal": "𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐌰𐌹, 𐍈𐌰𐍃 𐌸𐌿 𐌼𐌰𐌲 𐍄𐌰𐌿𐌾𐌰, 𐍈𐌰𐍃 𐍃𐍄𐌰𐌸𐍃 𐌱𐌹𐌲𐌹𐍄𐌰𐌽 𐌹𐌽𐍃",
-    "tooltip-n-currentevents": "𐌱𐌹𐌲𐌹𐌸𐌹𐍃 𐌱𐌰𐌺𐌲𐌰𐌷𐌰𐌱𐌹 𐌱𐌹 𐌽𐌹𐌿𐌾𐌰𐌽𐍃 𐍅𐌰𐌹𐌷𐍄𐌰𐌽𐍃",
-    "tooltip-n-recentchanges": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐌴 𐌽𐌿 𐌰𐌽𐌰 𐌸𐌰𐌼𐌼𐌰 𐍅𐌹𐌺𐌾𐌰",
-    "tooltip-n-randompage": "𐌿𐍃𐌻𐌰𐌸𐌰𐌹𐌸 𐍃𐌻𐌿𐌼𐍀𐌼𐌰𐍃𐍃𐌹𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-n-help": "𐍃𐌰 𐍃𐍄𐌰𐌸𐍃 𐍆𐌹𐌽𐌸𐌰𐌽",
-    "tooltip-t-whatlinkshere": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌰𐌻𐌻𐌹𐍃 𐍅𐌹𐌺𐌾𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍉 𐌴𐌹 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳 𐌷𐌹𐌳𐍂𐌴",
-    "tooltip-t-recentchangeslinked": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌽𐌿 𐍅𐌹𐌸𐍂𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍄𐌴𐌹 𐍃𐌹𐌽𐌳 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐍃 𐌿𐍃 𐌸𐌰𐌼𐌼𐌰 𐍃𐌴𐌹𐌳𐍉𐌽",
-    "tooltip-feed-atom": "𐌰𐍄𐍉𐌼 𐍂𐌹𐌽𐌽𐍉 𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽",
-    "tooltip-t-upload": "𐌿𐍃𐌷𐌻𐌰𐌸𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
-    "tooltip-t-specialpages": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌸𐌹𐌶𐍉 𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐌽𐍉",
-    "tooltip-t-print": "𐍅𐍂𐌴𐌹𐍄𐌼𐌰𐌷𐍄𐌴𐌹𐌲 𐌿𐍃𐌲𐌰𐌱𐍉𐍃 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
-    "tooltip-t-permalink": "𐍃𐌹𐌽𐍄𐌴𐌹𐌽𐍉 𐍃𐍄𐌰𐌽𐌳𐌰𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐌰 𐍅𐌹𐌸𐍂𐌰 𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
-    "tooltip-ca-nstab-main": "𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐌸𐌰𐍄𐌰 𐌲𐌰𐌷𐌰𐌱𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-ca-nstab-user": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍃𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
-    "tooltip-ca-nstab-image": "𐍃𐌰𐌹𐍈𐌰𐌽 𐌸𐍉 𐍆𐌴𐌹𐌻𐌰𐍃𐌴𐌹𐌳𐍉𐌽",
-    "tooltip-ca-nstab-template": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽",
-    "tooltip-ca-nstab-category": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽 𐌷𐌰𐌽𐍃𐍉",
-    "tooltip-save": "𐍃𐌺𐍂𐌴𐌹𐌱𐌰𐌹𐌽 𐌸𐌴𐌹𐌽 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-    "tooltip-preview": "𐍆𐌰𐌿𐍂𐍃𐌰𐍈𐌹𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍉𐍃 𐌸𐌴𐌹𐌽𐌰, 𐌱𐌹𐌳𐌾𐌰 𐌸𐌿𐌺 𐌱𐍂𐌿𐌺𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐍆𐌰𐌿𐍂𐌰 𐌼𐌴𐌻𐌾𐌹𐍃!",
-    "tooltip-diff": "𐍃𐌰𐌹𐍈𐌹𐌸 𐌸𐌰𐌽𐌶𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍉𐍃 𐌸𐌰𐍄𐌴𐌹 𐌱𐍂𐌿𐌺𐌾𐌹𐍃 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌹𐌽𐍃",
-    "tooltip-rollback": "\"𐌰𐍆𐍅𐌰𐌻𐍅𐌾𐌰𐌽\" 𐌱𐌰𐌺𐌼𐌰𐌹𐌳𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 𐍅𐌹𐍃𐌰𐌽 𐍃𐍉 𐌲𐌰𐌼𐌰𐌳𐌾𐌴𐌹 𐌼𐌰𐌽𐌰𐌲𐌹𐍃𐍄𐍃 𐌽𐌹𐌿𐌾𐌰 𐌲𐌹𐌱𐌰𐌾𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 𐌰𐌹𐌽𐍃 𐌺𐌻𐌹𐌺",
-    "tooltip-undo": "\"𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽\" 𐌱𐌰𐌺𐌼𐌰𐌹𐌳𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌲𐌴𐌹𐌽𐍃 𐌾𐌰𐌷 𐌿𐍃𐌻𐌿𐌺𐍉𐌸 𐌼𐌰𐌹𐌳𐌾𐌰𐍆𐍉𐍂𐌼𐍉𐌽 𐍃𐍅𐌴 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐌷𐌹𐍅𐌾𐌰. 𐌸𐌰𐍄𐌰 𐌻𐌴𐍄 𐌰𐌽𐌰𐌿𐌺𐌰𐌽𐌰𐌽 𐍃𐌰𐌿𐌸𐌰 𐌹𐌽 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰.",
-    "tooltip-summary": "𐌰𐍄𐌲𐌰𐌲𐌲𐌹𐍃 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰 𐌼𐌰𐌿𐍂𐌲𐌾𐌰",
-    "previousdiff": "← 𐌰𐍆𐍄𐌿𐌼𐌰 𐌰𐌹𐍂𐌹𐍃",
-    "nextdiff": "Iftuma áiris →",
-    "file-info-size": "$1 × $2 𐍀𐌹𐌺𐍃𐌴𐌻𐌰, 𐍆𐌴𐌹𐌻𐍅𐌰𐌷𐍃𐍄𐌿𐍃: $3, 𐌼𐌹𐌼𐌴 𐌺𐌿𐌽𐌹: $4",
-    "show-big-image": "Fullis wahstus",
-    "ilsubmit": "Sokeiþ",
-    "metadata": "𐌿𐍆𐌰𐍂𐌳𐌰𐍄𐌰",
-    "watchlistall2": "allis",
-    "namespacesall": "𐌰𐌻𐌻𐌹𐍃",
-    "monthsall": "𐌰𐌻𐌻𐌹𐍃",
-    "imgmultigo": "Afgaggan!",
-    "table_pager_limit_submit": "Affgaggan",
-    "version-other": "Anþar",
-    "specialpages": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐍃",
-    "tag-filter": "[[Special:Tags|𐍄𐌰𐌹𐌺𐌽𐍉𐍃]] 𐍆𐌹𐌻𐌷𐌰",
-    "rightsnone": "(ni áinshun)"
+       "@metadata": {
+               "authors": [
+                       "Bleakgh",
+                       "Jocke Pirat",
+                       "Michawiki",
+                       "Node ue",
+                       "Sajasazi (on got.wikipedia.org)",
+                       "Zylbath"
+               ]
+       },
+       "underline-always": "Sinteino",
+       "underline-never": "Niu",
+       "sunday": "Sunnonsdags",
+       "monday": "Meninsdags",
+       "tuesday": "Tiwisdags",
+       "wednesday": "Midiwiko",
+       "thursday": "Þeiƕonsdags",
+       "friday": "Fraujonsdags",
+       "saturday": "𐌸𐍅𐌰𐌷𐌻𐌹𐍃𐌳𐌰𐌲𐍃",
+       "sun": "𐍃𐌿𐌽",
+       "mon": "𐌼𐌴𐌽",
+       "tue": "𐌰𐍂𐌴",
+       "wed": "𐍅𐍉𐌳",
+       "thu": "𐍀𐌰𐌹",
+       "fri": "𐍆𐍂𐌹",
+       "sat": "𐍃𐌰𐌼",
+       "january": "𐌰𐍆𐍄𐌿𐌼𐌰 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
+       "february": "𐍆𐌰𐌽𐌹𐌼𐌴𐌽𐍉𐌸𐍃",
+       "march": "𐌺𐌰𐌻𐌳𐌼𐌴𐌽𐍉𐌸𐍃",
+       "april": "𐌲𐍂𐌰𐍃𐌼𐌴𐌽𐍉𐌸𐍃",
+       "may_long": "𐌱𐌻𐍉𐌼𐌰𐌼𐌴𐌽𐍉𐌸𐍃",
+       "june": "𐍅𐌰𐍂𐌼𐌼𐌴𐌽𐍉𐌸𐍃",
+       "july": "𐌷𐌰𐍅𐌹𐌼𐌴𐌽𐍉𐌸𐍃",
+       "august": "𐌰𐍃𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐍃",
+       "september": "𐌰𐌺𐍂𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐍃",
+       "october": "𐍅𐌴𐌹𐌽𐌼𐌴𐌽𐍉𐌸𐍃",
+       "november": "𐍆𐍂𐌿𐌼𐌰 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
+       "december": "𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
+       "january-gen": "𐌰𐍆𐍄𐌿𐌼𐌹𐌽𐍃 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
+       "february-gen": "𐍆𐌰𐌽𐌹𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "march-gen": "𐌺𐌰𐌻𐌳𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "april-gen": "𐌲𐍂𐌰𐍃𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "may-gen": "𐌱𐌻𐍉𐌼𐌰𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "june-gen": "𐍅𐌰𐍂𐌼𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "july-gen": "𐌷𐌰𐍅𐌹𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "august-gen": "𐌰𐍃𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "september-gen": "𐌰𐌺𐍂𐌰𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "october-gen": "𐍅𐌴𐌹𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
+       "november-gen": "𐍆𐍂𐌿𐌼𐌹𐌽𐍃 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
+       "december-gen": "𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
+       "jan": "𐌰𐍆𐍄",
+       "feb": "𐍆𐌰𐌽",
+       "mar": "𐌺𐌰𐌻",
+       "apr": "𐌲𐍂𐌰",
+       "may": "𐌱𐌻𐍉",
+       "jun": "𐍅𐌰𐍂",
+       "jul": "𐌷𐌰𐍅",
+       "aug": "𐌰𐍃𐌰",
+       "sep": "𐌰𐌺𐍂",
+       "oct": "𐍅𐌴𐌹",
+       "nov": "𐍆𐍂𐌿",
+       "dec": "𐌾𐌹𐌿",
+       "pagecategories": "{{PLURAL:$1|𐌷𐌰𐌽𐍃𐌰|𐌷𐌰𐌽𐍃𐍉𐍃}}",
+       "category_header": "𐍃𐌴𐌹𐌳𐍉𐍃 𐌹𐌽𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
+       "subcategories": "Dalaþkunjos",
+       "category-media-header": "𐌼𐌴𐌳𐌾𐌰 𐌹𐌽𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
+       "hidden-categories": "{{PLURAL:$1|𐍆𐌿𐌻𐌲𐌹𐌽𐍃 𐌺𐌰𐍄𐌴𐌲𐍉𐍂𐌹|𐍆𐌿𐌻𐌲𐌹𐌽𐌰𐌹 𐌺𐌰𐍄𐌴𐌲𐍉𐍂𐌾𐍉𐍃}}",
+       "about": "𐌿𐍆𐌰𐍂",
+       "article": "𐍃𐌰𐌸𐍃𐍃𐌴𐌹𐌳𐍉",
+       "newwindow": "(𐌰𐌽𐌳𐌷𐌿𐌻𐌾𐌹𐌸 𐌹𐌽𐌽 𐌽𐌹𐌿𐌾𐌰 𐌰𐌿𐌲𐌰𐌳𐌰𐌿𐍂𐍉)",
+       "cancel": "𐌷𐌰𐌻𐍄𐍃",
+       "moredotdotdot": "𐌼𐌰𐌹𐍃...",
+       "mypage": "𐌼𐌴𐌹𐌽 𐍃𐌴𐌹𐌳𐍉",
+       "mytalk": "𐌼𐌴𐌹𐌽𐌰 𐌼𐌰𐌸𐌻𐌴𐌹",
+       "navigation": "𐍅𐌹𐌲𐌰𐍄𐌰𐌿𐌷𐍄𐍃",
+       "and": "𐌾𐌰𐌷",
+       "qbfind": "𐍃𐍉𐌺𐌴𐌹𐌸",
+       "qbedit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "qbmyoptions": "𐌼𐌴𐌹𐌽𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "actions": "𐍅𐌰𐌿𐍂𐍃𐍄𐍅𐌴𐌹𐌽𐍃",
+       "namespaces": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐌸𐌴𐌹𐍃",
+       "variants": "𐌼𐌹𐍃𐍃𐌰𐌻𐌴𐌹𐌽𐍃",
+       "errorpagetitle": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰 𐌳𐍅𐌰𐌻𐌹𐍃",
+       "returnto": "𐌲𐌰𐍅𐌰𐌽𐌳𐌾𐌰𐌽 𐌰𐍄 $1.",
+       "tagline": "𐍆𐍂𐌰𐌼 {{SITENAME}}",
+       "help": "𐌷𐌹𐌻𐍀𐌰",
+       "search": "𐍃𐍉𐌺𐌾𐌰𐌽",
+       "searchbutton": "𐍃𐍉𐌺𐌾𐌰𐌽",
+       "go": "𐌲𐌰𐌲𐌲𐌰",
+       "searcharticle": "𐌰𐍆𐌲𐌰𐌲𐌲𐌰𐌽",
+       "history": "𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "history_short": "𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "printableversion": "𐍅𐍂𐌴𐌹𐍄𐌼𐌰𐌷𐍄𐌴𐌹𐌲 𐍃𐌴𐌹𐌳𐍉",
+       "permalink": "𐍃𐌹𐌽𐍄𐌴𐌹𐌽𐍉 𐍃𐍄𐌰𐌽𐌳𐌰𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐌰",
+       "view": "Saíhvan",
+       "edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "create": "𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
+       "editthispage": "𐌼𐌰𐌹𐌳𐌾𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "create-this-page": "Skapja þo seido",
+       "delete": "𐍄𐌰𐌹𐍂𐌰𐌽",
+       "deletethispage": "𐍄𐌰𐌹𐍂𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "protect": "𐌱𐌰𐌹𐍂𐌲𐌰𐌽",
+       "protect_change": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "protectthispage": "Baírga þo siedo",
+       "unprotect": "𐌽𐌹𐌱𐌰𐌹𐍂𐌲𐌰",
+       "unprotectthispage": "Nibaírga þo siedo",
+       "newpage": "𐌽𐌹𐌿𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "talkpage": "𐌼𐌰𐌸𐌻𐌴𐌹𐍃𐌴𐌹𐌳𐍉",
+       "talkpagelinktext": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
+       "specialpage": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐍃",
+       "personaltools": "𐍅𐌰𐌹𐍂𐌻𐌴𐌹𐌺𐍃 𐌱𐍂𐌿𐌺𐍅𐌰𐌹𐌷𐍄𐍃",
+       "talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
+       "views": "𐌷𐌹𐍅𐌾𐍉𐍃",
+       "toolbox": "𐍄𐌰𐌿𐌹 𐌰𐍂𐌺𐌰",
+       "otherlanguages": "𐌰𐌽𐌸𐌰𐍂 𐍂𐌰𐌶𐌳𐍉𐍃",
+       "redirectedfrom": "(𐌽𐌰𐌿𐌸𐌾𐌰𐌽 𐍆𐍂𐌰𐌼𐌹𐍃 $1)",
+       "redirectpagesub": "𐍄𐌰𐌹𐌺𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
+       "lastmodifiedat": "𐌸𐌰𐍄𐌰 𐍃𐌴𐌹𐌳𐍉 𐍃𐌹𐌽𐌳 𐌼𐌰𐌽𐌰𐌲𐌹𐍃𐍄𐍃 𐌽𐌹𐌿𐌾𐌰 𐌼𐌰𐌹𐌳𐌾𐌹𐌸𐍃 ($2) ($1)",
+       "jumpto": "𐌲𐌰𐌲𐌲𐌰𐌽 𐌰𐍄:",
+       "jumptonavigation": "𐍃𐌴𐌹𐌳𐍉𐌲𐌰𐍅𐌹𐍃𐍃",
+       "jumptosearch": "𐍃𐍉𐌺𐌴𐌹𐌸",
+       "aboutsite": "𐍆𐍂𐌰𐌼 {{SITENAME}}",
+       "aboutpage": "Project:𐌿𐍆𐌰𐍂",
+       "copyrightpage": "{{ns:project}}:𐌼𐌰𐌽𐌻𐌴𐌹𐌺𐌰𐍅𐌹𐍄𐍉𐌸𐌰",
+       "currentevents": "𐌽𐌹𐌿𐌾𐌰 𐍅𐌰𐌹𐌷𐍄𐍃",
+       "currentevents-url": "Project:𐌽𐌹𐌿𐌾𐌰 𐍅𐌰𐌹𐌷𐍄𐍃",
+       "disclaimers": "𐍅𐌰𐌳𐌾𐍉𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
+       "disclaimerpage": "Project:𐍅𐌰𐌳𐌾𐌹𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
+       "edithelp": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌷𐌹𐌻𐍀𐌰",
+       "mainpage": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
+       "mainpage-description": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
+       "portal": "𐌱𐌰𐌿𐍂𐌲𐌹𐍃 𐌲𐌰𐍅𐌹",
+       "portal-url": "Project:𐌱𐌰𐌿𐍂𐌲𐌹𐍃 𐌲𐌰𐍅𐌹",
+       "privacy": "𐍃𐌿𐌽𐌳𐍂𐌰𐍅𐌿𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
+       "privacypage": "Project:𐍃𐌿𐌽𐌳𐍂𐌰𐍅𐌴𐌹𐌽𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
+       "retrievedfrom": "𐌲𐌰𐌽𐌰𐌼 𐍆𐍂𐌰𐌼 \"$1\"",
+       "youhavenewmessages": "𐌸𐌿 𐌷𐌰𐌱𐌹𐍃 $1 ($2).",
+       "editsection": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "editold": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "editlink": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "viewsourcelink": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
+       "editsectionhint": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌳𐌰𐌹𐌻: $1",
+       "toc": "𐌹𐌽𐌽𐌰𐌽𐌰",
+       "showtoc": "𐌰𐌿𐌲𐌾𐌰",
+       "hidetoc": "𐍆𐌹𐌻𐌷𐌰𐌽",
+       "site-rss-feed": "$1 RSS Miþnatifodjan",
+       "site-atom-feed": "$1 𐌰𐍄𐍉𐌼 𐌼𐌹𐌸𐌽𐌰𐍄𐌹𐍆𐍉𐌳𐌾𐌰𐌽",
+       "page-atom-feed": "\"$1\" 𐌰𐍄𐍉𐌼 𐍂𐌹𐌽𐌽𐍉",
+       "red-link-title": "$1 (𐍃𐌴𐌹𐌳𐍉 𐍃𐌹𐌽𐌳 𐌽𐌹𐍃𐍄)",
+       "nstab-main": "𐍃𐌴𐌹𐌳𐍉",
+       "nstab-user": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
+       "nstab-special": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉",
+       "nstab-project": "𐍂𐌴𐌹𐌺𐌹𐍃𐌴𐌹𐌳𐍉",
+       "nstab-image": "𐍆𐌴𐌹𐌻𐌰",
+       "nstab-template": "𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃",
+       "nstab-help": "𐌷𐌹𐌻𐍀𐌰",
+       "nstab-category": "𐌷𐌰𐌽𐍃𐌰",
+       "missing-article": "𐍃𐌰 𐌳𐌰𐍄𐌰𐌱𐌿𐍃 𐌽𐌹 𐌲𐌰𐌽𐌰𐌼 𐌸𐌰𐌽𐌰 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌽 𐌴𐌹 𐌹𐍄𐌰 𐍃𐌺𐌰𐌻 𐌱𐌹𐌲𐌹𐍄𐌰𐌽: \"$1\" $2\n\n(The data base did not find the text of a page that it should have found, named \"$1\" $2.\n\nThis is usually caused by following an outdated diff or history link to a page that has been deleted.\n\nIf this is not the case, you may have found a bug in the software.\nPlease report this to an [[Special:ListUsers/sysop|administrator]], making note of the URL.)",
+       "viewsource": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
+       "yourname": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐌽𐌰𐌼𐍉:",
+       "yourpassword": "𐌰𐌽𐌰𐌻𐌰𐌿𐌲𐌽𐍃 𐍅𐌰𐌿𐍂𐌳𐌰:",
+       "login": "Atgaggan",
+       "nav-login-createaccount": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽 / 𐌲𐌰𐌻𐌰𐌽𐌲𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
+       "userlogin": "Atgaggan / gaskapjan niutandis",
+       "logout": "𐌻𐌴𐌹𐌸𐌰𐌽",
+       "userlogout": "𐌻𐌴𐌹𐌸𐌰𐌽",
+       "nologinlink": "Gaskapjan þein niutandis",
+       "createaccount": "𐌲𐌰𐌻𐌰𐌲𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
+       "gotaccount": "Habiþ þu niutandis? '''$1'''",
+       "gotaccountlink": "Atgaggan",
+       "loginlanguagelabel": "Razda: $1",
+       "bold_sample": "𐌰𐌱𐍂𐍃 𐌱𐍉𐌺𐌰",
+       "bold_tip": "𐌰𐌱𐍂 𐍅𐌰𐌿𐍂𐌳𐌰",
+       "italic_sample": "𐍅𐍂𐌰𐌹𐌵𐍃 𐍅𐌰𐌿𐍂𐌳𐌰",
+       "italic_tip": "𐌳𐍂𐌹𐌿𐍃𐍉 𐌱𐍉𐌺𐌰",
+       "link_sample": "𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐌱𐌰𐌽𐌳𐌹 𐌽𐌰𐌼𐍉",
+       "link_tip": "𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐌱𐌰𐌽𐌳𐌹 𐌹𐌽𐌽𐌰𐌽𐌰",
+       "extlink_sample": "http://www.example.com 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐌳𐌰𐌽𐌳𐌹 𐌽𐌰𐌼𐍉",
+       "extlink_tip": "Uta táikjabandi (maúdjan http://)",
+       "headline_sample": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍅𐌰𐌿𐍂𐌳𐌰",
+       "headline_tip": "𐌷𐌰𐌿𐌷𐍃 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌱𐍉𐌺𐌰 •𐌱•",
+       "nowiki_sample": "𐍃𐌰𐍄𐌾𐌴𐌹 𐌿𐌽𐍃𐌽𐌴𐌹𐌸𐌾𐌰𐌽𐌳𐍃 𐍄𐌴𐌺𐍃𐍄 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌼 𐌷𐌹𐍄",
+       "nowiki_tip": "𐌿𐌽𐍅𐌹𐍄𐌾𐌹𐍃 𐍅𐌹𐌺𐌹𐍃𐌽𐌴𐌹𐌸𐌾𐌰𐌽𐌳𐍃",
+       "image_tip": "𐌹𐌽𐌽𐌱𐍉𐌳𐌰𐌽𐍃 𐍆𐌴𐌹𐌻𐌰",
+       "media_tip": "𐍄𐌰𐌹𐌺𐌾𐌰𐌱𐌰𐌽𐌳𐌾𐌹𐍃 𐍆𐌴𐌹𐌻𐌰𐌽𐌹𐍃",
+       "sig_tip": "𐌿𐌽𐌳𐌰𐍂𐌼𐌴𐌻 𐌸𐌴𐌹𐌽𐌰 𐌼𐌹𐌸 𐍃𐍄𐌿𐌽𐌳𐌰𐌼𐌴𐌻𐌰",
+       "hr_tip": "𐍂𐌰𐌹𐌷𐍄𐍃𐌱𐌰𐌿𐍂𐌳 (𐌱𐍂𐌿𐌺𐌾𐌰𐌽 𐌼𐌹𐌸 𐌽𐌹𐌿𐍆𐌰𐍂𐌿𐍃𐍃𐌿𐍃)",
+       "summary": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽𐍃𐍀𐌹𐌻𐌻𐍉𐌽:",
+       "subject": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌱𐍉𐌺𐌰:",
+       "minoredit": "𐍃𐌰 𐌹𐍃𐍄 𐌻𐌴𐌹𐍄𐌹𐌻𐌰 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "watchthis": "𐍅𐌰𐍂𐌰𐌽 𐍃𐌴𐌹𐌳𐍉",
+       "savearticle": "𐌼𐌴𐌻𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "preview": "𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "showpreview": "𐍅𐌹𐍄𐌰𐌽 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰",
+       "showdiff": "𐍅𐌹𐍄𐌰𐌽 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "newarticle": "(Niu)",
+       "updated": "(Nuwisan)",
+       "previewnote": "'''𐍃𐌰𐌷 𐌹𐍃𐍄 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰. 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌲𐌰𐌼𐌴𐌻𐌾𐌹𐌸 𐌽𐌹 𐌰𐍆 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐍃!'''",
+       "editing": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1",
+       "editingsection": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1 (𐍆𐌴𐍂𐌰)",
+       "editingcomment": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1 (𐍂𐍉𐌳𐌾𐌰𐍆𐌴𐍂𐌰)",
+       "yourdiff": "Missalieks",
+       "template-protected": "(𐌲𐌰𐌱𐌰𐌹𐍂𐌲𐌾𐌰𐌽)",
+       "template-semiprotected": "(halb-gabaírgjan)",
+       "post-expand-template-inclusion-warning": "'''𐌷𐍅𐍉𐍄𐌾𐌰𐌽𐌳𐍃:''' 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃. 𐍃𐌿𐌼𐍃 𐍆𐌰𐌿𐍂𐌴𐌼𐌴𐌻𐌴𐌹𐌽𐍉𐍃 𐌽𐌹 𐌼𐌰𐌲 𐍅𐌹𐍃𐌰𐌽 𐌸𐌰𐍂",
+       "post-expand-template-inclusion-category": "𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍂 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃",
+       "currentrev": "𐌽𐌿 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "currentrev-asof": "𐌰𐍆𐍄𐌿𐌼𐍃𐍄𐍃 𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $1",
+       "revisionasof": "𐌲𐌰𐌼𐌰𐌳𐌾𐌴𐌹 𐍆𐍂𐌰𐌼 $1",
+       "revision-info": "Máideins fram $1 bi $2",
+       "previousrevision": "←𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "nextrevision": "Iftuma máideins→",
+       "currentrevisionlink": "𐌽𐌿𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "cur": "𐌽𐌿",
+       "next": "𐌹𐍆𐍄𐌿𐌼𐌰",
+       "last": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍃",
+       "page_first": "frumists",
+       "page_last": "𐍃𐍀𐌴𐌳𐌿𐌼𐌹𐍃𐍄𐍃",
+       "histfirst": "𐍆𐌰𐌿𐍂𐌸𐌹𐍃",
+       "histlast": "𐍃𐍀𐌴𐌳𐌿𐌼𐌹𐍃𐍄𐍃",
+       "history-feed-item-nocomment": "$1 at $2",
+       "revdel-restore": "𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌹𐍃 𐌰𐌽𐌰𐍃𐌹𐌿𐌽𐌼𐌰𐌷𐍄𐌴𐌹𐌲𐍃",
+       "revertmerge": "𐌿𐌽𐌲𐌰𐍄𐌹𐌻𐍉𐍃",
+       "history-title": "𐌰𐍂𐌹𐍃𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌰𐍆 \"$1\"",
+       "lineno": "𐌱𐍉𐌺𐌰𐍂𐌹𐌲𐌹𐌻𐍉 $1:",
+       "editundo": "𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
+       "searchresults": "𐍃𐍉𐌺𐌽𐌹𐍃 𐍄𐌰𐌿𐌾𐍉𐍃",
+       "searchresults-title": "𐍃𐍉𐌺𐌽𐌹𐍃 𐍄𐌰𐌿𐌾𐍉𐍃 𐍆𐌰𐌿𐍂 \"$1\"",
+       "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]]\" 𐌸𐌹𐌶𐍉𐍃 𐍅𐌹𐌺𐌾𐍉𐍃!'''",
+       "searchprofile-articles": "𐌲𐌰𐌷𐌰𐌱𐌾𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
+       "searchprofile-images": "𐌼𐌰𐌽𐌰𐌲𐍃𐌼𐌴𐌳𐌹𐌰",
+       "searchprofile-everything": "𐌰𐌻𐌻",
+       "searchprofile-advanced": "𐍆𐌰𐌹𐍂𐍂𐌰𐍆𐍂𐌰𐌼𐌰",
+       "searchprofile-articles-tooltip": "𐍃𐍉𐌺 𐌹𐌽𐌽𐌰 $1",
+       "searchprofile-images-tooltip": "𐍃𐍉𐌺𐌾𐌹𐍃 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
+       "searchprofile-everything-tooltip": "𐍃𐍉𐌺𐌾𐌹𐍃 𐌰𐌻𐌻 𐌲𐌰𐌷𐌰𐌱𐌾𐍉𐍃 (𐌸𐌹𐌶𐌴𐌴𐌹 𐌹𐍃𐍄 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌹𐍃)",
+       "searchprofile-advanced-tooltip": "𐍃𐌺𐍉𐌾𐌹𐍃 𐌹𐌽𐌽𐌰 𐍃𐌹𐌻𐌱𐌰𐍃𐌺𐌰𐍀𐌹𐌸𐍃 𐌽𐌰𐌼𐌰𐌽𐍃𐍄𐌰𐌸",
+       "search-result-size": "$1 ({{PLURAL:$2|•𐌰• 𐍅𐌰𐌿𐍂𐌳|•$2• 𐍅𐌰𐌿𐍂𐌳𐌰}})",
+       "search-redirect": "(𐌰𐍆𐍄𐍂𐌰𐍅𐌴𐌹𐍄𐍃 𐍆𐍂𐌰𐌼 𐌸𐌰𐌼𐌼𐌰 $1)",
+       "search-section": "(𐍆𐌴𐍂𐌰 $1)",
+       "search-suggest": "𐍄𐌰𐌹𐌺𐌽𐌹𐌳𐌰 𐌸𐌿: $1",
+       "searchall": "𐌰𐌻𐌻𐍃",
+       "search-nonefound": "𐌽𐌹 𐌰𐌹𐌽𐌷𐌿𐌽 𐌲𐌰𐌲𐌹𐌱𐌾𐍉 𐍆𐌿𐌻𐌻𐌾𐌹𐌸 𐍃𐍉𐌺𐌴𐌹𐌽",
+       "powersearch-legend": "𐍃𐍉𐌺𐌴𐌹𐌸",
+       "preferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
+       "mypreferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰",
+       "prefs-skin": "Seidofill",
+       "skin-preview": "Faúrsaiƕa",
+       "saveprefs": "Melja",
+       "searchresultshead": "Sokeiþ",
+       "grouppage-sysop": "{{ns:project}}:𐍃𐌴𐌹𐌳𐍉𐍆𐌰𐌸𐍃",
+       "rightslog": "Niutandis stutjanlog",
+       "nchanges": "$1 {{PLURAL:$1|máidein|máideins}}",
+       "recentchanges": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍉𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
+       "rcshowhideminor": "$1 lietila máideins",
+       "rcshowhidebots": "$1 bota",
+       "rcshowhideliu": "$1 niutandis",
+       "rcshowhideanons": "$1 gasteis",
+       "rcshowhidemine": "$1 mein máideins",
+       "diff": "𐌻𐌴𐌹𐌺𐍃",
+       "hist": "𐍆𐍂𐌼𐌵",
+       "hide": "𐍆𐌹𐌻𐌷𐌰𐌽",
+       "show": "𐌷𐌿𐌻𐌾𐌰𐌽",
+       "minoreditletter": "l",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "recentchangeslinked": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌻𐌹𐌴𐌺𐍃",
+       "recentchangeslinked-feed": "Máideinlieks",
+       "recentchangeslinked-toolbox": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌻𐌹𐌴𐌺𐍃",
+       "recentchangeslinked-summary": "𐍃𐍉 𐌹𐍃𐍄 𐌻𐌴𐌹𐍃𐍄𐌰 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴 𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍃 𐍃𐌺𐍉𐍀 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳 𐌿𐍃 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 (𐌰𐌹𐌸𐌸𐌰𐌿 𐌻𐌹𐌸𐌰𐌿𐍃 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹𐌶𐍉𐍃 𐌷𐌰𐌽𐍃𐍉𐍃). 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 [[Special:Watchlist|𐍅𐌹𐍄𐌰𐌽𐌳𐌻𐌴𐌹𐍃𐍄𐍉𐍃 𐌸𐌴𐌹𐌽𐍉𐍃]] 𐍃𐌹𐌽𐌳 '''𐌳𐌹𐌲𐍂𐍃𐍄𐌰𐍆𐍃'''.",
+       "upload": "𐌿𐍃𐌷𐌻𐌰𐌸𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
+       "uploadbtn": "Ushlaþaiþ Feilans",
+       "uploadlogpage": "Log af Ushlaþan",
+       "watchthisupload": "Witan so seido",
+       "imgfile": "Feilans",
+       "listfiles": "Feilans tala",
+       "file-anchor-link": "𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
+       "filehist": "𐍆𐌴𐌹𐌻𐌰𐌽𐍃 𐌰𐌹𐍂𐌹𐍃",
+       "filehist-help": "𐌺𐌻𐌹𐌺𐍉𐍃 𐌰𐌽𐌰 𐌳𐌰𐍄𐌰𐌹/𐍈𐌴𐌹𐌻𐌰𐌹 𐍃𐌰𐌹𐍈𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽 𐍃𐍅𐌴 𐌰𐍄𐌰𐌿𐌲𐌾𐌹𐌳𐌰 𐍃𐌹𐌺 𐌸𐌰𐌽.",
+       "filehist-current": "𐌽𐌿",
+       "filehist-datetime": "𐍈𐌴𐌹𐌻𐌰",
+       "filehist-thumb": "𐍆𐍉𐍂𐍃𐌾𐌰𐌿",
+       "filehist-thumbtext": "𐍆𐍉𐍂𐍃𐌾𐌰𐌿 𐍆𐌰𐌿𐍂 𐌿𐍃𐌲𐌰𐌱𐌰 𐍆𐍂𐌰𐌼 $1",
+       "filehist-user": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
+       "filehist-dimensions": "𐍅𐌰𐌷𐍃𐍄𐌿𐍃",
+       "filehist-filesize": "Feilans wahstus",
+       "filehist-comment": "𐌻𐌴𐌹𐍄𐌻𐌰𐍃𐍀𐌹𐌻𐌻𐍉𐌽",
+       "imagelinks": "𐍆𐌴𐌹𐌻𐌹𐌽𐍃 𐌱𐍂𐌿𐌺𐌹𐍃",
+       "linkstoimage": "𐌰𐍆𐍄𐌿𐌼𐌰 {{PLURAL:$1|𐍃𐍉 𐍃𐌴𐌹𐌳𐍉 𐌻𐌴𐌹𐌽𐌺𐍉𐌸|𐌸𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳}} 𐌸𐌹𐌶𐍉𐌶𐌿𐌷 𐍆𐌴𐌹𐌻𐍉𐍃",
+       "sharedupload-desc-here": "𐍃𐌰 𐍆𐌴𐌹𐌻𐌰 𐌹𐍃𐍄 𐍆𐍂𐌰𐌼 $1 𐌾𐌰𐌷 𐌼𐌰𐌲 𐍅𐌹𐍃𐌰𐌽 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐍃 𐍆𐍂𐌰𐌼 𐌰𐌻𐌾𐌰𐌹𐌼 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐍉𐌼.\n𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌾𐌰𐌽𐌳𐍃 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐌰𐌹 𐍆𐌴𐌹𐌻𐌰𐌽𐍃𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌾𐌰𐌽𐌳𐌹𐍃 𐌸𐌰𐍂 𐌹𐍃𐍄 𐌳𐌰𐌻𐌰𐌸𐌰 𐌿𐍃𐌲𐌹𐌱𐌰𐌽𐍃.",
+       "filedelete-submit": "Taíran",
+       "mimesearch": "MIME sokeiþ",
+       "listredirects": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐍃𐌴𐌹𐌳𐍉𐍃",
+       "randompage": "𐍃𐌻𐌿𐌼𐍀𐌼𐌰𐍃𐍃𐌹𐌲 𐍃𐌴𐌹𐌳𐍉",
+       "statistics": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐍄𐌹𐍃𐍄𐌹𐌺",
+       "brokenredirects-edit": "(𐌼𐌰𐌹𐌳𐌾𐌰𐌽)",
+       "brokenredirects-delete": "(𐍄𐌰𐌹𐍂𐌰𐌽)",
+       "nbytes": "$1 {{PLURAL:$1|𐌱𐌰𐌹𐍄|𐌱𐌰𐌹𐍄𐌰}}",
+       "ncategories": "$1 {{PLURAL:$1|𐌺𐌿𐌽𐌾𐌰|𐌺𐌿𐌽𐌾𐍉𐍃}}",
+       "nlinks": "$1 {{PLURAL:$1|táikjanbandi|táikjanbandja}}",
+       "nmembers": "$1 {{PLURAL:$1|niutand|niutanda}}",
+       "wantedpages": "Gaírnedum seidam",
+       "shortpages": "𐌻𐌴𐌹𐍄𐌹𐌻𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "longpages": "𐌻𐌰𐌲𐌲𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "listusers": "𐍂𐌴𐌲𐌹𐍃𐍄𐍂𐌴𐍂𐌰𐌳𐌴 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃",
+       "newpages": "𐌽𐌹𐌿𐌾𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "move": "𐌽𐌰𐌼𐌾𐌰𐌽 𐌰𐍆𐍄𐍂𐌰",
+       "movethispage": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽 𐍃𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "specialloguserlabel": "Niutand:",
+       "speciallogtitlelabel": "Namo:",
+       "log": "𐌻𐍉𐌲𐌱𐍉𐌺𐍉𐍃",
+       "all-logs-page": "𐌰𐌻𐌻𐌰 𐌻𐍉𐌲𐍉𐍃",
+       "allpages": "𐌰𐌻𐌻𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "nextpage": "𐌹𐍆𐍄𐌿𐌼𐌰 𐍃𐌴𐌹𐌳𐍉 ($1)",
+       "prevpage": "𐌰𐍆𐍄𐌿𐌼𐌰 𐍃𐌴𐌹𐌳𐍉 ($1)",
+       "allarticles": "𐌰𐌻𐌾𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "allpagessubmit": "𐌰𐍆𐌲𐌰𐌲𐌲𐌰𐌽",
+       "categories": "𐌺𐌿𐌽𐌾𐍉𐍃",
+       "linksearch-ns": "𐍃𐌴𐌹𐌳𐍉𐍆𐌴𐍂𐌰:",
+       "emailuser": "𐍃𐌰𐌽𐌳𐌾𐌰𐌽 𐌸𐍉 𐌽𐌹𐌿𐍄𐌰𐌽𐌳 𐌱𐍉𐌺𐍉𐌼",
+       "watchlist": "𐌼𐌴𐌹𐌽𐍉𐍃 𐍅𐌹𐍄𐌰𐌽𐌳𐍃𐌻𐌴𐌹𐍃𐍄𐌰",
+       "mywatchlist": "𐌼𐌴𐌹𐌽𐍉𐍃 𐍅𐌹𐍄𐌰𐌽𐌳𐍃𐌻𐌴𐌹𐍃𐍄𐌰",
+       "watch": "𐍅𐌰𐍂𐌰𐌽",
+       "watchthispage": "𐍅𐌰𐍂𐌰𐌽 𐍃𐌴𐌹𐌳𐍉",
+       "unwatch": "𐌽𐌹𐍅𐌰𐍂𐌰𐌽",
+       "watchlist-details": "{{PLURAL:$1|$1 seido|$1 seidona}} witáiþs inu maþleiseidam.",
+       "watching": "Wita...",
+       "unwatching": "Niwita...",
+       "created": "𐌲𐌰𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
+       "deletepage": "𐍄𐌰𐌹𐍂𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "delete-legend": "𐍄𐌰𐌹𐍂𐌰𐌽",
+       "actioncomplete": "𐍅𐌰𐍃𐌿𐌷 𐌹𐍄𐌰 𐌲𐌰𐌿𐍃𐍄𐌹𐌿𐌷𐌰𐌽",
+       "dellogpage": "𐍄𐌰𐌹𐍂𐌰 𐌰𐌹𐍂𐍅𐌱𐍉𐌺𐌰",
+       "deleteotherreason": "𐌰𐌽𐌸𐌰𐍂/𐌼𐌰𐌹𐍃 𐌼𐌹𐍄𐍉𐌽𐍃:",
+       "deletereasonotherlist": "𐌰𐌽𐌸𐌰𐍂 𐌼𐌹𐍄𐍉𐌽𐍃",
+       "rollbacklink": "𐌰𐍆𐍅𐌰𐌻𐍅𐌾𐌰𐌽",
+       "protectlogpage": "Log af Baírgjan",
+       "prot_1movedto2": "[[$1]] skiubiþ du [[$2]]",
+       "protect-level-sysop": "𐍃𐌴𐌹𐌳𐍉𐍆𐌰𐌸𐍃 𐌰𐌹𐌽𐌰𐌷𐌰",
+       "protect-expiring": "bláuþiþ $1 (UTC)",
+       "restriction-type": "Freihals:",
+       "restriction-edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
+       "restriction-move": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽",
+       "undeletebtn": "𐌰𐍆𐍄𐍂𐌰 𐌲𐌰𐌱𐍉𐍄𐌾𐌰𐌽",
+       "undeletelink": "𐍃𐌰𐌹𐍈𐌰𐌽/𐌰𐍆𐍄𐍂𐌰𐌲𐌰𐍃𐌰𐍄𐌾𐌰𐌽",
+       "undeleteviewlink": "𐍃𐌰𐌹𐍈𐌹𐍃",
+       "undelete-search-submit": "Sokeiþ",
+       "namespace": "𐍃𐌴𐌹𐌳𐍉𐍆𐌴𐍂𐌰:",
+       "invert": "Afwandjan kustus",
+       "blanknamespace": "(𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐍃)",
+       "contributions": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃 𐌰𐌹𐍅𐌻𐌰𐌲𐌹𐍉𐍃",
+       "mycontris": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌰𐌹𐍅𐌻𐌰𐌲𐌹𐍉𐍃",
+       "contribsub2": "𐍆𐌰𐌿𐍂 $1 ($2)",
+       "uctop": "(háubiþ)",
+       "month": "𐍆𐍂𐌰𐌼 𐌼𐌴𐌽𐍉𐌸𐍃 (𐌾𐌰𐌷 𐌰𐍆𐍄𐌿𐌼𐌰):",
+       "year": "𐍆𐍂𐌰𐌼 𐌾𐌴𐍂𐌰 (𐌾𐌰𐌷 𐌰𐍆𐍄𐌿𐌼𐌰):",
+       "sp-contributions-newbies-sub": "Faúr niujis niutandis",
+       "sp-contributions-blocklog": "Logboka af afdraúsjan",
+       "sp-contributions-talk": "Maþleiseido",
+       "whatlinkshere": "𐍈𐌰𐍂𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌷𐌻𐌰𐌲𐌺𐌾𐌰𐌽𐌳 𐌷𐌹𐌳𐍂𐌴",
+       "whatlinkshere-title": "Seidos hwarjis du $1 táiknjan",
+       "isredirect": "𐍄𐌰𐌹𐌺𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
+       "istemplate": "ináukan",
+       "whatlinkshere-prev": "{{PLURAL:$1|aftuma|aftumans $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|iftuma|iftumans $1}}",
+       "whatlinkshere-links": "← táikajanbandja",
+       "blockip": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
+       "ipbreason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
+       "ipboptions": "𐌱 𐌰𐍅𐍂𐌰:2 hours, 𐌰 𐌳𐌰𐌲𐍃:1 day, 𐌲 𐌳𐌰𐌲𐍉𐍃:3 days, 𐌰 𐍅𐌹𐌺𐍉:1 week, 𐌱 𐍅𐌹𐌺𐍉𐌽𐍃:2 weeks, 𐌰 𐌼𐌴𐌽𐍉𐌸𐍃:1 month, 𐌲 𐌼𐌴𐌽𐍉𐌸𐍉𐍃:3 months, 𐌵 𐌼𐌴𐌽𐍉𐌸𐍉𐍃:6 months, 𐌰 𐌾𐌴𐍂:1 year, 𐌹𐌽𐌿𐍄𐍂𐌹𐌲𐌲𐌴𐌽𐌳𐌴𐌹𐍃:infinite",
+       "ipblocklist-submit": "Sokeiþ",
+       "infiniteblock": "ajukduþs",
+       "blocklink": "𐍅𐌰𐍂𐌲𐌾𐌰𐌽",
+       "unblocklink": "𐍅𐌰𐌽𐌳𐌾𐌰𐌽",
+       "change-blocklink": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐍅𐌰𐌿𐍂𐌾𐌰𐍅𐌰𐌳𐌳𐌾𐌿𐍃",
+       "contribslink": "𐌲𐌹𐌱𐍉𐍃",
+       "blocklogpage": "𐌻𐍉𐌲𐌱𐍉𐌺𐌰 𐌰𐍆 𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌾𐌰𐌽",
+       "blocklogentry": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌹𐌸 [[$1]] 𐍆𐌰𐌿𐍂 $2 $3",
+       "movearticle": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉:",
+       "newtitle": "𐌳𐌿 𐌽𐌹𐌿𐌾𐌹𐍃 𐌽𐌰𐌼𐍉𐍃:",
+       "move-watch": "𐍅𐌹𐍄𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "movepagebtn": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "movelogpage": "Log af skiubans",
+       "movereason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
+       "revertmove": "𐍂𐌰𐌹𐌳𐌾𐌰𐌽",
+       "export": "𐌿𐍄𐌼𐌹𐌸𐍃𐌰𐍄𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
+       "thumbnail-more": "𐌱𐌹𐌰𐌿𐌺𐌰𐌽",
+       "tooltip-pt-userpage": "𐌸𐌴𐌹𐌽𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-pt-mytalk": "𐌸𐌴𐌹𐌽𐌰 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-pt-preferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
+       "tooltip-pt-watchlist": "𐌻𐌴𐌹𐍃𐍄𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌴𐌹 𐌸𐌿 𐌰𐍄𐍅𐌹𐍄𐌰𐌹𐍃 𐍆𐌰𐌿𐍂 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌽𐍃",
+       "tooltip-pt-mycontris": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐌸𐌴𐌹𐌽 𐌲𐌹𐌱𐍉𐌽𐍃",
+       "tooltip-pt-login": "𐌸𐌿 𐌹𐍃 𐌲𐌰𐍈𐌰𐍄𐌾𐌰𐌽𐌳𐍃 𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽; 𐌰𐌸𐌸𐌰𐌽, 𐌽𐌹𐍃𐍄 𐌸𐌰𐌿𐍂𐌱𐌰𐌽𐍃",
+       "tooltip-pt-logout": "𐌻𐌴𐌹𐌸𐌰𐌽",
+       "tooltip-ca-talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌹 𐌱𐌹 𐌲𐌰𐌷𐌰𐌱𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-ca-edit": "𐌸𐌿 𐌼𐌰𐌲𐍄 𐌼𐌰𐌹𐌳𐌾𐌹𐍃 𐌸𐌰𐍄𐌰 𐍃𐌴𐌹𐌳𐍉. 𐌾𐌰𐌱𐌰𐌹 𐍅𐌹𐌻𐌴𐌹𐍃, 𐌱𐍂𐌿𐌺𐌾𐌹𐍃 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐍆𐍂𐌿𐌼𐌰.",
+       "tooltip-ca-addsection": "𐌰𐌽𐌰𐍃𐍄𐍉𐌳𐌾𐌹𐍃 𐌽𐌹𐌿𐌾𐌰 𐌳𐌰𐌹𐌻",
+       "tooltip-ca-viewsource": "𐍃𐍉 𐍃𐌴𐌹𐌳𐍉 𐌹𐍃𐍄 𐌷𐌻𐌴𐌹𐌱𐌾𐌰𐌽𐌳𐍃\n𐌸𐌿 𐌼𐌰𐌲𐍄 𐍃𐌰𐌹𐍈𐌹𐍃 𐌹𐌶𐍉𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
+       "tooltip-ca-history": "𐍆𐌰𐌿𐍂𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌸𐌹𐌶𐌿𐌷 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
+       "tooltip-ca-protect": "𐌱𐌰𐌹𐍂𐌲𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-ca-delete": "𐍄𐌰𐌹𐍂𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-ca-move": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-ca-watch": "𐌰𐌽𐌰𐌰𐌿𐌺𐌹𐍃 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 𐌰𐌽𐌰 𐌸𐌴𐌹𐌽𐌰 𐍅𐌹𐍄𐌰𐌽𐌳𐌻𐌴𐌹𐍃𐍄𐌰",
+       "tooltip-search": "𐍃𐍉𐌺𐌾𐌰𐌽 {{SITENAME}}",
+       "tooltip-search-go": "𐍆𐌰𐍂𐌹𐍃 𐌳𐌿 𐍃𐌴𐌹𐌳𐍉𐌽 𐌼𐌹𐌸 𐌲𐌻𐌰𐌲𐌲𐌿𐌾𐌰𐌼𐌰 𐌽𐌰𐌼𐌹𐌽 𐌾𐌰𐌱𐌰𐌹 𐌹𐍃𐍄",
+       "tooltip-search-fulltext": "𐍃𐍉𐌺𐌾𐌰𐌽 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐍆𐌰𐌿𐍂 𐌸𐌰𐌽𐌰 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌽",
+       "tooltip-p-logo": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-n-mainpage": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍃𐌰 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-n-mainpage-description": "𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐍃𐌰 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-n-portal": "𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐌰𐌹, 𐍈𐌰𐍃 𐌸𐌿 𐌼𐌰𐌲 𐍄𐌰𐌿𐌾𐌰, 𐍈𐌰𐍃 𐍃𐍄𐌰𐌸𐍃 𐌱𐌹𐌲𐌹𐍄𐌰𐌽 𐌹𐌽𐍃",
+       "tooltip-n-currentevents": "𐌱𐌹𐌲𐌹𐌸𐌹𐍃 𐌱𐌰𐌺𐌲𐌰𐌷𐌰𐌱𐌹 𐌱𐌹 𐌽𐌹𐌿𐌾𐌰𐌽𐍃 𐍅𐌰𐌹𐌷𐍄𐌰𐌽𐍃",
+       "tooltip-n-recentchanges": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐌴 𐌽𐌿 𐌰𐌽𐌰 𐌸𐌰𐌼𐌼𐌰 𐍅𐌹𐌺𐌾𐌰",
+       "tooltip-n-randompage": "𐌿𐍃𐌻𐌰𐌸𐌰𐌹𐌸 𐍃𐌻𐌿𐌼𐍀𐌼𐌰𐍃𐍃𐌹𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-n-help": "𐍃𐌰 𐍃𐍄𐌰𐌸𐍃 𐍆𐌹𐌽𐌸𐌰𐌽",
+       "tooltip-t-whatlinkshere": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌰𐌻𐌻𐌹𐍃 𐍅𐌹𐌺𐌾𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍉 𐌴𐌹 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳 𐌷𐌹𐌳𐍂𐌴",
+       "tooltip-t-recentchangeslinked": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌽𐌿 𐍅𐌹𐌸𐍂𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍄𐌴𐌹 𐍃𐌹𐌽𐌳 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐍃 𐌿𐍃 𐌸𐌰𐌼𐌼𐌰 𐍃𐌴𐌹𐌳𐍉𐌽",
+       "tooltip-feed-atom": "𐌰𐍄𐍉𐌼 𐍂𐌹𐌽𐌽𐍉 𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽",
+       "tooltip-t-upload": "𐌿𐍃𐌷𐌻𐌰𐌸𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
+       "tooltip-t-specialpages": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌸𐌹𐌶𐍉 𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐌽𐍉",
+       "tooltip-t-print": "𐍅𐍂𐌴𐌹𐍄𐌼𐌰𐌷𐍄𐌴𐌹𐌲 𐌿𐍃𐌲𐌰𐌱𐍉𐍃 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
+       "tooltip-t-permalink": "𐍃𐌹𐌽𐍄𐌴𐌹𐌽𐍉 𐍃𐍄𐌰𐌽𐌳𐌰𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐌰 𐍅𐌹𐌸𐍂𐌰 𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
+       "tooltip-ca-nstab-main": "𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐌸𐌰𐍄𐌰 𐌲𐌰𐌷𐌰𐌱𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-ca-nstab-user": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍃𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
+       "tooltip-ca-nstab-image": "𐍃𐌰𐌹𐍈𐌰𐌽 𐌸𐍉 𐍆𐌴𐌹𐌻𐌰𐍃𐌴𐌹𐌳𐍉𐌽",
+       "tooltip-ca-nstab-template": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽",
+       "tooltip-ca-nstab-category": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽 𐌷𐌰𐌽𐍃𐍉",
+       "tooltip-save": "𐍃𐌺𐍂𐌴𐌹𐌱𐌰𐌹𐌽 𐌸𐌴𐌹𐌽 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "tooltip-preview": "𐍆𐌰𐌿𐍂𐍃𐌰𐍈𐌹𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍉𐍃 𐌸𐌴𐌹𐌽𐌰, 𐌱𐌹𐌳𐌾𐌰 𐌸𐌿𐌺 𐌱𐍂𐌿𐌺𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐍆𐌰𐌿𐍂𐌰 𐌼𐌴𐌻𐌾𐌹𐍃!",
+       "tooltip-diff": "𐍃𐌰𐌹𐍈𐌹𐌸 𐌸𐌰𐌽𐌶𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍉𐍃 𐌸𐌰𐍄𐌴𐌹 𐌱𐍂𐌿𐌺𐌾𐌹𐍃 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌹𐌽𐍃",
+       "tooltip-rollback": "\"𐌰𐍆𐍅𐌰𐌻𐍅𐌾𐌰𐌽\" 𐌱𐌰𐌺𐌼𐌰𐌹𐌳𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 𐍅𐌹𐍃𐌰𐌽 𐍃𐍉 𐌲𐌰𐌼𐌰𐌳𐌾𐌴𐌹 𐌼𐌰𐌽𐌰𐌲𐌹𐍃𐍄𐍃 𐌽𐌹𐌿𐌾𐌰 𐌲𐌹𐌱𐌰𐌾𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 𐌰𐌹𐌽𐍃 𐌺𐌻𐌹𐌺",
+       "tooltip-undo": "\"𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽\" 𐌱𐌰𐌺𐌼𐌰𐌹𐌳𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌲𐌴𐌹𐌽𐍃 𐌾𐌰𐌷 𐌿𐍃𐌻𐌿𐌺𐍉𐌸 𐌼𐌰𐌹𐌳𐌾𐌰𐍆𐍉𐍂𐌼𐍉𐌽 𐍃𐍅𐌴 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐌷𐌹𐍅𐌾𐌰. 𐌸𐌰𐍄𐌰 𐌻𐌴𐍄 𐌰𐌽𐌰𐌿𐌺𐌰𐌽𐌰𐌽 𐍃𐌰𐌿𐌸𐌰 𐌹𐌽 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰.",
+       "tooltip-summary": "𐌰𐍄𐌲𐌰𐌲𐌲𐌹𐍃 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰 𐌼𐌰𐌿𐍂𐌲𐌾𐌰",
+       "previousdiff": "← 𐌰𐍆𐍄𐌿𐌼𐌰 𐌰𐌹𐍂𐌹𐍃",
+       "nextdiff": "Iftuma áiris →",
+       "file-info-size": "$1 × $2 𐍀𐌹𐌺𐍃𐌴𐌻𐌰, 𐍆𐌴𐌹𐌻𐍅𐌰𐌷𐍃𐍄𐌿𐍃: $3, 𐌼𐌹𐌼𐌴 𐌺𐌿𐌽𐌹: $4",
+       "show-big-image": "Fullis wahstus",
+       "ilsubmit": "Sokeiþ",
+       "metadata": "𐌿𐍆𐌰𐍂𐌳𐌰𐍄𐌰",
+       "namespacesall": "𐌰𐌻𐌻𐌹𐍃",
+       "monthsall": "𐌰𐌻𐌻𐌹𐍃",
+       "imgmultigo": "Afgaggan!",
+       "table_pager_limit_submit": "Affgaggan",
+       "version-other": "Anþar",
+       "specialpages": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐍃",
+       "tag-filter": "[[Special:Tags|𐍄𐌰𐌹𐌺𐌽𐍉𐍃]] 𐍆𐌹𐌻𐌷𐌰",
+       "rightsnone": "(ni áinshun)"
 }
index 317202e..45ed4cd 100644 (file)
        "mergehistory-same-destination": "Δέλτοι-πηγαὶ καὶ δέλτοι-προορισμοὶ οὐκ ἔξεστι εἶναι ὅμοιαι",
        "mergehistory-reason": "Αἰτία:",
        "mergelog": "Τῶν συγχωνεύσεων καταλόγος",
-       "pagemerge-logentry": "συγκεχωνευμένον ἐστὶν τὸ [[$1]] μετὰ τοῦ [[$2]] (ἀναθεωρήσεις μέχρι $3)",
        "revertmerge": "Ἀποσυγχωνεύειν",
        "mergelogpagetext": "Κατωτέρω ἐστὶ διαλογή τις τῶν πλείω προσφάτων συγχωνεύσεων τοῦ ἱστορικοῦ δέλτου τινὸς μετὰ αὐτοῦ ἑτέρας τινός.",
        "history-title": "Αἱ πρότεραι ἐκδόσεις τῆς δέλτου \"$1\"",
        "statistics": "Τὰ περὶ τῶν δεδομένων",
        "statistics-header-pages": "Στατιστικὰ δέλτου",
        "statistics-header-edits": "Μεταγράφειν τὰ στατιστικά",
-       "statistics-header-views": "Ὁρᾶν τὰ στατιστικά",
        "statistics-header-users": "Χρωμένου στατιστικά",
        "statistics-header-hooks": "Ἀλλα στατιστικά",
        "statistics-articles": "Δέλτοι περιεχομένων",
        "statistics-files": "Ἀρχεῖα ἐπιπεφορτισμένα",
        "statistics-edits": "Αἱ μεταγραφαὶ τῆς δέλτου ἀφὄτου {{SITENAME}} ἐγκατεστάθησαν",
        "statistics-edits-average": "Μέσος ἀριθμὸς μεταγραφῶν ἀνὰ δέλτον",
-       "statistics-views-total": "Συνολικαὶ ἐπιθεωρήσεις",
-       "statistics-views-peredit": "Ἐπιθεωρήσεις ἀνὰ μεταγραφή",
        "statistics-users": "Ἐγγεγραμμένοι [[Special:ListUsers|χρώμενοι]]",
        "statistics-users-active": "Ἐνεργοὶ χρώμενοι <small>(χρώμενοι οἳ have edited or performed an action διάφορον τῆς ποιήσεως λογισμοῦ ἐν τῷ παρελθόντι μηνί)</small>",
        "statistics-users-active-desc": "Χρώμενοι δραστήριοι ἐν τῷ παρελθόντι μηνί {{PLURAL:$1|ἡμέρα|$1 ἡμέραι}}",
-       "statistics-mostpopular": "Αἱ πλέον θεωρουμέναι δέλτοι",
        "doubleredirects": "Ἀναδιευθύνσεις διπλότυπαι",
        "doubleredirectstext": "Ἥδε ἡ δέλτος συγκαταλέγει δέλτους αἵπερ ἀνακατευθύνουσι πρὸς ἑτέρας δέλτους ἀνακατευθύνσεως. Πᾶσα σειρά περιέχει συνδέσμους πρὸς τὴν τε πρώτην καὶ τὴν τε δευτέραν δέλτον ἀνακατευθύνσεως καὶ τὸν τε προορισμὸν τῆς δευτέρας δέλτου ἀνακατευθύνσεως ἥπερ ἐστὶ συνήθως ὁ πραγματικὸς προορισμὸς τῆς ἀνακατευθύνσεως ὅπου σὲ ἔδει δεδεγμένος εἶναι. Τὰ <del>διαγεγραμμένα</del> λήμματα ἐπιλέλυνται.",
        "double-redirect-fixed-move": "Ἡ [[$1]] κεκίνηται, τὸ νῦν ἀναδιευθύνεται πρὸς τὴν [[$2]]",
        "uncategorizedtemplates": "Ἀκατηγοριοποίητα πρότυπα",
        "unusedcategories": "Ἄχρησται κατηγορίαι",
        "unusedimages": "Ἄχρηστα ἀρχεῖα",
-       "popularpages": "Δημοφιλεῖς δέλτοι",
        "wantedcategories": "Αἰτούμεναι κατηγορίαι",
        "wantedpages": "Αἱ δέλτοι οἷας ἱμείρομεν",
        "wantedpages-badtitle": "Ἄκυρος ἐπιγραφὴ ἐν τῷ συνόλῳ ἀποτελεσμάτων: $1",
        "spambot_username": "Κάθαρσις τῶν ἀνεπιθυμήτων ἀγγελιῶν τῆς MediaWiki",
        "pageinfo-title": "Πύστις περὶ \"$1\"",
        "pageinfo-header-edits": "Μεταγραφαί",
-       "pageinfo-views": "Ἀριθμὸς προβολῶν",
        "pageinfo-edits": "Ἀριθμὸς μεταγραφῶν",
        "markaspatrolleddiff": "Σεσημασμένη ὡς φρουρουμένη",
        "markaspatrolledtext": "Σημαίνειν τήνδε τὴν δέλτον ὡς φρουρούμενη",
index 5c2215d..57c018c 100644 (file)
@@ -35,6 +35,7 @@
        "tog-watchdefault": "Sälber gändereti Syte un Dateie automatisch beobachte",
        "tog-watchmoves": "Sälber verschobeni Sytene un Dateie automatisch beobachte",
        "tog-watchdeletion": "Sälber gleschti Sytene un Dateie automatisch beobachte",
+       "tog-watchrollback": "Syte, wun i zruckgsetzt haa, automatisch beobachte",
        "tog-minordefault": "Alli dyni Änderigen als «chlyni Änderige» markiere",
        "tog-previewontop": "Vorschou vor em Editierfänschter aazeige",
        "tog-previewonfirst": "Vorschou aazeige bim erschten Editiere",
        "otherlanguages": "Anderi Sproche",
        "redirectedfrom": "(Witergleitet vun $1)",
        "redirectpagesub": "Umgleiteti Syte",
+       "redirectto": "Wyterleitig uf:",
        "lastmodifiedat": "Letschti Änderig vo dere Syte: $2, $1<br />",
        "viewcount": "Die Syte isch {{PLURAL:$1|eimol|$1 Mol}} bsuecht wore.",
        "protectedpage": "Gschützti Syte",
        "hidetoc": "zueklappe",
        "collapsible-collapse": "zueklappe",
        "collapsible-expand": "ufklappe",
+       "confirmable-confirm": "{{GENDER:$1|Bisch}} sicher?",
+       "confirmable-yes": "Jo",
+       "confirmable-no": "Nei",
        "thisisdeleted": "Aaluege oder widerherstelle vu $1?",
        "viewdeleted": "$1 aaluege?",
        "restorelink": "{{PLURAL:$1|gleschti Änderig|$1 gleschti Ändrige}}",
        "viewsourcetext": "Quelltext vo dere Syte:",
        "viewyourtext": "Du chasch dr Quälltext vu '''Dyre Bearbeitig''' vu däre Syte aaluege un kopiere:",
        "protectedinterface": "In däre Syte het s Text fir s Sproch-Interface vu dr Software un si isch gsperrt, zum Missbruch z verhindre.",
-       "editinginterface": "'''Obacht:''' Du bisch e Syten am Verändere, wu zum User.Interface ghert. Wänn Du die Syte veränderesch, no änderet sich s User-Interface au fir di andere Benutzer vu däm Wiki. Fir Ibersetzige lueg bitte, eb Du doodefir s [//translatewiki.net/wiki/Main_Page?setlang=gsw Translatewiki] witt bruuche, s MediaWiki-Lokalisierigsprojäkt.",
+       "editinginterface": "<strong>Warnig:</strong> Uf däre Syte het s Täxt, wu vu dr MediaWiki-Software brucht wird. Änderigen uf däre Syte wirke si uf d Benutzeroberflechi vu däm Wiki uus.",
+       "translateinterface": "Go Ibersetzige fir alli Wiki zuefiege oder ändere, bruuch bitte [//translatewiki.net/ translatewiki.net], s MediaWiki-Lokalisierigsprojäkt.",
        "cascadeprotected": "Die Syte isch fir s Bearbeite gsperrt. Si isch yybunde in {{PLURAL:$1|die Syte, wu do chunnt|die Syte, wu do chemme}} , wu mit ere Kaskadesperroption gschitzt {{PLURAL:$1|isch|sin}}:\n$2",
        "namespaceprotected": "Du hesch kei Berächtigung, die Syte im '''$1'''-Namensruum z bearbeite.",
        "customcssprotected": "Du bisch nid berächtigt, die Syte mit CSS z bearbeite, wel si zue dr persenlige Yystellige vun eme andere Benutzer ghert.",
        "invalidtitle-knownnamespace": "Nit-gültige Titel mit Namensruum „$2“ un Text „$3“",
        "invalidtitle-unknownnamespace": "Ungültige Titel mit unbekannte Namensruumnummer $1 un Text „$2“",
        "exception-nologin": "Nit aagmäldet",
-       "exception-nologin-text": "Du muesch Di [[Special:Userlogin|aamälde]] go die Syte oder Aktion ufruefe chenne.",
+       "exception-nologin-text": "Du muesch Di aamälde go die Syte oder Aktion ufruefe chenne.",
        "exception-nologin-text-manual": "Du muesch Di $1 go die Syte oder Aktion ufruefe chenne.",
        "virus-badscanner": "Fählerhafti Konfiguration: Virescanner, wu nid bekannt isch: ''$1''",
        "virus-scanfailed": "Scan het nid funktioniert (code $1)",
        "createaccount-text": "Fir Dii isch e Benutzerkonto \"$2\" uf {{SITENAME}} ($4) aaglait wore. S Passwort fir \"$2\" , wu automatisch generiert woren isch, isch \"$3\". Du sottsch Di jetz aamälde un s Passwort ändere.\n\nWänn s Benutzerkonto us Versäh aaglait woren isch, chasch die Nochricht ignoriere.",
        "login-throttled": "Du hesch z vilmol umesuscht versuecht, Di aazmälde. Bitte wart $1, voreb Du s non emol versuechsch.",
        "login-abort-generic": "Dyy Aamäldig isch nit erfolgryych gsii – Abbroche",
+       "login-migrated-generic": "Dy Benutzerkonto isch migriert wore, Dy Benutzername git s nimi uf däm Wiki.",
        "loginlanguagelabel": "Sproch: $1",
        "suspicious-userlogout": "Dyy Versuech di abzmälde isch abbroche wore, wel s uusgsäh het, wie wänn s vun eme bschedigte Browser oder eme Cacheproxy uus gsändet woren isch.",
        "createacct-another-realname-tip": "Dr richtig Name isch optional.\nWänn Du ne aagiisch, wird er bruucht fir d Zueornig vu dr Byytreg.",
        "resetpass-temp-password": "Temporär Passwort:",
        "resetpass-abort-generic": "D Passwortänderig isch dur e Erwyterig abbroche wore.",
        "resetpass-expired": "Dy Passwort isch abglofe. Bitte leg e nej Passwort fir d Aamäldig fescht.",
+       "resetpass-expired-soft": "Dy Passwort isch abgloffe un mueß zruckgsetzt wäre. Bitte wehl jetz e nei Passwort uus oder klick uf „{{int:resetpass-submit-cancel}}“, go s speter zrucksetze.",
+       "resetpass-validity-soft": "Dy Passwort isch nit giltig: $1\n\nBitte wehl jetz e nei Passwort oder klick uf „{{int:resetpass-submit-cancel}}“, go s speter zrucksetze.",
        "passwordreset": "Passwort zruggsetze",
        "passwordreset-text-one": "Fill des Formular uus go Dy Passwort zrucksetze.",
        "passwordreset-text-many": "{{PLURAL:$1|Fill eis vu dr Fälder uus go Dy Passwort zrucksetze.}}",
        "changeemail-none": "(nyt)",
        "changeemail-password": "Dy {{SITENAME}}-Passwort:",
        "changeemail-submit": "E-Mail Adräss ändre",
+       "changeemail-throttled": "Du hesch z vilmol versuecht Di aazmälde. Bitte wart $1, voreb Du s non emol versuechsch.",
        "resettokens": "Token zrucksetze",
        "resettokens-text": "Du chasch Token zrucksetze, wu Dir dr Zuegriff uf bstimmti privati Date megli mache, wu mit Dym Benutzerkonto do verchnipft sin.\n\nDes sottsch nume mache, wänn Du d Token us Versää mit eberem teilt hesch oder Dy Konto gfehrdet isch.",
        "resettokens-no-tokens": "S git kei Token zum Zrucksetze.",
        "preview": "Vorschou",
        "showpreview": "Vorschau aaluege",
        "showdiff": "Zeig Änderige",
-       "anoneditwarning": "'''Warnig:''' Si sin nit aagmäldet. Ihri IP-Adrässe wird in de Gschicht vo däm Artikel gspeicheret.",
+       "blankarticle": "<strong>Warnig:</strong> D Syte, wu Du aalaisch, isch läär.\nWänn Du nomol uf „{{int:savearticle}}“ klicksch, wird d Syte ohni Inhalt aaglait.",
+       "anoneditwarning": "<strong>Warnig:</strong> Du bisch nit aagmäldet. Dy IP-Adräss wird effetli sichtbar, wänn Du Bearbeitige machsch. Wänn di <strong>[$1 aamälde duesch]</strong> oder <strong>[$2 e Benutzerkonto aalaisch]</strong>, wäre Bearbeitige zämme mit andere Bytreg Dym Nenutzername zuegordnet.",
        "anonpreviewwarning": "''Du bisch nit aagmäldet. Bim Spychere wird Dyy IP-Adräss yydrait in d Versionsgschicht vu däre Syte.''",
        "missingsummary": "'''Obacht:''' Du hesch kei Zämefassig aagee. Wenn du nomol uf Spychere drucksch, wird d Änderung ohni gspychert.",
        "missingcommenttext": "Bitte gib Dyy Kommentar unte yy.",
        "edit-gone-missing": "D Syte het nid chenne aktalisiert wäre.\nSi isch schyns glescht wore.",
        "edit-conflict": "Bearbeitigskonflikt.",
        "edit-no-change": "Dyyni Bearbeitig isch ignoriert wore, wel kei Änderig am Täxt gmacht woren isch.",
+       "postedit-confirmation-created": "D Syte isch aaglait wore.",
+       "postedit-confirmation-restored": "D Syte isch widerhärgstellt wore.",
        "postedit-confirmation-saved": "Dyy Bearbeitig isch gspycheret wore.",
        "edit-already-exists": "Di nej Syte het nid chenne aaglait wäre, wel s si scho git.",
        "defaultmessagetext": "Standardtext",
        "content-failed-to-parse": "Parse vum Inhalt $2 fir Modell $1 fählgschlaa: $3",
        "invalid-content-data": "Uugiltigi Inhaltsdate",
        "content-not-allowed-here": "Dr Inhalt „$1“ isch uf dr Syte [[$2]] nit erlaubt",
-       "editwarning-warning": "Wänn Du die Syte verlosch, cha s syy, ass Du alli Bearbeitige verliersch, wu Du do dra gmacht hesch.\nWänn Du aagmäldet bisch, chasch s Anzeige vu däre Warnig im „Bearbeite“-Beryych vu Dyyne Yystelligen abstelle.",
+       "editwarning-warning": "Wänn Du die Syte verlosch, cha s syy, ass Du alli Bearbeitige verliersch, wu Du do dra gmacht hesch.\nWänn Du aagmäldet bisch, chasch s Anzeige vu däre Warnig im „{{int:prefs-editing}}“-Beryych vu Dyyne Yystelligen abstelle.",
+       "editpage-notsupportedcontentformat-title": "S Inhaltsformat wird nit unterstitzt",
+       "editpage-notsupportedcontentformat-text": "S Inhaltsformat $1 wird vum Inhaltsmodäll $2 nit unterstitzt.",
        "content-model-wikitext": "Wikitext",
        "content-model-text": "Klartext",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Syte, wu doppleti Argumänt in Vorlagenufruef verwände",
+       "duplicate-args-category-desc": "Uf dr Syte het s Vorlagenufruef, wu Duplikat vu Argumänt verwände, wie <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> oder <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Achtig: In däre Syte het s z vyyl Ufruef vu ufwändige Parserfunktione.\n\nS {{PLURAL:$2|derf nid meh wie ein Ufruef|derfe nid meh wie $1 Ufruef}} gee.",
        "expensive-parserfunction-category": "Syte, wu ufwändigi Parserfunktione z vyylmol ufruefe",
        "post-expand-template-inclusion-warning": "Warnig: D Gressi vu yybundene Vorlage isch z gross, e Teil Vorlage chenne nid yybunde wäre.",
        "parser-template-recursion-depth-warning": "Vorlagerekursionstiefegränz iberschritte ($1)",
        "language-converter-depth-warning": "Gränz vu dr Sprochkonvertertiefi iberschritte ($1)",
        "node-count-exceeded-category": "Syte, wo d Chnotezaal überschritte hen",
-       "node-count-exceeded-warning": "Die Syte het d Chnotepunktzaal überschritte.",
+       "node-count-exceeded-category-desc": "D Syte iberschrytet di maximal Chnotenaazahl.",
+       "node-count-exceeded-warning": "Die Syte het d Chnotepunktzaal iberschritte.",
        "expansion-depth-exceeded-category": "Syte, wo d Expansionsdiefi überschritte hen",
+       "expansion-depth-exceeded-category-desc": "D Syte iberschrytet di maximal Expandierigstiefi.",
        "expansion-depth-exceeded-warning": "Die Syte het d Expansionsdiefi überschritte.",
        "parser-unstrip-loop-warning": "Zirkelbezug festgstellt",
        "parser-unstrip-recursion-limit": "Rekursionsgränz bim Ufflöse überschritte ($1)",
        "undo-success": "Zum die Änderig ruckgängig z mache, kontrollier bitte d Bearbeitig in dr Verglichsaasicht un druck derno uf „Syte spichere“.",
        "undo-failure": "D Änderig het nid chenne ruckgängig gmacht wäre, wel dää Abschnitt mittlerwyli gänderet woren isch.",
        "undo-norev": "D Bearbeitig het nid chenne ruckgängig gmacht wäre, wel si nid vorhande oder glescht isch.",
+       "undo-nochange": "Schyns isch die Bearbeitig scho rugggängig gmacht wore.",
        "undo-summary": "D Änderig $1 vu [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussion]]) isch ruckgängig gmacht wore.",
        "undo-summary-username-hidden": "Änderig $1 vun eme versteckte Benutzer ruckgängig gmacht.",
        "cantcreateaccounttitle": "Benutzerkonto cha nid aagleit wäre.",
        "cantcreateaccount-text": "S Aalege vu me Benutzerkonto vu dr IP-Adräss '''($1)''' isch dur [[User:$3|$3]] gsperrt wore.\n\nGrund vu dr Sperri: ''$2''",
+       "cantcreateaccount-range-text": "S Aalege vu Benutzerkonte vu IP-Adrässen im Berych '''$1''', wu s Dyni IP-Adräss ('''$4''') din het, isch vu [[User:$3|$3]] gsperrt wore.\n\nDr Grund, wu vu $3 aagee woren isch: ''$2''",
        "viewpagelogs": "Logbüecher für die Syten azeige",
        "nohistory": "S git kei Versionsgschicht fir die Syte.",
        "currentrev": "Itzigi Version",
        "currentrev-asof": "Aktuälli Version vu $1",
        "revisionasof": "Version vo $1",
-       "revision-info": "Alti Bearbeitig vom $1 dür $2",
+       "revision-info": "Version vu $4, $5 Uhr vu {{GENDER:$6|$2}}$7",
        "previousrevision": "← Vorderi Version",
        "nextrevision": "Nächschti Version →",
        "currentrevisionlink": "Itzigi Version",
        "rev-deleted-event": "(Logbuechaktion uusegnuh)",
        "rev-deleted-user-contribs": "[Benutzername oder IP-Adräss uusegnuu - Bearbeitig in dr Byytragslischt versteckt]",
        "rev-deleted-text-permission": "Die Version isch '''glescht''' wore.\nInformation zue dr Leschig un e Begrindig het s im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lesch-Logbuech].",
+       "rev-suppressed-text-permission": "Die Version isch <strong>unterdruckt</strong> wore.\nEinzelheite het s im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Oversight-Logbuech].",
        "rev-deleted-text-unhide": "Die Version isch '''gelöscht''' worde.\nMee Angabe chasch im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuech] finde.\nDu chasch [$1 die Version allno aaluege], wänn de wottsch.",
        "rev-suppressed-text-unhide": "Die Version isch '''unterdrückt''' worde.\nMee Angabe chasch im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückigs-Logbuech] finde.\nDu chasch [$1 die Version allno aaluege], wänn de wottsch.",
        "rev-deleted-text-view": "Die Version isch '''glescht''' wore.\nDu chasch si allno aaluege. Details findsch im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuech].",
        "revdelete-no-file": "D Datei, wu Du aagee hesch, git s nit.",
        "revdelete-show-file-confirm": "Bisch sicher, ass Du di glescht Version vu dr Datei „<nowiki>$1</nowiki>“ vum $2 am $3 witt aaluege?",
        "revdelete-show-file-submit": "Jo",
+       "revdelete-selected-text": "Uusgwehlti {{PLURAL:$1|Version|Versione}} vu [[:$2]]:",
+       "revdelete-selected-file": "Uusgwehlti {{PLURAL:$1|Dateiversion|Dateiversione}} vu [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Usgwehlte Logbuechyytrag|Usgwehlti Logbuechyytreg}}:",
+       "revdelete-text-text": "Gleschti Versione blybe no dr Versionsgschicht, Teil vu ihrem Inhalt sin aber nimi effetli zuegängig.",
+       "revdelete-text-file": "Gleschti Dateiversione blybe no in dr Datei-Versionsgschicht, Teil vu ihrem Inhalt sin aber nimi effetli zuegängig.",
+       "logdelete-text": "Gleschti Logbuechyytreg blybe no dr Logbiecher, Teil vu ihrem Inhalt sin aber nimi effetli zuegängig.",
+       "revdelete-text-others": "Anderi Administratore hän no Zuegriff uf dr verdeckt Inhalt un chenne ne au widerhärstelle, solang keini zuesetzlige Bschränkige feschtgleit wäre.",
        "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:\n* Nit aabrochti Informatione\n*: ''Adrässe, Telifonnummere, Sozialversicherigsnummere usw.'",
        "revdelete-legend": "Setze vu dr Sichtbarkeits-Yyschränkige",
        "mergehistory-same-destination": "Uusgangs- un Ziilsyte derfe nit di nämlige syy",
        "mergehistory-reason": "Grund:",
        "mergelog": "Zämefierigs-Logbuech",
-       "pagemerge-logentry": "het [[$1]] in [[$2]] zämegfierd (Versione bis $3)",
        "revertmerge": "Zämefierig ruckgängig mache",
        "mergelogpagetext": "Des isch e Lischt vu dr letschte Zämefierige vu Versionsgschichte.",
        "history-title": "$1: Versionsgschicht",
        "statistics": "Statistik",
        "statistics-header-pages": "Sytestatischtik",
        "statistics-header-edits": "Bearbeitigsstatischtik",
-       "statistics-header-views": "Sytenufruefstatischtik",
        "statistics-header-users": "Benutzer-Statischtik",
        "statistics-header-hooks": "Anderi Statischtike",
        "statistics-articles": "Inhaltssyte",
        "statistics-files": "Uffegladeni Dateie",
        "statistics-edits": "Sytebearbeitige",
        "statistics-edits-average": "Bearbeitige pro Syte im Durchschnitt",
-       "statistics-views-total": "Sytenufruef insgsamt",
-       "statistics-views-total-desc": "Ufruef vu Syte un Spezialsyte, wu s nit git, wäre nit berucksichtigt",
-       "statistics-views-peredit": "Sytenufruef pro Bearbeitig",
        "statistics-users": "Regischtrierti [[Special:ListUsers|Benutzer]]",
        "statistics-users-active": "Aktivi Benutzer",
        "statistics-users-active-desc": "Benutzer mit Bearbeitige {{PLURAL:$1|in dr letschte 24 Stund|in dr letschte $1 Täg}}",
-       "statistics-mostpopular": "Am meischte aagluegti Syte",
        "pageswithprop": "Syte mit ere Syteneigeschaft",
        "pageswithprop-legend": "Syte mit ere Syteneigeschaft",
        "pageswithprop-text": "Die Spezialsyte lischet Syten auf, wu ne bstimmti Syteneigeschaft bruche.",
        "uncategorizedtemplates": "Nid kategorisierti Vorlage",
        "unusedcategories": "Nid bruuchti Kategorië",
        "unusedimages": "Verwaiste Bilder",
-       "popularpages": "Beliebti Artikel",
        "wantedcategories": "Bruuchti Kategorie, wo s no nid git",
        "wantedpages": "Artikel, wo fähle",
        "wantedpages-badtitle": "Nit giltige Titel im Ergebnis: $1",
        "pageinfo-robot-policy": "Indexierig dur Suechmaschine",
        "pageinfo-robot-index": "Erlaubt",
        "pageinfo-robot-noindex": "Nit erlaubt",
-       "pageinfo-views": "Aazahl Sytenufruef",
        "pageinfo-watchers": "Aazahl vu Beobachter",
        "pageinfo-few-watchers": "Weniger wie {{PLURAL:$1|ei|$1}} Beobachter",
        "pageinfo-redirects-name": "Zahl vu dr Wyterleitige zue däre Syte",
index 0a6dfad..5f1686b 100644 (file)
        "mergehistory-same-destination": "સ્રોત અને લક્ષ્ય પાના એક સમાન ના હોઈ શકે",
        "mergehistory-reason": "કારણ:",
        "mergelog": "લોગ વિલિન કરો",
-       "pagemerge-logentry": "[[$1]] ને  [[$2]]માં વિલિન કરાયું ( $3 સુધી ના પુનરાવર્તનો)",
        "revertmerge": "છુટું પાડો",
        "mergelogpagetext": "તાજેતરમાં એક બીજા સાથે વિલિન થયેલ ઇતિહાસ પાનાની યાદી",
        "history-title": "\"$1\"ના ફેરફારોનો ઇતિહાસ",
        "statistics": "આંકડાકીય માહિતી",
        "statistics-header-pages": "પાના સંબંધી આંકડાકીય માહિતી",
        "statistics-header-edits": "આંકડાકીય માહિતી બદલો",
-       "statistics-header-views": "આંકડાકીય માહિતી જુઓ",
        "statistics-header-users": "સભ્ય સંબંધી આંકડાકીય માહિતી",
        "statistics-header-hooks": "અન્ય આંકડાકીય માહિતી",
        "statistics-articles": "લેખનું પાનું",
        "statistics-files": "ચડાવેલ ફાઇલો",
        "statistics-edits": "{{SITENAME}} શરૂ થયા પછી ફેરફાર થયેલ પાના",
        "statistics-edits-average": "પાનાં દીઠ સરેરાશ ફેરફારો",
-       "statistics-views-total": "સરવાળો",
-       "statistics-views-total-desc": "અવિહરમાન પાના અને ખાસ પાના આમા શામિલ નથી.",
-       "statistics-views-peredit": "ફેરફાર દીઠ અવલોકનો",
        "statistics-users": "નોંધણી થયેલ  [[Special:ListUsers|users]]",
        "statistics-users-active": "સક્રીય સભ્યો",
        "statistics-users-active-desc": "સભ્ય કે જેમણે છેલ્લા {{PLURAL:$1|દિવસ|$1 દિવસો}}માં ફેરફારો કર્યાં છે",
-       "statistics-mostpopular": "સૌથી વધુ જોવાયેલા પાના",
        "pageswithprop": "પાનાં ગુણધર્મ સાથેનાં પાનાંઓ",
        "pageswithprop-legend": "પાનાં ગુણધર્મ સાથેનાં પાનાંઓ",
        "pageswithprop-prop": "ગુણધર્મ નામ:",
        "uncategorizedtemplates": "અવર્ગીકૃત ઢાંચાઓ",
        "unusedcategories": "વણ વપરાયેલી શ્રેણીઓ",
        "unusedimages": "વણ વપરાયેલાં દસ્તાવેજો",
-       "popularpages": "પ્રખ્યાત પાના",
        "wantedcategories": "ઇચ્છિત શ્રેણીઓ",
        "wantedpages": "ઇચ્છિત પાનાં",
        "wantedpages-badtitle": "પરિણામ ગણમાં અવૈધ શીર્ષક: $1",
        "pageinfo-robot-policy": "રોબોટ્સ દ્વારા અનુક્રમિત",
        "pageinfo-robot-index": "માન્ય",
        "pageinfo-robot-noindex": "અમાન્ય",
-       "pageinfo-views": "જોનારાની સંખ્યા",
        "pageinfo-watchers": "પાના નીરીક્ષકોની સંખ્યા",
        "pageinfo-redirects-name": "આ પાનાં પર દિશાનિર્દેશનોની સંખ્યા",
        "pageinfo-subpages-name": "આ પાનાંનું ઉપપાનું",
index e5d1a7d..8bfbdbd 100644 (file)
        "uncategorizedtemplates": "Clowanyn gyn ronney",
        "unusedcategories": "Ronnaghyn neuymmydit",
        "unusedimages": "Coadanyn neuymmydit",
-       "popularpages": "Duillagyn cadjin",
        "wantedcategories": "Ronnaghyn ry-laccal",
        "wantedpages": "Duillagyn ry-laccal",
        "wantedfiles": "Coadanyn ry-laccal",
index 76e5945..7afcfaf 100644 (file)
        "pager-older-n": "{{PLURAL:$1|tsoho 1|tsoffi $1}}",
        "booksources": "Littattafai maƙiblata",
        "booksources-search-legend": "Nemo tushen littattafai",
-       "booksources-go": "Mu je",
        "log": "Rajistoci ayyuka",
        "allpages": "Duka shafuna",
        "prevpage": "Shafi na baya ($1)",
        "watchthispage": "Bin sawun wannan shafi",
        "unwatch": "Daina bin sawu",
        "watchlist-details": "{{PLURAL:$1|$1 shafi|$1 shafuna}} kan jerinku na bin sawu, banda shafunan mahawara.",
-       "wlshowlast": "Nuna awowi $1 kwanaki $2 na ƙarshe $3",
+       "wlshowlast": "Nuna awowi $1 kwanaki $2 na ƙarshe",
        "watchlist-options": "Saituttukan jerin bin sawu",
        "watching": "Bin sawun...",
        "unwatching": "Daina bin sawu...",
        "metadata-expand": "Nuna ƙananan bayannai",
        "metadata-collapse": "Ɓoye ƙananan bayannai",
        "metadata-fields": "Gurabun bayannan meta na EXIF da ke jere cikin wannan saƙo, za a saka su ne cikin shafin zayyana majigin, idan aka taƙaita jadawalin bayannan metan.\n Wasu gurabun za a ɓoye su bisa manufa.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "duka",
        "namespacesall": "duka",
        "monthsall": "duka",
        "watchlisttools-view": "Duba sauye-sauyen da suka dace",
index 6f1b471..36ec2d7 100644 (file)
        "randomredirect-nopages": "Chhai liá-ke miàng-sṳ khûng-kiên mò-yû chhùng-thin hong-mien.",
        "statistics": "統計",
        "statistics-header-users": "用戶統計",
-       "statistics-mostpopular": "分查閱次數最多嘅頁面",
        "doubleredirects": "雙重重定向頁",
        "doubleredirectstext": "Mî yit-hàng pâu-hàm to thi-yit lâu thi-ngi-ke chhûng-thin hong-mien ke lièn-chiap, yî-khi̍p thi-ngi ke chhûng-thin hong-mien ke thi-yit-hàng vùn-sṳ, thûng-sòng hién-sṳ ke he \"chṳ̂n-chṳn\" ke muk-phêu vùn-chông, ye-he thi-yit-ke chhûng-thin hong-mien  yin-kôi chṳ́-hiong ke vùn-chông.",
        "brokenredirects": "損壞嘅重定向頁",
        "uncategorizedimages": "Thai fûn-lui thù-phién",
        "unusedcategories": "吂用分類",
        "unusedimages": "吂用圖片",
-       "popularpages": "熱點頁面",
        "wantedcategories": "想愛嘅分類",
        "wantedpages": "等寫頁面",
        "mostlinked": "最多鏈接頁面",
index ef99450..e8169dd 100644 (file)
        "statistics": "ʻIkepilihelu",
        "statistics-header-pages": "ʻIkepilihelu ʻaoʻao",
        "statistics-header-edits": "ʻIkepilihelu hoʻololi",
-       "statistics-header-views": "ʻIkepilihelu nānā",
        "statistics-header-users": "ʻIkepilihelu mea hoʻohana",
        "statistics-header-hooks": "ʻIkepilihelu ʻē aʻe",
        "statistics-articles": "ʻAoʻao mealoko",
        "pageinfo-language": "ʻŌlelo mealoko ʻaoʻao",
        "pageinfo-robot-index": "ʻAe",
        "pageinfo-robot-noindex": "ʻAʻole",
-       "pageinfo-views": "Helu o nā nānā",
        "pageinfo-watchers": "Helu o nā mea nānā ʻaoʻao",
        "pageinfo-redirects-name": "Helu o nā kiahou i kēia ʻaoʻao",
        "pageinfo-subpages-name": "Helu o nā ʻaoʻao kūloko o kēia ʻaoʻao",
index b17736d..f2c38c2 100644 (file)
@@ -26,7 +26,8 @@
                        "פדיחה",
                        "שומבלע",
                        "תומר ט",
-                       "Matanya"
+                       "Matanya",
+                       "GilCahana"
                ]
        },
        "tog-underline": "סימון קישורים בקו תחתי:",
        "category-empty": "'''קטגוריה זו אינה כוללת דפים או קובצי מדיה.'''",
        "hidden-categories": "{{PLURAL:$1|קטגוריה מוסתרת|קטגוריות מוסתרות}}",
        "hidden-category-category": "קטגוריות מוסתרות",
-       "category-subcat-count": "{{PLURAL:$2|קטגוריה זו כוללת את קטגוריית המשנה הבאה בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה המוצגת להלן|$1 קטגוריות המשנה המוצגות להלן}}, וכוללת בסך הכול $2 קטגוריות משנה.}}",
+       "category-subcat-count": "{{PLURAL:$2|קטגוריה זו כוללת את קטגוריית המשנה הבאה בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה המוצגת להלן|$1 קטגוריות המשנה המוצגות להלן}}, וכוללת בסך־הכול $2 קטגוריות משנה.}}",
        "category-subcat-count-limited": "קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה הבאה|$1 קטגוריות המשנה הבאות}}.",
-       "category-article-count": "{{PLURAL:$2|קטגוריה זו כוללת את הדף הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הדף המוצג להלן|$1 הדפים המוצגים להלן}}, וכוללת בסך הכול $2 דפים.}}",
+       "category-article-count": "{{PLURAL:$2|קטגוריה זו כוללת את הדף הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הדף המוצג להלן|$1 הדפים המוצגים להלן}}, וכוללת בסך־הכול $2 דפים.}}",
        "category-article-count-limited": "קטגוריה זו כוללת את {{PLURAL:$1|הדף הבא|$1 הדפים הבאים}}.",
-       "category-file-count": "{{PLURAL:$2|קטגוריה זו כוללת את הקובץ הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הקובץ המוצג להלן|$1 הקבצים המוצגים להלן}}, וכוללת בסך הכול $2 קבצים.}}",
+       "category-file-count": "{{PLURAL:$2|קטגוריה זו כוללת את הקובץ הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הקובץ המוצג להלן|$1 הקבצים המוצגים להלן}}, וכוללת בסך־הכול $2 קבצים.}}",
        "category-file-count-limited": "קטגוריה זו כוללת את {{PLURAL:$1|הקובץ הבא|$1 הקבצים הבאים}}.",
        "listingcontinuesabbrev": "(המשך)",
        "index-category": "דפים המופיעים במנועי חיפוש",
        "databaseerror-error": "שגיאה: $1",
        "laggedslavemode": "'''אזהרה:''' הדף עשוי שלא להכיל עדכונים אחרונים.",
        "readonly": "בסיס הנתונים נעול",
-       "enterlockreason": "×\94×\96×\99× ×\95 ×¡×\99×\91×\94 ×\9c× ×¢×\99×\9cת ×\91ס×\99ס ×\94נת×\95× ×\99×\9d, ×\9b×\95×\9c×\9c ×\94ער×\9b×\94 ×\9c×\92×\91×\99 ×\9e×\95×¢×\93 ×©×\97ר×\95ר ×\94× ×¢×\99×\9c×\94.",
+       "enterlockreason": "×\99ש ×\9c×\94×\96×\99×\9f ×¡×\99×\91×\94 ×\9c× ×¢×\99×\9c×\94, ×\9b×\95×\9c×\9c ×\94ער×\9b×\94 ×\9c×\9e×\95×¢×\93 ×©×\97ר×\95ר ×\94× ×¢×\99×\9c×\94",
        "readonlytext": "בסיס נתונים זה של האתר נעול ברגע זה לצורך הזנת נתונים ושינויים. ככל הנראה מדובר בתחזוקה שוטפת, שלאחריה יחזור האתר לפעולתו הרגילה.\n\nמנהל המערכת שנעל את בסיס הנתונים סיפק את ההסבר הבא: $1",
-       "missing-article": "בסיס הנתונים לא מצא את הטקסט של הדף שהוא היה אמור למצוא, בשם \"$1\" $2.\n\nהדבר נגרם בדרך כלל על ידי קישור ישן להשוואת גרסאות של דף שנמחק או לגרסה של דף כזה.\n\nאם זה אינו המקרה, זהו כנראה באג בתוכנה.\nאנא דווחו על כך ל[[Special:ListUsers/sysop|מפעיל מערכת]], תוך שמירת פרטי כתובת ה־URL.",
+       "missing-article": "בסיס הנתונים לא מצא את הטקסט של הדף שהוא היה אמור למצוא, בשם \"$1\" $2.\n\nהדבר נגרם בדרך כלל על־ידי קישור ישן להשוואת גרסאות של דף שנמחק או לגרסה של דף כזה.\n\nאם זה אינו המקרה, זהו כנראה באג בתוכנה.\nאנא דווחו על כך ל[[Special:ListUsers/sysop|מפעיל מערכת]], תוך שמירת פרטי כתובת ה־URL.",
        "missingarticle-rev": "(מספר גרסה: $1)",
        "missingarticle-diff": "(השוואת הגרסאות: $1, $2)",
        "readonly_lag": "בסיס הנתונים ננעל אוטומטית כדי לאפשר לבסיסי הנתונים המשניים להתעדכן מהבסיס הראשי.",
        "directorycreateerror": "יצירת התיקייה \"$1\" נכשלה.",
        "filenotfound": "הקובץ \"$1\" לא נמצא.",
        "unexpected": "ערך לא צפוי: \"$1\"=\"$2\"",
-       "formerror": "ש×\92×\99×\90×\94: ×\9c×\90 ×\99×\9b×\95×\9c ×\9cש×\9c×\95×\97 טופס.",
+       "formerror": "ש×\92×\99×\90×\94: ×\9c×\90 × ×\99ת×\9f ×\94×\99×\94 ×\9cש×\9c×\95×\97 ×\90ת ×\94טופס.",
        "badarticleerror": "לא ניתן לבצע פעולה זו בדף זה.",
        "cannotdelete": "לא ניתן היה למחוק את הדף או הקובץ \"$1\".\nייתכן שהוא כבר נמחק על־ידי משתמש אחר.",
        "cannotdelete-title": "לא ניתן למחוק את הדף \"$1\"",
        "actionthrottledtext": "כאמצעי נגד ספאם, קיימת מגבלה על ביצוע פעולה זו פעמים רבות מדי בזמן קצר, וחרגת מהמגבלה הזו.\nנא לנסות שוב בעוד מספר דקות.",
        "protectedpagetext": "דף זה מוגן כדי למנוע עריכה ופעולות אחרות.",
        "viewsourcetext": "באפשרותך לצפות בטקסט המקור של הדף ולהעתיקו:",
-       "viewyourtext": "×\91×\90פשר×\95ת×\9b×\9d ×\9cצפ×\95ת ×\91×\98קס×\98 ×\94×\9eק×\95ר ×©×\9c '''×\94ער×\99×\9b×\95ת ×©×\9c×\9b×\9d''' ×©×\9c ×\94×\93×£ ולהעתיקו:",
+       "viewyourtext": "×\91×\90פשר×\95ת×\9a ×\9cצפ×\95ת ×\91×\98קס×\98 ×\94×\9eק×\95ר ×©×\9c <strong>×\94ער×\99×\9b×\95ת ×©×\9c×\9a</strong> ×\91×\93×£ ×\94×\96×\94 ולהעתיקו:",
        "protectedinterface": "דף זה הוא אחד מסדרת דפים המספקים הודעות מערכת לתוכנה באתר ויקי זה, ומוגן כדי למנוע השחתות.\nכדי להוסיף או לשנות תרגומים בכל אתרי הוויקי, אנא השתמשו ב־[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
-       "editinginterface": "'''אזהרה:''' הדף שאתם עורכים הוא אחד הדפים המספקים הודעות מערכת לתוכנה.\nשינויים בדף זה ישפיעו על תצוגת ממשק המשתמש של משתמשים אחרים באתר ויקי זה.\nכדי להוסיף או לשנות תרגומים בכל אתרי הוויקי, אנא השתמשו ב־[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
+       "editinginterface": "<strong>אזהרה:</strong> הדף שאתם עורכים הוא אחד הדפים המספקים הודעות מערכת לתוכנה.\nשינויים בדף זה ישפיעו על תצוגת ממשק המשתמש של משתמשים אחרים באתר ויקי זה.",
+       "translateinterface": "כדי להוסיף או לשנות תרגומים עבור כל אתרי הוויקי, יש להשתמש ב־[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
        "cascadeprotected": "דף זה מוגן מעריכה כי הוא מוכלל {{PLURAL:$1|בדף הבא, שמופעלת עליו|בדפים הבאים, שמופעלת עליהם}} הגנה מדורגת:\n$2",
-       "namespaceprotected": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d ×\9cער×\95×\9a ×\93פ×\99×\9d ×\91×\9eר×\97×\91 ×\94ש×\9d '''$1'''.",
+       "namespaceprotected": "×\90×\99×\9f ×\9c×\9a ×\94רש×\90×\94 ×\9cער×\95×\9a ×\93פ×\99×\9d ×\91×\9eר×\97×\91 ×\94ש×\9d <strong>$1</strong>.",
        "customcssprotected": "אינך מורשה לערוך דף CSS זה כיוון שהוא כולל הגדרות אישיות של משתמש אחר.",
        "customjsprotected": "אינך מורשה לערוך דף JavaScript זה כיוון שהוא כולל הגדרות אישיות של משתמש אחר.",
-       "mycustomcssprotected": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d לערוך דף CSS זה.",
-       "mycustomjsprotected": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d לערוך דף JavaScript זה.",
+       "mycustomcssprotected": "×\90×\99×\9f ×\9c×\9a ×\94רש×\90×\94 לערוך דף CSS זה.",
+       "mycustomjsprotected": "×\90×\99×\9f ×\9c×\9a ×\94רש×\90×\94 לערוך דף JavaScript זה.",
        "myprivateinfoprotected": "אין לך הרשאה לערוך את המידע הפרטי שלך",
        "mypreferencesprotected": "אין לך הרשאה לערוך את ההעדפות שלך.",
        "ns-specialprotected": "לא ניתן לערוך דפים מיוחדים.",
-       "titleprotected": "לא ניתן ליצור דף זה, כיוון שהמשתמש [[User:$1|$1]] הגן עליו מפני יצירה.\nהסיבה שניתנה לכך היא \"$2\".",
+       "titleprotected": "[[User:$1|$1]] {{GENDER:$1|הפעיל|הפעילה}} הגנה על הדף הזה מפני יצירה.\nהסיבה שניתנה לכך היא \"<em>$2</em>\".",
        "filereadonlyerror": "לא ניתן לשנות את הקובץ \"$1\" כיוון שמאגר הקבצים \"$2\" במצב קריאה בלבד.\n\nמנהל המערכת שנעל את המאגר סיפק את ההסבר הבא: \"'''$3'''\".",
        "invalidtitle-knownnamespace": "כותרת בלתי־תקינה עם מרחב השם \"$2\" ושם דף \"$3\"",
        "invalidtitle-unknownnamespace": "כותרת בלתי־תקינה עם מרחב שם בלתי־ידוע מספר $1 ושם דף \"$2\"",
        "exception-nologin": "לא בחשבון",
        "exception-nologin-text": "אנא היכנסו לחשבון כדי לראות את הדף הזה או לבצע את הפעולה הזו.",
-       "exception-nologin-text-manual": "×\90× ×\90 $1 כדי לראות את הדף הזה או לבצע את הפעולה הזו.",
+       "exception-nologin-text-manual": "× ×\93רשת $1 כדי לראות את הדף הזה או לבצע את הפעולה הזו.",
        "virus-badscanner": "הגדרות שגויות: סורק הווירוסים אינו ידוע: ''$1''",
        "virus-scanfailed": "הסריקה נכשלה (קוד: $1)",
        "virus-unknownscanner": "אנטי־וירוס בלתי ידוע:",
        "userlogin-signwithsecure": "שימוש בחיבור מאובטח",
        "yourdomainname": "המתחם שלך:",
        "password-change-forbidden": "אין באפשרותך לשנות סיסמאות באתר זה.",
-       "externaldberror": "×\94×\99×\99ת×\94 ×©×\92×\99×\90×\94 ×\91×\91ס×\99ס ×\94נת×\95× ×\99×\9d ×©×\9c ×\94×\94×\96×\93×\94×\95ת, ×\90×\95 ×©×\90×\99× ×\9b×\9d ×¨×©×\90×\99×\9d ×\9c×¢×\93×\9b×\9f ×\90ת ×\97ש×\91×\95× ×\9b×\9d ×\94×\97×\99צ×\95× ×\99.",
+       "externaldberror": "×\90×\99רע×\94 ×©×\92×\99×\90ת ×\90×\99×\9e×\95ת ×\91×\91ס×\99ס ×\94נת×\95× ×\99×\9d, ×\90×\95 ×©×\90×\99× ×\9a ×\9e×\95רש×\94 ×\9c×¢×\93×\9b×\9f ×\90ת ×\94×\97ש×\91×\95×\9f ×\94×\97×\99צ×\95× ×\99 ×©×\9c×\9a.",
        "login": "כניסה לחשבון",
        "nav-login-createaccount": "כניסה לחשבון / הרשמה",
        "userlogin": "כניסה לחשבון / הרשמה",
        "nologin": "אין לך חשבון? $1.",
        "nologinlink": "הרשמה",
        "createaccount": "יצירת חשבון חדש",
-       "gotaccount": "×\9b×\91ר × ×¨×©×\9eת×\9d? $1.",
+       "gotaccount": "×\9b×\91ר ×\99ש ×\9c×\9a ×\97ש×\91×\95×\9f? $1.",
        "gotaccountlink": "כניסה לחשבון",
        "userlogin-resetlink": "שכחת את פרטי הכניסה?",
        "userlogin-resetpassword-link": "שכחת את הסיסמה?",
        "emailnotauthenticated": "כתובת הדוא\"ל שלכם עדיין לא אומתה.\nלא יישלח אליכם דוא\"ל עבור אף אחת מהתכונות הבאות.",
        "noemailprefs": "יש לציין כתובת דוא\"ל בהעדפות שלך כדי שתכונות אלה יעבדו.",
        "emailconfirmlink": "אישור כתובת הדוא\"ל שלך",
-       "invalidemailaddress": "×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×\90×\99× ×\94 ×\9eתק×\91×\9cת ×\9b×\99×\95×\95×\9f ×©× ×¨×\90×\94 ×©×\94×\99×\90 ×\91פ×\95ר×\9e×\98 ×\9c×\90 × ×\9b×\95×\9f.\n×\90× ×\90 ×\94ק×\9c×\99×\93×\95 ×\9bת×\95×\91ת ×ª×§×\99× ×\94 ×\90×\95 ×\94ש×\90×\99ר×\95 את השדה ריק.",
+       "invalidemailaddress": "×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×\90×\99× ×\94 ×\9eתק×\91×\9cת ×\9b×\99×\95×\95×\9f ×©× ×¨×\90×\94 ×©×\94×\99×\90 ×\91פ×\95ר×\9e×\98 ×\9c×\90 ×\97×\95ק×\99.\n×\99ש ×\9c×\94×\96×\99×\9f ×\9bת×\95×\91ת ×ª×§×\99× ×\94 ×\90×\95 ×\9c×\94ש×\90×\99ר את השדה ריק.",
        "cannotchangeemail": "לא ניתן לשנות את כתובות הדוא\"ל של חשבונות באתר ויקי זה.",
        "emaildisabled": "אתר זה לא יכול לשלוח דואר אלקטרוני.",
        "accountcreated": "החשבון נוצר",
        "changepassword-success": "סיסמתך שונתה בהצלחה!",
        "changepassword-throttled": "ביצעתם לאחרונה ניסיונות רבים מדי להיכנס לחשבון זה.\nאנא המתינו $1 לפני שתנסו שוב.",
        "resetpass_forbidden": "לא ניתן לשנות סיסמאות.",
-       "resetpass-no-info": "×\99ש ×\9c×\94×\99×\9bנס לחשבון כדי לגשת לדף זה באופן ישיר.",
+       "resetpass-no-info": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לגשת לדף זה באופן ישיר.",
        "resetpass-submit-loggedin": "שינוי סיסמה",
        "resetpass-submit-cancel": "ביטול",
        "resetpass-wrong-oldpass": "הסיסמה הזמנית או הנוכחית אינה תקינה.\nייתכן שכבר שינית את סיסמתך או שכבר ביקשת סיסמה זמנית חדשה.",
        "passwordreset-emailerror-capture": "נוצר דואר אלקטרוני לאיפוס הסיסמה, והוא מוצג להלן, אך שליחתו ל{{GENDER:$2|משתמש|משתמשת}} נכשלה: $1",
        "changeemail": "שינוי כתובת דוא\"ל",
        "changeemail-text": "מלאו טופס זה כדי לשנות את כתובת הדואר האלקטרוני שלכם. יהיה עליכם למלא סיסמה כדי לאשר את השינוי.",
-       "changeemail-no-info": "×\99ש ×\9c×\94×\99×\9bנס לחשבון כדי לגשת לדף זה ישירות.",
+       "changeemail-no-info": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לגשת לדף זה ישירות.",
        "changeemail-oldemail": "כתובת דוא\"ל נוכחית:",
        "changeemail-newemail": "כתובת דוא\"ל חדשה:",
        "changeemail-none": "(אין)",
        "bold_sample": "טקסט מודגש",
        "bold_tip": "טקסט מודגש",
        "italic_sample": "טקסט נטוי",
-       "italic_tip": "טקסט נטוי (לא מומלץ בעברית)",
+       "italic_tip": "טקסט נטוי",
        "link_sample": "קישור",
        "link_tip": "קישור פנימי",
        "extlink_sample": "http://www.example.com כותרת הקישור לתצוגה",
        "blankarticle": "<strong>אזהרה:</strong> הדף שאתם יוצרים הוא ריק.\nאם תלחצו שוב על \"{{int:savearticle}}\", הדף ייווצר ללא תוכן.",
        "anoneditwarning": "<strong>אזהרה:</strong> אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם <strong>[$1 תיכנסו לחשבון]</strong> או <strong>[$2 תיצרו חשבון]</strong>, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.",
        "anonpreviewwarning": "''אינכם מחוברים לחשבון. שמירה תגרום לכתובת ה־IP שלכם להירשם בהיסטוריית העריכות של הדף.''",
-       "missingsummary": "'''תזכורת:''' לא הזנתם תקציר עריכה.\nאם תלחצו שוב על הכפתור \"{{int:savearticle}}\", עריכתכם תישמר בלעדיו.",
-       "missingcommenttext": "×\90× ×\90 ×\94ק×\9c×\99×\93×\95 את ההודעה למטה.",
-       "missingcommentheader": "'''תזכורת:''' לא הזנתם נושא/כותרת להודעה זו.\nאם תלחצו שוב על הכפתור \"{{int:savearticle}}\", עריכתכם תישמר בלעדיו.",
+       "missingsummary": "<strong>תזכורת:</strong> לא הזנת תקציר עריכה.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום לעריכה שלך להישמר בלעדיו.",
+       "missingcommenttext": "×\99ש ×\9c×\94ק×\9c×\99×\93 את ההודעה למטה.",
+       "missingcommentheader": "<strong>תזכורת:</strong> לא הזנת נושא/כותרת להודעה זו.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום לעריכה שלך להישמר ללא נושא/כותרת.",
        "summary-preview": "תצוגה מקדימה של התקציר:",
        "subject-preview": "תצוגה מקדימה של הנושא/הכותרת:",
        "blockedtitle": "המשתמש חסום",
        "blockedtext": "'''שם המשתמש או כתובת ה־IP שלכם נחסמו.'''\n\nהחסימה בוצעה על ידי $1. הסיבה שניתנה לכך היא '''$2'''.\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nבאפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] האחרים כדי לדון על החסימה.\nאינכם יכולים להשתמש בתכונת \"שליחת דואר אלקטרוני למשתמש זה\" אם לא ציינתם כתובת דוא\"ל תקפה ב[[Special:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא\"ל.\nכתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5.\nאנא ציינו את כל הפרטים הללו בכל פנייה למפעילי המערכת.",
        "autoblockedtext": "כתובת ה־IP שלכם נחסמה באופן אוטומטי כיוון שמשתמש אחר, שנחסם על־ידי $1, השתמש בה.\nהסיבה שניתנה לחסימה היא:\n\n:<em>$2</em>\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nבאפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] האחרים כדי לדון בחסימה.\n\nבאפשרותכם להשתמש בתכונת \"שליחת דואר אלקטרוני למשתמש זה\", אלא אם לא ציינתם כתובת דוא\"ל תקינה ב[[Special:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא\"ל.\n\nכתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5.\nאנא ציינו את כל הפרטים הללו בכל פנייה למפעילי המערכת.",
        "blockednoreason": "לא ניתנה סיבה",
-       "whitelistedittext": "×¢×\9c×\99×\9b×\9d $1 כדי לערוך דפים.",
+       "whitelistedittext": "× ×\93רשת $1 כדי לערוך דפים.",
        "confirmedittext": "עליכם לאמת את כתובת הדוא\"ל שלכם לפני שתוכלו לערוך דפים. אנא הגדירו ואמתו את כתובת הדוא\"ל שלכם באמצעות [[Special:Preferences|העדפות המשתמש]] שלכם.",
        "nosuchsectiontitle": "הפסקה לא נמצאה",
        "nosuchsectiontext": "ניסית לערוך פסקה שאינה קיימת.\nייתכן שהיא הועברה או נמחקה בעת שצפית בדף.",
        "loginreqtitle": "נדרשת כניסה לחשבון",
-       "loginreqlink": "×\9c×\94×\99×\9bנס לחשבון",
-       "loginreqpagetext": "×¢×\9c×\99×\9b×\9d $1 כדי לצפות בדפים אחרים.",
+       "loginreqlink": "×\9b× ×\99ס×\94 לחשבון",
+       "loginreqpagetext": "× ×\93רשת $1 כדי לצפות בדפים אחרים.",
        "accmailtitle": "הסיסמה נשלחה",
        "accmailtext": "סיסמה אקראית עבור [[User talk:$1|$1]] נשלחה אל $2. ניתן לשנותה בדף '''[[Special:ChangePassword|שינוי הסיסמה]]''' לאחר הכניסה.",
        "newarticle": "(חדש)",
        "userpage-userdoesnotexist": "חשבון המשתמש \"$1\" אינו רשום.\nאנא בדקו אם ברצונכם ליצור/לערוך דף זה.",
        "userpage-userdoesnotexist-view": "חשבון המשתמש \"$1\" אינו רשום.",
        "blocked-notice-logextract": "{{GENDER:$1|המשתמש הזה חסום|המשתמשת הזו חסומה}} כרגע.\nהפעולה האחרונה ביומן החסימות מוצגת להלן:",
-       "clearyourcache": "'''הערה:''' לאחר השמירה, עליכם לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.\n* '''פיירפוקס / ספארי:''' לחצו על Shift בעת לחיצתכם על '''העלה מחדש''' (Reload), או הקישו על ''Ctrl-F5'' או על ''Ctrl-R'' (או על ''<span dir=\"ltr\">⌘-R</span>'' במחשב מק)\n* '''גוגל כרום:''' לחצו על ''Ctrl-Shift-R'' (או על ''<span dir=\"ltr\">⌘-Shift-R</span>'' במק)\n* '''אינטרנט אקספלורר:''' לחצו על Ctrl בעת לחיצתכם על '''רענן''' (Refresh), או הקישו על ''Ctrl-F5''\n* '''אופרה''': נקו את המטמון ב־''Tools‏ ← Preferences''",
+       "clearyourcache": "<strong>הערה:</strong> לאחר השמירה, ייתכן שתצטרכו לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.\n* <strong>פיירפוקס / ספארי:</strong> לחצו והחזיקו את המקש <em>Shift</em> בעת לחיצתכם על <strong>טעינה מחדש</strong> (Reload), או לחצו על צירוף המקשים <em>Ctrl-F5</em> או <em>Ctrl-R</em>&rlm; (<em><span dir=\"ltr\">⌘-R</span></em> במחשב מק)\n* <strong>גוגל כרום:</strong> לחצו על צירוף המקשים <em>Ctrl-Shift-R</em>&rlm; (<em><span dir=\"ltr\">⌘-Shift-R</span></em> במחשב מק)\n* <strong>אינטרנט אקספלורר:</strong> לחצו והחזיקו את המקש <em>Ctrl</em> בעת לחיצתכם על <strong>רענן</strong> (Refresh), או לחצו על צירוף המקשים <em>Ctrl-F5</em>\n* <strong>אופרה:</strong> נקו את המטמון ב־<em>Tools‏ ← Preferences</em>",
        "usercssyoucanpreview": "'''עצה:''' השתמשו בלחצן \"{{int:showpreview}}\" כדי לבחון את גיליון ה־CSS החדש שלכם לפני השמירה.",
        "userjsyoucanpreview": "'''עצה:''' השתמשו בלחצן \"{{int:showpreview}}\" כדי לבחון את סקריפט ה־JavaScript החדש שלכם לפני השמירה.",
        "usercsspreview": "'''זכרו שזו רק תצוגה מקדימה של גיליון ה־CSS שלכם.'''\n'''הוא טרם נשמר!'''",
        "yourdiff": "הבדלים",
        "copyrightwarning": "'''שימו לב:''' תרומתכם ל{{grammar:תחילית|{{SITENAME}}}} תפורסם תחת תנאי הרישיון $2 (ראו $1 לפרטים נוספים). אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאחרים יוכלו להעתיק ממנה בציון המקור – אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים. '''אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!'''",
        "copyrightwarning2": "'''שימו לב:''' תורמים אחרים עשויים לערוך או אף להסיר את תרומתכם ל{{grammar:תחילית|{{SITENAME}}}}. אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים (ראו $1 לפרטים נוספים). '''אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!'''",
-       "longpageerror": "'''שגיאה: אורך הטקסט ששלחתם הוא {{PLURAL:$1|קילובייט אחד|$1 קילובייטים}}, והוא ארוך יותר מהאורך המרבי של {{PLURAL:$2|קילובייט אחד|$2 קילובייטים}}.'''\nלא ניתן לשמור אותו.",
+       "longpageerror": "<strong>שגיאה: אורך הטקסט ששלחת הוא {{PLURAL:$1|קילובייט אחד|$1 קילובייטים}}, והוא ארוך יותר מהאורך המרבי של {{PLURAL:$2|קילובייט אחד|$2 קילובייטים}}.</strong>\nלא ניתן לשמור אותו.",
        "readonlywarning": "'''אזהרה: בסיס הנתונים ננעל לצורך תחזוקה. בזמן זה לא ניתן לשמור את הטקסט הערוך.'''\nבאפשרותך להעתיק ולהדביק את הטקסט לתוך קובץ טקסט ולשמור אותו למאוחר יותר.\n\nמפעיל המערכת שנעל את בסיס הנתונים סיפק את ההסבר הבא: $1",
        "protectedpagewarning": "'''אזהרה: דף זה מוגן כך שרק מפעילי מערכת יכולים לערוך אותו.'''\nפעולת היומן האחרונה מוצגת להלן:",
        "semiprotectedpagewarning": "'''הערה:''' דף זה מוגן כך שרק משתמשים רשומים יכולים לערוך אותו.\nפעולת היומן האחרונה מוצגת להלן:",
        "template-semiprotected": "(מוגנת חלקית)",
        "hiddencategories": "דף זה כלול ב{{PLURAL:$1|קטגוריה מוסתרת אחת|־$1 קטגוריות מוסתרות}}:",
        "edittools": "<!-- הטקסט הנכתב כאן יוצג מתחת לטופסי עריכת דפים והעלאת קבצים, ולפיכך ניתן לכתוב להציג בו תווים קשים לכתיבה, קטעים מוכנים של טקסט ועוד. -->",
-       "nocreatetext": "ב{{grammar:תחילית|{{SITENAME}}}} קיימת הגבלה על יצירת דפים חדשים.\nבאפשרותך לחזור אחורה ולערוך דף קיים, או [[Special:UserLogin|להיכנס לחשבון]].",
+       "nocreatetext": "ב{{grammar:תחילית|{{SITENAME}}}} קיימת הגבלה על יצירת דפים חדשים.\nבאפשרותך לחזור אחורה ולערוך דף קיים, או [[Special:UserLogin|להיכנס לחשבון או ליצור חשבון]].",
        "nocreate-loggedin": "אינך מורשה ליצור דפים חדשים.",
        "sectioneditnotsupported-title": "עריכת פסקאות אינה נתמכת",
        "sectioneditnotsupported-text": "עריכת פסקאות אינה נתמכת בדף זה.",
        "edit-hook-aborted": "העריכה בוטלה על־ידי Hook.\nלא ניתן הסבר לביטול.",
        "edit-gone-missing": "לא ניתן לעדכן את הדף.\nנראה שהוא נמחק.",
        "edit-conflict": "התנגשות עריכה.",
-       "edit-no-change": "×\94×\9eער×\9bת ×\94תע×\9c×\9e×\94 ×\9eער×\99×\9bת×\9b×\9d, כיוון שלא נעשה שינוי בטקסט.",
+       "edit-no-change": "×\94×\9eער×\9bת ×\94תע×\9c×\9e×\94 ×\9eער×\99×\9bת×\9a כיוון שלא נעשה שינוי בטקסט.",
        "postedit-confirmation-created": "הדף נוצר.",
        "postedit-confirmation-restored": "הדף שוחזר.",
        "postedit-confirmation-saved": "עריכתך נשמרה.",
        "content-model-text": "טקסט פשוט",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "דפים שמשתמשים בפרמטרים כפולים בקריאות לתבניות",
+       "duplicate-args-category-desc": "הדף מכיל קריאות לתבניות שמשתמשות בפרמטרים כפולים, כגון <code><nowiki>{{תאריך|יום=1|יום=2}}</nowiki></code> או <code><nowiki>{{שעה|חמש|1=שש}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''אזהרה:''' דף זה כולל יותר מדי קריאות לפונקציות מפענח שגוזלות משאבים.\n\nנדרש {{PLURAL:$2|שתהיה בו לכל היותר קריאה אחת|שתהיינה בו לכל היותר $2 קריאות}} לפונקציות כאלה, אך כרגע יש בו {{PLURAL:$1|קריאה אחת|$1 קריאות}}.",
        "expensive-parserfunction-category": "דפים עם יותר מדי קריאות למשתנים הגוזלים משאבים",
        "post-expand-template-inclusion-warning": "'''אזהרה:''' התבניות המוכללות בדף זה גדולות מדי.\nחלק מהתבניות לא יוכללו.",
        "history-feed-title": "היסטוריית גרסאות",
        "history-feed-description": "היסטוריית הגרסאות של הדף הזה בוויקי",
        "history-feed-item-nocomment": "$1 ב־$2",
-       "history-feed-empty": "×\94×\93×£ ×\94×\9e×\91×\95קש ×\9c×\90 × ×\9eצ×\90.\n×\99×\99ת×\9b×\9f ×©×\94×\95×\90 × ×\9e×\97ק, ×\90×\95 ×©×©×\9e×\95 ×©×\95× ×\94.\nנס×\95 [[Special:Search|×\9c×\97פש]] ×\90×\97ר דפים רלוונטיים חדשים.",
+       "history-feed-empty": "×\94×\93×£ ×\94×\9e×\91×\95קש ×\9c×\90 × ×\9eצ×\90.\n×\99×\99ת×\9b×\9f ×©×\94×\95×\90 × ×\9e×\97ק, ×\90×\95 ×©×©×\9e×\95 ×©×\95× ×\94.\n×\91×\90פשר×\95ת×\9a ×\9cנס×\95ת [[Special:Search|×\9c×\97פש]] דפים רלוונטיים חדשים.",
        "rev-deleted-comment": "(תקציר העריכה הוסר)",
        "rev-deleted-user": "(שם המשתמש הוסר)",
        "rev-deleted-event": "(פעולת היומן הוסרה)",
        "suppressionlog": "יומן העלמות",
        "suppressionlogtext": "להלן רשימת המחיקות והחסימות הכוללות תוכן המוסתר ממפעילי המערכת.\nראו את [[Special:BlockList|רשימת החסומים]] לרשימת החסימות הפעילות כעת.",
        "mergehistory": "מיזוג גרסאות של דפים",
-       "mergehistory-header": "×\93×£ ×\96×\94 ×\9e×\90פשר ×\9c×\9b×\9d ×\9c×\9e×\96×\92 ×\92רס×\90×\95ת ×\9e×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\93×£ ×©×\9c ×\93×£ ×\9eק×\95ר ×\9cת×\95×\9a ×\93×£ ×\97×\93ש ×\99×\95תר.\n×\90× ×\90 ×\95×\93×\90×\95 ×©×©×\99× ×\95×\99 ×\96×\94 ×\9c×\90 ×\99פ×\92×¢ ×\91×\94×\9eש×\9b×\99×\95ת ×\94ש×\99× ×\95×\99×\99×\9d ×\91×\93×£ ×\94×\99ש×\9f.\n\n'''×\9cפ×\97×\95ת ×\92רס×\94 ×\90×\97ת ×©×\9c ×\93×£ ×\94×\9eק×\95ר ×\97×\99×\99×\91ת ×\9c×\94×\99ש×\90ר ×\91×\95.'''",
+       "mergehistory-header": "×\93×£ ×\96×\94 ×\9e×\90פשר ×\9c×\9a ×\9c×\9e×\96×\92 ×\92רס×\90×\95ת ×\9eת×\95×\9a ×\94×\99ס×\98×\95ר×\99×\99ת ×\92רס×\90×\95ת ×©×\9c ×\93×£ ×\90×\97×\93 (×\93×£ ×\94×\9eק×\95ר) ×\9cת×\95×\9a ×\93×£ ×\97×\93ש.\n×\99ש ×\9c×\95×\95×\93×\90 ×©×\94×\9e×\99×\96×\95×\92 ×\9c×\90 ×\99פ×\92×¢ ×\91×\94×\9eש×\9b×\99×\95ת ×\94ש×\99× ×\95×\99×\99×\9d ×\91×\93×£ ×\94×\99ש×\9f.",
        "mergehistory-box": "מיזוג גרסאות של שני דפים:",
        "mergehistory-from": "דף המקור:",
        "mergehistory-into": "דף היעד:",
        "mergehistory-list": "היסטוריית עריכות בת מיזוג",
-       "mergehistory-merge": "ניתן למזג את הגרסאות הבאות של [[:$1]] לתוך [[:$2]]. אנא השתמשו בלחצני האפשרות כדי לבחור זמן שרק גרסאות שנוצרו בו ולפניו ימוזגו. שימוש בקישורי הניווט יאפס עמודה זו.",
+       "mergehistory-merge": "ניתן למזג את הגרסאות הבאות של [[:$1]] לתוך [[:$2]].\nיש להשתמש בלחצני האפשרות כדי לבחור זמן שרק גרסאות שנוצרו בו ולפניו ימוזגו.\nשימוש בקישורי הניווט יאפס עמודה זו.",
        "mergehistory-go": "הצגת עריכות בנות מיזוג",
        "mergehistory-submit": "מיזוג",
        "mergehistory-empty": "אין גרסאות למיזוג.",
        "mergehistory-success": "{{PLURAL:$3|גרסה אחת|$3 גרסאות}} של [[:$1]] מוזגו בהצלחה לתוך [[:$2]].",
-       "mergehistory-fail": "×\9c×\90 × ×\99ת×\9f ×\9c×\91צע ×\90ת ×\9e×\99×\96×\95×\92 ×\94×\92רס×\90×\95ת, ×\90× ×\90 ×\91×\93ק×\95 שנית את הגדרות הדף והזמן.",
+       "mergehistory-fail": "×\9c×\90 × ×\99ת×\9f ×\9c×\91צע ×\90ת ×\9e×\99×\96×\95×\92 ×\94×\92רס×\90×\95ת, ×\99ש ×\9c×\91×\93×\95ק שנית את הגדרות הדף והזמן.",
        "mergehistory-fail-toobig": "לא ניתן לבצע את מיזוג הגרסאות כיוון שצריך להעביר יותר גרסאות מהמגבלה, שהיא {{PLURAL:$1|גרסה אחת|‏‏֫$1 גרסאות}}.",
        "mergehistory-no-source": "דף המקור $1 אינו קיים.",
        "mergehistory-no-destination": "דף היעד $1 אינו קיים.",
        "mergehistory-same-destination": "דפי המקור והיעד זהים",
        "mergehistory-reason": "סיבה:",
        "mergelog": "יומן מיזוגים",
-       "pagemerge-logentry": "מיזג את [[$1]] לתוך [[$2]] (גרסאות עד $3)",
        "revertmerge": "ביטול המיזוג",
        "mergelogpagetext": "זוהי רשימה של המיזוגים האחרונים של גרסאות מדף אחד לתוך דף שני.",
        "history-title": "היסטוריית גרסאות של הדף \"$1\"",
        "difference-title": "הבדלים בין גרסאות בדף \"$1\"",
-       "difference-title-multipage": "$1 ו{{GRAMMAR:תחילית|$2}}: הבדלים בין דפים",
+       "difference-title-multipage": "הבדלים בין הדף \"$1\" לבין הדף \"$2\"",
        "difference-multipage": "(הבדלים בין דפים)",
        "lineno": "שורה $1:",
        "compareselectedversions": "השוואת הגרסאות שנבחרו",
        "nextn-title": "{{PLURAL:$1|התוצאה הבאה|$1 התוצאות הבאות}}",
        "shown-title": "הצגת {{PLURAL:$1|תוצאה אחת|$1 תוצאות}} בדף",
        "viewprevnext": "צפייה ב: ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "'''קיים דף בשם \"[[:$1]]\" באתר זה.'''",
-       "searchmenu-new": "<strong>'''יצירת הדף \"[[:$1]]\" באתר הוויקי הזה.'''</strong>\n{{PLURAL:$2|0=|ר' גם את הדף שנמצא בחיפוש.|ר' גם את תוצאות החיפוש.}}",
+       "searchmenu-exists": "<strong>קיים דף בשם \"[[:$1]]\" באתר הוויקי הזה.</strong> {{PLURAL:$2|0=|ר' גם את הדפים האחרים שנמצאו בחיפוש.}}",
+       "searchmenu-new": "<strong>ליצירת הדף \"[[:$1]]\" באתר הוויקי הזה.</strong> {{PLURAL:$2|0=|ר' גם את הדף שנמצא בחיפוש.|ר' גם את הדפים שנמצאו בחיפוש.}}",
        "searchprofile-articles": "דפי תוכן",
        "searchprofile-images": "מולטימדיה",
        "searchprofile-everything": "הכול",
        "search-result-category-size": "{{PLURAL:$1|חבר אחד|$1 חברים}} ({{PLURAL:$2|קטגוריית משנה אחת|$2 קטגוריות משנה}}, {{PLURAL:$3|קובץ אחד|$3 קבצים}})",
        "search-redirect": "(הפניה $1)",
        "search-section": "(פסקה $1)",
+       "search-category": "(קטגוריה $1)",
        "search-file-match": "(התאמה בתוכן הקובץ)",
        "search-suggest": "האם התכוונת ל: $1",
        "search-interwiki-caption": "מיזמי אחות",
        "preferences": "העדפות",
        "mypreferences": "העדפות",
        "prefs-edits": "מספר עריכות:",
-       "prefsnologintext2": "×\90× ×\90 ×\94×\99×\9bנס×\95 לחשבון כדי לשנות העדפות משתמש.",
+       "prefsnologintext2": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לשנות העדפות משתמש.",
        "prefs-skin": "עיצוב",
        "skin-preview": "תצוגה מקדימה",
        "datedefault": "ברירת המחדל",
        "gender-female": "היא עורכת דפים בוויקי",
        "prefs-help-gender": "אין חובה למלא העדפה זו.\nהמערכת משתמשת במידע זה כדי לפנות אליך/אלייך ולציין את שם המשתמש שלך במין הדקדוקי הנכון.\nהמידע יהיה ציבורי.",
        "email": "דוא\"ל",
-       "prefs-help-realname": "×\94ש×\9d ×\94×\90×\9e×\99ת×\99 ×\94×\95×\90 ×\90×\95פצ×\99×\95× ×\90×\9c×\99.\n×\90×\9d ×ª×\91×\97ר×\95 ×\9cספק×\95, ×\94×\95×\90 ×\99ש×\9eש ×\9c×\99×\99×\97×\95ס ×¢×\91×\95×\93ת×\9b×\9d ×\90×\9c×\99×\9b×\9d.",
+       "prefs-help-realname": "×\90×\99×\9f ×\97×\95×\91×\94 ×\9c×\9e×\9c×\90 ×\90ת ×\94ש×\9d ×\94×\90×\9e×\99ת×\99.\n×\94ש×\9d ×\94×\90×\9e×\99ת×\99 ×¢×©×\95×\99 ×\9cש×\9eש ×\9b×\93×\99 ×\9c×\99×\99×\97ס ×\9c×\9a ×\90ת ×¢×\91×\95×\93ת×\9a.",
        "prefs-help-email": "כתובת דואר אלקטרוני היא אופציונאלית, אבל היא חיונית לאיפוס הסיסמה במקרה שתשכחו אותה.",
        "prefs-help-email-others": "באפשרותך גם לבחור לאפשר לאחרים ליצור איתך קשר באמצעות דוא\"ל דרך קישור בדף המשתמש או בדף השיחה שלך.\nכתובת הדוא\"ל שלך לא תיחשף כשמשתמשים אחרים ייצרו קשר איתך.",
        "prefs-help-email-required": "כתובת דואר אלקטרוני נדרשת לכתיבה באתר.",
        "userrights-groupsmember-auto": "{{GENDER:$2|חבר|חברה}} אוטומטית ב{{PLURAL:$1|קבוצה|קבוצות}}:",
        "userrights-groups-help": "באפשרותכם לשנות את הקבוצות שמשתמש זה חבר בהן:\n* תיבה מסומנת פירושה שהמשתמש חבר בקבוצה.\n* תיבה בלתי מסומנת פירושה שהמשתמש אינו חבר בקבוצה.\n* סימון * פירושו שלא תוכלו להסיר משתמש מהקבוצה מרגע שהוספתם אותו אליה, או להפך.",
        "userrights-reason": "סיבה:",
-       "userrights-no-interwiki": "×\90×\99×\9f ×\9c×\9b×\9d הרשאה לערוך הרשאות משתמש באתרים אחרים.",
+       "userrights-no-interwiki": "×\90×\99×\9f ×\9c×\9a הרשאה לערוך הרשאות משתמש באתרים אחרים.",
        "userrights-nodatabase": "בסיס הנתונים $1 אינו קיים או אינו מקומי.",
        "userrights-nologin": "עליכם [[Special:UserLogin|להיכנס לחשבון]] עם הרשאות מתאימות כדי לשנות הרשאות של משתמשים.",
        "userrights-notallowed": "אין לך הרשאה להוסיף או להסיר הרשאות של משתמשים.",
        "uploadbtn": "העלאה",
        "reuploaddesc": "ביטול ההעלאה וחזרה לטופס העלאת קבצים לשרת",
        "upload-tryagain": "שליחת התיאור החדש של הקובץ",
-       "uploadnologin": "לא נכנסתם לחשבון",
-       "uploadnologintext": "×¢×\9c×\99×\9b×\9d $1 כדי להעלות קבצים.",
+       "uploadnologin": "לא נכנסת לחשבון",
+       "uploadnologintext": "× ×\93רשת $1 כדי להעלות קבצים.",
        "upload_directory_missing": "שרת האינטרנט אינו יכול ליצור את תיקיית ההעלאות ($1) החסרה.",
        "upload_directory_read_only": "שרת האינטרנט אינו יכול לכתוב בתיקיית ההעלאות ($1).",
        "uploaderror": "שגיאה בהעלאת הקובץ",
        "filename-tooshort": "שם הקובץ קצר מדי",
        "filetype-banned": "אסור להעלות קבצים מהסוג הזה.",
        "verification-error": "קובץ זה לא עבר את תהליך אימות הקבצים",
-       "hookaborted": "השינוי שניסית לבצע הופסק על ידי מבנה Hook של הרחבה",
+       "hookaborted": "השינוי שניסית לבצע הופסק על־ידי הרחבה.",
        "illegal-filename": "שם הקובץ אינו מותר להעלאה",
        "overwrite": "דריסת קובץ קיים אינה מותרת",
        "unknown-error": "אירעה שגיאה בלתי ידועה",
        "tmp-write-error": "שגיאה בכתיבה לקובץ הזמני",
        "large-file": "מומלץ שהקבצים לא יהיו גדולים יותר מ־$1 (גודל הקובץ שהעליתם הוא $2).",
        "largefileserver": "גודל הקובץ חורג ממגבלת השרת.",
-       "emptyfile": "נראה שהקובץ שהעליתם ריק. ייתכן שהסיבה לכך היא שגיאת הקלדה בשם הקובץ. אנא ודאו שזהו הקובץ שברצונכם להעלות.",
+       "emptyfile": "נראה שהקובץ שהעלית ריק.\nייתכן שהסיבה לכך היא שגיאת הקלדה בשם הקובץ.\nיש לוודא שזה הקובץ שברצונך להעלות.",
        "windows-nonascii-filename": "אתר ויקי זה אינו תומך בשמות קבצים עם תווים מיוחדים או תווים שאינם באנגלית.",
        "fileexists": "קובץ בשם הזה כבר קיים, אנא בדקו את <strong>[[:$1]]</strong> אם אינכם בטוחים שברצונכם להחליף אותו.\n[[$1|thumb]]",
        "filepageexists": "דף תיאור הקובץ עבור קובץ זה כבר נוצר ב<strong>[[:$1]]</strong>, אך לא קיים קובץ בשם זה.\nתיאור הקובץ שתכתבו לא יופיע בדף תיאור הקובץ.\nכדי לגרום לו להופיע שם, יהיה עליכם לערוך אותו ידנית. [[$1|thumb]]",
        "fileexists-extension": "קובץ עם שם דומה כבר קיים: [[$2|thumb]]\n* שם הקובץ המועלה: <strong>[[:$1]]</strong>\n* שם הקובץ הקיים: <strong>[[:$2]]</strong>\nאולי כדאי לתת לקובץ שם ספציפי יותר?",
-       "fileexists-thumbnail-yes": "×\94ק×\95×\91×¥ ×\94×\95×\90 ×\9bנר×\90×\94 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת). [[$1|thumb]]\n×\90× ×\90 ×\91×\93ק×\95 ×\90ת ×\94ק×\95×\91×¥ <strong>[[:$1]]</strong>.\n×\90×\9d ×\94ק×\95×\91×¥ ×©×\91×\93קת×\9d הוא אותה התמונה בגודל מקורי, אין זה הכרחי להעלות גם תמונה ממוזערת.",
-       "file-thumbnail-no": "ש×\9d ×\94ק×\95×\91×¥ ×\9eת×\97×\99×\9c ×¢×\9d <strong>$1</strong>. × ×¨×\90×\94 ×©×\96×\95×\94×\99 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n×\90×\9d ×\94ת×\9e×\95× ×\94 ×\91×\92×\95×\93×\9c ×\9e×\9c×\90 ×\9eצ×\95×\99×\94 ×\91רש×\95ת×\9b×\9d, ×\90× ×\90 ×\94×¢×\9c×\95 ×\90×\95ת×\94 ×\95×\9c×\90 ×\90ת ×\94ת×\9e×\95× ×\94 ×\94×\9e×\9e×\95×\96ערת; ×\90×\97רת, ×\90× ×\90 ×©× ×\95 את שם הקובץ.",
+       "fileexists-thumbnail-yes": "נר×\90×\94 ×©×\94ק×\95×\91×¥ ×\94×\95×\90 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n[[$1|thumb]]\n×\99ש ×\9c×\91×\93×\95ק ×\90ת ×\94ק×\95×\91×¥ <strong>[[:$1]]</strong>.\n×\90×\9d ×\94ק×\95×\91×¥ ×©×\91×\93קת הוא אותה התמונה בגודל מקורי, אין זה הכרחי להעלות גם תמונה ממוזערת.",
+       "file-thumbnail-no": "ש×\9d ×\94ק×\95×\91×¥ ×\9eת×\97×\99×\9c ×\91Ö¾<strong>$1</strong>.\nנר×\90×\94 ×©×\96×\95×\94×\99 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n×\90×\9d ×\94ת×\9e×\95× ×\94 ×\91×\92×\95×\93×\9c ×\9e×\9c×\90 ×\9eצ×\95×\99×\94 ×\91רש×\95ת×\9a, ×\99ש ×\9c×\94×¢×\9c×\95ת ×\90×\95ת×\94 ×\95×\9c×\90 ×\90ת ×\94ת×\9e×\95× ×\94 ×\94×\9e×\9e×\95×\96ערת; ×\90×\97רת, ×\99ש ×\9cשנ×\95ת את שם הקובץ.",
        "fileexists-forbidden": "קובץ בשם זה כבר קיים, ואינכם יכולים להחליף אותו.\nאם אתם עדיין מעוניינים להעלות קובץ זה, אנא חזרו לדף הקודם והעלו את הקובץ תחת שם חדש.\n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "קובץ בשם זה כבר קיים כקובץ משותף.\nאם אתם עדיין מעוניינים להעלות קובץ זה, אנא חזרו לדף הקודם והעלו את הקובץ תחת שם חדש.\n[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "קובץ זה זהה {{PLURAL:$1|לקובץ הבא|לקבצים הבאים}}:",
-       "file-deleted-duplicate": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 ([[:$1]]) × ×\9e×\97ק ×\91×¢×\91ר.\n×\90× ×\90 ×\91×\93ק×\95 ×\90ת ×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\9e×\97×\99ק×\94 ×©×\9c ×\94ק×\95×\91×¥ ×\9cפנ×\99 ×©×ª×¢×\9c×\95 ×\90×\95תו מחדש.",
-       "file-deleted-duplicate-notitle": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 × ×\9e×\97ק ×\91×¢×\91ר, ×\95×\94×\9b×\95תרת ×©×\9c×\95 ×\94×\95×¢×\9c×\9e×\94.\n×\90× ×\90 ×\91קש×\95 ×\9e×\9e×\99ש×\94×\95 ×©×\99×\9b×\95×\9c ×\9cר×\90×\95ת × ×ª×\95× ×\99×\9d ×¢×\9c ×§×\91צ×\99×\9d ×©×\94×\95×¢×\9c×\9e×\95 ×\9c×\91×\93×\95ק ×\90ת ×\94×\9eצ×\91 ×\9cפנ×\99 ×©×ª×¢×\9c×\95 ×\90×\95ת×\95 מחדש.",
+       "file-deleted-duplicate": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 ([[:$1]]) × ×\9e×\97ק ×\91×¢×\91ר.\n×\99ש ×\9c×\91×\93×\95ק ×\90ת ×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\9e×\97×\99ק×\94 ×©×\9c ×\94ק×\95×\91×¥ ×\9cפנ×\99 ×\94×¢×\9c×\90תו מחדש.",
+       "file-deleted-duplicate-notitle": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 × ×\9e×\97ק ×\91×¢×\91ר, ×\95×\94×\9b×\95תרת ×©×\9c×\95 ×\94×\95×¢×\9c×\9e×\94.\n×\99ש ×\9c×\91קש ×\9e×\9eשת×\9eש ×©×\99×\9b×\95×\9c ×\9cר×\90×\95ת × ×ª×\95× ×\99×\9d ×¢×\9c ×§×\91צ×\99×\9d ×©×\94×\95×¢×\9c×\9e×\95 ×\9c×\91×\93×\95ק ×\90ת ×\94×\9eצ×\91 ×\9cפנ×\99 ×\94×¢×\9c×\90ת ×\94ק×\95×\91×¥ מחדש.",
        "uploadwarning": "אזהרת העלאת קבצים",
        "uploadwarning-text": "אנא שנו את תיאור הקובץ שלמטה ונסו שוב.",
        "savefile": "שמירת קובץ",
        "copyuploaddisabled": "העלאת קבצים מכתובת URL מבוטלת.",
        "uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת.",
        "php-uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת ברמת PHP. אנא בדקו את ההגדרה file_uploads.",
-       "uploadscripted": "הקובץ כולל קוד סקריפט או HTML שעשוי להתפרש או להתבצע בטעות על ידי הדפדפן.",
+       "uploadscripted": "הקובץ כולל קוד סקריפט או HTML שעשוי להתפרש או להתבצע בטעות על־ידי הדפדפן.",
        "uploadscriptednamespace": "קובץ ה‏‏֫־SVG הזה כולל מרחב שם בלתי חוקי: '$1'",
        "uploadinvalidxml": "לא ניתן לפרש את ה־XML בקובץ שהועלה.",
        "uploadvirus": "הקובץ מכיל וירוס!\nפרטים:\n<div dir=\"ltr\">$1</div>",
        "upload-source": "קובץ המקור",
        "sourcefilename": "שם הקובץ:",
        "sourceurl": "כתובת URL של המקור:",
-       "destfilename": "ש×\9e×\95ר קובץ בשם:",
+       "destfilename": "ש×\9e×\99רת ×\94קובץ בשם:",
        "upload-maxfilesize": "גודל הקובץ המרבי: $1",
        "upload-description": "תיאור הקובץ",
        "upload-options": "אפשרויות העלאה",
        "watchthisupload": "מעקב אחרי קובץ זה",
        "filewasdeleted": "קובץ בשם זה כבר הועלה בעבר, ולאחר מכן נמחק. אנא בדקו את הדף $1 לפני שתמשיכו להעלותו שנית.",
-       "filename-bad-prefix": "ש×\9d ×\94ק×\95×\91×¥ ×©×\90ת×\9d ×\9e×¢×\9c×\99×\9d ×\9eת×\97×\99×\9c ×¢×\9d '''\"$1\"''', ×©×\94×\95×\90 ×©×\9d ×©×\90×\99× ×\95 ×\9eת×\90ר ×\90ת ×\94ק×\95×\91×¥ ×\95×\91×\93ר×\9a ×\9b×\9c×\9c ×\9e×\95×\9bנס ×\90×\95×\98×\95×\9e×\98×\99ת ×¢×\9c ×\99×\93×\99 ×\9eצ×\9c×\9e×\95ת ×\93×\99×\92×\99×\98×\9c×\99×\95ת. ×\90× ×\90 ×\91×\97ר×\95 שם מתאים יותר לקובץ, שיתאר את תכניו.",
+       "filename-bad-prefix": "ש×\9d ×\94ק×\95×\91×¥ ×©×\90ת×\9d ×\9e×¢×\9c×\99×\9d ×\9eת×\97×\99×\9c ×\91Ö¾<strong>\"$1\"</strong>, ×©×\94×\95×\90 ×©×\9d ×©×\90×\99× ×\95 ×\9eת×\90ר ×\90ת ×\94ק×\95×\91×¥ ×\95×\91×\93ר×\9a ×\9b×\9c×\9c ×\9e×\95קצ×\94 ×\90×\95×\98×\95×\9e×\98×\99ת ×¢×\9cÖ¾×\99×\93×\99 ×\9eצ×\9c×\9e×\95ת ×\93×\99×\92×\99×\98×\9c×\99×\95ת.\n×\99ש ×\9c×\91×\97×\95ר שם מתאים יותר לקובץ, שיתאר את תכניו.",
        "filename-prefix-blacklist": " #<!-- נא להשאיר שורה זו בדיוק כפי שהיא --> <pre>\n# התחביר הוא כדלקמן:\n#   * כל דבר מתו \"#\" לסוף השורה הוא הערה\n#   * כל שורה לא ריקה היא קידומת לשמות קבצים טיפוסיים שמצלמות דיגיטליות נותנות אוטומטית\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # מספר טלפונים סלולריים\nIMG # כללי\nJD # Jenoptik\nMGP # Pentax\nPICT # שונות\n #</pre> <!-- נא להשאיר שורה זו בדיוק כפי שהיא -->",
        "upload-success-subj": "ההעלאה הושלמה בהצלחה",
        "upload-success-msg": "ההעלאה מהכתובת [$2] הושלמה בהצלחה. הקובץ שהעליתם זמין כאן: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "בעיה בהעלאה",
-       "upload-failure-msg": "הייתה בעיה עם הקובץ שהעליתם מהכתובת [$2]:\n\n$1",
+       "upload-failure-msg": "הייתה בעיה עם הקובץ שהעלית מהכתובת [$2]:\n\n$1",
        "upload-warning-subj": "אזהרה בהעלאה",
        "upload-warning-msg": "הייתה בעיה עם הקובץ שהעליתם מהכתובת [$2]. באפשרותכם לחזור ל[[Special:Upload/stash/$1|טופס ההעלאה]] כדי לתקן בעיה זו.",
        "upload-proto-error": "פרוטוקול שגוי",
        "sharedupload-desc-edit": "זהו קובץ מתוך $1 וניתן להשתמש בו גם במיזמים אחרים.\nניתן לערוך את התקציר שלו ב[$2 דף תיאור הקובץ] שם.",
        "sharedupload-desc-create": "זהו קובץ מתוך $1 וניתן להשתמש בו גם במיזמים אחרים.\nניתן לערוך את התקציר שלו ב[$2 דף תיאור הקובץ] שם.",
        "filepage-nofile": "לא קיים קובץ בשם זה.",
-       "filepage-nofile-link": "×\9c×\90 ×§×\99×\99×\9d ×§×\95×\91×¥ ×\91ש×\9d ×\96×\94, ×\90×\9a ×\91×\90פשר×\95ת×\9b×\9d [$1 להעלות אחד].",
+       "filepage-nofile-link": "×\9c×\90 ×§×\99×\99×\9d ×§×\95×\91×¥ ×\91ש×\9d ×\96×\94, ×\90×\9a ×\91×\90פשר×\95ת×\9a [$1 להעלות אחד].",
        "uploadnewversion-linktext": "העלאת גרסה חדשה של קובץ זה",
        "shared-repo-from": "מתוך $1",
        "shared-repo": "מקום איחסון משותף",
        "shared-repo-name-wikimediacommons": "ויקישיתוף",
        "filepage.css": "/* הסגנונות הנכתבים כאן יוכללו בדף תיאור הקובץ, כולל באתרי ויקי זרים */",
-       "upload-disallowed-here": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9b×\9d לדרוס את הקובץ הזה.",
+       "upload-disallowed-here": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9a לדרוס את הקובץ הזה.",
        "filerevert": "שחזור $1",
        "filerevert-legend": "שחזור קובץ",
        "filerevert-intro": "אתם עומדים לשחזר את הקובץ '''[[Media:$1|$1]]''' ל[$4 גרסה מ־$3, $2].",
        "filerevert-comment": "סיבה:",
        "filerevert-defaultcomment": "שוחזר לגרסה מ־$2, $1",
        "filerevert-submit": "שחזור",
-       "filerevert-success": "'''[[Media:$1|$1]]''' שוחזרה ל[$4 גרסה מ־$3, $2].",
+       "filerevert-success": "<strong>[[Media:$1|$1]]</strong> שוחזר ל[$4 גרסה מ־$3, $2].",
        "filerevert-badversion": "אין גרסה מקומית קודמת של הקובץ שהועלתה בתאריך המבוקש.",
        "filedelete": "מחיקת $1",
        "filedelete-legend": "מחיקת קובץ",
        "statistics": "סטטיסטיקות",
        "statistics-header-pages": "סטטיסטיקות דפים",
        "statistics-header-edits": "סטטיסטיקות עריכה",
-       "statistics-header-views": "סטטיסטיקות צפייה",
        "statistics-header-users": "סטטיסטיקות משתמשים",
        "statistics-header-hooks": "סטטיסטיקות אחרות",
        "statistics-articles": "דפי תוכן",
        "statistics-files": "קבצים שהועלו",
        "statistics-edits": "עריכות של דפים מאז התקנת {{SITENAME}}",
        "statistics-edits-average": "מספר העריכות הממוצע לדף",
-       "statistics-views-total": "מספר הצפיות הכולל",
-       "statistics-views-total-desc": "צפיות בדפים שאינם קיימים ובדפים מיוחדים אינן כלולות",
-       "statistics-views-peredit": "מספר הצפיות לעריכה",
        "statistics-users": "ה[[Special:ListUsers|משתמשים]] הרשומים",
        "statistics-users-active": "המשתמשים הפעילים",
        "statistics-users-active-desc": "משתמשים שביצעו פעולה כלשהי {{PLURAL:$1|ביום האחרון|ביומיים האחרונים|ב־$1 הימים האחרונים}}",
-       "statistics-mostpopular": "הדפים הנצפים ביותר",
        "pageswithprop": "דפים עם מאפיין דף",
        "pageswithprop-legend": "דפים עם מאפיין דף",
        "pageswithprop-text": "בדף זה מופיעה רשימת דפים שמשתמשים במאפיין דף מסוים.",
        "doubleredirects": "הפניות כפולות",
        "doubleredirectstext": "בדף הזה מופיעה רשימת דפי הפניה שמפנים לדפי הפניה אחרים.\nכל שורה מכילה קישור לשתי ההפניות הראשונות, וכן את היעד של ההפניה השנייה, שהיא לרוב היעד ה\"אמיתי\" של ההפניה, שההפניה הראשונה אמורה להצביע אליו.\nפריטים <del>מחוקים</del> כבר תוקנו.",
        "double-redirect-fixed-move": "הדף [[$1]] הועבר.\nהוא עודכן אוטומטית ועכשיו מפנה לדף [[$2]].",
-       "double-redirect-fixed-maintenance": "תיקון אוטומטי של הפניה כפולה מ[[$1]] ל[[$2]] במשימת תחזוקה.",
+       "double-redirect-fixed-maintenance": "תיקון אוטומטי של הפניה כפולה מהדף [[$1]] אל הדף [[$2]] במשימת תחזוקה.",
        "double-redirect-fixer": "מתקן הפניות",
        "brokenredirects": "הפניות לא תקינות",
        "brokenredirectstext": "ההפניות שלהלן מפנות לדפים שאינם קיימים:",
        "uncategorizedtemplates": "תבניות חסרות קטגוריה",
        "unusedcategories": "קטגוריות שאינן בשימוש",
        "unusedimages": "קבצים שאינם בשימוש",
-       "popularpages": "הדפים הנצפים ביותר",
        "wantedcategories": "קטגוריות מבוקשות",
        "wantedpages": "דפים מבוקשים",
        "wantedpages-badtitle": "כותרת בלתי תקינה ברשימת התוצאות: $1",
        "pager-older-n": "{{PLURAL:$1|הקודמת|$1 הקודמות}}",
        "suppress": "הסתרה",
        "querypage-disabled": "דף מיוחד זה מבוטל עקב בעיות ביצועים.",
+       "apihelp": "עזרה עבור ה־API",
+       "apihelp-no-such-module": "המודול \"$1\" לא נמצא.",
        "booksources": "משאבי ספרות חיצוניים",
        "booksources-search-legend": "חיפוש משאבי ספרות חיצוניים",
        "booksources-isbn": "מסת\"ב (ISBN):",
        "trackingcategories-nodesc": "התיאור אינו זמין.",
        "trackingcategories-disabled": "הקטגוריה מבוטלת",
        "mailnologin": "אין כתובת לשליחה",
-       "mailnologintext": "×¢×\9c×\99×\9b×\9d [[Special:UserLogin|×\9c×\94×\99×\9bנס ×\9c×\97ש×\91×\95×\9f]] ×\95×\9c×\94×\92×\93×\99ר ×\9cעצ×\9e×\9b×\9d ×\9bת×\95×\91ת ×\93×\95×\90ר ×\90×\9cק×\98ר×\95× ×\99 ×ª×§×\99× ×\94 ×\91[[Special:Preferences|×\94×¢×\93פ×\95ת ×\94×\9eשת×\9eש]] ×©×\9c×\9b×\9d ×\9b×\93×\99 ×\9cש×\9c×\95×\97 ×\93×\95×\90ר ×\9c×\9eשת×\9eש ×\90×\97ר.",
+       "mailnologintext": "×\99ש [[Special:UserLogin|×\9c×\94×\99×\9bנס ×\9c×\97ש×\91×\95×\9f]] ×\95×\9c×\94×\92×\93×\99ר ×\9bת×\95×\91ת ×\93×\95×\90ר ×\90×\9cק×\98ר×\95× ×\99 ×ª×§×\99× ×\94 ×\91[[Special:Preferences|×\94×¢×\93פ×\95ת ×\94×\9eשת×\9eש]] ×\9b×\93×\99 ×\9cש×\9c×\95×\97 ×\93×\95×\90ר ×\90×\9cק×\98ר×\95× ×\99 ×\9c×\9eשת×\9eש×\99×\9d ×\90×\97ר×\99×\9d.",
        "emailuser": "שליחת דואר אלקטרוני למשתמש זה",
        "emailuser-title-target": "שליחת דוא\"ל {{GENDER:$1|למשתמש זה|למשתמשת זו}}",
        "emailuser-title-notarget": "שליחת דוא\"ל למשתמש",
        "emailpage": "שליחת דואר למשתמש",
-       "emailpagetext": "ניתן להשתמש בטופס כדי לשלוח הודעת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}.\nכתובת הדואר האלקטרוני שכתבתם ב[[Special:Preferences|העדפות המשתמש שלכם]] תופיע ככתובת שההודעה נשלחה ממנה, כדי לאפשר תגובה ישירה.",
+       "emailpagetext": "ניתן להשתמש בטופס כדי לשלוח הודעת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}.\nכתובת הדואר האלקטרוני שכתבת ב[[Special:Preferences|העדפות המשתמש שלך]] תופיע ככתובת שההודעה נשלחה ממנה, כדי לאפשר תגובה ישירה.",
        "defemailsubject": "דוא\"ל מ{{grammar:תחילית|{{SITENAME}}}} מהמשתמש \"$1\"",
        "usermaildisabled": "שליחת דוא\"ל למשתמשים מבוטלת",
        "usermaildisabledtext": "אינכם רשאים לשלוח דואר אלקטרוני למשתמשים אחרים באתר זה",
        "noemailtext": "משתמש זה לא הזין כתובת דואר אלקטרוני תקינה.",
        "nowikiemailtext": "משתמש זה בחר שלא לקבל דואר אלקטרוני ממשתמשים אחרים.",
        "emailnotarget": "שם המשתמש של הנמען לא קיים או בלתי תקין.",
-       "emailtarget": "×\94ק×\9c×\99×\93×\95 את שם המשתמש של הנמען",
+       "emailtarget": "×\99ש ×\9c×\94×\96×\99×\9f את שם המשתמש של הנמען",
        "emailusername": "שם משתמש:",
        "emailusernamesubmit": "שליחה",
        "email-legend": "שליחת דואר אלקטרוני למשתמש אחר של {{SITENAME}}",
        "emailccsubject": "העתק של הודעתך למשתמש $1: $2",
        "emailsent": "הדואר נשלח",
        "emailsenttext": "הודעת הדואר האלקטרוני שלך נשלחה.",
-       "emailuserfooter": "דואר זה נשלח על ידי $1 למשתמש $2 באמצעות תכונת \"שליחת דואר אלקטרוני למשתמש זה\" ב{{grammar:תחילית|{{SITENAME}}}}.",
+       "emailuserfooter": "דואר זה נשלח על־ידי $1 ל{{GRAMMAR:תחילית|$2}} באמצעות פעולת \"שליחת דואר אלקטרוני למשתמש זה\" באתר {{SITENAME}}.",
        "usermessage-summary": "השארת הודעת מערכת.",
        "usermessage-editor": "שולח הודעות המערכת",
        "watchlist": "רשימת המעקב",
        "mywatchlist": "רשימת מעקב",
        "watchlistfor2": "עבור $1 $2",
        "nowatchlist": "אין דפים ברשימת המעקב.",
-       "watchlistanontext": "×\90× ×\90 ×\94×\99×\9bנס×\95 לחשבון כדי לצפות או לערוך פריטים ברשימת המעקב.",
+       "watchlistanontext": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לצפות או לערוך פריטים ברשימת המעקב.",
        "watchnologin": "לא נכנסת לחשבון",
        "addwatch": "הוספה לרשימת המעקב",
        "addedwatchtext": "הדף \"[[:$1]]\" נוסף ל[[Special:Watchlist|רשימת המעקב]].\nשינויים שייערכו בעתיד בדף זה ובדף השיחה שלו, יוצגו ברשימת המעקב.",
        "unwatching": "בהסרה מרשימת המעקב…",
        "watcherrortext": "אירעה שגיאה בעת שינוי הגדרות רשימת המעקב של \"$1\".",
        "enotif_reset": "סימון כל הדפים כאילו נצפו",
-       "enotif_impersonal_salutation": "×\9eשת×\9eש ×©×\9c {{SITENAME}}",
-       "enotif_subject_deleted": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק על ידי $2",
-       "enotif_subject_created": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר על ידי $2",
-       "enotif_subject_moved": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר על ידי $2",
-       "enotif_subject_restored": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שוחזר על ידי $2",
-       "enotif_subject_changed": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שונה על ידי $2",
+       "enotif_impersonal_salutation": "×\9eשת×\9eש ×\91{{GRAMMAR:ת×\97×\99×\9c×\99ת|{{SITENAME}}}}",
+       "enotif_subject_deleted": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק על־ידי $2",
+       "enotif_subject_created": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר על־ידי $2",
+       "enotif_subject_moved": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר על־ידי $2",
+       "enotif_subject_restored": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שוחזר על־ידי $2",
+       "enotif_subject_changed": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} שונה על־ידי $2",
        "enotif_body_intro_deleted": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נמחק ב־$PAGEEDITDATE על ידי $2, ראו $3.",
        "enotif_body_intro_created": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} נוצר ב־$PAGEEDITDATE על ידי $2, ראו $3 לגרסה הנוכחית.",
        "enotif_body_intro_moved": "הדף $1 ב{{grammar:תחילית|{{SITENAME}}}} הועבר ב־$PAGEEDITDATE על ידי $2, ראו $3 לגרסה הנוכחית.",
        "protect-expiring-local": "פוקעת $1",
        "protect-expiry-indefinite": "בלתי מוגבלת בזמן",
        "protect-cascade": "הגנה על כל הדפים המוכללים בדף זה (הגנה מדורגת)",
-       "protect-cantedit": "×\90×\99× ×\9b×\9d ×\99×\9b×\95×\9c×\99×\9d ×\9cשנ×\95ת ×\90ת ×¨×\9eת ×\94×\94×\92× ×\94 ×¢×\9c ×\93×£ ×\96×\94, ×\9b×\99×\95×\95×\9f ×©×\90×\99×\9f ×\9c×\9b×\9d הרשאה לערוך אותו.",
+       "protect-cantedit": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9a ×\9cשנ×\95ת ×\90ת ×¨×\9eת ×\94×\94×\92× ×\94 ×¢×\9c ×\93×£ ×\96×\94 ×\9b×\99×\95×\95×\9f ×©×\90×\99×\9f ×\9c×\9a הרשאה לערוך אותו.",
        "protect-othertime": "זמן אחר:",
        "protect-othertime-op": "זמן אחר",
        "protect-existing-expiry": "זמן פקיעה נוכחי: $3, $2",
        "ipb_expiry_temp": "חסימות הכוללות הסתרת שם משתמש חייבות להיות לזמן בלתי מוגבל.",
        "ipb_hide_invalid": "לא ניתן להעלים את החשבון הזה; {{PLURAL:$1|בוצעה ממנו יותר מעריכה אחת|בוצעו ממנו יותר מ‏‏֫־$1 עריכות}}.",
        "ipb_already_blocked": "המשתמש \"$1\" כבר נחסם.",
-       "ipb-needreblock": "$1 ×\9b×\91ר × ×\97ס×\9d. ×\94×\90×\9d ×\91רצ×\95× ×\9b×\9d לשנות את הגדרות החסימה?",
+       "ipb-needreblock": "$1 ×\9b×\91ר × ×\97ס×\9d. ×\94×\90×\9d ×\91רצ×\95× ×\9a לשנות את הגדרות החסימה?",
        "ipb-otherblocks-header": "{{PLURAL:$1|חסימה אחרת|חסימות אחרות}}",
        "unblock-hideuser": "לא ניתן לשחרר משתמש זה, כיוון ששם המשתמש שלו הוסתר.",
        "ipb_cant_unblock": "שגיאה: חסימה מספר $1 לא נמצאה. ייתכן שהיא כבר שוחררה.",
        "xffblockreason": "כתובת IP הנמצאת בכותרת X-Forwarded-For, בין אם שלכם או של שרת פרוקסי שאתם משתמשים בו, נחסמה. סיבת החסימה המקורית הייתה: $1",
        "cant-see-hidden-user": "המשתמש שאתם מנסים לחסום כבר נחסם והוסתר.\nכיוון שאין לכם הרשאה להסתרת משתמשים, אין באפשרותכם לצפות בחסימת המשתמש או לערוך אותה.",
        "ipbblocked": "אינכם יכולים לחסום או לשחרר את חסימתם של משתמשים אחרים, כיוון שאתם עצמכם חסומים.",
-       "ipbnounblockself": "×\90×\99× ×\9b×\9d ×¨×©×\90×\99×\9d ×\9cש×\97רר ×\90ת ×\97ס×\99×\9eת×\9b×\9d.",
+       "ipbnounblockself": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9a ×\9c×\91×\98×\9c ×\90ת ×\94×\97ס×\99×\9e×\94 ×©×\9c ×¢×¦×\9e×\9a.",
        "lockdb": "נעילת בסיס נתונים",
        "unlockdb": "שחרור בסיס נתונים",
        "lockdbtext": "נעילת בסיס הנתונים תמנע ממשתמשים את האפשרות לערוך דפים, לשנות את העדפותיהם, לערוך את רשימות המעקב שלהם, ופעולות אחרות הדורשות ביצוע שינויים בבסיס הנתונים.\n\nאנא אשרו שזה מה שאתם מתכוונים לעשות, ושתשחררו את בסיס הנתונים מנעילה כאשר פעולת התחזוקה תסתיים.",
        "unlockconfirm": "כן, ברצוני לשחרר את בסיס הנתונים מנעילה.",
        "lockbtn": "נעילת בסיס הנתונים",
        "unlockbtn": "שחרור בסיס הנתונים מנעילה",
-       "locknoconfirm": "לא סימנתם את תיבת האישור.",
+       "locknoconfirm": "לא סימנת את תיבת האישור.",
        "lockdbsuccesssub": "נעילת בסיס הנתונים הושלמה בהצלחה",
        "unlockdbsuccesssub": "שוחררה הנעילה מבסיס הנתונים",
-       "lockdbsuccesstext": "בסיס הנתונים ננעל.\n\nזכרו [[Special:UnlockDB|לשחרר את הנעילה]] לאחר שפעולת התחזוקה הסתיימה.",
+       "lockdbsuccesstext": "בסיס הנתונים ננעל.<br />\nיש לזכור [[Special:UnlockDB|לשחרר את הנעילה]] לאחר שפעולת התחזוקה תסתיים.",
        "unlockdbsuccesstext": "שוחררה הנעילה של בסיס הנתונים",
        "lockfilenotwritable": "קובץ נעילת בסיס הנתונים אינו ניתן לכתיבה. כדי שאפשר יהיה לנעול את בסיס הנתונים או לבטל את נעילתו, שרת האינטרנט צריך לקבל הרשאות לכתוב אליו.",
        "databasenotlocked": "בסיס הנתונים אינו נעול.",
        "movearticle": "העברת דף:",
        "moveuserpage-warning": "'''אזהרה:''' אתם עומדים להעביר דף משתמש. שימו לב שרק הדף יועבר וששם המשתמש '''לא''' ישתנה.",
        "movecategorypage-warning": "<strong>אזהרה:</strong> אתם עומדים להעביר דף קטגוריה. שימו לב שרק הדף יועבר ושכל הדפים בקטגוריה הישנה <strong>לא</strong> יסווגו לקטגוריה החדשה.",
-       "movenologintext": "עליכם [[Special:UserLogin|להיכנס לחשבון]] כדי להעביר דפים.",
+       "movenologintext": "עליכם להיות רשומים ו[[Special:UserLogin|להיכנס לחשבון]] כדי להעביר דפים.",
        "movenotallowed": "אין לך הרשאה להעביר דפים.",
        "movenotallowedfile": "אין לך הרשאה להעביר קבצים.",
        "cant-move-user-page": "אין לך הרשאה להעביר דפי משתמש (למעט דפי משנה).",
        "movereason": "סיבה:",
        "revertmove": "החזרה",
        "delete_and_move": "מחיקה והעברה",
-       "delete_and_move_text": "== בקשת מחיקה ==\nדף היעד, [[:$1]], כבר קיים. האם ברצונכם למחוק אותו כדי לאפשר את ההעברה?",
+       "delete_and_move_text": "== בקשת מחיקה ==\nדף היעד, \"[[:$1]]\", כבר קיים.\nהאם ברצונך למחוק אותו כדי לאפשר את ההעברה?",
        "delete_and_move_confirm": "אישור מחיקת הדף",
-       "delete_and_move_reason": "מחיקה כדי לאפשר העברה מ[[$1]]",
+       "delete_and_move_reason": "מחיקה כדי לאפשר העברה מהשם \"[[$1]]\"",
        "selfmove": "כותרות המקור והיעד זהות; לא ניתן להעביר דף לעצמו.",
        "immobile-source-namespace": "לא ניתן להעביר דפים במרחב השם \"$1\"",
        "immobile-target-namespace": "לא ניתן להעביר דפים למרחב השם \"$1\"",
        "protectedpagemovewarning": "'''אזהרה:''' דף זה מוגן כך שרק מפעילי מערכת יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
        "semiprotectedpagemovewarning": "'''הערה:''' דף זה מוגן כך שרק משתמשים רשומים יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
        "move-over-sharedrepo": "== הקובץ קיים ==\n[[:$1]] כבר קיים כקובץ משותף. העברת הקובץ לכותרת זו תדרוס את הקובץ המשותף.",
-       "file-exists-sharedrepo": "ק×\95×\91×¥ ×\91ש×\9d ×©× ×\91×\97ר ×\9b×\91ר ×§×\99×\99×\9d ×\9bק×\95×\91×¥ ×\9eש×\95תף.\n×\90× ×\90 ×\91×\97ר×\95 שם אחר.",
+       "file-exists-sharedrepo": "ק×\95×\91×¥ ×\91ש×\9d ×©× ×\91×\97ר ×\9b×\91ר ×§×\99×\99×\9d ×\9bק×\95×\91×¥ ×\9eש×\95תף.\n×\99ש ×\9c×\91×\97×\95ר שם אחר.",
        "export": "ייצוא דפים",
        "exporttext": "באפשרותכם לייצא את התוכן ואת היסטוריית העריכה של דף אחד או של מספר דפים, בתבנית של קובץ XML.\nניתן לייבא את הקובץ למיזם ויקי אחר המשתמש בתוכנת מדיה־ויקי באמצעות [[Special:Import|דף הייבוא]].\n\nכדי לייצא דפים, הקישו את שמותיהם בתיבת הטקסט שלהלן, כל שם בשורה נפרדת, ובחרו האם לייצא גם את הגרסה הנוכחית וגם את היסטוריית השינויים של הדפים, או רק את הגרסה הנוכחית עם מידע על העריכה האחרונה.\n\nבנוסף, ניתן להשתמש בקישור, כגון [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] לדף [[{{MediaWiki:Mainpage}}]] ללא היסטוריית השינויים שלו.",
        "exportall": "ייצוא כל הדפים",
        "import-invalid-interwiki": "לא ניתן לייבא מאתר הוויקי שצוין.",
        "import-error-edit": "לא ניתן לייבא את הדף \"$1\" כיוון שאין לך הרשאה לערוך אותו.",
        "import-error-create": "לא ניתן לייבא את הדף \"$1\" כיוון שאין לך הרשאה ליצור אותו.",
-       "import-error-interwiki": "×\9c×\90 × ×\99ת×\9f ×\9c×\99×\99×\91×\90 ×\90ת ×\94×\93×£ \"$1\" ×\9b×\99×\95×\95×\9f ×©×©×\9e×\95 ×©×\9e×\95ר ×\9cק×\99ש×\95ר ×\97×\99צ×\95× ×\99 (×\91×\99×\9fÖ¾ויקי).",
+       "import-error-interwiki": "×\9c×\90 × ×\99ת×\9f ×\9c×\99×\99×\91×\90 ×\90ת ×\94×\93×£ \"$1\" ×\9b×\99×\95×\95×\9f ×©×©×\9e×\95 ×©×\9e×\95ר ×\9cק×\99ש×\95ר ×\97×\99צ×\95× ×\99 (×\91×\99× ×\95ויקי).",
        "import-error-special": "לא ניתן לייבא את הדף \"$1\" כיוון שהוא שייך למרחב שם מיוחד שלא יכול להכיל דפים.",
        "import-error-invalid": "לא ניתן לייבא את הדף \"$1\" כיוון ששמו אינו תקין.",
        "import-error-unserialize": "לא ניתן היה לפענח את הגרסה $2 של הדף \"$1\". הגרסה מסומנת כאילו היא משתמשת במודל התוכן $3, אך קודדה כ{{GRAMMAR:תחילית|$4}}.",
        "tooltip-pt-mycontris": "רשימת התרומות שלך",
        "tooltip-pt-login": "מומלץ להירשם, אך אין חובה לעשות כן",
        "tooltip-pt-logout": "יציאה מהחשבון",
+       "tooltip-pt-createaccount": "מומלץ ליצור חשבון ולהיכנס אליו; עם זאת, זו אינה חובה",
        "tooltip-ca-talk": "שיחה על דף זה",
        "tooltip-ca-edit": "באפשרותכם לערוך דף זה. אנא השתמשו בלחצן \"תצוגה מקדימה\" לפני השמירה",
        "tooltip-ca-addsection": "הוספת פסקה חדשה",
        "tooltip-n-randompage": "צפייה בדף תוכן אקראי",
        "tooltip-n-help": "עזרה בשימוש באתר",
        "tooltip-t-whatlinkshere": "רשימת כל הדפים המקושרים לכאן",
-       "tooltip-t-recentchangeslinked": "×\94ש×\99× ×\95×\99×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d ×©×\91×\95צע×\95 ×\91×\93פ×\99×\9d ×\94×\9eק×\95שר×\99×\9d ×\9c×\9b×\90×\9f",
+       "tooltip-t-recentchangeslinked": "×\94ש×\99× ×\95×\99×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d ×©×\91×\95צע×\95 ×\91×\93פ×\99×\9d ×\94×\9eק×\95שר×\99×\9d ×\9e×\93×£ ×\96×\94",
        "tooltip-feed-rss": "הזנת RSS עבור דף זה",
        "tooltip-feed-atom": "הזנת Atom עבור דף זה",
        "tooltip-t-contributions": "תרומותיו של משתמש זה",
        "tooltip-t-emailuser": "שליחת דואר אלקטרוני למשתמש זה",
+       "tooltip-t-info": "מידע נוסף על דף זה",
        "tooltip-t-upload": "העלאת קבצים",
        "tooltip-t-specialpages": "רשימת כל הדפים המיוחדים",
        "tooltip-t-print": "גרסה להדפסה של דף זה",
        "anonymous": "{{PLURAL:$1|משתמש אנונימי|משתמשים אנונימיים}} של {{SITENAME}}",
        "siteuser": "משתמש {{SITENAME}} $1",
        "anonuser": "משתמש אנונימי של {{SITENAME}} $1",
-       "lastmodifiedatby": "דף זה שונה לאחרונה בתאריך $2, $1 על ידי $3.",
+       "lastmodifiedatby": "דף זה שונה לאחרונה ב־$2, $1 על־ידי $3.",
        "othercontribs": "מבוסס על העבודה של $1.",
        "others": "אחרים",
        "siteusers": "{{PLURAL:$2|משתמש|משתמשי}} {{SITENAME}} $1",
        "pageinfo-robot-policy": "איסוף על־ידי רובוטים של מנועי חיפוש",
        "pageinfo-robot-index": "מותר",
        "pageinfo-robot-noindex": "אסור",
-       "pageinfo-views": "מספר הצפיות",
        "pageinfo-watchers": "מספר העוקבים אחר הדף",
        "pageinfo-few-watchers": "פחות מ{{PLURAL:$1|עוקב אחד|־$1 עוקבים}}",
        "pageinfo-redirects-name": "מספר ההפניות לדף זה",
        "rcpatroldisabled": "אפשרות סימון השינויים כבדוקים מבוטלת",
        "rcpatroldisabledtext": "תכונת סימון שינויים כבדוקים בדף השינויים האחרונים בוטלה.",
        "markedaspatrollederror": "לא ניתן לסמן כבדוק",
-       "markedaspatrollederrortext": "×¢×\9c×\99×\9b×\9d ×\9cצ×\99×\99×\9f ×\92רס×\94 ×©×ª×¦×\99×\99× ×\95 כבדוקה.",
-       "markedaspatrollederror-noautopatrol": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d ×\9cס×\9e×\9f ×\90ת ×\94ש×\99× ×\95×\99×\99×\9d ×©×\9c ×¢×¦×\9e×\9b×\9d כבדוקים.",
+       "markedaspatrollederrortext": "×\99ש ×\9cצ×\99×\99×\9f ×\92רס×\94 ×©×\91רצ×\95× ×\9a ×\9cס×\9e×\9f כבדוקה.",
+       "markedaspatrollederror-noautopatrol": "×\90×\99× ×\9a ×\9e×\95רש×\94 ×\9cס×\9e×\9f ×©×\99× ×\95×\99×\99×\9d ×©×\9c ×¢×¦×\9e×\9a כבדוקים.",
        "markedaspatrollednotify": "שינוי זה ל\"$1\" סומן כבדוק.",
        "markedaspatrollederrornotify": "סימון השינוי כבדוק נכשל.",
        "patrol-log-page": "יומן שינויים בדוקים",
        "filedelete-archive-read-only": "השרת אינו יכול לכתוב לתיקיית הארכיון \"$1\".",
        "previousdiff": "→ מעבר להשוואת הגרסאות הקודמת",
        "nextdiff": "מעבר להשוואת הגרסאות הבאה ←",
-       "mediawarning": "'''אזהרה:''' סוג קובץ זה עלול להכיל קוד זדוני.\nהרצת הקוד עלולה לסכן את המערכת שלכם.",
+       "mediawarning": "<strong>אזהרה:</strong> סוג קובץ זה עלול להכיל קוד זדוני.\nהרצת הקוד עלולה לסכן את המחשב שלך.",
        "imagemaxsize": "גודל תמונה מרבי:<br />(לדפי תיאור קובץ)",
        "thumbsize": "הקטנה לגודל של:",
        "widthheightpage": "<span dir=\"ltr\">$1 × $2</span>, {{PLURAL:$3|דף אחד|$3 דפים}}",
        "exif-originalimageheight": "גובה התמונה לפני קיטוע",
        "exif-originalimagewidth": "רוחב התמונה לפני קיטוע",
        "exif-compression-1": "לא דחוס",
-       "exif-compression-2": "ק×\99×\93×\95×\93 ×\94×\95פ×\9e×\9f ×\9e×\95×\90ת×\9d ×\97×\93-מימדי לאורך ריצה CCITT קבוצה 3",
+       "exif-compression-2": "ק×\99×\93×\95×\93 ×\94×\95פ×\9e×\9f ×\9e×\95ת×\90×\9d ×\97×\93Ö¾מימדי לאורך ריצה CCITT קבוצה 3",
        "exif-compression-3": "קידוד פקס CCITT קבוצה 3",
        "exif-compression-4": "קידוד פקס CCITT קבוצה 4",
        "exif-compression-6": "JPEG (ישן)",
        "exif-lightsource-2": "פלואורסצנטי",
        "exif-lightsource-3": "טונגסטן (אור מתלהט)",
        "exif-lightsource-4": "מַבזק",
-       "exif-lightsource-9": "מזג אוויר טוב",
-       "exif-lightsource-10": "מזג אוויר מעונן",
+       "exif-lightsource-9": "מזג־אוויר נאה",
+       "exif-lightsource-10": "מזג־אוויר מעונן",
        "exif-lightsource-11": "צל",
        "exif-lightsource-12": "אור יום פלואורסצנטי (D 5700 – 7100K)",
        "exif-lightsource-13": "אור יום לבן פלואורסצנטי (N 4600 – 5400K)",
        "exif-iimcategory-soi": "סוגיות חברתיות",
        "exif-iimcategory-spo": "ספורט",
        "exif-iimcategory-war": "מלחמה, סכסוך והפרת סדר",
-       "exif-iimcategory-wea": "מזג אוויר",
+       "exif-iimcategory-wea": "מזג־אוויר",
        "exif-urgency-normal": "רגילה ($1)",
        "exif-urgency-low": "נמוכה ($1)",
        "exif-urgency-high": "גבוהה ($1)",
        "confirmemail_oncreate": "קוד אימות דוא\"ל נשלח לכתובת הדוא\"ל שלכם. הקוד הזה אינו נדרש לכניסה, אך תצטרכו לספקו כדי להשתמש בכל תכונה מבוססת דוא\"ל באתר זה.",
        "confirmemail_sendfailed": "{{SITENAME}} לא הצליח לשלוח לכם הודעת דוא\"ל עם קוד האימות.\nאנא בדקו שאין תווים שגויים בכתובת הדוא\"ל.\n\nתוכנת שליחת הדוא\"ל החזירה את ההודעה הבאה: $1",
        "confirmemail_invalid": "קוד האימות שגוי. ייתכן שפג תוקפו.",
-       "confirmemail_needlogin": "×¢×\9c×\99×\9b×\9d $1 ×\9b×\93×\99 ×\9c×\90×\9eת ×\90ת ×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×©×\9c×\9b×\9d.",
+       "confirmemail_needlogin": "× ×\93רשת $1 ×\9b×\93×\99 ×\9c×\90×\9eת ×\90ת ×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×©×\9c×\9a.",
        "confirmemail_success": "כתובת הדוא\"ל שלך אושרה.\nכעת באפשרותך [[Special:UserLogin|להיכנס לחשבון שלך]] וליהנות מהאתר.",
        "confirmemail_loggedin": "כתובת הדוא\"ל שלך אושרה כעת.",
        "confirmemail_subject": "קוד אימות דוא\"ל מ{{grammar:תחילית|{{SITENAME}}}}",
        "scarytranscludefailed": "[אחזור התבנית נכשל עבור $1]",
        "scarytranscludefailed-httpstatus": "[אחזור התבנית נכשל עבור $1&rlm;: HTTP $2]",
        "scarytranscludetoolong": "[כתובת ה־URL ארוכה מדי]",
-       "deletedwhileediting": "'''אזהרה:''' דף זה נמחק לאחר שהתחלתם לערוך!",
-       "confirmrecreate": "הדף נמחק על ידי המשתמש [[User:$1|$1]] ([[User talk:$1|שיחה]]) לאחר שהתחלתם לערוך אותו, מסיבה זו:\n:'''$2'''\nאנא אשרו שאתם אכן רוצים ליצור מחדש את הדף.",
-       "confirmrecreate-noreason": "הדף נמחק על ידי המשתמש [[User:$1|$1]] ([[User talk:$1|שיחה]]) לאחר שהתחלתם לערוך אותו.\nאנא אשרו שאתם אכן רוצים ליצור מחדש את הדף.",
+       "deletedwhileediting": "<strong>אזהרה:</strong> דף זה נמחק לאחר שהתחלת לערוך!",
+       "confirmrecreate": "ה{{GENDER:$1|משתמש|משתמשת}} [[User:$1|$1]] ([[User talk:$1|שיחה]]) {{GENDER:$1|מחק|מחקה}} את הדף הזה לאחר שהתחלת לערוך אותו, מהסיבה הבאה:\n: <em>$2</em>\nיש לאשר שאכן ברצונך ליצור מחדש את הדף.",
+       "confirmrecreate-noreason": "ה{{GENDER:$1|משתמש|משתמשת}} [[User:$1|$1]] ([[User talk:$1|שיחה]]) {{GENDER:$1|מחק|מחקה}} את הדף הזה לאחר שהתחלת לערוך אותו. יש לאשר שאכן ברצונך ליצור מחדש את הדף.",
        "recreate": "יצירה מחדש",
        "confirm_purge_button": "אישור",
        "confirm-purge-top": "לנקות את המטמון של דף זה?",
        "lag-warn-high": "בגלל עיכוב בעדכון בסיס הנתונים, שינויים שבוצעו לפני פחות מ{{PLURAL:$1|שנייה אחת|־$1 שניות}} אינם מוצגים ברשימה זו.",
        "watchlistedit-normal-title": "עריכת רשימת המעקב",
        "watchlistedit-normal-legend": "הסרת דפים מרשימת המעקב",
-       "watchlistedit-normal-explain": "×\9b×\9c ×\94×\93פ×\99×\9d ×\91רש×\99×\9eת ×\94×\9eעק×\91 ×\9e×\95צ×\92×\99×\9d ×\9c×\94×\9c×\9f.\n×\9b×\93×\99 ×\9c×\94ס×\99ר ×\93×£, ×\99ש ×\9cס×\9e×\9f ×\90ת ×\94ת×\99×\91×\94 ×\9c×\99×\93×\95, ×\95×\9c×\9c×\97×\95×¥ ×¢×\9c \"{{int:Watchlistedit-normal-submit}}\".\n×\91×\90פשר×\95ת×\9b×\9d גם [[Special:EditWatchlist/raw|לערוך את הרשימה הגולמית]].",
+       "watchlistedit-normal-explain": "×\9b×\9c ×\94×\93פ×\99×\9d ×\91רש×\99×\9eת ×\94×\9eעק×\91 ×\9e×\95צ×\92×\99×\9d ×\9c×\94×\9c×\9f.\n×\9b×\93×\99 ×\9c×\94ס×\99ר ×\93×£, ×\99ש ×\9cס×\9e×\9f ×\90ת ×\94ת×\99×\91×\94 ×\9c×\99×\93×\95, ×\95×\9c×\9c×\97×\95×¥ ×¢×\9c \"{{int:Watchlistedit-normal-submit}}\".\n×\91×\90פשר×\95ת×\9a גם [[Special:EditWatchlist/raw|לערוך את הרשימה הגולמית]].",
        "watchlistedit-normal-submit": "הסרת הדפים",
        "watchlistedit-normal-done": "{{PLURAL:$1|כותרת אחת הוסרה|$1 כותרות הוסרו}} מרשימת המעקב:",
        "watchlistedit-raw-title": "עריכת הרשימה הגולמית",
        "unknown_extension_tag": "תגית בלתי ידועה: \"$1\"",
        "duplicate-defaultsort": "'''אזהרה:''' המיון הרגיל \"$2\" דורס את המיון הרגיל המוקדם ממנו \"$1\".",
        "duplicate-displaytitle": "<strong>אזהרה:</strong> כותרת התצוגה \"$2\" דורסת את כותרת התצוגה הקודמת \"$1\".",
+       "invalid-indicator-name": "<strong>שגיאה:</strong> התכונה <code>name</code> של מצייני מצב הדף אינה יכולה להיות ריקה.",
        "version": "גרסת התוכנה",
        "version-extensions": "הרחבות מותקנות",
        "version-skins": "עיצובים מותקנים",
        "dberr-again": "נסו להמתין מספר שניות ולהעלות מחדש את הדף.",
        "dberr-info": "(לא ניתן ליצור קשר עם שרת הנתונים: $1)",
        "dberr-info-hidden": "(לא ניתן ליצור קשר עם שרת הנתונים)",
-       "dberr-usegoogle": "×\91×\90פשר×\95ת×\9b×\9d ×\9cנס×\95ת ×\9c×\97פש ×\93ר×\9a גוגל בינתיים.",
+       "dberr-usegoogle": "×\91×\90פשר×\95ת×\9a ×\9cנס×\95ת ×\9c×\97פש ×\91×\90×\9eצע×\95ת גוגל בינתיים.",
        "dberr-outofdate": "שימו לב שהתוכן שלנו כפי שנשמר במאגר שם עשוי שלא להיות מעודכן.",
        "dberr-cachederror": "זהו עותק שמור של המידע, והוא עשוי שלא להיות מעודכן.",
        "htmlform-invalid-input": "יש בעיות עם חלק מהקלט שהכנסת",
        "revdelete-uname-unhid": "הסתרת שם המשתמש בוטלה",
        "revdelete-restricted": "נוספו הגבלות למפעילי מערכת",
        "revdelete-unrestricted": "הוסרו הגבלות ממפעילי מערכת",
+       "logentry-merge-merge": "$1 {{GENDER:$2|מיזג|מיזגה}} את $3 לתוך $4 (גרסאות עד $5)",
        "logentry-move-move": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 ל{{GRAMMAR:תחילית|$4}}",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 ל{{GRAMMAR:תחילית|$4}} בלי להשאיר הפניה",
        "logentry-move-move_redir": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 ל{{GRAMMAR:תחילית|$4}} תוך דריסת הפניה",
        "logentry-newusers-autocreate": "חשבון המשתמש $1 {{GENDER:$2|נוצר}} אוטומטית",
        "logentry-rights-rights": "$1 {{GENDER:$2|שינה|שינתה}} את ההרשאות של $3 מ{{GRAMMAR:תחילית|$4}} ל{{GRAMMAR:תחילית|$5}}&rlm;",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|שינה|שינתה}} את ההרשאות של $3&rlm;",
-       "logentry-rights-autopromote": "$1 קודם אוטומטית מ$4 ל$5",
+       "logentry-rights-autopromote": "$1 קודם אוטומטית מ{{GRAMMAR:תחילית|$4}} ל{{GRAMMAR:תחילית|$5}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|העלה|העלתה}} את $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|העלה|העלתה}} גרסה חדשה של $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|העלה|העלתה}} את $3",
        "feedback-error1": "שגיאה: תוצאה לא מזוהה מה־API",
        "feedback-error2": "שגיאה: העריכה נכשלה",
        "feedback-error3": "שגיאה: אין תשובה מה־API",
-       "feedback-thanks": "ת×\95×\93×\94! ×\94×\9eש×\95×\91 ×©×\9c×\9b×\9d פורסם בדף \"[$2 $1]\".",
+       "feedback-thanks": "ת×\95×\93×\94! ×\94×\9eש×\95×\91 ×©×\9c×\9a פורסם בדף \"[$2 $1]\".",
        "feedback-close": "סיום",
        "feedback-bugcheck": "מצוין! נא לבדוק שזה לא אחד מה[$1 באגים הידועים].",
        "feedback-bugnew": "בדקתי. נא לדווח כבאג חדש",
        "api-error-stashfailed": "שגיאה פנימית: השרת נכשל באחסון הקובץ הזמני.",
        "api-error-publishfailed": "שגיאה פנימית: השרת נכשל בפרסום הקובץ הזמני.",
        "api-error-stasherror": "הייתה שגיאה בהעלאת הקובץ למאגר.",
+       "api-error-stashedfilenotfound": "הקובץ שבמאגר לא נמצא בעת הניסיון להעלות אותו מהמאגר.",
+       "api-error-stashpathinvalid": "הנתיב שבו הקובץ שבמאגר אמור היה להימצא היה בלתי תקין.",
+       "api-error-stashfilestorage": "הייתה שגיאה בעת אחסון הקובץ במאגר.",
+       "api-error-stashzerolength": "השרת לא יכול היה לאחסן במאגר את הקובץ, כי אורכו היה אפס.",
+       "api-error-stashnotloggedin": "נדרשת כניסה לחשבון כדי לשמור קבצים במאגר ההעלאות.",
+       "api-error-stashwrongowner": "הקובץ שניסית לגשת אליו במאגר אינו שייך לך.",
+       "api-error-stashnosuchfilekey": "מפתח הקובץ שניסית לגשת אליו במאגר אינו קיים.",
        "api-error-timeout": "השרת לא השיב בזמן המצופה.",
        "api-error-unclassified": "אירעה שגיאה בלתי ידועה.",
        "api-error-unknown-code": "שגיאה בלתי ידועה: \"$1\".",
index c6eeae8..40a390d 100644 (file)
        "mergehistory-same-destination": "स्रोत और लक्ष्य पृष्ठ एक ही नहीं हो सकते हैं",
        "mergehistory-reason": "कारण:",
        "mergelog": "एकत्रीकरण लॉग",
-       "pagemerge-logentry": "[[$2]] में [[$1]] एकत्रित कर दिया ($3 तक के अवतरण)",
        "revertmerge": "अलग करें",
        "mergelogpagetext": "नीचे उन पृष्ठों की सूची है जिनका इतिहास हाल में ही दूसरे पृष्ठ में मिलाया गया था।",
        "history-title": "\"$1\" का अवतरण इतिहास",
        "statistics": "आँकड़े",
        "statistics-header-pages": "पृष्ठ के आँकड़े",
        "statistics-header-edits": "संपादन के आँकड़े",
-       "statistics-header-views": "आँकड़े देखें",
        "statistics-header-users": "सदस्य आँकड़े",
        "statistics-header-hooks": "अन्य आँकड़े",
        "statistics-articles": "सामग्री पृष्ठ",
        "statistics-files": "अपलोड की गई फ़ाइलें",
        "statistics-edits": "{{SITENAME}} बनने के बाद से पृष्ठ संपादन",
        "statistics-edits-average": "प्रति पृष्ठ औसत संपादन",
-       "statistics-views-total": "कुल दृष्य",
-       "statistics-views-total-desc": "अविद्यमान पृष्ठों और विशेष पृष्ठों के लिए दृश्य सम्मिलित नहीं हैं",
-       "statistics-views-peredit": "दृष्य प्रति संपादन",
        "statistics-users": "पंजीकृत [[Special:ListUsers|सदस्य]]",
        "statistics-users-active": "सक्रिय सदस्य",
        "statistics-users-active-desc": "पिछले {{PLURAL:$1|एक दिन|$1 दिनों}} में कुछ गतिविधि रखने वाले सदस्य",
-       "statistics-mostpopular": "सबसे अधिक देखे गए पृष्ठ",
        "pageswithprop": "पृष्ठ जिनमें पृष्ठ गुण हैं",
        "pageswithprop-legend": "पृष्ठ जिनमें पृष्ठ गुण हैं",
        "pageswithprop-text": "यह पृष्ठ पृष्ठ गुण का उपयोग कर रहे पन्नों को सूचीबद्ध करता है।",
        "uncategorizedtemplates": "अश्रेणीकृत साँचे",
        "unusedcategories": "अप्रयुक्त श्रेणियाँ",
        "unusedimages": "अप्रयुक्त फ़ाइलें",
-       "popularpages": "लोकप्रिय पृष्ठ",
        "wantedcategories": "वांछित श्रेणियाँ",
        "wantedpages": "जो पृष्ठ चाहिये",
        "wantedpages-badtitle": "परिणामों में अवैध शीर्षक: $1",
        "pageinfo-robot-policy": "सर्च इंजन बॉट द्वारा अनुक्रमण",
        "pageinfo-robot-index": "अनुमतित",
        "pageinfo-robot-noindex": "नहीं अनुमतित",
-       "pageinfo-views": "दर्शाव की संख्या",
        "pageinfo-watchers": "पृष्ठ पर नज़र रखने वालों की संख्या",
        "pageinfo-few-watchers": "$1 से कम ध्यान देने {{PLURAL:$1|वाला|वाले}}",
        "pageinfo-redirects-name": "इस पृष्ठ को पुनर्निर्देशों की संख्या",
index 2015cef..6b6bdd1 100644 (file)
        "mergehistory-same-destination": "Suruu aur khatam kare waala panna ek nai hoe sake hai.",
        "mergehistory-reason": "Kaaran:",
        "mergelog": "Log ke jorro",
-       "pagemerge-logentry": "[[$1]] [[$2]] me jorr dewa gais hai ($3 talak ke badlao)",
        "revertmerge": "Milawat ke pahile jaise karo",
        "mergelogpagetext": "Niche ke suchi me nawaa itihass ke jorr ke suchi hai",
        "history-title": "\"$1\" ke sansodhan ke itihaas",
        "statistics": "Aankrra",
        "statistics-header-pages": "Panna ke ankrraa",
        "statistics-header-edits": "Statistics ke badlo",
-       "statistics-header-views": "Statistics ke dekho",
        "statistics-header-users": "Sadasya ke statistics",
        "statistics-header-hooks": "Duusra statistics",
        "statistics-articles": "Content panna",
        "statistics-files": "Upload karaa gais files",
        "statistics-edits": "{{SITENAME}} ke suruu hoe se panna ke badlao",
        "statistics-edits-average": "Average badlao per panna",
-       "statistics-views-total": "Views kul jorr",
-       "statistics-views-total-desc": "Jon pana abhi banawa nai gais hae aur khaas panna ke include nai karaa gais hae",
-       "statistics-views-peredit": "Views per badlao",
        "statistics-users": "Registered [[Special:ListUsers|sadasya]]",
        "statistics-users-active": "Active sadasya",
        "statistics-users-active-desc": "Sadasya jon ki pichhle {{PLURAL:$1|din|$1 din}} me kuchh karin hai.",
-       "statistics-mostpopular": "Sab se jaada dekha gae panna",
        "pageswithprop": "Panna, aapan property ke saathe",
        "pageswithprop-legend": "Panna, aapan poperty ke saathe",
        "pageswithprop-text": "Ii panaa, uu panna ke list kare hae jon ki koi khaas panna ke property ke use kare hae.",
        "uncategorizedtemplates": "Bina categorise karaa gais template",
        "unusedcategories": "Bina use bhae category",
        "unusedimages": "Bina use bhae files",
-       "popularpages": "Popular panna",
        "wantedcategories": "Maange waala vibhag",
        "wantedpages": "Jaruri panna",
        "wantedpages-badtitle": "Result set me kharaa title hai: $1",
        "pageinfo-robot-policy": "Search engine ke status",
        "pageinfo-robot-index": "Indexable",
        "pageinfo-robot-noindex": "Indexable nai hae",
-       "pageinfo-views": "Ketna dafe dekha gais hae",
        "pageinfo-watchers": "Ketnaa jane panna ke dekhe hae",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|watcher|watchers}} se kamtii log hae",
        "pageinfo-redirects-name": "Ii panna pe redirect karo",
index d81fe6b..17fe491 100644 (file)
        "mergehistory-same-destination": "Ang ginhalinan kag palakadtuan nga mga panid indi mahimo nga pareho",
        "mergehistory-reason": "Rason:",
        "mergelog": "Isugpon ang log",
-       "pagemerge-logentry": "ginsugpon ang [[$1]] sa [[$2]] (mga pagbag-o asta $3)",
        "revertmerge": "Di pag-upod",
        "mergelogpagetext": "Sa dalom isa ka lista sang mga pinaka-ulihe nga pagsugpon sang isa ka kasaysayan sang panid sa isa pa gid.",
        "history-title": "Rebisyon sang hisayranay sa \"$1\"",
        "brokenredirects-delete": "panason",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "nmembers": "$1 {{PLURAL:$1|membro|mga membro}}",
-       "popularpages": "Ang panid nagakilala gid",
        "prefixindex": "Tanan nga mga pahina nga may-ara prefiks",
        "usercreated": "{{GENDER:$3|Ginhimo}} sa $1 kag $2",
        "newpages": "Mga Bag-o nga Pahina",
index d6aad10..0b3807d 100644 (file)
        "mergehistory-same-destination": "Izvorna i ciljana stranica ne mogu biti iste",
        "mergehistory-reason": "Razlog:",
        "mergelog": "Evidencija spajanja povijesti stranica",
-       "pagemerge-logentry": "spojeno [[$1]] u [[$2]] (promjene do $3)",
        "revertmerge": "Razdvoji",
        "mergelogpagetext": "Slijedi popis posljednjih spajanja povijesti stranica.",
        "history-title": "Povijest izmjena stranice \"$1\"",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistika stranica",
        "statistics-header-edits": "Statistika uređivanja",
-       "statistics-header-views": "Statistika posjećivanja",
        "statistics-header-users": "Statistika suradnika",
        "statistics-header-hooks": "Ostale statistike",
        "statistics-articles": "Stranice sa sadržajem",
        "statistics-files": "Postavljene datoteke",
        "statistics-edits": "Broj uređivanja od nastanka projekta {{SITENAME}}",
        "statistics-edits-average": "Prosječan broj uređivanja po stranici",
-       "statistics-views-total": "Posjeta ukupno",
-       "statistics-views-total-desc": "Posjeti nepostojećim i posebnim stranicama nisu uključeni",
-       "statistics-views-peredit": "Posjeta po uređivanju",
        "statistics-users": "Prijavljeni [[Special:ListUsers|suradnici]]",
        "statistics-users-active": "Aktivni suradnici",
        "statistics-users-active-desc": "Suradnici koji su napravili neku od radnji u posljednjih {{PLURAL:$1|dan|$1 dana}}",
-       "statistics-mostpopular": "Najposjećenije stranice",
        "pageswithprop": "Stranice sa osobinom stranice",
        "pageswithprop-legend": "Stranice sa osobinom stranice",
        "pageswithprop-prop": "Ime osobine:",
        "uncategorizedtemplates": "Nekategorizirani predlošci",
        "unusedcategories": "Nekorištene kategorije",
        "unusedimages": "Nekorištene slike",
-       "popularpages": "Popularne stranice",
        "wantedcategories": "Tražene kategorije",
        "wantedpages": "Tražene stranice",
        "wantedpages-badtitle": "Nevaljani naslov kao rezultat: $1",
        "movelogpage": "Evidencija premještanja",
        "movelogpagetext": "Ispod je popis premještenih stranica.",
        "movesubpage": "{{PLURAL:$1|Podstranica|Podstranice}}",
-       "movesubpagetext": "Ova stranica ima $1 {{PLURAL:$1|podstarnicu|podstranice}} koje su prikazane ispod.",
+       "movesubpagetext": "Ova stranica ima $1 {{PLURAL:$1|podstranicu|podstranice|podstranica}} koje su prikazane ispod.",
        "movenosubpage": "Ova stranica nema podstranica.",
        "movereason": "Razlog:",
        "revertmove": "vrati",
        "pageinfo-robot-policy": "Status tražilice",
        "pageinfo-robot-index": "Stranicu je moguće indeksirati",
        "pageinfo-robot-noindex": "Indeksiranje stranice onemogućeno",
-       "pageinfo-views": "Broj pregleda",
        "pageinfo-watchers": "Broj pratitelja stranice",
        "pageinfo-few-watchers": "Manje od $1 {{PLURAL:$1|suradnika koji prate ovu stranicu|suradnika koji prate ovu stranicu}}",
        "pageinfo-redirects-name": "Broj preusmjeravanja na ovu stranicu",
index ee194cd..301fa9c 100644 (file)
        "mergehistory-same-destination": "Ausgangs- und Zielseit deerfe net identisch sin",
        "mergehistory-reason": "Grund:",
        "mergelog": "Vereinichungs-Logbuch",
-       "pagemerge-logentry": "vereinichte [[$1]] in [[$2]] (Versione bis $3)",
        "revertmerge": "Vereinichung rückgängich mache",
        "mergelogpagetext": "Das ist das Logbuch von der vereinichte Versionsgeschichte.",
        "history-title": "$1: Versionsgeschicht",
        "statistics": "Statistik",
        "statistics-header-pages": "Seitestatistik",
        "statistics-header-edits": "Bearbeitungsstatistik",
-       "statistics-header-views": "Seitenuffrufstatistik",
        "statistics-header-users": "Benutzerstatistik",
        "statistics-header-hooks": "Annre Statistike",
        "statistics-articles": "Inhaltsseite",
        "statistics-files": "Hochgeloodne Dateie",
        "statistics-edits": "Seitebeoorbeitunge",
        "statistics-edits-average": "Beoorbeitunge pro Seit im Doorrichschnitt",
-       "statistics-views-total": "Seitenuffrufe gesamt",
-       "statistics-views-total-desc": "Uffruf net voarhandner Seite und von Spezialseite werre net berücksichticht.",
-       "statistics-views-peredit": "Jede Beoorbeitung ehre Seiteuffrufe",
        "statistics-users": "Registrierte [[Special:ListUsers|Benutzer]]",
        "statistics-users-active": "Aktive Benutzer",
        "statistics-users-active-desc": "Benutzer mit Beoorbeitunge {{PLURAL:$1|während (im verloof von) der letzte 24 Stunde|während (im verloof von) der vergangne $1 Tooche}}",
-       "statistics-mostpopular": "Meistbesuchte Seite",
        "pageswithprop": "Seite mit en Seiteneichenschaft",
        "pageswithprop-legend": "Seite mit en Seiteeichenschaft",
        "pageswithprop-text": "Die Spezialseit tut Seite ufflistiere, wo en bestimmte Seiteeichenschaft verwenne.",
        "uncategorizedtemplates": "Net kategorisierte Vorlage",
        "unusedcategories": "Verwaiste Kategorie",
        "unusedimages": "Verwaiste Dateie",
-       "popularpages": "Beliebteste Seite",
        "wantedcategories": "Gewünschte Kategorie",
        "wantedpages": "Gewünschte Seite",
        "wantedpages-badtitle": "Ungülticher Titel im Ergebnis: $1",
        "pageinfo-robot-policy": "Indizierung doorrich Suchmaschine",
        "pageinfo-robot-index": "Erlaubt",
        "pageinfo-robot-noindex": " Net erlaubt",
-       "pageinfo-views": "Oonzoohl von der Seiteuffrufe",
        "pageinfo-watchers": "Oonzoohl von der Seit ehr Beobachter",
        "pageinfo-few-watchers": "Wenicher wie {{PLURAL:$1|ein|$1}} Beobachter",
        "pageinfo-redirects-name": "Oonzoohl von der Weiterleitunge zu der Seit",
index adb54f6..ee5c85e 100644 (file)
        "mergehistory-same-destination": "Žórłowa a cilowa strona njesmějetej identiskej być",
        "mergehistory-reason": "Přičina:",
        "mergelog": "Protokol zjednoćenja",
-       "pagemerge-logentry": "[[$1]] z [[$2]] zjednoćeny (do $3 {{PLURAL:$3|wersije|wersijow|wersijow|wersijow}})",
        "revertmerge": "Zjednoćenje cofnyć",
        "mergelogpagetext": "Deleka je lisćina najaktualnišich zjednoćenjow stawiznow dweju stronow.",
        "history-title": "$1: Wersijowe stawizny",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistika stronow",
        "statistics-header-edits": "Wobdźěłanska statistika",
-       "statistics-header-views": "Statistiku wobhladać",
        "statistics-header-users": "Statistika wužiwarjow",
        "statistics-header-hooks": "Druha statistika",
        "statistics-articles": "Wobsahowe strony",
        "statistics-files": "Nahrate dataje",
        "statistics-edits": "Změny stronow wot załoženja {{SITENAME}}",
        "statistics-edits-average": "Změny na stronu w přerězku",
-       "statistics-views-total": "Zwobraznjenja dohromady",
-       "statistics-views-total-desc": "Pohlady do njeeksistowacych stronow a specialnych stronow njejsu zapřijate",
-       "statistics-views-peredit": "Zwobraznjenja na změnu",
        "statistics-users": "Zregistrowani [[Special:ListUsers|wužiwarjo]]",
        "statistics-users-active": "Aktiwni wužiwarjo",
        "statistics-users-active-desc": "Wužiwarjo, kotřiž su {{PLURAL:$1|wčera|w zańdźenymaj $1 dnjomaj|w zańdźenych $1 dnjach|w zańdźenych $1 dnjach}} aktiwni byli",
-       "statistics-mostpopular": "Najhusćišo wopytowane strony",
        "pageswithprop": "Strony z kajkosću strony",
        "pageswithprop-legend": "Strony z kajkosću strony",
        "pageswithprop-text": "Tuta strona nalistuje strony, kotrež wěstu kajkosć strony wužiwaja.",
        "uncategorizedtemplates": "Njekategorizowane předłohi",
        "unusedcategories": "Njewužiwane kategorije",
        "unusedimages": "Njewužiwane dataje",
-       "popularpages": "Často wopytowane strony",
        "wantedcategories": "Požadane kategorije",
        "wantedpages": "Požadane strony",
        "wantedpages-badtitle": "Njepłaćiwy titul we wuslědku: $1",
        "pageinfo-robot-policy": "Indicěrowanje přez roboty",
        "pageinfo-robot-index": "Dowoleny",
        "pageinfo-robot-noindex": "Zakazany",
-       "pageinfo-views": "Ličba zwobraznjenjow",
        "pageinfo-watchers": "Ličba wobkedźbowarjow strony",
        "pageinfo-few-watchers": "Mjenje hač $1 {{PLURAL:$1|wobkedźbowar|wobkedźbowarjej|wobkedźbowarje|wobkedźbowarjow}}",
        "pageinfo-redirects-name": "Ličba dalesposrědkowanjow k tutej stronje",
index 0b4cc99..996ca6c 100644 (file)
        "versionrequired": "A MediaWiki $1 verziója szükséges",
        "versionrequiredtext": "A lap használatához a MediaWiki $1 verziójára van szükség.\nTovábbi információkat a [[Special:Version|verzióinformációs lapon]] találsz.",
        "ok": "OK",
+       "pagetitle": "$1 – {{SITENAME}}",
        "retrievedfrom": "A lap eredeti címe: „$1”",
        "youhavenewmessages": "$1 a vitalapodon! ($2 külön is megtekintheted.)",
        "youhavenewmessagesfromusers": "$2 kaptál {{PLURAL:$3|egy|$3}} szerkesztőtől $1!",
        "showpreview": "Előnézet megtekintése",
        "showdiff": "Változtatások megtekintése",
        "blankarticle": "<strong>Figyelem:</strong> A létrehozandó szócikk üres.\nHa ismét a \"{{int:savearticle}}\" gombra kattintasz, a szócikket tartalom nélkül fogod létrehozni.",
-       "anoneditwarning": "'''Figyelem:''' Nem vagy bejelentkezve. Ha szerkesztesz, az IP-címed látható lesz a laptörténetben.",
+       "anoneditwarning": "<strong>Figyelem:</strong> Nem vagy bejelentkezve. Ha szerkesztesz, az IP-címed nyilvánosan látható lesz a laptörténetben. Ha <strong>[$1 bejelentkezel]</strong> vagy <strong>[$2 regisztrálsz]</strong>, a szerkesztéseid a felhasználónevedhez lesznek társítva, egyéb hasznos dolgok mellett.",
        "anonpreviewwarning": "''Nem vagy bejelentkezve. A mentéskor az IP-címed rögzítve lesz a laptörténetben.''",
        "missingsummary": "'''Emlékeztető:''' Nem adtál meg szerkesztési összefoglalót. Ha összefoglaló nélkül akarod elküldeni a szöveget, kattints újra a mentésre.",
        "missingcommenttext": "Kérjük, írj összefoglalót a szerkesztésedhez.",
        "content-model-text": "egyszerű szöveg",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Dupla paramétermegadást tartalmazó lapok",
        "expensive-parserfunction-warning": "Figyelem: ezen a lapon túl sok erőforrásigényes elemzőfüggvény-hívás található.\n\nKevesebb, mint {{PLURAL:$2|egy|$2}} kellene, jelenleg {{PLURAL:$1|egy|$1}} van.",
        "expensive-parserfunction-category": "Túl sok költséges elemzőfüggvény-hívást tartalmazó lapok",
        "post-expand-template-inclusion-warning": "Figyelem: a beillesztett sablonok mérete túl nagy.\nNéhány sablon nem fog megjelenni.",
        "parser-template-recursion-depth-warning": "A sablon rekurzív beillesztésének mélysége átlépte a határérékét ($1)",
        "language-converter-depth-warning": "A nyelvátalakító rekurzióinak száma túllépve ($1)",
        "node-count-exceeded-category": "Lapok, ahogy a csomópontszám túl nagy",
-       "node-count-exceeded-category-desc": "Azon oldalaknak a kategóriája, ahol a csomópontszám túl nagy.",
-       "node-count-exceeded-warning": "Az oldal meghaladta a csomópont számot",
+       "node-count-exceeded-category-desc": "A lap túllépi a maximális csomópontszámot.",
+       "node-count-exceeded-warning": "Az oldal meghaladta a csomópontszámot",
        "expansion-depth-exceeded-category": "Lapok, melyeken a sablonok kibontása meghaladja a megengedett szintet",
        "expansion-depth-exceeded-warning": "A lap meghaladta az engedélyezett kiterjesztési mélységet",
        "parser-unstrip-loop-warning": "Unstrip hurok észlelve",
        "mergehistory-same-destination": "A forrás- és a céllap nem egyezhet meg",
        "mergehistory-reason": "Ok:",
        "mergelog": "Egyesítési napló",
-       "pagemerge-logentry": "[[$1]] és [[$2]] egyesítve ($3 változatig)",
        "revertmerge": "Szétválasztás",
        "mergelogpagetext": "A lapok egyesítéséről szóló napló. Szűkítheted a listát a műveletet végző szerkesztő, vagy az érintett oldal megadásával.",
        "history-title": "A(z) „$1” laptörténete",
        "search-result-category-size": "$1 oldal, $2 alkategória, $3 fájl",
        "search-redirect": "(átirányítva innen: $1)",
        "search-section": "($1 szakasz)",
+       "search-file-match": "(fájl tartalma egyezik)",
        "search-suggest": "Keresési javaslat: $1",
        "search-interwiki-caption": "Társlapok",
        "search-interwiki-default": "$1 találatok:",
        "prefs-advancedwatchlist": "Haladó beállítások",
        "prefs-displayrc": "Megjelenítési beállítások",
        "prefs-displaywatchlist": "Megjelenítési beállítások",
+       "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Eltérések (diffek)",
        "prefs-help-prefershttps": "A beállítás a legközelebbi belépés után lép érvénybe.",
        "email-address-validity-valid": "Az e-mail cím érvényesnek tűnik",
        "randompage-nopages": "A következő {{PLURAL:$2|névtérben|névterekben}} nincsenek lapok: $1.",
        "randomincategory": "Véletlen lap egy kategóriából",
        "randomincategory-invalidcategory": "\"$1\" nem egy érvényes kategória neve.",
+       "randomincategory-nopages": "Nincsenek lapok a [[:Category:$1|$1]] kategóriában.",
        "randomincategory-category": "Kategória:",
        "randomincategory-legend": "Véletlen lap a kategóriából",
        "randomredirect": "Átirányítás találomra",
        "statistics": "Statisztika",
        "statistics-header-pages": "Lapstatisztikák",
        "statistics-header-edits": "Szerkesztési statisztika",
-       "statistics-header-views": "Látogatási statisztika",
        "statistics-header-users": "Szerkesztői statisztika",
        "statistics-header-hooks": "További statisztikák",
        "statistics-articles": "Tartalommal rendelkező lapok",
        "statistics-files": "Feltöltött fájlok",
        "statistics-edits": "Szerkesztések száma a(z) {{SITENAME}} indulása óta",
        "statistics-edits-average": "Szerkesztések átlagos száma laponként",
-       "statistics-views-total": "Összes megtekintés",
-       "statistics-views-total-desc": "A nem létező és speciális lapok megtekintési adatai nincsenek beleszámolva.",
-       "statistics-views-peredit": "Megtekintések szerkesztésenként",
        "statistics-users": "Regisztrált [[Speciális:Szerkesztők listája|szerkesztők]]",
        "statistics-users-active": "Aktív szerkesztők",
        "statistics-users-active-desc": "Szerkesztők, akik csináltak valamit az elmúlt {{PLURAL:$1|egy|$1}} napban",
-       "statistics-mostpopular": "Legtöbbször megtekintett lapok",
+       "pageswithprop-prop": "Tulajdonságnév:",
+       "pageswithprop-submit": "Ugrás",
        "doubleredirects": "Dupla átirányítások",
        "doubleredirectstext": "Ez a lap azokat a lapokat listázza, melyek átirányító lapokra irányítanak át.\nMinden sor tartalmaz egy hivatkozást az első, valamint a második átirányításra, valamint a második átirányítás céljára, ami általában a valódi céllap, erre kellene az első átirányításnak mutatnia.\nAz <del>áthúzott</del> sorok a lista elkészülése óta javítva lettek.",
        "double-redirect-fixed-move": "[[$1]] áthelyezve.\nAutomatikusan frissült, és mostantól a(z) [[$2]] lapra irányít át.",
        "uncategorizedtemplates": "Kategorizálatlan sablonok",
        "unusedcategories": "Nem használt kategóriák",
        "unusedimages": "Nem használt fájlok",
-       "popularpages": "Népszerű lapok",
        "wantedcategories": "Keresett kategóriák",
        "wantedpages": "Keresett lapok",
        "wantedpages-badtitle": "Érvénytelen cím található az eredményhalmazban: $1",
        "protectedpages-noredirect": "Átirányítások elrejtése",
        "protectedpagesempty": "Jelenleg nincsenek ilyen paraméterekkel védett lapok.",
        "protectedpages-timestamp": "Időbélyeg",
+       "protectedpages-page": "Lap",
        "protectedpages-expiry": "Lejárat",
        "protectedpages-performer": "A levédést végrehajtó szerkesztő",
        "protectedpages-params": "A védelem paraméterei",
        "pager-older-n": "{{PLURAL:$1|1 régebbi|$1 régebbi}}",
        "suppress": "adatvédelmi biztos",
        "querypage-disabled": "Ez a speciális lap a megfelelő teljesítmény fenntartása érdekében le van tiltva.",
+       "apihelp": "API segítség",
+       "apihelp-no-such-module": "A(z) „$1\" modul nem található.",
        "booksources": "Könyvforrások",
        "booksources-search-legend": "Könyvforrások keresése",
        "booksources-search": "Keresés",
        "listgrouprights-removegroup-self-all": "az összes csoporból eltávolíthatja a saját fiókját",
        "listgrouprights-namespaceprotection-header": "Névtér korlátozások",
        "listgrouprights-namespaceprotection-namespace": "Névtér",
+       "trackingcategories-name": "Üzenetnév",
        "trackingcategories-nodesc": "Nem található leírás.",
        "trackingcategories-disabled": "A kategória le van tiltva",
        "mailnologin": "Nincs feladó",
        "protect-locked-dblock": "A védelmi szinteket egy aktív adatbázis zárolás miatt nem változtathatod meg.\nItt vannak a(z) '''$1''' lap jelenlegi beállításai:",
        "protect-locked-access": "A fiókod számára nem engedélyezett a védelmi szintek megváltoztatása.\nItt vannak a(z) '''$1''' lap jelenlegi beállításai:",
        "protect-cascadeon": "A lap jelenleg le van védve, mert {{PLURAL:$1|tartalmazza az alábbi lap, amelyen|tartalmazzák az alábbi lapok, amelyeken}} be van kapcsolva a kaszkád védelem.\nEzen lap védelmi szintjének megváltoztatása nem lesz hatással a kaszkád védelemre.",
-       "protect-default": "Minden szerkesztő számára engedélyezett",
-       "protect-fallback": "\"$1\" engedély szükséges hozzá",
-       "protect-level-autoconfirmed": "Csak automatikusan megerősített szerkesztőknek engedélyezett (nem vagy frissen regisztráltaknak nem)",
+       "protect-default": "minden szerkesztő számára engedélyezett",
+       "protect-fallback": "„$1”-i engedély szükséges hozzá",
+       "protect-level-autoconfirmed": "automatikusan megerősített szerkesztők számára",
        "protect-level-sysop": "csak adminisztrátoroknak engedélyezett",
        "protect-summary-cascade": "kaszkád védelem",
        "protect-expiring": "lejár: $1 (UTC)",
        "pageinfo-robot-policy": "Indexelés robottal",
        "pageinfo-robot-index": "Engedélyezett",
        "pageinfo-robot-noindex": "Nem engedélyezett",
-       "pageinfo-views": "Megtekintések száma",
        "pageinfo-watchers": "Figyelők száma",
        "pageinfo-few-watchers": "Kevesebb mint $1 szerkesztő figyeli",
        "pageinfo-redirects-name": "Átirányítások száma erre a lapra",
        "watchlistedit-raw-done": "A figyelőlistád változtatásait elmentettem.",
        "watchlistedit-raw-added": "A {{PLURAL:$1|következő|következő $1}} cikket hozzáadtam a figyelőlistádhoz:",
        "watchlistedit-raw-removed": "A {{PLURAL:$1|következő|következő $1}} cikket eltávolítottam a figyelőlistádról:",
+       "watchlisttools-clear": "A figyelőlista kiürítése",
        "watchlisttools-view": "Kapcsolódó változtatások",
        "watchlisttools-edit": "A figyelőlista megtekintése és szerkesztése",
        "watchlisttools-raw": "A nyers figyelőlista szerkesztése",
        "version-entrypoints-header-entrypoint": "Belépési pont",
        "version-entrypoints-header-url": "URL",
        "redirect": "Átirányítás fájl, szerkesztő, oldal vagy oldalváltozat alapján",
+       "redirect-legend": "Átirányítás egy fájlra vagy lapra",
+       "redirect-submit": "Mehet",
        "redirect-lookup": "Keresés:",
        "redirect-value": "Érték:",
        "redirect-user": "Felhasználói azonosító",
        "action-pagelang": "oldal nyelvének módosítása",
        "log-name-pagelang": "Nyelvváltoztatások naplója",
        "log-description-pagelang": "Ebben a naplóban a lap nyelvének változásait követheted nyomon.",
+       "mediastatistics": "Feltöltött fájlok statisztikája",
+       "mediastatistics-summary": "Az alábbi statisztika a feltöltött fájlok alapján készült, mely a fájlok legfrissebb változatát tartalmazza a régi, vagy törölt fájlok kivételével.",
        "mediastatistics-table-mimetype": "MIME-típus",
        "mediastatistics-table-extensions": "Lehetséges kiterjesztések",
        "mediastatistics-table-count": "Fájlok száma",
        "mediastatistics-header-drawing": "Rajzok (vektoros képek)",
        "mediastatistics-header-audio": "Hang",
        "mediastatistics-header-video": "Videók",
-       "mediastatistics-header-office": "Iroda",
+       "mediastatistics-header-multimedia": "Interaktív média",
+       "mediastatistics-header-office": "Dokumentumok",
        "mediastatistics-header-text": "Szöveges",
        "mediastatistics-header-executable": "Futtatható",
-       "mediastatistics-header-archive": "Tömörített formátumok"
+       "mediastatistics-header-archive": "Tömörített formátumok",
+       "json-error-unknown": "Hiba volt a JSON-ban. Hiba: $1",
+       "json-error-state-mismatch": "Érvénytelen vagy hibás JSON",
+       "json-error-syntax": "Szintaktikai hiba",
+       "json-error-utf8": "Hibás UTF-8 karakter, esetleg helytelenül kódolt"
 }
index 2062da1..d2b2948 100644 (file)
@@ -57,6 +57,7 @@
        "tog-showhiddencats": "Ցուցադրել թաքնված կատեգորիաները",
        "tog-norollbackdiff": "Չցուցադրել տարբերությունները հետ գլորելուց հետո",
        "tog-useeditwarning": "Զգուշացնել ինձ, երբ ես լքում եմ խմբագրման էջը առանց կատարած փոփոխությունները հիշելու։",
+       "tog-prefershttps": "Մուտք գործելուց հետո, միշտ գործածել անվնտանգ միացումից (HTTPS)",
        "underline-always": "Միշտ",
        "underline-never": "Երբեք",
        "underline-default": "Դիտարկչի կամ թեմայի լռելյայն ոճով",
        "hidetoc": "թաքցնել",
        "collapsible-collapse": "Ծալել",
        "collapsible-expand": "Բացել",
-       "confirmable-confirm": "{{GENDER:$1|Դուք}} վստա՞հ եք:",
+       "confirmable-confirm": "{{GENDER:$1|Դուք}} վստա՞հ եք։",
        "confirmable-yes": "Այո",
        "confirmable-no": "Ոչ",
        "thisisdeleted": "Դիտե՞լ կամ վերականգնե՞լ $1։",
        "viewsource-title": "Դիտել $1 էջի աղբյուրը",
        "actionthrottled": "Գործողությունը արգելափակվեց",
        "actionthrottledtext": "Որպես հակա-սպամային միջոց, այս գործողության չափից շատ կատարումը կարճ ժամանակահատվածի ընթացքում սահմանափակված է։ Խնդրում ենք փորձել կրկին մի քանի րոպե անց։",
-       "protectedpagetext": "Ô±ÕµÕ½ Õ§Õ»Õ¨ Õ¯Õ¸Õ²ÕºÕ¾Õ¡Õ® Õ§ Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö\80։",
+       "protectedpagetext": "Ô±ÕµÕ½ Õ§Õ»Õ¨ ÕºÕ¡Õ·Õ¿ÕºÕ¡Õ¶Õ¾Õ¡Õ® Õ§ Õ­Õ´Õ¢Õ¡Õ£Õ¸Ö\82Õ´Õ¶Õ¥Ö\80Õ«Ö\81։",
        "viewsourcetext": "Դուք կարող եք դիտել և պատճենել այս էջի ելատեքստը.",
        "viewyourtext": "Դուք կարող եք դիտել «ձեր ներդրումների» աղբյուրը և պատճենել այս էջ",
        "protectedinterface": "Այս էջը պարունակում է ծրագրային ապահովման միջերեսի տեքստ, և պաշտպանված է չարաշահումների կանխարգելման նպատակով։\nԲոլոր վիքիների թարգմանությունները փոփոխելու կամ ավելացնելու համար, խնդրում ենք այցելել ՄեդիաՎիքիի տեղայնացման նախագիծը՝ [//translatewiki.net/ translatewiki.net]։",
        "passwordtooshort": "Գաղտնաբառը պետք է պարունակի առնվազն {{PLURAL:$1|1 սիմվոլ|$1 սիմվոլ}}։",
        "password-name-match": "Գաղտնաբառը պետք է տարբեր լինել ձեր մասնակցի անունից։",
        "password-login-forbidden": "Այս ծածկանվան և գաղտնաբառի օգտագործումն արգելված է",
-       "mailmypassword": "Õ\8eÕ¥Ö\80Õ¡Õ¯Õ¡Õ¶Õ£Õ¶ել գաղտնաբառը",
+       "mailmypassword": "Õ\93Õ¸Õ­ել գաղտնաբառը",
        "passwordremindertitle": "Նոր ժամանակավոր գաղտնաբառ {{grammar:genitive|{{SITENAME}}}} համար",
        "passwordremindertext": "Ինչ-որ մեկը (հավանաբար դուք՝ $1 IP-հասցեից) խնդրել է նոր գաղտնաբառ {{grammar:genitive|{{SITENAME}}}} ($4)։ «$2» մասնակցի ժամանակավոր գաղտնաբառն է՝ <code>$3</code>։ Եթե սա իսկապես ձեր մտադրություններ, ապա ձեզ հարկավոր է մտնել համակարգ և փոխել գաղտնաբառը։ Ձեր ժամանակավոր գաղտնաբառը գործելու է {{PLURAL:$5|օր|$5 օր}}։\n\nԵթե դուք չեք արել այսպիսի հայցում կամ արդեն հիշել եք ձեր գաղտնաբառը և մտադրություն չունեք այն փոխել, ապա կարող եք անտեսել այս ուղերձը և շարունակել օգտվել ձեր հին գաղտնաբառից։",
        "noemail": "«$1» մասնակցի համար էլ-փոստի հասցե չի նշվել։",
        "showpreview": "Նախադիտել",
        "showdiff": "Կատարված փոփոխությունները",
        "anoneditwarning": "'''Ուշադրություն.''' Դուք չեք մտել համակարգ։\nՁեր IP հասցեն կգրանցվի այս էջի խմբագրումների պատմության մեջ։",
-       "anonpreviewwarning": "Դուք չեք մտել համակարգ։\n''Հիշելով ձեր կատարած խմբագրումը, այն կգրանցվի Ձեր IP հասցեի ներքո այս էջի խմբագրումների պատմության մեջ։''",
+       "anonpreviewwarning": "<em>Դուք չեք մտել համակարգ։\nՀիշելով Ձեր կատարած խմբագրումը, այն կպահանվի Ձեր IP հասցեի հետ միասին այս էջի խմբագրումների պատմության մեջ։</em>",
        "missingsummary": "'''Հիշեցում.''' Դուք չեք տվել խմբագրման ամփոփում։ «Հիշել» կոճակի կրկնակի մատնահարման դեպքում փոփոխությունները կհիշվեն առանց ամփոփման։",
        "missingcommenttext": "Խնդրում ենք մեկնաբանություն ավելացնել ստորև։",
        "missingcommentheader": "'''Հիշեցում.''' Դուք չեք նշել մեկնաբանության վերնագիրը։ «Հիշել» կոճակի կրկնակի մատնահարման դեպքում ձեր մեկնաբանությունը կհիշվի առանց վերնագրի։",
        "recentchanges-label-minor": "Սա չնչին խմբագրում է",
        "recentchanges-label-bot": "Այս խմբագրումը կատարվել է բոտի կողմից",
        "recentchanges-label-unpatrolled": "Այս խմբագրումը դեռ չի պարեկվել",
-       "recentchanges-label-plusminus": "Ô·Õ»Õ« Õ¹Õ¡Ö\83Õ½Õ¶ Ö\83Õ¸Õ­Õ¸Õ­Õ¾Õ¥Ö\81 Õ¡ÕµÕ½Ö\84Õ¡Õ¶ Õ¢Õ¡ÕµÕ©Õ¸Õ¾Ö\89",
+       "recentchanges-label-plusminus": "Ô·Õ»Õ« Õ¹Õ¡Ö\83Õ½Õ¨ Ö\83Õ¸Ö\83Õ¸Õ­Õ¾Õ¥Ö\81 Õ¡ÕµÕ½Ö\84Õ¡Õ¶ Õ¢Õ¡ÕµÕ©Õ¸Õ¾",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (տես նաև՝  [[Special:NewPages|նոր էջերի ցանկ]])",
        "rcnotefrom": "Ստորև բերված են փոփոխությունները սկսած՝ '''$2''' (մինչև՝ '''$1''')։",
        "rclistfrom": "Ցույց տալ նոր փոփոխությունները սկսած $3 $2",
        "statistics": "Վիճակագրություն",
        "statistics-header-pages": "Էջերի վիճակագրություն",
        "statistics-header-edits": "Խմբագրումների վիճակագրություն",
-       "statistics-header-views": "Դիտումների վիճակագրություն",
        "statistics-header-users": "Մասնակիցների վիճակագրություն",
        "statistics-header-hooks": "Այլ վիճակագրություն",
        "statistics-articles": "Հոդվածներ",
        "statistics-files": "Բեռնված նիշքեր",
        "statistics-edits": "Խմբագրումները {{SITENAME}} կայքի տեղադրումից ի վեր",
        "statistics-edits-average": "Էջի խմբագրումների միջին թիվը",
-       "statistics-views-total": "Ընդհանուր դիտումներ",
-       "statistics-views-peredit": "Դիտումներ ամեն մի խմբագրման համար",
        "statistics-users": "Գրանցված [[Special:ListUsers|մասնակիցներ]]",
        "statistics-users-active": "Ակտիվ մասնակիցներ",
        "statistics-users-active-desc": "Վերջին {{PLURAL:$1|օր|$1 օր}}ում որևէ գործողություն են կատարած մասնակիցներ",
-       "statistics-mostpopular": "Ամենահաճախ դիտվող էջեր",
        "pageswithprop-submit": "Անցնել",
        "doubleredirects": "Կրկնակի վերահղումներ",
        "doubleredirectstext": "Այս էջում բերված են վերահղման էջերին վերահղող էջերը։ Յուրաքանչյուր տող պարունակում է հղումներ դեպի առաջին և երկրորդ վերահղումները, ինչպես նաև երկրորդ վերահղման նպատակային էջի առաջին տողը, որում սովորաբար նշված է էջի անվանումը, որին պետք է հղի նաև առաջին վերահղումը։",
        "uncategorizedtemplates": "Չդասակարգված կաղապարներ",
        "unusedcategories": "Չօգտագործվող կատեգորիաներ",
        "unusedimages": "Չօգտագործվող նիշքեր",
-       "popularpages": "Հաճախ այցելվող էջեր",
        "wantedcategories": "Անհրաժեշտ կատեգորիաներ",
        "wantedpages": "Անհրաժեշտ էջեր",
        "wantedfiles": "Անհրաժեշտ նիշքեր",
        "pageinfo-robot-policy": "Կարգավիճակը որոնողական համակարգերում",
        "pageinfo-robot-index": "ինդեքսավորվող",
        "pageinfo-robot-noindex": "ինդեքսավորվող չէ",
-       "pageinfo-views": "Դիտումների քանակ",
        "pageinfo-watchers": "Դիտողների քանակ",
        "pageinfo-redirects-name": "վերահղումներ այս էջին",
        "pageinfo-subpages-name": "Ենթաէջեր",
        "confirm-watch-button": "ԼԱՎ",
        "confirm-watch-top": "Ավելացնե՞լ ձեր հսկացանկին",
        "confirm-unwatch-button": "ԼԱՎ",
-       "confirm-unwatch-top": "Õ\80Õ¥Õ¼Õ¡Ö\81Õ¶Õ¥Õ\9eÕ¬ Õ±եր հսկացանկից։",
+       "confirm-unwatch-top": "Õ\80Õ¥Õ¼Õ¡Ö\81Õ¶Õ¥Õ\9eÕ¬ Õ\81եր հսկացանկից։",
        "imgmultipageprev": "← նախորդ էջ",
        "imgmultipagenext": "հաջորդ էջ →",
        "imgmultigo": "Անցնե՛լ",
index eb24cad..24aaeee 100644 (file)
        "viewsourcetext": "Tu pote vider e copiar le codice-fonte de iste pagina:",
        "viewyourtext": "Tu pote vider e copiar le fonte de '''tu modificationes''' de iste pagina:",
        "protectedinterface": "Iste pagina contine texto pro le interfacie del software de iste wiki, e es protegite pro impedir le abuso. Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.",
-       "editinginterface": "'''Attention:''' Le texto de iste pagina face parte del interfacie pro le software.\nOmne modification a iste pagina cambiara le apparentia del interfacie pro altere usatores de iste wiki.\nPro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.",
+       "editinginterface": "<strong>Attention:</strong> Le texto de iste pagina face parte del interfacie pro le software.\nOmne modification apportate a iste pagina cambiara le apparentia del interfacie pro altere usatores de iste wiki.",
+       "translateinterface": "Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de localisation de MediaWiki.",
        "cascadeprotected": "Iste pagina ha essite protegite contra modificationes, proque illo es includite in le sequente {{PLURAL:$1|pagina, le qual|paginas, le quales}} es protegite usante le option \"cascada\":\n$2",
        "namespaceprotected": "Tu non ha le permission de modificar paginas in le spatio de nomines '''$1'''.",
        "customcssprotected": "Tu non ha le permission de modificar iste pagina de CSS perque illo contine le configuration personal de un altere usator.",
        "content-model-text": "texto simple",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Paginas que usa parametros duplicate in appellos de patrono",
+       "duplicate-args-category-desc": "Le pagina contine appellos de patrono que usa duplicatos de parametros, como per exemplo <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Attention: Iste pagina contine troppo de appellos costose al functiones del analysator syntactic.\n\nIllo debe haber minus de $2 {{PLURAL:$2|appello|appellos}}, sed al momento ha $1 {{PLURAL:$1|appello|appellos}}.",
        "expensive-parserfunction-category": "Paginas con troppo de appellos costose al functiones del analysator syntactic",
        "post-expand-template-inclusion-warning": "'''Attention:''' Le grandor del patronos includite ha excedite le maximo.\nAlcun patronos non essera includite.",
        "mergehistory-same-destination": "Le paginas de origine e de destination non pote esser le mesme",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Registro de fusiones",
-       "pagemerge-logentry": "fusionava [[$1]] in [[$2]] (versiones usque a $3)",
        "revertmerge": "Disfusionar",
        "mergelogpagetext": "Infra es un lista del fusiones le plus recente de un historia de pagina in un altere.",
        "history-title": "$1: Historia de versiones",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoria|$2 subcategorias}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirection ab $1)",
        "search-section": "(section $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(corresponde al contento del file)",
        "search-suggest": "Esque tu vole dicer: $1",
        "search-interwiki-caption": "Projectos fratres",
        "gender-female": "Illa modifica paginas wiki",
        "prefs-help-gender": "Definir iste preferentia es optional.\nLe software lo usa pro adressar e mentionar te correctemente con le genere appropriate.\nIste information es public.",
        "email": "E-mail",
-       "prefs-help-realname": "Le nomine real es optional.\nSi tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contributiones.",
+       "prefs-help-realname": "Le nomine real es optional.\nSi fornite, illo pote esser usate pro attribuer te tu travalio.",
        "prefs-help-email": "Le adresse de e-mail es optional, ma es necessari pro le reinitialisation de tu contrasigno, in caso que tu lo oblida.",
        "prefs-help-email-others": "Tu pote etiam optar pro permitter que altere personas te contacta via tu pagina de usator o de discussion, sin necessitate de revelar tu identitate.",
        "prefs-help-email-required": "Un adresse de e-mail es obligatori.",
        "statistics": "Statisticas",
        "statistics-header-pages": "Statisticas de paginas",
        "statistics-header-edits": "Statisticas de modificationes",
-       "statistics-header-views": "Statisticas de visitas",
        "statistics-header-users": "Statisticas de usatores",
        "statistics-header-hooks": "Altere statisticas",
        "statistics-articles": "Paginas de contento",
        "statistics-files": "Files incargate",
        "statistics-edits": "Modificationes de paginas depost le installation de {{SITENAME}}",
        "statistics-edits-average": "Media del modificationes per pagina",
-       "statistics-views-total": "Visitas total",
-       "statistics-views-total-desc": "Le visitas a paginas inexistente e special non es includite",
-       "statistics-views-peredit": "Visitas per modification",
        "statistics-users": "[[Special:ListUsers|Usatores]] registrate",
        "statistics-users-active": "Usatores active",
        "statistics-users-active-desc": "Usatores qui ha facite un action durante le {{PLURAL:$1|die|$1 dies}} passate",
-       "statistics-mostpopular": "Le paginas plus visitate",
        "pageswithprop": "Paginas con un proprietate de pagina",
        "pageswithprop-legend": "Paginas con un proprietate de pagina",
        "pageswithprop-text": "Iste pagina lista le paginas que usa un certe proprietate de pagina.",
        "uncategorizedtemplates": "Patronos sin categoria",
        "unusedcategories": "Categorias non usate",
        "unusedimages": "Imagines non usate",
-       "popularpages": "Paginas popular",
        "wantedcategories": "Categorias plus demandate",
        "wantedpages": "Paginas plus demandate",
        "wantedpages-badtitle": "Titulo invalide in le gruppo de resultatos: $1",
        "pager-older-n": "{{PLURAL:$1|1 minus recente|$1 minus recente}}",
        "suppress": "Supervisor",
        "querypage-disabled": "Iste pagina special es disactivate pro evitar de supercargar le systema.",
+       "apihelp": "Adjuta con le API",
+       "apihelp-no-such-module": "Modulo \"$1\" non trovate.",
        "booksources": "Fontes de libros",
        "booksources-search-legend": "Cercar fontes de libros",
        "booksources-search": "Cercar",
        "wlheader-enotif": "Le notification via e-mail es active.",
        "wlheader-showupdated": "Le paginas que ha essite modificate post tu ultime visita se monstra in litteras '''grasse'''.",
        "wlnote": "Ecce le ultime {{PLURAL:$1|modification|<strong>$1</strong> modificationes}} durante le ultime {{PLURAL:$2|hora|<strong>$2</strong> horas}}, a partir del $3 a $4.",
-       "wlshowlast": "Revelar ultime $1 horas $2 dies",
+       "wlshowlast": "Monstrar le ultime $1 horas $2 dies",
        "watchlist-options": "Optiones del observatorio",
        "watching": "Observation in curso...",
        "unwatching": "Disobservation in curso...",
        "tooltip-pt-mycontris": "Lista de tu contributiones",
        "tooltip-pt-login": "Nos recommenda que tu te authentica, ma non es obligatori.",
        "tooltip-pt-logout": "Clauder session",
+       "tooltip-pt-createaccount": "Tu es incoragiate a crear un conto e aperir session; totevia, non es obligatori",
        "tooltip-ca-talk": "Discussiones a proposito del pagina de contento",
        "tooltip-ca-edit": "Tu pote modificar iste pagina.\nPer favor usa le previsualisation ante de publicar.",
        "tooltip-ca-addsection": "Initiar un nove section",
        "tooltip-feed-atom": "Syndication Atom pro iste pagina",
        "tooltip-t-contributions": "Vider le lista de contributiones de iste usator",
        "tooltip-t-emailuser": "Inviar un e-mail a iste usator",
+       "tooltip-t-info": "Plus information super iste pagina",
        "tooltip-t-upload": "Incargar files",
        "tooltip-t-specialpages": "Lista de tote le paginas special",
        "tooltip-t-print": "Version imprimibile de iste pagina",
        "pageinfo-robot-policy": "Indexation per robots",
        "pageinfo-robot-index": "Permittite",
        "pageinfo-robot-noindex": "Non permittite",
-       "pageinfo-views": "Numero de visitas",
        "pageinfo-watchers": "Numero de observatores del pagina",
        "pageinfo-few-watchers": "Minus de $1 {{PLURAL:$1|observator|observatores}}",
        "pageinfo-redirects-name": "Numero de redirectiones verso iste pagina",
        "unknown_extension_tag": "Etiquetta de extension incognite \"$1\"",
        "duplicate-defaultsort": "Attention: Le clave de ordination predefinite \"$2\" supplanta le anterior clave de ordination predefinite \"$1\".",
        "duplicate-displaytitle": "<strong>Attention:</strong> Le titulo a monstrar \"$2\" supplanta le ancian titulo a monstrar \"$1\".",
+       "invalid-indicator-name": "<strong>Error:</strong> Le attributo <code>name</code> del indicatores del stato del pagina non pote esser vacue.",
        "version": "Version",
        "version-extensions": "Extensiones installate",
        "version-skins": "Apparentias installate",
        "revdelete-uname-unhid": "nomine de usator non plus celate",
        "revdelete-restricted": "restrictiones applicate al administratores",
        "revdelete-unrestricted": "restrictiones eliminate pro administratores",
+       "logentry-merge-merge": "$1 {{GENDER:$2|fusionava}} $3 in $4 (versiones usque a $5)",
        "logentry-move-move": "$1 {{GENDER:$2|renominava}} le pagina $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|renominava}} le pagina $3 a $4 sin lassar un redirection",
        "logentry-move-move_redir": "$1 {{GENDER:$2|renominava}} le pagina $3 a $4, superscribente un redirection",
        "log-name-pagelang": "Registro de cambios de lingua",
        "log-description-pagelang": "Isto es un registro de cambios de lingua in paginas.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambiava}} le lingua del pagina $3 de $4 a $5.",
+       "default-skin-not-found": "Attention! Le apparentia predefinite de tu wiki, definite in <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code>, non es disponibile.\n\nLe installation pare includer le sequente apparentias. Vide [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pro saper como activar los e seliger le predefinite.\n\n$2\n\n; Si tu ha justo installate MediaWiki:\n: Tu lo ha probabilemente installate a partir de git, o directemente del codice fonte con un altere methodo. Isto es normal. Essaya installar alcun apparentias desde [https://www.mediawiki.org/wiki/Category:All_skins le directorio de apparentias de mediawiki.org], per:\n:* Discargar le [https://www.mediawiki.org/wiki/Download archivo tar del installator], que include plure apparentias e extensiones. Tu pote copiar e collar le directorio <code>skins/</code> de illo.\n:* Clonar un del repositorios <code>mediawiki/skins/*</code> via git in le directorio <code dir=\"ltr\">skins/</code> de tu installation de MediaWiki.\n: Facer isto non deberea interferer con tu repositorio git si tu es un disveloppator de MediaWiki.\n\n; Si tu ha justo actualisate MediaWiki:\n: MediaWiki a partir del version 1.24 non plus activa automaticamente le apparentias installate (vide [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Tu pote collar le sequente lineas in <code>LocalSettings.php</code> pro activar tote le apparentias actualmente installate:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si tu ha justo modificate <code>LocalSettings.php</code>:\n: Verifica meticulosemente que le nomines del apparentias non ha errores.",
+       "default-skin-not-found-no-skins": "Attention! Le apparentia predefinite de tu wiki, definite in <code>$wgDefaultSkin</code> como <code>$1</code>, non es disponibile.\n\nTu non ha apparentias installate.\n\n; Si tu ha justo installate o actualisate MediaWiki:\n: Tu lo ha probabilemente installate a partir de git, o directemente del codice fonte con un altere methodo. Isto es normal. Essaya installar alcun apparentias desde [https://www.mediawiki.org/wiki/Category:All_skins le directorio de apparentias de mediawiki.org], per:\n:* Discargar le [https://www.mediawiki.org/wiki/Download archivo tar del installator], que include plure apparentias e extensiones. Tu pote copiar e collar le directorio <code>skins/</code> de illo.\n:* Clonar un del repositorios <code>mediawiki/skins/*</code> via git in le directorio <code dir=\"ltr\">skins/</code> de tu installation de MediaWiki.\n: Facer isto non deberea interferer con tu repositorio git si tu es un disveloppator de MediaWiki. Vide [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pro saper como activar skins e seliger le predefinite.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activate)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disactivate''')",
        "mediastatistics": "Statisticas de multimedia",
index d671f80..ce7f8db 100644 (file)
        "mergehistory-reason": "Alasan:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "Log penggabungan",
-       "pagemerge-logentry": "menggabungkan [[$1]] ke [[$2]] (revisi sampai dengan $3)",
        "revertmerge": "Batal penggabungan",
        "mergelogpagetext": "Di bawah ini adalah daftar penggabungan sejarah halaman ke halaman yang lain.",
        "history-title": "Riwayat revisi dari \"$1\"",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik halaman",
        "statistics-header-edits": "Statistik suntingan",
-       "statistics-header-views": "Statistik penampilan",
        "statistics-header-users": "Statistik pengguna",
        "statistics-header-hooks": "Statistik lainnya",
        "statistics-articles": "Halaman konten",
        "statistics-files": "Berkas yang dimuatkan",
        "statistics-edits": "Jumlah suntingan sejak {{SITENAME}} dimulai",
        "statistics-edits-average": "Rata-rata suntingan per halaman",
-       "statistics-views-total": "Jumlah penampilan halaman",
-       "statistics-views-total-desc": "Tampilan ke halaman yang tidak ada dan halaman khusus yang tidak dimasukkan",
-       "statistics-views-peredit": "Jumlah penampilan per suntingan",
        "statistics-users": "Jumlah [[Special:ListUsers|pengguna terdaftar]]",
        "statistics-users-active": "Jumlah pengguna aktif",
        "statistics-users-active-desc": "Pengguna yang telah melakukan suatu aktivitas dalam {{PLURAL:$1|sehari|$1 hari}} terakhir.",
-       "statistics-mostpopular": "Halaman yang paling banyak ditampilkan",
        "pageswithprop": "Halaman dengan halaman properti",
        "pageswithprop-legend": "Halaman dengan halaman properti",
        "pageswithprop-text": "Halaman ini berisi daftar halaman yang menggunakan properti halaman tertentu.",
        "uncategorizedtemplates": "Templat yang tak terkategori",
        "unusedcategories": "Kategori yang tak digunakan",
        "unusedimages": "Berkas yang tak digunakan",
-       "popularpages": "Halaman populer",
        "wantedcategories": "Kategori yang diinginkan",
        "wantedpages": "Halaman yang diinginkan",
        "wantedpages-badtitle": "Judul tak valid dalam himpunan hasil: $1",
        "pageinfo-robot-policy": "Pengindeksan oleh robot",
        "pageinfo-robot-index": "Diperbolehkan",
        "pageinfo-robot-noindex": "Tidak diperbolehkan",
-       "pageinfo-views": "Jumlah penampilan",
        "pageinfo-watchers": "Jumlah pemantau halaman",
        "pageinfo-few-watchers": "Kurang dari $1 {{PLURAL:$1|pengunjung}}",
        "pageinfo-redirects-name": "Jumah pengalihan ke halaman ini",
index b3b2af5..cd8748e 100644 (file)
        "statistics": "Statistica",
        "statistics-header-pages": "Statistica del págine",
        "statistics-header-edits": "Redacter statistica",
-       "statistics-header-views": "Vider statistica",
        "statistics-header-users": "Statistica de usator",
        "statistics-header-hooks": "Altri statistica",
        "statistics-articles": "Págines de contenete",
        "statistics-files": "Files cargat",
        "statistics-edits": "Redactiones del págine desde que {{SITENAME}} esset etablisset",
        "statistics-edits-average": "Valore medial de redactiones per págine",
-       "statistics-views-total": "Total de vistas",
-       "statistics-views-peredit": "Vider por redaction",
        "statistics-users": "[[Special:ListUsers|Usatores]] registrat",
        "statistics-users-active": "Usatores activ",
        "statistics-users-active-desc": "Usatores qui have efectuat un action in li ultim {{PLURAL:$1|die|dies}}",
-       "statistics-mostpopular": "Págines max visitat",
        "brokenredirects-edit": "redacter",
        "brokenredirects-delete": "deleter",
        "withoutinterwiki": "Págines sin catenunes de lingue",
index 3c3a16a..3aad06f 100644 (file)
        "mergehistory-comment": "Tìkọtàrà [[:$1]] ga na ímé [[:$2]]: $3",
        "mergehistory-reason": "Mgbághapụtà:",
        "mergelog": "Tìkȯtá ndétu-nchèta",
-       "pagemerge-logentry": "tìkọtàrà [[$1]] ga na ímé [[$2]] (orübà rúrú $3)",
        "revertmerge": "Emẹkotala",
        "history-title": "Ákíkó mbu màkà orü nọr na élú \"$1\"",
        "lineno": "Ahiri $1:",
        "statistics": "Olìlé ọtụ ihe dị",
        "statistics-header-pages": "Ọmúmú-nà-ńlé ihü",
        "statistics-header-edits": "Rüwá ọmúmú-nà-ńlé",
-       "statistics-header-views": "Lé ọmúmú-nà-ńlé",
        "statistics-header-users": "Ọmúmú-nà-ńlé nke ọ'bànifé",
        "statistics-articles": "Ihü ihe dị",
        "statistics-pages": "Ihü",
        "statistics-files": "Usòrò hé tinyèrè",
-       "statistics-views-total": "Há hụrụ ya olé níle",
        "statistics-users-active": "Ọ'bànifé di galagala",
        "double-redirect-fixed-move": "[[$1]] a puziele.\nUbwa, o na ga [[$2]].",
        "brokenredirects": "Nkúfù gbàjịrị",
        "nrevisions": "{{PLURAL:$1|orübà|orübà}} $1",
        "nviews": "{{PLURAL:$1|he lèrè nke|he lèrè nke}} $1",
        "lonelypages": "Ihü nke ogbènyè",
-       "popularpages": "Ihü ne wú",
        "wantedpages": "Ihü há chọrọ",
        "prefixindex": "Ihü nílé jírí mkpụrụ édémédé nke mbu",
        "shortpages": "Ihü mkpümkpü",
index ec43820..8383f2c 100644 (file)
 {
-    "@metadata": {
-        "authors": []
-    },
-    "tog-rememberpassword": "ᐃᖅᑑ ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ ᖃᑯᒍᖅ ᐊᑐᐃᓐᓇᓯᕗᖅ ᐅᕙᓗᒪᔪᖅ ᖃᕆᑕᐅᔭᖅ (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "sunday": "ᓴᓇᑦᑕᐃᓕ",
-    "monday": "ᓇᒡᒐᔭᖅ",
-    "wednesday": "ᐱᖓᔪᐊ",
-    "friday": "ᐸᒐᐃᑖᒃ",
-    "sun": "ᓴᓇ",
-    "mon": "ᓇᒡ",
-    "tue": "ᐱᖃ",
-    "wed": "ᐱᖓ",
-    "thu": "ᕿᑎ",
-    "fri": "ᐅᓪᓗ",
-    "sat": "ᓯᕙᑕ",
-    "january": "ᔭᓐᓄᐊᓕ",
-    "february": "ᕕᐳᐊᕆ",
-    "march": "ᒫᕐᓯ",
-    "april": "ᐊᐃᐳᕆᓪ",
-    "may_long": "ᒪᐃ",
-    "june": "ᔪᓂ",
-    "july": "ᔪᓚᐃ",
-    "august": "ᐊᐅᒍᔅ",
-    "september": "ᓯᑎᒻᐳᕆ",
-    "october": "ᐅᒃᑐᐳᕆ",
-    "november": "ᓄᕕᒻᐳᕆ",
-    "december": "ᑎᓯᒻᐳᕆ",
-    "january-gen": "ᔭᓐᓄᐊᓕ",
-    "february-gen": "ᕕᐳᐊᕆ",
-    "march-gen": "ᒫᕐᓯ",
-    "april-gen": "ᐊᐃᐳᕆᓪ",
-    "may-gen": "ᒪᐃ",
-    "june-gen": "ᔪᓂ",
-    "july-gen": "ᔪᓚᐃ",
-    "august-gen": "ᐊᐅᒍᔅ",
-    "september-gen": "ᓯᑎᒻᐳᕆ",
-    "october-gen": "ᐅᒃᑐᐳᕆ",
-    "november-gen": "ᓄᕕᒻᐳᕆ",
-    "december-gen": "ᑎᓯᒻᐳᕆ",
-    "jan": "ᔭᓐᓄ",
-    "feb": "ᕕᐳᐊ",
-    "mar": "ᓇᑦᓯ",
-    "apr": "ᐊᐃᐳ",
-    "may": "ᒪᐃ",
-    "jun": "ᔪᓂ",
-    "jul": "ᔪᓚᐃ",
-    "aug": "ᐊᐅᒍ",
-    "sep": "ᓯᑎᒻ",
-    "oct": "ᐅᒃᑐ",
-    "nov": "ᓄᕕ",
-    "dec": "ᑎᓯᒻ",
-    "about": "ᒥᒃᓵᓂ",
-    "article": "ᐃᓗᓕᒃ ᒪᑉᐱᑕᖅ",
-    "newwindow": "(ᐅᐃᑦᑐᖅ ᖃᕋᓴᐅᔭᖅ ᐃᑭᐊᖅ ᐱᒋᕗᖅ ᐃᒐᓛᖅ)",
-    "cancel": "ᐃᓂᖅᑎᐹ",
-    "moredotdotdot": "ᐱᓪᓗᐊᕆᕚ...",
-    "mypage": "ᐊᒥ ᒪᑉᐱᑕᖅ",
-    "mytalk": "ᐊᓪᓚᖁᑎᒃᑲ",
-    "navigation": "ᒥᐊᓂᕆᕚ",
-    "and": "&#32;ᐊᒻᒪ",
-    "qbedit": "ᓱᖁᓯᖅᐹ",
-    "errorpagetitle": "ᑕᒻᒪᓇᖅᑐᖅ",
-    "help": "ᖃᔭᓕᑉᐹ",
-    "search": "ᐃᕚᖅᐳᖅ",
-    "searchbutton": "ᐃᕚᖅᐳᖅ",
-    "go": "ᐊᐃᕗᖅ",
-    "searcharticle": "ᐊᐃᕗᖅ",
-    "history_short": "ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ",
-    "edit": "ᓱᖁᓯᖅᐹ",
-    "editthispage": "ᓱᖁᓯᖅᐹ ᒪᑉᐱᑕᖅ",
-    "delete": "ᓂᐸᖅᑎᐹ",
-    "protect": "ᓴᐳᒻᒥᕚ",
-    "unprotect": "ᐃᖅ ᓴᐳᒻᒥᕚ",
-    "unprotectthispage": "ᐃᖅ ᓴᐳᒻᒥᕚ ᒪᑉᐱᑕᖅ",
-    "newpage": "ᐱᒋᕗᖅ ᒪᑉᐱᑕᖅ",
-    "talkpagelinktext": "ᐅᖃᓕᒪᔪᖅ",
-    "specialpage": "ᐱᔨ ᒪᑉᐱᑕᖅ",
-    "articlepage": "ᐅᕝᕙ ᐃᓗᓕᒃ ᒪᑉᐱᑕᖅ",
-    "talk": "ᐅᖃᓕᒪᔪᖅ",
-    "toolbox": "ᓴᓇᕐᖁᑎᖃᐅᑎ",
-    "otherlanguages": "ᑭᓪᓗᒧᑦ ᐅᐃᑭ",
-    "redirectedfrom": "(ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ $1)",
-    "redirectpagesub": "ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ ᒪᑉᐱᑕᖅ",
-    "jumptonavigation": "ᒥᐊᓂᕆᕚ",
-    "jumptosearch": "ᐃᕚᖅᐳᖅ",
-    "aboutsite": "ᒥᒃᓵᓂ {{SITENAME}}",
-    "aboutpage": "Project:ᒥᒃᓵᓂ",
-    "currentevents": "ᐱᒋᕗᖅ ᐱᐅᓯᖅ",
-    "currentevents-url": "Project:ᐱᒋᕗᖅ ᐱᐅᓯᖅ",
-    "edithelp": "ᓱᖁᓯᖅᐹ ᐃᑯᕐᕆᐹ",
-    "mainpage": "ᐊᒥᖅ",
-    "mainpage-description": "ᐊᒥᖅ",
-    "portal": "ᖃᒡᒋᖅ",
-    "portal-url": "Project:ᖃᒡᒋᖅ",
-    "privacy": "ᓇᒻᒥᓂᖅ ᐱᓕᕆᕝᕕᖃᐅᖅᑐᓄᑦ ᐊᐅᓚᑕᐅᔪᑦ ᐊᑐᐊᒐᖅ, ᐱᓇᓱᐊᕐᓂᖅ",
-    "privacypage": "Project:ᓇᒻᒥᓂᖅ ᐱᓕᕆᕝᕕᖃᐅᖅᑐᓄᑦ ᐊᐅᓚᑕᐅᔪᑦ ᐊᑐᐊᒐᖅ, ᐱᓇᓱᐊᕐᓂᖅ",
-    "youhavenewmessages": "ᐃᓕᔅᓯ ᐱᒋᕚ $1 ($2).",
-    "editsection": "ᓱᖁᓯᖅᐹ ᐃᓚ",
-    "editold": "ᓱᖁᓯᖅᐹ",
-    "editsectionhint": "ᓱᖁᓯᖅᐹ ᐃᓚᖏᐅᑎᑎᑦᓯᒍᑎ: $1",
-    "showtoc": "ᐊᓚᒃᑲᑎᖅᐹ",
-    "hidetoc": "ᐃᔨᖅᐳᖅ",
-    "site-rss-feed": "$1 ᕐᔅᔅ ᒥᐊᓂᕆᕚ",
-    "site-atom-feed": "$1 ᐊᑐᒻ ᒥᐊᓂᕆᕚ",
-    "page-rss-feed": "\"$1\" ᕐᔅᔅ ᒥᐊᓂᕆᕚ",
-    "page-atom-feed": "\"$1\" ᐊᑐᒻ ᒥᐊᓂᕆᕚ",
-    "nstab-main": "ᒪᑉᐱᑕᖅ",
-    "nstab-user": "ᐃᓄᒃ ᒪᑉᐱᑕᖅ",
-    "nstab-special": "ᐱᔨ",
-    "nstab-project": "ᐱᓕᕆᐊᒃᓴᐃᑦ ᐱᕙᓪᓕᐊᔾᔪᑎᒃᓴᓄᑦ ᒪᑉᐱᑕᖅ",
-    "nstab-image": "ᐊᒋᐅᑦ",
-    "nstab-mediawiki": "ᑭᒡᒐᐹ",
-    "nstab-template": "ᒥᐊᓂᕆᕚ-ᕿᔪᖁᑦ",
-    "nstab-category": "ᓄᐊᑉᐳᑦ",
-    "badtitle": "ᐊᔪᖅᑐᖅ ᐊᑎᖅ",
-    "editinginterface": "'''ᐃᓂᖅᑎᕈᑎ—''' ᐋᕼᐊ ᓱᖁᓯᖅᐹ ᐃᑭᐊᖅ ᒪᑉᐱᑕᖅ ᐊᑐᐃᓐᓇᓯᕗᖅ ᐄᔭᑦᓴᖅ ᖃᕋᓴᐅᔭᖅ ᑕᖅᓴᓕᖅᐹ ᐃᑭᐊᖅ ᐊᕿᑦᑐᖅ ᖃᕆᑕᐅᔭᐅᑉ ᑎᑎᕋᕐᕕᖓ. ᐊᓯᐊᙳᑐᖅ ᐃᑭᐊᖅ ᒪᑉᐱᑕᖅ ᐃᓄᒃᑎᑐᑦ ᐅᐃᑭᐱᑎᐊ ᐊᓪᓚᖑᖅᑐᐊᖅ ᓇᑭᒪᖅᐳᖅ ᖃᑕᙳᑎ.",
-    "yourname": "ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ",
-    "yourpassword": "ᐅᐃᑭᐱᑎᐊ ᐸᓚᙵᓴᐅᑎ",
-    "yourpasswordagain": "ᑕᒪᑐᒪᓃᖅᐹ ᐃᒃᓯᒐᖅᑐᖅ ᐅᐃᑭᐱᑎᐊ ᐸᓚᙵᓴᐅᑎ",
-    "remembermypassword": "ᐃᖅᑑ ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ ᖃᑯᒍᖅ ᐊᑐᐃᓐᓇᓯᕗᖅ ᐅᕙᓗᒪᔪᖅ ᖃᕆᑕᐅᔭᖅ (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "ᐊᑯᓐᓇᐳᖅ",
-    "loginprompt": "ᐱᒋᐊᓕᒃ ᐃᒪᑐᐊᖅ ᖃᕆᑕᐅᔭᖅ ᖂᑮᔅ(Cookies) ᐱᕐᖄᑎ ᐊᑯᓐᓇᐳᖅ ᐅᐃᑭᐱᑎᐊ.",
-    "userlogin": "ᐊᑯᓐᓇᐳᖅ / ᐱᕐᖄᐹ ᑮᓇᐅᔭᒃᑯᕕᖕᒥ ᑐᖅᑯᖅᓯᕕᒃ",
-    "logout": "ᐊᓂᕝᕕᒃ",
-    "userlogout": "ᐊᓂᕝᕕᒃ",
-    "nologin": "ᐊᔪᐃᓐᓈᖅ ᐃᓄᖁᑎ? '''$1'''.",
-    "nologinlink": "ᐱᕐᖄᐹ ᑮᓇᐅᔭᒃᑯᕕᖕᒥ ᑐᖅᑯᖅᓯᕕᒃ",
-    "gotaccountlink": "ᐊᑯᓐᓇᐳᖅ",
-    "mailmypassword": "ᕿᓪᓗᑐᖅ ᐅᐃᑭᐱᑎᐊ ᐸᓚᙵᓴᐅᑎ ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ",
-    "bold_sample": "ᐃᔾᔪᔪᒡ ᑕᖅᓴᓕᖅᐹ",
-    "bold_tip": "ᐃᔾᔪᔪᒡ ᑕᖅᓴᓕᖅᐹ",
-    "summary": "ᓱᕕᑦ:",
-    "minoredit": "ᐅᑭᐅᑭᓗᐊᖅᑐᖅ ᐊᓯᐊᙳᑐᖅ",
-    "watchthis": "ᐅᕝᕙ",
-    "savearticle": "ᐅᖃᐅᓯᓪᓚᕆᖏᑕ ᑎᑎᕋᖅᑕᐅᓂᖏᑦ",
-    "preview": "ᐅᕝᕙ ᖃᖓᓵᖑᓕᖅᑐᖅ",
-    "showpreview": "ᓱᖁᓯᖅᐹ ᐊᓚᒃᑲᐅᑎᕗᖅ ᓯᕗᓕᐅᖅᐹ ᐅᖃᐅᓯᓪᓚᕆᖏᑕ ᑎᑎᕋᖅᑕᐅᓂᖏᑦ",
-    "showdiff": "ᐊᓚᒃᑲᑎᑉᐹ ᐊᓯᐊᙳᑐᖅ",
-    "summary-preview": "ᓱᕕᑦ:",
-    "blockedtitle": "ᐋᖅᑭᒃᓱᐃᔨ ᐅᒥᙵᓯᓯᔪᖅ",
-    "loginreqlink": "ᐊᑯᓐᓇᐳᖅ",
-    "newarticle": "(ᐱᒋᕗᖅ)",
-    "editing": "ᐊᓯᐊᙳᑐᖅ $1",
-    "editingsection": "ᓱᖁᓯᖅᐹ ᐃᓚ $1 (ᖏᐅᑎᑎᑦᓯᒍᑎ)",
-    "editingcomment": "ᓱᖁᓯᖅᐹ $1 (ᐅᔾᔨᕆᔭᖅ)",
-    "editconflict": "ᓱᖁᓯᖅᐹ ᐊᑲᐅᙱᓕᐅᕈᑎᓂᖅ: $1",
-    "currentrev": "ᒫᓐᓇ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
-    "previousrevision": "←ᐅᑐᖃᖅ  ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
-    "nextrevision": "ᐱᓪᓗᐊᕆᕚ ᐱᒋᕗᖅ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ→",
-    "currentrevisionlink": "ᒫᓐᓇ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
-    "next": "ᑕᒡᒐ",
-    "last": "ᐊᓐᓂᑐᔪᖅ",
-    "history-feed-title": "ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ",
-    "history-feed-description": "ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ ᐃᑭᐊᖅ ᐅᐃᑭ",
-    "history-title": "ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ \"$1\"",
-    "lineno": "ᑐᑭᖅᓯᖅ $1:",
-    "editundo": "ᐃᐱᐅᑦᔮᐹ",
-    "nextn": "ᑕᒡᒐ {{PLURAL:$1|$1}}",
-    "mypreferences": "ᐊᒥ ᐱᒃᑯᒪᓂᖅᐹᖅ",
-    "prefs-rc": "ᐱᒋᕗᖅ ᐊᓯᐊᙳᑐᖅ",
-    "searchresultshead": "ᐃᕚᖅᐳᖅ",
-    "youremail": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ:",
-    "username": "ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ:",
-    "yourrealname": "ᐃᓄᓪᓚᕆᒃ ᐊᑎᖅ:",
-    "email": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ",
-    "prefs-help-email": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ (ᐱᒃᑲᓪᓚᕗᖅ) — ᖃᑯᒍ ᓇᓗᓇᙱᓚᖅ ᐃᓕᔅᓯ ᐱᔪᖕᓇᖅᑐᖅ ᐱᒋᕚ ᑲᙳᓇᖅᑐᖅ ᐋᔩᖃᑎᒋᖏᖅ",
-    "editinguser": "ᓱᖁᓯᖅᐹ ᖃᑕᙳᑎ '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
-    "recentchanges": "ᐱᒋᕗᖅ ᐊᓯᐊᙳᑐᖅ",
-    "hide": "ᐃᔨᖅᐳᖅ",
-    "show": "ᐊᓚᒃᑲᑎᖅᐹ",
-    "minoreditletter": "ᐅ",
-    "newpageletter": "ᐱ",
-    "boteditletter": "ᑉ",
-    "recentchangeslinked": "ᐊᓯᐊᙳᑐᖅ ᒥᑦᓵᓯᔪᖅ",
-    "recentchangeslinked-feed": "ᐊᓯᐊᙳᑐᖅ ᒥᑦᓵᓯᔪᖅ",
-    "recentchangeslinked-toolbox": "ᐊᓯᐊᙳᑐᖅ ᒥᑦᓵᓯᔪᖅ",
-    "upload": "ᒪᑉᐱᐹ ᓇᓗᓇᐃᔭᐅᑎᑦ",
-    "uploadbtn": "ᒪᑉᐱᐹ ᓇᓗᓇᐃᔭᐅᑎᑦ",
-    "filedesc": "ᐱᓕᕆᐊᒃᓴᑦ ᐱᕕᒡᔪᐊᖑᓂᖏᑦ",
-    "fileuploadsummary": "ᓱᕕᑦ:",
-    "watchthisupload": "ᐅᕝᕙ",
-    "file-anchor-link": "ᐊᒋᐅᑦ",
-    "listredirects": "ᓂᐱ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
-    "randompage": "ᓇᑭᑐᐃᓐᓇᖅ ᖃᐅᔨᓴᕐᓂᖅ ᒪᑉᐱᑕᖅ",
-    "randomredirect": "ᓇᑭᑐᐃᓐᓇᖅ ᖃᐅᔨᓴᕐᓂᖅ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
-    "statistics": "ᑭᓯᑦᓯᓯᖕᖑᕐᓗᒋᑦ ᐹᓯᔅᓱᑎᔅᓴᑦ",
-    "statistics-header-users": "ᖃᑕᙳᑎ ᑭᓯᑦᓯᓯᖕᖑᕐᓗᒋᑦ ᐹᓯᔅᓱᑎᔅᓴᑦ",
-    "doubleredirects": "ᑕᐱᕐᖃᓕᒃ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
-    "brokenredirects": "ᓇᐱᕚ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
-    "brokenredirects-edit": "ᓱᖁᓯᖅᐹ",
-    "brokenredirects-delete": "ᓂᐸᖅᑎᐹ",
-    "listusers": "ᖃᑕᙳᑎ ᓂᐱ",
-    "newpages-username": "ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ:",
-    "ancientpages": "ᒪᑉᐱᑕᖅ ᐃᑦᑐᓴᖅ ᐅᑐᖃᖅ",
-    "move": "ᐅᐊᔪᖅ",
-    "booksources-go": "ᐊᐃᕗᖅ",
-    "allpages": "ᓱᓇᒥᑦᑐᖅ ᒪᑉᐱᑕᖅ",
-    "nextpage": "ᑕᒡᒐ ᒪᑉᐱᑕᖅ ($1)",
-    "allpagessubmit": "ᐊᐃᕗᖅ",
-    "categories": "ᓄᐊᑉᐳᑦ",
-    "emailuser": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ ᐃᓄᒃ",
-    "emailfrom": "ᓇᑭᑦ",
-    "emailmessage": "ᑭᒡᒐᐹ",
-    "emailsend": "ᕿᐅᑦᓴᕕᒋᕚ",
-    "watchlist": "ᐅᕝᕙ ᒪᑉᐱᑕᖅ",
-    "mywatchlist": "ᓂᐱ ᐊᒥ",
-    "watch": "ᐅᕝᕙ",
-    "watchthispage": "ᐅᕝᕙ",
-    "unwatch": "ᐃᖅ ᐅᕝᕙ",
-    "enotif_impersonal_salutation": "{{SITENAME}} ᖃᑕᙳᑎ",
-    "created": "ᒪᑉᐱᑕᖅ ᐊᓂᕗᖅ",
-    "dellogpage": "ᓂᐸᖅ ᓂᐱ",
-    "deletionlog": "ᓂᐸᖅ ᓂᐱ",
-    "prot_1movedto2": "[[$1]] ᓱᕐᕋᒪᔪᖅ [[$2]]",
-    "protect-legend": "ᐸᑎᒻᒥᕚ ᓴᐳᒻᒥᕚ",
-    "protect-level-sysop": "ᓯᕐᓚᒃ ᑎᑎᕋᖅᓯᒪᔪᓂᒃ ᑐᖅᑯᖅᑎᕆᔨ",
-    "restriction-move": "ᐅᐊᔪᖅ",
-    "undelete-search-submit": "ᐃᕚᖅᐳᖅ",
-    "blanknamespace": "(ᐊᒥᖅ)",
-    "mycontris": "ᑕᓕᐊᖅ",
-    "sp-contributions-talk": "ᐅᖃᓕᒪᔪᖅ",
-    "sp-contributions-submit": "ᐃᕚᖅᐳᖅ",
-    "whatlinkshere": "ᐅᖅᓯᖅ ᒪᐅᖓ",
-    "isredirect": "ᑕᐱᑕᕇᒃ ᐅᖅᓯᖅ ᒪᑉᐱᑕᖅ",
-    "blockip": "ᐃᖅ ᐋᖅᑭᒃᓱᐃᔨ",
-    "badipaddress": "ᐃᓪᓕᑐᖅ ᖃᕆᓴᐅᔭᒃᑯᑦ ᑎᑎᕋᖅᓯᒪᔪᑦ ᒪᓕᒐᑎᒍᑦ ᐊᖏᕈᑕᐅᓯᒪᔪᖅ ᐅᓂᒃᑳᕆᔭᖃᕐᓂᖅ",
-    "blockipsuccesssub": "ᐅᒥᙵᓯᓯᔪᖅ ᓈᔪᖅ",
-    "ipblocklist-submit": "ᐃᕚᖅᐳᖅ",
-    "anononlyblock": "ᓯᕐᓚᒃ ᐃᓕᓴᕐᓇᙱᑎᑦᑐᖅ",
-    "blocklink": "ᐃᖅ",
-    "contribslink": "ᖃᑕᙳᑎ ᓱᖁᓯᖅᐹ",
-    "blocklogpage": "ᐅᒥᙵᓯᓯᔪᖅ/ᐃᖅ ᑎᑎᖅᑲᖁᑎᑦ ᑐᖅᑯᖅᓯᒪᔭᐃᑦ",
-    "block-log-flags-anononly": "ᐃᓕᓴᕐᓇᙱᑎᑦᑐᖅ ᐋᖅᑭᒃᓱᐃᔨ ᑭᓯᐊᓂ",
-    "block-log-flags-nocreate": "ᑮᓇᐅᔭᖃᕐᕕᒃ ᐃᓄᐃᕈᑎᕚ ᐃᓂᖅᑎᐹ ᐱᒋᕗᖅ",
-    "block-log-flags-noemail": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ",
-    "move-page-legend": "ᐅᐊᔪᖅ ᒪᑉᐱᑕᖅ",
-    "movearticle": "ᐅᐊᔪᖅ ᒪᑉᐱᑕᖅ",
-    "movelogpage": "ᐅᐊᔪᖅ ᓂᐱ",
-    "movereason": "ᐃᓱᒪᒃᓴᖅᓯᐅᕈᓐᓇᑦᑎᐊᕐᓂᖅ:",
-    "delete_and_move": "ᓂᐸᖅᑎᐹ  ᐊᒻᒪ ᐅᐊᔪᖅ",
-    "allmessagesname": "ᐊᑎᖅ",
-    "import-logentry-upload-detail": "$1 {{PLURAL:$1|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ}}",
-    "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ}} ᐃᑭᐊᖅ $2",
-    "tooltip-pt-mytalk": "ᐊᓪᓚᖁᑎᒃᑲ",
-    "tooltip-pt-preferences": "ᐊᒥ ᐱᒃᑯᒪᓂᖅᐹᖅ",
-    "tooltip-pt-logout": "ᐊᓂᕝᕕᒃ",
-    "tooltip-ca-protect": "ᓴᐳᒻᒥᕚ ᒪᑉᐱᑕᖅ",
-    "tooltip-search": "ᐃᕚᖅᐳᖅ {{SITENAME}}",
-    "tooltip-minoredit": "ᑐᐊᐸᖅ ᐊᓯᐊᙳᑐᖅ",
-    "tooltip-diff": "ᓱᕐᕋᐹ ᖃᑕᙳᑎ",
-    "tooltip-compareselectedversions": "ᐅᕝᕙ ᐊᓯᐊᙳᑐᖅ ᒪᑉᐱᑕᖅ ᐊᑯᓐᓂᖓᓐᓂ ᒪᕐᕉᒃ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
-    "anonymous": "ᐃᓕᓴᕐᓇᙱᑎᑦᑐᖅ ᖃᑕᙳᑎ ᓇᑭᑦ {{SITENAME}}",
-    "deletedrevision": "ᓂᐸᖅ ᐅᑐᖃᖅ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ $1",
-    "previousdiff": "← ᑐᓄᓪᓕᐹᖅ ᐊᓯᐊᙳᑐᖅ",
-    "nextdiff": "ᑕᒡᒐ ᐊᓯᐊᙳᑐᖅ ᒪᑉᐱᑕᖅ →",
-    "ilsubmit": "ᐃᕚᖅᐳᖅ",
-    "bydate": "ᐱᑖᕈᑦᑐᖅ ᐃᓅᓕᕐᕕᒃ",
-    "variantname-ike-cans": "ᑎᑎᕋᐅᓯᖅ ᓄᑖᖅ",
-    "variantname-ike-latn": "ilisautik",
-    "variantname-iu": "disable",
-    "exif-imagelength": "ᖁᑦᓯᖕᓂᖅ",
-    "exif-imagedescription": "ᐃᓄᙳᐊᖅ ᐊᑎᖅ",
-    "exif-colorspace": "ᒥᖑᐊᕈᑎᒥᑎᖅᐹ",
-    "exif-datetimeoriginal": "ᖃᑦᓯᐹ ᐊᒪᒻ ᑎᑭᐅᑎ ᓴᕐᕿᐹ ᐃᓱᐃᓪᓕᖓᐃᑦᔭᐹ",
-    "exif-datetimedigitized": "ᖃᑦᓯᐹ ᐊᒪᒻ ᑎᑭᐅᑎ ᓴᕐᕿᐹ ᖃᕋᓴᐅᔭᖅ",
-    "exif-exposuretime-format": "$1 ᐊᐃᑉᐸᖅ ($2)",
-    "exif-brightnessvalue": "ᖃᐅᒻᒪᐹ ᐊᒃᑭᐅᑕᖅ",
-    "monthsall": "ᓱᓇᒥᑦᑐᖅ",
-    "confirm_purge_button": "ᐊᑲᐅᔪᖅ",
-    "imgmultipageprev": "← ᑐᓄᓪᓕᐹᖅ  ᒪᑉᐱᑕᖅ",
-    "imgmultipagenext": "ᑕᒡᒐ ᒪᑉᐱᑕᖅ →",
-    "imgmultigo": "ᐊᐃᕗᖅ!",
-    "table_pager_limit_submit": "ᐊᐃᕗᖅ",
-    "autoredircomment": "ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ [[$1]]",
-    "autosumm-new": "ᐱᒋᕗᖅ ᒪᑉᐱᑕᖅ: $1",
-    "specialpages": "ᐱᔨ ᒪᑉᐱᑕᖅ"
+       "@metadata": [],
+       "sunday": "ᓴᓇᑦᑕᐃᓕ",
+       "monday": "ᓇᒡᒐᔭᖅ",
+       "wednesday": "ᐱᖓᔪᐊ",
+       "friday": "ᐸᒐᐃᑖᒃ",
+       "sun": "ᓴᓇ",
+       "mon": "ᓇᒡ",
+       "tue": "ᐱᖃ",
+       "wed": "ᐱᖓ",
+       "thu": "ᕿᑎ",
+       "fri": "ᐅᓪᓗ",
+       "sat": "ᓯᕙᑕ",
+       "january": "ᔭᓐᓄᐊᓕ",
+       "february": "ᕕᐳᐊᕆ",
+       "march": "ᒫᕐᓯ",
+       "april": "ᐊᐃᐳᕆᓪ",
+       "may_long": "ᒪᐃ",
+       "june": "ᔪᓂ",
+       "july": "ᔪᓚᐃ",
+       "august": "ᐊᐅᒍᔅ",
+       "september": "ᓯᑎᒻᐳᕆ",
+       "october": "ᐅᒃᑐᐳᕆ",
+       "november": "ᓄᕕᒻᐳᕆ",
+       "december": "ᑎᓯᒻᐳᕆ",
+       "january-gen": "ᔭᓐᓄᐊᓕ",
+       "february-gen": "ᕕᐳᐊᕆ",
+       "march-gen": "ᒫᕐᓯ",
+       "april-gen": "ᐊᐃᐳᕆᓪ",
+       "may-gen": "ᒪᐃ",
+       "june-gen": "ᔪᓂ",
+       "july-gen": "ᔪᓚᐃ",
+       "august-gen": "ᐊᐅᒍᔅ",
+       "september-gen": "ᓯᑎᒻᐳᕆ",
+       "october-gen": "ᐅᒃᑐᐳᕆ",
+       "november-gen": "ᓄᕕᒻᐳᕆ",
+       "december-gen": "ᑎᓯᒻᐳᕆ",
+       "jan": "ᔭᓐᓄ",
+       "feb": "ᕕᐳᐊ",
+       "mar": "ᓇᑦᓯ",
+       "apr": "ᐊᐃᐳ",
+       "may": "ᒪᐃ",
+       "jun": "ᔪᓂ",
+       "jul": "ᔪᓚᐃ",
+       "aug": "ᐊᐅᒍ",
+       "sep": "ᓯᑎᒻ",
+       "oct": "ᐅᒃᑐ",
+       "nov": "ᓄᕕ",
+       "dec": "ᑎᓯᒻ",
+       "about": "ᒥᒃᓵᓂ",
+       "article": "ᐃᓗᓕᒃ ᒪᑉᐱᑕᖅ",
+       "newwindow": "(ᐅᐃᑦᑐᖅ ᖃᕋᓴᐅᔭᖅ ᐃᑭᐊᖅ ᐱᒋᕗᖅ ᐃᒐᓛᖅ)",
+       "cancel": "ᐃᓂᖅᑎᐹ",
+       "moredotdotdot": "ᐱᓪᓗᐊᕆᕚ...",
+       "mypage": "ᐊᒥ ᒪᑉᐱᑕᖅ",
+       "mytalk": "ᐊᓪᓚᖁᑎᒃᑲ",
+       "navigation": "ᒥᐊᓂᕆᕚ",
+       "and": "&#32;ᐊᒻᒪ",
+       "qbedit": "ᓱᖁᓯᖅᐹ",
+       "errorpagetitle": "ᑕᒻᒪᓇᖅᑐᖅ",
+       "help": "ᖃᔭᓕᑉᐹ",
+       "search": "ᐃᕚᖅᐳᖅ",
+       "searchbutton": "ᐃᕚᖅᐳᖅ",
+       "go": "ᐊᐃᕗᖅ",
+       "searcharticle": "ᐊᐃᕗᖅ",
+       "history_short": "ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ",
+       "edit": "ᓱᖁᓯᖅᐹ",
+       "editthispage": "ᓱᖁᓯᖅᐹ ᒪᑉᐱᑕᖅ",
+       "delete": "ᓂᐸᖅᑎᐹ",
+       "protect": "ᓴᐳᒻᒥᕚ",
+       "unprotect": "ᐃᖅ ᓴᐳᒻᒥᕚ",
+       "unprotectthispage": "ᐃᖅ ᓴᐳᒻᒥᕚ ᒪᑉᐱᑕᖅ",
+       "newpage": "ᐱᒋᕗᖅ ᒪᑉᐱᑕᖅ",
+       "talkpagelinktext": "ᐅᖃᓕᒪᔪᖅ",
+       "specialpage": "ᐱᔨ ᒪᑉᐱᑕᖅ",
+       "articlepage": "ᐅᕝᕙ ᐃᓗᓕᒃ ᒪᑉᐱᑕᖅ",
+       "talk": "ᐅᖃᓕᒪᔪᖅ",
+       "toolbox": "ᓴᓇᕐᖁᑎᖃᐅᑎ",
+       "otherlanguages": "ᑭᓪᓗᒧᑦ ᐅᐃᑭ",
+       "redirectedfrom": "(ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ $1)",
+       "redirectpagesub": "ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ ᒪᑉᐱᑕᖅ",
+       "jumptonavigation": "ᒥᐊᓂᕆᕚ",
+       "jumptosearch": "ᐃᕚᖅᐳᖅ",
+       "aboutsite": "ᒥᒃᓵᓂ {{SITENAME}}",
+       "aboutpage": "Project:ᒥᒃᓵᓂ",
+       "currentevents": "ᐱᒋᕗᖅ ᐱᐅᓯᖅ",
+       "currentevents-url": "Project:ᐱᒋᕗᖅ ᐱᐅᓯᖅ",
+       "edithelp": "ᓱᖁᓯᖅᐹ ᐃᑯᕐᕆᐹ",
+       "mainpage": "ᐊᒥᖅ",
+       "mainpage-description": "ᐊᒥᖅ",
+       "portal": "ᖃᒡᒋᖅ",
+       "portal-url": "Project:ᖃᒡᒋᖅ",
+       "privacy": "ᓇᒻᒥᓂᖅ ᐱᓕᕆᕝᕕᖃᐅᖅᑐᓄᑦ ᐊᐅᓚᑕᐅᔪᑦ ᐊᑐᐊᒐᖅ, ᐱᓇᓱᐊᕐᓂᖅ",
+       "privacypage": "Project:ᓇᒻᒥᓂᖅ ᐱᓕᕆᕝᕕᖃᐅᖅᑐᓄᑦ ᐊᐅᓚᑕᐅᔪᑦ ᐊᑐᐊᒐᖅ, ᐱᓇᓱᐊᕐᓂᖅ",
+       "youhavenewmessages": "ᐃᓕᔅᓯ ᐱᒋᕚ $1 ($2).",
+       "editsection": "ᓱᖁᓯᖅᐹ ᐃᓚ",
+       "editold": "ᓱᖁᓯᖅᐹ",
+       "editsectionhint": "ᓱᖁᓯᖅᐹ ᐃᓚᖏᐅᑎᑎᑦᓯᒍᑎ: $1",
+       "showtoc": "ᐊᓚᒃᑲᑎᖅᐹ",
+       "hidetoc": "ᐃᔨᖅᐳᖅ",
+       "site-rss-feed": "$1 ᕐᔅᔅ ᒥᐊᓂᕆᕚ",
+       "site-atom-feed": "$1 ᐊᑐᒻ ᒥᐊᓂᕆᕚ",
+       "page-rss-feed": "\"$1\" ᕐᔅᔅ ᒥᐊᓂᕆᕚ",
+       "page-atom-feed": "\"$1\" ᐊᑐᒻ ᒥᐊᓂᕆᕚ",
+       "nstab-main": "ᒪᑉᐱᑕᖅ",
+       "nstab-user": "ᐃᓄᒃ ᒪᑉᐱᑕᖅ",
+       "nstab-special": "ᐱᔨ",
+       "nstab-project": "ᐱᓕᕆᐊᒃᓴᐃᑦ ᐱᕙᓪᓕᐊᔾᔪᑎᒃᓴᓄᑦ ᒪᑉᐱᑕᖅ",
+       "nstab-image": "ᐊᒋᐅᑦ",
+       "nstab-mediawiki": "ᑭᒡᒐᐹ",
+       "nstab-template": "ᒥᐊᓂᕆᕚ-ᕿᔪᖁᑦ",
+       "nstab-category": "ᓄᐊᑉᐳᑦ",
+       "badtitle": "ᐊᔪᖅᑐᖅ ᐊᑎᖅ",
+       "editinginterface": "'''ᐃᓂᖅᑎᕈᑎ—''' ᐋᕼᐊ ᓱᖁᓯᖅᐹ ᐃᑭᐊᖅ ᒪᑉᐱᑕᖅ ᐊᑐᐃᓐᓇᓯᕗᖅ ᐄᔭᑦᓴᖅ ᖃᕋᓴᐅᔭᖅ ᑕᖅᓴᓕᖅᐹ ᐃᑭᐊᖅ ᐊᕿᑦᑐᖅ ᖃᕆᑕᐅᔭᐅᑉ ᑎᑎᕋᕐᕕᖓ. ᐊᓯᐊᙳᑐᖅ ᐃᑭᐊᖅ ᒪᑉᐱᑕᖅ ᐃᓄᒃᑎᑐᑦ ᐅᐃᑭᐱᑎᐊ ᐊᓪᓚᖑᖅᑐᐊᖅ ᓇᑭᒪᖅᐳᖅ ᖃᑕᙳᑎ.",
+       "yourname": "ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ",
+       "yourpassword": "ᐅᐃᑭᐱᑎᐊ ᐸᓚᙵᓴᐅᑎ",
+       "yourpasswordagain": "ᑕᒪᑐᒪᓃᖅᐹ ᐃᒃᓯᒐᖅᑐᖅ ᐅᐃᑭᐱᑎᐊ ᐸᓚᙵᓴᐅᑎ",
+       "remembermypassword": "ᐃᖅᑑ ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ ᖃᑯᒍᖅ ᐊᑐᐃᓐᓇᓯᕗᖅ ᐅᕙᓗᒪᔪᖅ ᖃᕆᑕᐅᔭᖅ (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "ᐊᑯᓐᓇᐳᖅ",
+       "userlogin": "ᐊᑯᓐᓇᐳᖅ / ᐱᕐᖄᐹ ᑮᓇᐅᔭᒃᑯᕕᖕᒥ ᑐᖅᑯᖅᓯᕕᒃ",
+       "logout": "ᐊᓂᕝᕕᒃ",
+       "userlogout": "ᐊᓂᕝᕕᒃ",
+       "nologin": "ᐊᔪᐃᓐᓈᖅ ᐃᓄᖁᑎ? '''$1'''.",
+       "nologinlink": "ᐱᕐᖄᐹ ᑮᓇᐅᔭᒃᑯᕕᖕᒥ ᑐᖅᑯᖅᓯᕕᒃ",
+       "gotaccountlink": "ᐊᑯᓐᓇᐳᖅ",
+       "mailmypassword": "ᕿᓪᓗᑐᖅ ᐅᐃᑭᐱᑎᐊ ᐸᓚᙵᓴᐅᑎ ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ",
+       "bold_sample": "ᐃᔾᔪᔪᒡ ᑕᖅᓴᓕᖅᐹ",
+       "bold_tip": "ᐃᔾᔪᔪᒡ ᑕᖅᓴᓕᖅᐹ",
+       "summary": "ᓱᕕᑦ:",
+       "minoredit": "ᐅᑭᐅᑭᓗᐊᖅᑐᖅ ᐊᓯᐊᙳᑐᖅ",
+       "watchthis": "ᐅᕝᕙ",
+       "savearticle": "ᐅᖃᐅᓯᓪᓚᕆᖏᑕ ᑎᑎᕋᖅᑕᐅᓂᖏᑦ",
+       "preview": "ᐅᕝᕙ ᖃᖓᓵᖑᓕᖅᑐᖅ",
+       "showpreview": "ᓱᖁᓯᖅᐹ ᐊᓚᒃᑲᐅᑎᕗᖅ ᓯᕗᓕᐅᖅᐹ ᐅᖃᐅᓯᓪᓚᕆᖏᑕ ᑎᑎᕋᖅᑕᐅᓂᖏᑦ",
+       "showdiff": "ᐊᓚᒃᑲᑎᑉᐹ ᐊᓯᐊᙳᑐᖅ",
+       "summary-preview": "ᓱᕕᑦ:",
+       "blockedtitle": "ᐋᖅᑭᒃᓱᐃᔨ ᐅᒥᙵᓯᓯᔪᖅ",
+       "loginreqlink": "ᐊᑯᓐᓇᐳᖅ",
+       "newarticle": "(ᐱᒋᕗᖅ)",
+       "editing": "ᐊᓯᐊᙳᑐᖅ $1",
+       "editingsection": "ᓱᖁᓯᖅᐹ ᐃᓚ $1 (ᖏᐅᑎᑎᑦᓯᒍᑎ)",
+       "editingcomment": "ᓱᖁᓯᖅᐹ $1 (ᐅᔾᔨᕆᔭᖅ)",
+       "editconflict": "ᓱᖁᓯᖅᐹ ᐊᑲᐅᙱᓕᐅᕈᑎᓂᖅ: $1",
+       "currentrev": "ᒫᓐᓇ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
+       "previousrevision": "←ᐅᑐᖃᖅ  ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
+       "nextrevision": "ᐱᓪᓗᐊᕆᕚ ᐱᒋᕗᖅ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ→",
+       "currentrevisionlink": "ᒫᓐᓇ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
+       "next": "ᑕᒡᒐ",
+       "last": "ᐊᓐᓂᑐᔪᖅ",
+       "history-feed-title": "ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ",
+       "history-feed-description": "ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ ᐃᑭᐊᖅ ᐅᐃᑭ",
+       "history-title": "ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ ᒪᑉᐱᑕᖅ ᑭᖑᓂᑦᑎᓐᓂ \"$1\"",
+       "lineno": "ᑐᑭᖅᓯᖅ $1:",
+       "editundo": "ᐃᐱᐅᑦᔮᐹ",
+       "nextn": "ᑕᒡᒐ {{PLURAL:$1|$1}}",
+       "mypreferences": "ᐊᒥ ᐱᒃᑯᒪᓂᖅᐹᖅ",
+       "prefs-rc": "ᐱᒋᕗᖅ ᐊᓯᐊᙳᑐᖅ",
+       "searchresultshead": "ᐃᕚᖅᐳᖅ",
+       "youremail": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ:",
+       "username": "ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ:",
+       "yourrealname": "ᐃᓄᓪᓚᕆᒃ ᐊᑎᖅ:",
+       "email": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ",
+       "prefs-help-email": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ (ᐱᒃᑲᓪᓚᕗᖅ) — ᖃᑯᒍ ᓇᓗᓇᙱᓚᖅ ᐃᓕᔅᓯ ᐱᔪᖕᓇᖅᑐᖅ ᐱᒋᕚ ᑲᙳᓇᖅᑐᖅ ᐋᔩᖃᑎᒋᖏᖅ",
+       "editinguser": "ᓱᖁᓯᖅᐹ ᖃᑕᙳᑎ '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+       "recentchanges": "ᐱᒋᕗᖅ ᐊᓯᐊᙳᑐᖅ",
+       "hide": "ᐃᔨᖅᐳᖅ",
+       "show": "ᐊᓚᒃᑲᑎᖅᐹ",
+       "minoreditletter": "ᐅ",
+       "newpageletter": "ᐱ",
+       "boteditletter": "ᑉ",
+       "recentchangeslinked": "ᐊᓯᐊᙳᑐᖅ ᒥᑦᓵᓯᔪᖅ",
+       "recentchangeslinked-feed": "ᐊᓯᐊᙳᑐᖅ ᒥᑦᓵᓯᔪᖅ",
+       "recentchangeslinked-toolbox": "ᐊᓯᐊᙳᑐᖅ ᒥᑦᓵᓯᔪᖅ",
+       "upload": "ᒪᑉᐱᐹ ᓇᓗᓇᐃᔭᐅᑎᑦ",
+       "uploadbtn": "ᒪᑉᐱᐹ ᓇᓗᓇᐃᔭᐅᑎᑦ",
+       "filedesc": "ᐱᓕᕆᐊᒃᓴᑦ ᐱᕕᒡᔪᐊᖑᓂᖏᑦ",
+       "fileuploadsummary": "ᓱᕕᑦ:",
+       "watchthisupload": "ᐅᕝᕙ",
+       "file-anchor-link": "ᐊᒋᐅᑦ",
+       "listredirects": "ᓂᐱ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
+       "randompage": "ᓇᑭᑐᐃᓐᓇᖅ ᖃᐅᔨᓴᕐᓂᖅ ᒪᑉᐱᑕᖅ",
+       "randomredirect": "ᓇᑭᑐᐃᓐᓇᖅ ᖃᐅᔨᓴᕐᓂᖅ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
+       "statistics": "ᑭᓯᑦᓯᓯᖕᖑᕐᓗᒋᑦ ᐹᓯᔅᓱᑎᔅᓴᑦ",
+       "statistics-header-users": "ᖃᑕᙳᑎ ᑭᓯᑦᓯᓯᖕᖑᕐᓗᒋᑦ ᐹᓯᔅᓱᑎᔅᓴᑦ",
+       "doubleredirects": "ᑕᐱᕐᖃᓕᒃ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
+       "brokenredirects": "ᓇᐱᕚ ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ",
+       "brokenredirects-edit": "ᓱᖁᓯᖅᐹ",
+       "brokenredirects-delete": "ᓂᐸᖅᑎᐹ",
+       "listusers": "ᖃᑕᙳᑎ ᓂᐱ",
+       "newpages-username": "ᐅᐃᑭᐱᑎᐊ ᐊᑎᖅ:",
+       "ancientpages": "ᒪᑉᐱᑕᖅ ᐃᑦᑐᓴᖅ ᐅᑐᖃᖅ",
+       "move": "ᐅᐊᔪᖅ",
+       "allpages": "ᓱᓇᒥᑦᑐᖅ ᒪᑉᐱᑕᖅ",
+       "nextpage": "ᑕᒡᒐ ᒪᑉᐱᑕᖅ ($1)",
+       "allpagessubmit": "ᐊᐃᕗᖅ",
+       "categories": "ᓄᐊᑉᐳᑦ",
+       "emailuser": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ ᐃᓄᒃ",
+       "emailfrom": "ᓇᑭᑦ",
+       "emailmessage": "ᑭᒡᒐᐹ",
+       "emailsend": "ᕿᐅᑦᓴᕕᒋᕚ",
+       "watchlist": "ᐅᕝᕙ ᒪᑉᐱᑕᖅ",
+       "mywatchlist": "ᓂᐱ ᐊᒥ",
+       "watch": "ᐅᕝᕙ",
+       "watchthispage": "ᐅᕝᕙ",
+       "unwatch": "ᐃᖅ ᐅᕝᕙ",
+       "enotif_impersonal_salutation": "{{SITENAME}} ᖃᑕᙳᑎ",
+       "created": "ᒪᑉᐱᑕᖅ ᐊᓂᕗᖅ",
+       "dellogpage": "ᓂᐸᖅ ᓂᐱ",
+       "deletionlog": "ᓂᐸᖅ ᓂᐱ",
+       "prot_1movedto2": "[[$1]] ᓱᕐᕋᒪᔪᖅ [[$2]]",
+       "protect-legend": "ᐸᑎᒻᒥᕚ ᓴᐳᒻᒥᕚ",
+       "protect-level-sysop": "ᓯᕐᓚᒃ ᑎᑎᕋᖅᓯᒪᔪᓂᒃ ᑐᖅᑯᖅᑎᕆᔨ",
+       "restriction-move": "ᐅᐊᔪᖅ",
+       "undelete-search-submit": "ᐃᕚᖅᐳᖅ",
+       "blanknamespace": "(ᐊᒥᖅ)",
+       "mycontris": "ᑕᓕᐊᖅ",
+       "sp-contributions-talk": "ᐅᖃᓕᒪᔪᖅ",
+       "sp-contributions-submit": "ᐃᕚᖅᐳᖅ",
+       "whatlinkshere": "ᐅᖅᓯᖅ ᒪᐅᖓ",
+       "isredirect": "ᑕᐱᑕᕇᒃ ᐅᖅᓯᖅ ᒪᑉᐱᑕᖅ",
+       "blockip": "ᐃᖅ ᐋᖅᑭᒃᓱᐃᔨ",
+       "badipaddress": "ᐃᓪᓕᑐᖅ ᖃᕆᓴᐅᔭᒃᑯᑦ ᑎᑎᕋᖅᓯᒪᔪᑦ ᒪᓕᒐᑎᒍᑦ ᐊᖏᕈᑕᐅᓯᒪᔪᖅ ᐅᓂᒃᑳᕆᔭᖃᕐᓂᖅ",
+       "blockipsuccesssub": "ᐅᒥᙵᓯᓯᔪᖅ ᓈᔪᖅ",
+       "ipblocklist-submit": "ᐃᕚᖅᐳᖅ",
+       "anononlyblock": "ᓯᕐᓚᒃ ᐃᓕᓴᕐᓇᙱᑎᑦᑐᖅ",
+       "blocklink": "ᐃᖅ",
+       "contribslink": "ᖃᑕᙳᑎ ᓱᖁᓯᖅᐹ",
+       "blocklogpage": "ᐅᒥᙵᓯᓯᔪᖅ/ᐃᖅ ᑎᑎᖅᑲᖁᑎᑦ ᑐᖅᑯᖅᓯᒪᔭᐃᑦ",
+       "block-log-flags-anononly": "ᐃᓕᓴᕐᓇᙱᑎᑦᑐᖅ ᐋᖅᑭᒃᓱᐃᔨ ᑭᓯᐊᓂ",
+       "block-log-flags-nocreate": "ᑮᓇᐅᔭᖃᕐᕕᒃ ᐃᓄᐃᕈᑎᕚ ᐃᓂᖅᑎᐹ ᐱᒋᕗᖅ",
+       "block-log-flags-noemail": "ᑭᒍᑎᐅᑉ ᓯᑎᓂᖅᐹᖓ",
+       "move-page-legend": "ᐅᐊᔪᖅ ᒪᑉᐱᑕᖅ",
+       "movearticle": "ᐅᐊᔪᖅ ᒪᑉᐱᑕᖅ",
+       "movelogpage": "ᐅᐊᔪᖅ ᓂᐱ",
+       "movereason": "ᐃᓱᒪᒃᓴᖅᓯᐅᕈᓐᓇᑦᑎᐊᕐᓂᖅ:",
+       "delete_and_move": "ᓂᐸᖅᑎᐹ  ᐊᒻᒪ ᐅᐊᔪᖅ",
+       "allmessagesname": "ᐊᑎᖅ",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ}}",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ|ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ}} ᐃᑭᐊᖅ $2",
+       "tooltip-pt-mytalk": "ᐊᓪᓚᖁᑎᒃᑲ",
+       "tooltip-pt-preferences": "ᐊᒥ ᐱᒃᑯᒪᓂᖅᐹᖅ",
+       "tooltip-pt-logout": "ᐊᓂᕝᕕᒃ",
+       "tooltip-ca-protect": "ᓴᐳᒻᒥᕚ ᒪᑉᐱᑕᖅ",
+       "tooltip-search": "ᐃᕚᖅᐳᖅ {{SITENAME}}",
+       "tooltip-minoredit": "ᑐᐊᐸᖅ ᐊᓯᐊᙳᑐᖅ",
+       "tooltip-diff": "ᓱᕐᕋᐹ ᖃᑕᙳᑎ",
+       "tooltip-compareselectedversions": "ᐅᕝᕙ ᐊᓯᐊᙳᑐᖅ ᒪᑉᐱᑕᖅ ᐊᑯᓐᓂᖓᓐᓂ ᒪᕐᕉᒃ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ",
+       "anonymous": "ᐃᓕᓴᕐᓇᙱᑎᑦᑐᖅ ᖃᑕᙳᑎ ᓇᑭᑦ {{SITENAME}}",
+       "deletedrevision": "ᓂᐸᖅ ᐅᑐᖃᖅ ᑎᑎᕋᖅᑕᐅᒋᐊᕐᖓᕈᑦ $1",
+       "previousdiff": "← ᑐᓄᓪᓕᐹᖅ ᐊᓯᐊᙳᑐᖅ",
+       "nextdiff": "ᑕᒡᒐ ᐊᓯᐊᙳᑐᖅ ᒪᑉᐱᑕᖅ →",
+       "ilsubmit": "ᐃᕚᖅᐳᖅ",
+       "bydate": "ᐱᑖᕈᑦᑐᖅ ᐃᓅᓕᕐᕕᒃ",
+       "variantname-ike-cans": "ᑎᑎᕋᐅᓯᖅ ᓄᑖᖅ",
+       "variantname-ike-latn": "ilisautik",
+       "variantname-iu": "disable",
+       "exif-imagelength": "ᖁᑦᓯᖕᓂᖅ",
+       "exif-imagedescription": "ᐃᓄᙳᐊᖅ ᐊᑎᖅ",
+       "exif-colorspace": "ᒥᖑᐊᕈᑎᒥᑎᖅᐹ",
+       "exif-datetimeoriginal": "ᖃᑦᓯᐹ ᐊᒪᒻ ᑎᑭᐅᑎ ᓴᕐᕿᐹ ᐃᓱᐃᓪᓕᖓᐃᑦᔭᐹ",
+       "exif-datetimedigitized": "ᖃᑦᓯᐹ ᐊᒪᒻ ᑎᑭᐅᑎ ᓴᕐᕿᐹ ᖃᕋᓴᐅᔭᖅ",
+       "exif-exposuretime-format": "$1 ᐊᐃᑉᐸᖅ ($2)",
+       "exif-brightnessvalue": "ᖃᐅᒻᒪᐹ ᐊᒃᑭᐅᑕᖅ",
+       "monthsall": "ᓱᓇᒥᑦᑐᖅ",
+       "confirm_purge_button": "ᐊᑲᐅᔪᖅ",
+       "imgmultipageprev": "← ᑐᓄᓪᓕᐹᖅ  ᒪᑉᐱᑕᖅ",
+       "imgmultipagenext": "ᑕᒡᒐ ᒪᑉᐱᑕᖅ →",
+       "imgmultigo": "ᐊᐃᕗᖅ!",
+       "table_pager_limit_submit": "ᐊᐃᕗᖅ",
+       "autoredircomment": "ᖃᓂᖓᓂ ᑲᒪᒋᔭᖅ ᐋᓯᑦ ᓇᑭᑦ [[$1]]",
+       "autosumm-new": "ᐱᒋᕗᖅ ᒪᑉᐱᑕᖅ: $1",
+       "specialpages": "ᐱᔨ ᒪᑉᐱᑕᖅ"
 }
index 67bd863..5ab35e2 100644 (file)
 {
-    "@metadata": {
-        "authors": []
-    },
-    "tog-rememberpassword": "Iqtuu uikipitia atiq qakugiq atuinnasivuq uvalumaq qaritaujaq (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "sunday": "sanattaili",
-    "monday": "naggajaq",
-    "wednesday": "pingajua",
-    "friday": "pagaitaak",
-    "sun": "sana",
-    "mon": "nag",
-    "wed": "pinga",
-    "january": "januari",
-    "february": "vipuari",
-    "march": "maarsi",
-    "april": "aipuril",
-    "may_long": "mai",
-    "june": "juni",
-    "july": "julai",
-    "august": "augus",
-    "october": "uktupuri",
-    "november": "nuvimpuri",
-    "december": "tisimpuri",
-    "january-gen": "januari",
-    "february-gen": "vipuari",
-    "march-gen": "maarsi",
-    "april-gen": "aipuril",
-    "may-gen": "mai",
-    "june-gen": "juni",
-    "july-gen": "julai",
-    "august-gen": "augus",
-    "october-gen": "uktupuri",
-    "november-gen": "nuvimpuri",
-    "december-gen": "tisimpuri",
-    "apr": "aipu",
-    "may": "mai",
-    "aug": "augu",
-    "nov": "nuvi",
-    "about": "miksaani",
-    "article": "ilulik mappitaq",
-    "newwindow": "(uittuq qarasaujaq ikiaq pigivuq igalaaq)",
-    "cancel": "iniqtipaa",
-    "moredotdotdot": "pilluarivaa...",
-    "mypage": "ami mappitaq",
-    "mytalk": "atlarqutikka",
-    "navigation": "mianirivaa",
-    "and": "&#32;amma",
-    "vector-view-edit": "Suqusiqpaa",
-    "help": "qajalippaa",
-    "search": "ivaaqpuq",
-    "searchbutton": "ivaaqpuq",
-    "go": "aivuq",
-    "searcharticle": "aivuk",
-    "history_short": "mappitaq kingunittinni",
-    "edit": "Suqusiqpaa",
-    "editthispage": "suqusiqpaa mappitaq",
-    "delete": "nipaqtipaa",
-    "protect": "sapummivaa",
-    "unprotect": "iq sapummivaa",
-    "unprotectthispage": "iq sapummivaa mappitaq",
-    "newpage": "pigivuk mappitaq",
-    "specialpage": "piji mappitaq",
-    "articlepage": "ilulik mappitaq uvva",
-    "talk": "uqalimajuq",
-    "toolbox": "sanarqutiqauti",
-    "otherlanguages": "killumut uiki",
-    "redirectedfrom": "(qaningani kamagijaq aasit nakit $1)",
-    "redirectpagesub": "aningani kamagijaq aasit nakit mappitaq",
-    "jumptonavigation": "mianirivaa",
-    "jumptosearch": "ivaaqpuq",
-    "aboutsite": "miksaani {{SITENAME}}",
-    "aboutpage": "Project:miksaani",
-    "currentevents": "pigivuq piusiq",
-    "currentevents-url": "Project:pigivuq piusiq",
-    "edithelp": "ikurripaa suqusiqpaa",
-    "mainpage": "amiq",
-    "mainpage-description": "amiq",
-    "portal": "qaggiq",
-    "portal-url": "Project:qaggiq",
-    "privacy": "namminiq pilirivviqauqtunut aulataujut atuagaq, pinasuarniq",
-    "privacypage": "Project:namminiq pilirivviqauqtunut aulataujut atuagaq, pinasuarniq",
-    "youhavenewmessages": "ilissu pigivaa $1 ($2).",
-    "editsection": "suqusiqpaa",
-    "editold": "suqusiqpaa",
-    "editlink": "suqusiqpaa",
-    "editsectionhint": "suqusiqpaa ilangiutititsiguti: $1",
-    "site-rss-feed": "$1 rss mianirivaa",
-    "site-atom-feed": "$1 atum mianirivaa",
-    "page-rss-feed": "\"$1\" rss mianirivaa",
-    "page-atom-feed": "\"$1\" atum mianirivaa",
-    "nstab-main": "mappitaq",
-    "nstab-user": "inuk mappitaq",
-    "nstab-special": "piji",
-    "nstab-project": "piliriaksait pivalliajjutiksanut miqitaq",
-    "nstab-mediawiki": "kiggapaa",
-    "nstab-template": "mianirivaa-qijuqut",
-    "nstab-category": "nuapput",
-    "badtitle": "ajuqtuq atiq",
-    "editinginterface": "'''iniqtiruti—''' aaha suqusiqpaa iqiak mappitaq atuinnasivuq iijatsaq qarasaujaq taqsaliqpaa ikiaq aqittuq qaritaujaup titirarvinga. asiaNngutuq ikiaq mappitaq inuktitut uikipitia allanguqtuaq nakimaqpuq qatannguti.",
-    "yourname": "uikipitia atiq",
-    "yourpassword": "uikipitia palanngasauti",
-    "yourpasswordagain": "tamatumaniiqpaa iksigaqtuq uikipitia palanngasauti",
-    "remembermypassword": "iqtuu uikipitia atiq qakakuq atuinnasivuq uvalumajuq qaritaujaq (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "akunnapuq",
-    "loginprompt": "pigialik imatuaq qaritaujaq quukiis (Cookies) pirqaati akunnapuq {{SITENAME}}.",
-    "userlogin": "akunnapuq / pirqaapaa kiinaijakkuvingmi tuqkuqsivik",
-    "logout": "anivvik",
-    "userlogout": "anivvik",
-    "nologin": "ajuinnaaq inuquti? '''$1'''.",
-    "nologinlink": "pirqaapaa kiinaujakkuvingmi tuqkuqsivik",
-    "mailmypassword": "qillutuq uikipitia palanngasauti kigutiup sitiniqpaanga",
-    "bold_sample": "ijjujug taqsaliqpaa",
-    "bold_tip": "ijjujug taqsaliqpaa",
-    "summary": "suvit:",
-    "minoredit": "ukiukiluaq asianngutuq",
-    "watchthis": "uvva",
-    "savearticle": "uqausillaringgita titiraqtauninggil",
-    "preview": "uvva qangasaanguliqtuq",
-    "showpreview": "surkuqpaa alakkautivuq sivuliqpaa uqaasillarigita titiraqtauningigit",
-    "showdiff": "alakkatippaa asianngutuq",
-    "summary-preview": "suvit preview:",
-    "blockedtitle": "aaqqiksuiji uminngasisijuq",
-    "loginreqlink": "akunnapuq",
-    "newarticle": "(pigivuk)",
-    "editingsection": "suqusiqpaa $1 (ilangiutititsiguti)",
-    "editingcomment": "suqusiqpaa $1 (ujjirijaq)",
-    "editconflict": "suqusiqpaa akaunngiliurutiniq: $1",
-    "currentrev": "maanna titiraqtaugiarngarut",
-    "previousrevision": "←utuqaq titiraqtaugiarngarut",
-    "nextrevision": "pilluarivaa pigivuk revision titiraqtaugiarngarut→",
-    "currentrevisionlink": "maanna titiraqtaugiarngarut",
-    "next": "tagga",
-    "history-feed-title": "titiraqtaugiarngarut mappitaq kingunittinni",
-    "history-feed-description": "titiraqtaugiarngarut mappitaq kingunittinni ikiaq uiki",
-    "history-title": "titiraqtaugiarngarut mappitaq kingunittinni \"$1\"",
-    "lineno": "tukiqsiq $1:",
-    "editundo": "ipiutjaapaa",
-    "nextn": "tagga {{PLURAL:$1|$1}}",
-    "mypreferences": "mi pikkumaniqpaaq",
-    "prefs-rc": "pigivuq asianngutuq",
-    "searchresultshead": "ivaaqpuq",
-    "youremail": "kigutiup sitiniqpaanga:",
-    "username": "uikipitia atiq:",
-    "yourrealname": "inullarik atiq:",
-    "email": "kigutiup sitiniqpaanga",
-    "prefs-help-email": "kigutiup sitiniqpaanga (pikkallavuq) — qakugu nalunanngilaq ilissi pijungnaqtuq pigivaa kanngunaqtuq aajiiqatiginggiq",
-    "editinguser": "suqusiqpaa qatannguti '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
-    "recentchanges": "pigivuq asianngutuq",
-    "recentchangeslinked": "asiaNngutuq mitsaasijuq",
-    "recentchangeslinked-feed": "asiaNngutuq mitsaasijuq",
-    "recentchangeslinked-toolbox": "asiaNngutuq mitsaasijuq",
-    "upload": "mappipaa nalinaijatit",
-    "uploadbtn": "mappipaa nalunaijautit",
-    "filedesc": "piliriaksat pivigjuanguningit",
-    "fileuploadsummary": "suvit:",
-    "watchthisupload": "uvva",
-    "listredirects": "nipi qaningani kamagijaq aasit nakit",
-    "randompage": "nakituinnaq qaujisarniq mappitaq",
-    "randomredirect": "nakituinnaq qaujisarniq qaningani kamagijaq aasit nakit",
-    "statistics": "kisitsisillgurlugitpasissitissat",
-    "statistics-header-users": "qatannguti kisitsisillgurlugitpasissitissat",
-    "doubleredirects": "tapirqilik qaningani kamagijaq aasit nakit",
-    "brokenredirects": "napivaa qaningani kamagijaq aasit nakit",
-    "brokenredirects-edit": "suqusiqpaa",
-    "brokenredirects-delete": "nipaqtipaa",
-    "listusers": "qatannguti nipi",
-    "newpages-username": "uikipitia atiq:",
-    "ancientpages": "utuqaq ittusaq mappitaq",
-    "move": "uajuq",
-    "booksources-go": "aivuq",
-    "allpages": "sunamittuq mappitaq",
-    "nextpage": "tagga mappitaq ($1)",
-    "allpagessubmit": "aivuk",
-    "categories": "nuapput",
-    "emailfrom": "nakit",
-    "emailmessage": "kiggapaa",
-    "emailsend": "qiutsavigivaa",
-    "watchlist": "uvva mappitaq",
-    "mywatchlist": "nipi ami",
-    "watch": "uvva",
-    "watchthispage": "uvva",
-    "unwatch": "iq uvva",
-    "enotif_impersonal_salutation": "{{SITENAME}} qatannguti",
-    "created": "mappitaq anivuq",
-    "dellogpage": "nipaq nipi",
-    "deletionlog": "nipaq nipi",
-    "prot_1movedto2": "[[$1]] surramajuq [[$2]]",
-    "protect-legend": "patimmivaa sapummivaa",
-    "protect-level-sysop": "sirlak titiraqsimajunik tuqquqtiriji",
-    "restriction-edit": "Suqusiqpaa",
-    "restriction-move": "uajuq",
-    "undelete-search-submit": "ivaaqpuq",
-    "blanknamespace": "(amiq)",
-    "mycontris": "taliaq",
-    "sp-contributions-submit": "ivaaqpuq",
-    "whatlinkshere": "uqsiq maungu",
-    "isredirect": "tapitariik uqsaq mappitaq",
-    "blockip": "iq aaqqiksuiji",
-    "badipaddress": "illituq qarisaujakkut titiraqsimajut maligatigut angirutausimajuq unikkaarijaqarniq",
-    "blockipsuccesssub": "uminngasisijuq naajuq",
-    "ipblocklist-submit": "ivaaqpuq",
-    "anononlyblock": "sirlak ilisarnanngitittuq",
-    "blocklink": "iq",
-    "contribslink": "qatannguti suqusiqpaa",
-    "blocklogpage": "uminngasisijuq/iq titiqqaqutit tuqquqsimajait",
-    "block-log-flags-anononly": "ilisarnanngitittuq aaqqiksuiji kisiani",
-    "block-log-flags-nocreate": "kiinaujaqarvik inuirutivaa iniqtipaa pigivuq",
-    "block-log-flags-noemail": "kigutiup sitiniqpaanga uminngasisijuq",
-    "move-page-legend": "uajuq mappitaq",
-    "movearticle": "uajuq mappitaq",
-    "movelogpage": "uajuq nipi",
-    "delete_and_move": "nipaqtipaa amma uajuq",
-    "allmessagesname": "atiq",
-    "import-logentry-upload-detail": "$1 {{PLURAL:$1|titiraqtaugiarngarut|titiraqtaugiarngarut}}",
-    "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|titiraqtaugiarngarut|titiraqtaugiarngarut}} ikiaq $2",
-    "tooltip-ca-protect": "sapummivaa mappitaq",
-    "tooltip-search": "ivaaqpuq {{SITENAME}}",
-    "tooltip-minoredit": "tuapaq asiaNngutuq",
-    "tooltip-diff": "surrapaa qatannguti",
-    "tooltip-compareselectedversions": "uvva asiaNngutuq mappitaq akunninganni marruuk titiraqtaugiarngarut",
-    "anonymous": "ilisarnanngitittuq qatannguti nakit {{SITENAME}}",
-    "deletedrevision": "nipaq utuqaq titiraqtaugiarngarut $1",
-    "previousdiff": "← tunullipaaq asiaNngutuq",
-    "nextdiff": "tagga asiaNngutuq mappitaq →",
-    "ilsubmit": "ivaaqpuq",
-    "bydate": "pitaaruttuq inuulirvik",
-    "variantname-ike-cans": "ᑎᑎᕋᐅᓯᖅ ᓄᑖᖅ",
-    "variantname-ike-latn": "ilisautik",
-    "variantname-iu": "disable",
-    "exif-imagelength": "qutsingniq",
-    "exif-imagedescription": "inunnguaq atiq",
-    "exif-colorspace": "minguarutimitiqpaa",
-    "exif-datetimeoriginal": "qatsipaa amma tikiuti sarqipaa isuillingaitjapaa",
-    "exif-datetimedigitized": "qatsipaa amma tikiuti sarqipaa qarasaujaq",
-    "exif-exposuretime-format": "$1 aippaq ($2)",
-    "exif-brightnessvalue": "qaummapaa akkiutaq",
-    "monthsall": "sunamittuq",
-    "confirm_purge_button": "akaujuq",
-    "imgmultipageprev": "← tunullipaaq mappitaq",
-    "imgmultipagenext": "tagga mappitaq →",
-    "imgmultigo": "aivuq!",
-    "table_pager_limit_submit": "aivuk",
-    "autoredircomment": "qaningani kamagijaq aasit nakit [[$1]]",
-    "autosumm-new": "pigivuq mappitaq: $1",
-    "specialpages": "piji mappitaq",
-    "tags-edit": "suqusiqpaa"
+       "@metadata": [],
+       "sunday": "sanattaili",
+       "monday": "naggajaq",
+       "wednesday": "pingajua",
+       "friday": "pagaitaak",
+       "sun": "sana",
+       "mon": "nag",
+       "wed": "pinga",
+       "january": "januari",
+       "february": "vipuari",
+       "march": "maarsi",
+       "april": "aipuril",
+       "may_long": "mai",
+       "june": "juni",
+       "july": "julai",
+       "august": "augus",
+       "october": "uktupuri",
+       "november": "nuvimpuri",
+       "december": "tisimpuri",
+       "january-gen": "januari",
+       "february-gen": "vipuari",
+       "march-gen": "maarsi",
+       "april-gen": "aipuril",
+       "may-gen": "mai",
+       "june-gen": "juni",
+       "july-gen": "julai",
+       "august-gen": "augus",
+       "october-gen": "uktupuri",
+       "november-gen": "nuvimpuri",
+       "december-gen": "tisimpuri",
+       "apr": "aipu",
+       "may": "mai",
+       "aug": "augu",
+       "nov": "nuvi",
+       "about": "miksaani",
+       "article": "ilulik mappitaq",
+       "newwindow": "(uittuq qarasaujaq ikiaq pigivuq igalaaq)",
+       "cancel": "iniqtipaa",
+       "moredotdotdot": "pilluarivaa...",
+       "mypage": "ami mappitaq",
+       "mytalk": "atlarqutikka",
+       "navigation": "mianirivaa",
+       "and": "&#32;amma",
+       "help": "qajalippaa",
+       "search": "ivaaqpuq",
+       "searchbutton": "ivaaqpuq",
+       "go": "aivuq",
+       "searcharticle": "aivuk",
+       "history_short": "mappitaq kingunittinni",
+       "edit": "Suqusiqpaa",
+       "editthispage": "suqusiqpaa mappitaq",
+       "delete": "nipaqtipaa",
+       "protect": "sapummivaa",
+       "unprotect": "iq sapummivaa",
+       "unprotectthispage": "iq sapummivaa mappitaq",
+       "newpage": "pigivuk mappitaq",
+       "specialpage": "piji mappitaq",
+       "articlepage": "ilulik mappitaq uvva",
+       "talk": "uqalimajuq",
+       "toolbox": "sanarqutiqauti",
+       "otherlanguages": "killumut uiki",
+       "redirectedfrom": "(qaningani kamagijaq aasit nakit $1)",
+       "redirectpagesub": "aningani kamagijaq aasit nakit mappitaq",
+       "jumptonavigation": "mianirivaa",
+       "jumptosearch": "ivaaqpuq",
+       "aboutsite": "miksaani {{SITENAME}}",
+       "aboutpage": "Project:miksaani",
+       "currentevents": "pigivuq piusiq",
+       "currentevents-url": "Project:pigivuq piusiq",
+       "edithelp": "ikurripaa suqusiqpaa",
+       "mainpage": "amiq",
+       "mainpage-description": "amiq",
+       "portal": "qaggiq",
+       "portal-url": "Project:qaggiq",
+       "privacy": "namminiq pilirivviqauqtunut aulataujut atuagaq, pinasuarniq",
+       "privacypage": "Project:namminiq pilirivviqauqtunut aulataujut atuagaq, pinasuarniq",
+       "youhavenewmessages": "ilissu pigivaa $1 ($2).",
+       "editsection": "suqusiqpaa",
+       "editold": "suqusiqpaa",
+       "editlink": "suqusiqpaa",
+       "editsectionhint": "suqusiqpaa ilangiutititsiguti: $1",
+       "site-rss-feed": "$1 rss mianirivaa",
+       "site-atom-feed": "$1 atum mianirivaa",
+       "page-rss-feed": "\"$1\" rss mianirivaa",
+       "page-atom-feed": "\"$1\" atum mianirivaa",
+       "nstab-main": "mappitaq",
+       "nstab-user": "inuk mappitaq",
+       "nstab-special": "piji",
+       "nstab-project": "piliriaksait pivalliajjutiksanut miqitaq",
+       "nstab-mediawiki": "kiggapaa",
+       "nstab-template": "mianirivaa-qijuqut",
+       "nstab-category": "nuapput",
+       "badtitle": "ajuqtuq atiq",
+       "editinginterface": "'''iniqtiruti—''' aaha suqusiqpaa iqiak mappitaq atuinnasivuq iijatsaq qarasaujaq taqsaliqpaa ikiaq aqittuq qaritaujaup titirarvinga. asiaNngutuq ikiaq mappitaq inuktitut uikipitia allanguqtuaq nakimaqpuq qatannguti.",
+       "yourname": "uikipitia atiq",
+       "yourpassword": "uikipitia palanngasauti",
+       "yourpasswordagain": "tamatumaniiqpaa iksigaqtuq uikipitia palanngasauti",
+       "remembermypassword": "iqtuu uikipitia atiq qakakuq atuinnasivuq uvalumajuq qaritaujaq (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "akunnapuq",
+       "userlogin": "akunnapuq / pirqaapaa kiinaijakkuvingmi tuqkuqsivik",
+       "logout": "anivvik",
+       "userlogout": "anivvik",
+       "nologin": "ajuinnaaq inuquti? '''$1'''.",
+       "nologinlink": "pirqaapaa kiinaujakkuvingmi tuqkuqsivik",
+       "mailmypassword": "qillutuq uikipitia palanngasauti kigutiup sitiniqpaanga",
+       "bold_sample": "ijjujug taqsaliqpaa",
+       "bold_tip": "ijjujug taqsaliqpaa",
+       "summary": "suvit:",
+       "minoredit": "ukiukiluaq asianngutuq",
+       "watchthis": "uvva",
+       "savearticle": "uqausillaringgita titiraqtauninggil",
+       "preview": "uvva qangasaanguliqtuq",
+       "showpreview": "surkuqpaa alakkautivuq sivuliqpaa uqaasillarigita titiraqtauningigit",
+       "showdiff": "alakkatippaa asianngutuq",
+       "summary-preview": "suvit preview:",
+       "blockedtitle": "aaqqiksuiji uminngasisijuq",
+       "loginreqlink": "akunnapuq",
+       "newarticle": "(pigivuk)",
+       "editingsection": "suqusiqpaa $1 (ilangiutititsiguti)",
+       "editingcomment": "suqusiqpaa $1 (ujjirijaq)",
+       "editconflict": "suqusiqpaa akaunngiliurutiniq: $1",
+       "currentrev": "maanna titiraqtaugiarngarut",
+       "previousrevision": "←utuqaq titiraqtaugiarngarut",
+       "nextrevision": "pilluarivaa pigivuk revision titiraqtaugiarngarut→",
+       "currentrevisionlink": "maanna titiraqtaugiarngarut",
+       "next": "tagga",
+       "history-feed-title": "titiraqtaugiarngarut mappitaq kingunittinni",
+       "history-feed-description": "titiraqtaugiarngarut mappitaq kingunittinni ikiaq uiki",
+       "history-title": "titiraqtaugiarngarut mappitaq kingunittinni \"$1\"",
+       "lineno": "tukiqsiq $1:",
+       "editundo": "ipiutjaapaa",
+       "nextn": "tagga {{PLURAL:$1|$1}}",
+       "mypreferences": "mi pikkumaniqpaaq",
+       "prefs-rc": "pigivuq asianngutuq",
+       "searchresultshead": "ivaaqpuq",
+       "youremail": "kigutiup sitiniqpaanga:",
+       "username": "uikipitia atiq:",
+       "yourrealname": "inullarik atiq:",
+       "email": "kigutiup sitiniqpaanga",
+       "prefs-help-email": "kigutiup sitiniqpaanga (pikkallavuq) — qakugu nalunanngilaq ilissi pijungnaqtuq pigivaa kanngunaqtuq aajiiqatiginggiq",
+       "editinguser": "suqusiqpaa qatannguti '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+       "recentchanges": "pigivuq asianngutuq",
+       "recentchangeslinked": "asiaNngutuq mitsaasijuq",
+       "recentchangeslinked-feed": "asiaNngutuq mitsaasijuq",
+       "recentchangeslinked-toolbox": "asiaNngutuq mitsaasijuq",
+       "upload": "mappipaa nalinaijatit",
+       "uploadbtn": "mappipaa nalunaijautit",
+       "filedesc": "piliriaksat pivigjuanguningit",
+       "fileuploadsummary": "suvit:",
+       "watchthisupload": "uvva",
+       "listredirects": "nipi qaningani kamagijaq aasit nakit",
+       "randompage": "nakituinnaq qaujisarniq mappitaq",
+       "randomredirect": "nakituinnaq qaujisarniq qaningani kamagijaq aasit nakit",
+       "statistics": "kisitsisillgurlugitpasissitissat",
+       "statistics-header-users": "qatannguti kisitsisillgurlugitpasissitissat",
+       "doubleredirects": "tapirqilik qaningani kamagijaq aasit nakit",
+       "brokenredirects": "napivaa qaningani kamagijaq aasit nakit",
+       "brokenredirects-edit": "suqusiqpaa",
+       "brokenredirects-delete": "nipaqtipaa",
+       "listusers": "qatannguti nipi",
+       "newpages-username": "uikipitia atiq:",
+       "ancientpages": "utuqaq ittusaq mappitaq",
+       "move": "uajuq",
+       "allpages": "sunamittuq mappitaq",
+       "nextpage": "tagga mappitaq ($1)",
+       "allpagessubmit": "aivuk",
+       "categories": "nuapput",
+       "emailfrom": "nakit",
+       "emailmessage": "kiggapaa",
+       "emailsend": "qiutsavigivaa",
+       "watchlist": "uvva mappitaq",
+       "mywatchlist": "nipi ami",
+       "watch": "uvva",
+       "watchthispage": "uvva",
+       "unwatch": "iq uvva",
+       "enotif_impersonal_salutation": "{{SITENAME}} qatannguti",
+       "created": "mappitaq anivuq",
+       "dellogpage": "nipaq nipi",
+       "deletionlog": "nipaq nipi",
+       "prot_1movedto2": "[[$1]] surramajuq [[$2]]",
+       "protect-legend": "patimmivaa sapummivaa",
+       "protect-level-sysop": "sirlak titiraqsimajunik tuqquqtiriji",
+       "restriction-edit": "Suqusiqpaa",
+       "restriction-move": "uajuq",
+       "undelete-search-submit": "ivaaqpuq",
+       "blanknamespace": "(amiq)",
+       "mycontris": "taliaq",
+       "sp-contributions-submit": "ivaaqpuq",
+       "whatlinkshere": "uqsiq maungu",
+       "isredirect": "tapitariik uqsaq mappitaq",
+       "blockip": "iq aaqqiksuiji",
+       "badipaddress": "illituq qarisaujakkut titiraqsimajut maligatigut angirutausimajuq unikkaarijaqarniq",
+       "blockipsuccesssub": "uminngasisijuq naajuq",
+       "ipblocklist-submit": "ivaaqpuq",
+       "anononlyblock": "sirlak ilisarnanngitittuq",
+       "blocklink": "iq",
+       "contribslink": "qatannguti suqusiqpaa",
+       "blocklogpage": "uminngasisijuq/iq titiqqaqutit tuqquqsimajait",
+       "block-log-flags-anononly": "ilisarnanngitittuq aaqqiksuiji kisiani",
+       "block-log-flags-nocreate": "kiinaujaqarvik inuirutivaa iniqtipaa pigivuq",
+       "block-log-flags-noemail": "kigutiup sitiniqpaanga uminngasisijuq",
+       "move-page-legend": "uajuq mappitaq",
+       "movearticle": "uajuq mappitaq",
+       "movelogpage": "uajuq nipi",
+       "delete_and_move": "nipaqtipaa amma uajuq",
+       "allmessagesname": "atiq",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|titiraqtaugiarngarut|titiraqtaugiarngarut}}",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|titiraqtaugiarngarut|titiraqtaugiarngarut}} ikiaq $2",
+       "tooltip-ca-protect": "sapummivaa mappitaq",
+       "tooltip-search": "ivaaqpuq {{SITENAME}}",
+       "tooltip-minoredit": "tuapaq asiaNngutuq",
+       "tooltip-diff": "surrapaa qatannguti",
+       "tooltip-compareselectedversions": "uvva asiaNngutuq mappitaq akunninganni marruuk titiraqtaugiarngarut",
+       "anonymous": "ilisarnanngitittuq qatannguti nakit {{SITENAME}}",
+       "deletedrevision": "nipaq utuqaq titiraqtaugiarngarut $1",
+       "previousdiff": "← tunullipaaq asiaNngutuq",
+       "nextdiff": "tagga asiaNngutuq mappitaq →",
+       "ilsubmit": "ivaaqpuq",
+       "bydate": "pitaaruttuq inuulirvik",
+       "variantname-ike-cans": "ᑎᑎᕋᐅᓯᖅ ᓄᑖᖅ",
+       "variantname-ike-latn": "ilisautik",
+       "variantname-iu": "disable",
+       "exif-imagelength": "qutsingniq",
+       "exif-imagedescription": "inunnguaq atiq",
+       "exif-colorspace": "minguarutimitiqpaa",
+       "exif-datetimeoriginal": "qatsipaa amma tikiuti sarqipaa isuillingaitjapaa",
+       "exif-datetimedigitized": "qatsipaa amma tikiuti sarqipaa qarasaujaq",
+       "exif-exposuretime-format": "$1 aippaq ($2)",
+       "exif-brightnessvalue": "qaummapaa akkiutaq",
+       "monthsall": "sunamittuq",
+       "confirm_purge_button": "akaujuq",
+       "imgmultipageprev": "← tunullipaaq mappitaq",
+       "imgmultipagenext": "tagga mappitaq →",
+       "imgmultigo": "aivuq!",
+       "table_pager_limit_submit": "aivuk",
+       "autoredircomment": "qaningani kamagijaq aasit nakit [[$1]]",
+       "autosumm-new": "pigivuq mappitaq: $1",
+       "specialpages": "piji mappitaq",
+       "tags-edit": "suqusiqpaa"
 }
index c472fc6..a83c628 100644 (file)
        "mergehistory-same-destination": "Ti nagtaudan ken ti pangipanan ti panid ket saan a mabalin nga agpada",
        "mergehistory-reason": "Rason:",
        "mergelog": "Listaan ti panagtipon",
-       "pagemerge-logentry": "itipon ti [[$1]] iti [[$2]] (dagiti rebision aginggana iti $3)",
        "revertmerge": "Pagsinaen",
        "mergelogpagetext": "Dita baba ket ti listaan dagiti kaudian a panagtipon ti maysa a pakasaritaan ti panid iti sabali.",
        "history-title": "Pakasaritaan a rebision iti \"$1\"",
        "statistics": "Estadistika",
        "statistics-header-pages": "Estadistika ti panid",
        "statistics-header-edits": "Estadistika ti panag-urnos",
-       "statistics-header-views": "Estadistika ti panagkita",
        "statistics-header-users": "Estadistika ti agar-aramat",
        "statistics-header-hooks": "Sabali nga estadistika",
        "statistics-articles": "Dagiti naglaon a panid",
        "statistics-files": "Dagiti naikarga a papeles",
        "statistics-edits": "Dagiti naurnos a panid manipud idi nairugi ti {{SITENAME}}",
        "statistics-edits-average": "Dagiti pagtengngaan nga inurnos iti tunggal maysa a panid",
-       "statistics-views-total": "Dagiti dagup ti panagkita",
-       "statistics-views-total-desc": "Dagiti panagkita ti awan a pampanid ken saan a mairaman dagiti espesial a panid",
-       "statistics-views-peredit": "Panagkita iti tunggal maysa a panag-urnos",
        "statistics-users": "Dagiti nakarehistro nga [[Special:ListUsers|agar-aramat]]",
        "statistics-users-active": "Dagiti aktibo nga agar-aramat",
        "statistics-users-active-desc": "Dagiti agar-aramat a nagtungpal ti aramid iti napalabas nga {{PLURAL:$1|aldaw|$1 nga al-aldaw}}",
-       "statistics-mostpopular": "Kaaduan a nabuya a pampanid",
        "pageswithprop": "Pampanid nga adda tagikua ti panid",
        "pageswithprop-legend": "Pampanid nga adda tagikua ti panid",
        "pageswithprop-text": "Daytoy a panid ket ilistana ti pampanid nga agus-usar ti naisangayan a tagikua ti panid.",
        "uncategorizedtemplates": "Dagiti saan a nakategoria a plantilia",
        "unusedcategories": "Dagiti saan a nausar a kategoria",
        "unusedimages": "Dagiti saan a nausar a papeles",
-       "popularpages": "Dagiti nadayeg a panid",
        "wantedcategories": "Dagiti makiddaw a kategoria",
        "wantedpages": "Dagiti makiddaw a panid",
        "wantedpages-badtitle": "Imbalido a titulo iti agasmang ti nagbanagan: $1",
        "pageinfo-robot-policy": "Panagpasurot babaen dagiti robot",
        "pageinfo-robot-index": "Maipalubos",
        "pageinfo-robot-noindex": "Saan a maipalubos",
-       "pageinfo-views": "Bilang dagiti panagkita",
        "pageinfo-watchers": "Bilang dagiti agbuybuya ti panid",
        "pageinfo-few-watchers": "Basbassit ngem $1 {{PLURAL:$1|ti agbuybuya|dagiti agbuybuya}}",
        "pageinfo-redirects-name": "Bilang dagiti baw-ing iti daytoy a panid",
index 573c581..d1db2de 100644 (file)
@@ -7,7 +7,8 @@
                        "Sapral Mikail",
                        "Tagir",
                        "Умар",
-                       "아라"
+                       "아라",
+                       "Shirayuki"
                ]
        },
        "tog-underline": "Ӏинкаш белгалде:",
        "searchresults": "Тохкама гIулакхахилар",
        "searchresults-title": "\"$1\" тохка",
        "notextmatches": "ОагIувнаша яздамий вIашагIакхетараш дац",
-       "prevn": "{{PLURAL:$1|хьалхйоаг|ар $1|хьалхйоаг|араш $1|хьалхйоаг|араш $1}}",
+       "prevn": "{{PLURAL:$1|хьалхйоагlар $1|хьалхйоагlараш $1|хьалхйоагlараш $1}}",
        "nextn": "{{PLURAL:$1|тlехьайоагlар $1|тlехьайоагlараш $1|тlехьайоагlараш $1}}",
        "prevn-title": "{{PLURAL:$1|1=$1 хьалхара йоазув|$1 хьалхара йоазувнаш}}",
        "nextn-title": "{{PLURAL:$1|1=$1 тIехьара йоазув|$1 тIехьара йоазувнаш}}",
        "newpages": "Керда оагIувнаш",
        "move": "ЦIи хувца",
        "movethispage": "Укх оагIува цIи хувца",
-       "pager-newer-n": "{{PLURAL:$1|кеÑ\80дагIа Ð´Ð°Ñ\80а|кеÑ\80дагIа Ð´Ð¾Ð»Ð°Ñ\87аÑ\8cÑ\80аÑ\85Ñ\8c|кеÑ\80дагIа Ð´Ð°Ñ\80аÑ\88}} $1",
-       "pager-older-n": "{{PLURAL:$1|кÑ\8aаÑ\8cнаÑ\80а Ð´Ð°Ñ\80а|кÑ\8aаÑ\8cнаÑ\80а Ð´Ð¾Ð»aÑ\87аÑ\8cÑ\80аÑ\85Ñ\8c|кÑ\8aаÑ\8cнаÑ\80а Ð´Ð°Ñ\80аÑ\88}} $1",
+       "pager-newer-n": "{{PLURAL:$1|кеÑ\80дагIа Ð´Ð°Ñ\80а|кеÑ\80дагIа Ð´Ð°Ñ\80аÑ\88|кеÑ\80дагIа Ð´Ð¾Ð»Ð°Ñ\87аÑ\8cÑ\80аÑ\85Ñ\8c}} $1",
+       "pager-older-n": "{{PLURAL:$1|кÑ\8aаÑ\8cнаÑ\80а Ð´Ð°Ñ\80а|кÑ\8aаÑ\8cнаÑ\80а Ð´Ð°Ñ\80аÑ\88|кÑ\8aаÑ\8cнаÑ\80а Ð´Ð¾Ð»aÑ\87аÑ\8cÑ\80аÑ\85Ñ\8c}} $1",
        "booksources": "Китабий гIувам",
        "booksources-search-legend": "Китаба лоаца маIандара тохкам",
        "log": "Тептараш",
index 533204c..ac3ccfe 100644 (file)
        "statistics-header-users": "Statistiki di uzanto",
        "statistics-header-hooks": "Altra statistiki",
        "statistics-pages": "Pagini",
-       "statistics-mostpopular": "Maxim ofte vizitita pagini",
        "doubleredirects": "Duopla ridirektili",
        "brokenredirects": "Ridirektili nekorekta",
        "brokenredirectstext": "La sequanta ridirektili ligas a ne-existanta pagini:",
        "uncategorizedtemplates": "Nekategorizita shabloni",
        "unusedcategories": "Neuzata kategorii",
        "unusedimages": "Neuzata imaji",
-       "popularpages": "Populara pagini",
        "wantedcategories": "Dezirata kategorii",
        "wantedpages": "Dezirata pagini",
        "wantedfiles": "Dezirata arkivi",
index 09bbaac..3b5ceb2 100644 (file)
        "permalink": "Varanlegur tengill",
        "print": "Prenta",
        "view": "Skoða",
+       "view-foreign": "Skoða á $1",
        "edit": "Breyta",
        "create": "Skapa",
        "editthispage": "Breyta þessari síðu",
        "otherlanguages": "Á öðrum tungumálum",
        "redirectedfrom": "(Tilvísað frá $1)",
        "redirectpagesub": "Tilvísunarsíða",
+       "redirectto": "Tilvísun á",
        "lastmodifiedat": "Þessari síðu var síðast breytt $1 klukkan $2.",
        "viewcount": "Þessi síða hefur verið skoðuð $1 {{PLURAL:$1|sinni|sinnum}}.",
        "protectedpage": "Vernduð síða",
        "hidetoc": "fela",
        "collapsible-collapse": "Fela",
        "collapsible-expand": "Sýna",
+       "confirmable-confirm": "Ert {{GENDER:$1|þú}} viss?",
+       "confirmable-yes": "Já",
+       "confirmable-no": "Nei",
        "thisisdeleted": "Endurvekja eða skoða $1?",
        "viewdeleted": "Skoða $1?",
        "restorelink": "$1 {{PLURAL:$1|eydd breyting|eyddar breytingar}}",
        "gotaccountlink": "Skráðu þig inn",
        "userlogin-resetlink": "Gleymdir þú notendaupplýsingunum þínum?",
        "userlogin-resetpassword-link": "Gleymdiru lykilorðinu þínu?",
+       "userlogin-helplink2": "Hjálp við innskráningu",
        "userlogin-loggedin": "Þú ert búin(n) að skrá þig inn sem {{GENDER:$1|$1}}.\nNotaðu eyðablaðið fyrir neðan til að skrá þig inn sem annar notandi.",
        "userlogin-createanother": "Stofna annan aðgang",
        "createacct-emailrequired": "Netfang",
        "createaccount-text": "Einhver bjó til aðgang fyrir netfangið þitt á {{SITENAME}} ($4) undir nafninu „$2“, með lykilorðið „$3“.\nÞú ættir að skrá þig inn og breyta lykilorðinu núna.\n\nÞú getur hunsað þessi skilaboð, ef villa hefur átt sér stað.",
        "login-throttled": "Þér hefur mistekist að skrá þig inn undir þessu notendanafni of oft.\nVinsamlegast bíðið $1 áður en þú reynir aftur.",
        "login-abort-generic": "Innskráningin misheppnaðist - hætt var við hana.",
+       "login-migrated-generic": "Aðgangurinn þinn hefur verið sameinaður og notendanafnið þitt finnst ekki lengur á þessum wiki.",
        "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-login": "Innskrá",
+       "pt-login-button": "Innskrá",
        "pt-createaccount": "Stofna aðgang",
        "pt-userlogout": "Útskrá",
        "php-mail-error-unknown": "Óþekkt villa í PHP mail() aðgerð.",
        "retypenew": "Endurtaktu nýja lykilorðið:",
        "resetpass_submit": "Skrifaðu aðgangsorðið og skráðu þig inn",
        "changepassword-success": "Það tókst að breyta lykilorðinu þínu!",
+       "changepassword-throttled": "Þú hefur gert of margar tilraunir til innskráningar.\nVinsamlegast bíddu í $1 áður en þú reynir aftur.",
        "resetpass_forbidden": "Ekki er hægt að breyta lykilorðum",
        "resetpass-no-info": "Þú verður að vera skráð(ur) inn til að hafa aðgang að þessari síðu.",
        "resetpass-submit-loggedin": "Breyta lykilorði",
        "content-model-text": "hreinn texti",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Síður með eins gildi í ítengingu sniðs",
        "expensive-parserfunction-warning": "'''Viðvörun:''' Þessi síða inniheldur of mörg vinnslufrek aðgerðar þáttunar köll.\n\nHún ætti að innihalda minna en $2 {{PLURAL:$2|kall|köll}}, en {{PLURAL:$1|er nú $1 kall|eru nú $1 köll}}.",
        "expensive-parserfunction-category": "Síður með of mörg vinnslufrek aðgerðar þáttunar köll",
        "post-expand-template-inclusion-warning": "'''Viðvörun:''' Sniðið tekur of mikið pláss.\nHluti sniðsins verður ekki með.",
        "mergehistory-same-destination": "Upprunasíðan og marksíðan mega ekki vera sú sama",
        "mergehistory-reason": "Ástæða:",
        "mergelog": "Sameiningar skrá",
-       "pagemerge-logentry": "sameinaði [[$1]] við [[$2]] (útgáfur frá $3)",
        "revertmerge": "Taka aftur sameiningu",
        "mergelogpagetext": "Þetta er skrá yfir síðustu sameiningar einnar síðu við aðra.",
        "history-title": "$1: Breytingaskrá",
        "searchrelated": "tengt",
        "searchall": "öllum",
        "showingresults": "Sýni <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} frá og með #<strong>$2</strong>.",
+       "showingresultsinrange": "Sýni allt að <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} á bilinu <strong>$2</strong> til <strong>$3</strong>.",
        "search-nonefound": "Engar niðurstöður pössuðu við fyrirspurnina.",
        "powersearch-legend": "Ítarlegri leit",
        "powersearch-ns": "Leita í nafnrýmum:",
        "powersearch-togglelabel": "Athuga:",
        "powersearch-toggleall": "Allt",
        "powersearch-togglenone": "Ekkert",
+       "powersearch-remember": "Muna val fyrir leitir í framtíðinni",
        "search-external": "Ytri leit",
        "searchdisabled": "{{SITENAME}}-leit er óvirk.\nÞú getur leitað í genum Google á meðan.\nAthugaðu að skrár þeirra yfir {{SITENAME}}-efni kunna að vera úreltar.",
        "search-error": "Villa kom upp við leit að: $1",
        "recentchanges-label-minor": "Þetta er minniháttar breyting",
        "recentchanges-label-bot": "Þessi breyting var gerð af vélmenni",
        "recentchanges-label-unpatrolled": "Þessi breyting hefur ekki verið yfirfarin",
+       "recentchanges-label-plusminus": "Stærð síðunnar breyttist um svona mörg bæti",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sjá einng [[Special:NewPages|lista yfir nýjar síður]])",
        "rcnotefrom": "Að neðan {{PLURAL:$5|er breyting síðan|eru breytingar síðan}} <strong>$3, $4</strong> (allt að <strong>$1</strong> sýndar).",
        "rclistfrom": "Sýna breytingar frá og með $3 $2",
        "fileexists-shared-forbidden": "Skrá með þessu nafni er þegar til í sameiginlega myndasafninu.\nEf þú villt hlaða inn skránni þinni engu að síður, farðu þá til baka og veldu annað skráarnafn.\n[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Þessi skrá er afrit eftirfarandi {{PLURAL:$1|skráar|skráa}}:",
        "file-deleted-duplicate": "Afriti þessarar skráar ([[:$1]]) hefur verið eytt.\nÞú ættir að fara yfir eyðingarsögu skráarinnar áður en þú velur að hlaða skránni aftur inn.",
+       "file-deleted-duplicate-notitle": "Skrá sem er eins og þessi skrá hefur verið hlaðið inn áður og titll hennar hefur verið falinn.\nÞú ættir að spurja einhvern með réttindi til að skoða földu skránna til að fara yfir málið áður en þú hleður skránni inn.",
        "uploadwarning": "Aðvörun",
        "uploadwarning-text": "Vinsamlegast breyttu myndalýsingunni hér fyrir neðan og reyndu aftur.",
        "savefile": "Vista",
        "license": "Leyfisupplýsingar:",
        "license-header": "Leyfisupplýsingar:",
        "nolicense": "Ekkert valið",
+       "licenses-edit": "Breyta leyfisvali",
        "license-nopreview": "(Forskoðun ekki fáanleg)",
        "upload_source_url": "(þín valda skrá frá gildri, aðgengilegri vefslóð)",
        "upload_source_file": "(þín valda skrá frá tölvunni þinni)",
        "download": "Hlaða niður",
        "unwatchedpages": "Óvaktaðar síður",
        "listredirects": "Tilvísanir",
+       "listduplicatedfiles": "Listi yfir afritaðar skrár",
+       "listduplicatedfiles-summary": "Þetta er listi yfir skrár þar sem nýjasta útgáfa hennar er afrit af nýjustu útgáfu einhverrar annarar skrár. Aðeins staðbundnar skrár eru taldar með.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] hefur $2 [[$3|{{PLURAL:$2|afrit}}]].",
        "unusedtemplates": "Ónotuð snið",
        "unusedtemplatestext": "Þetta er listi yfir allar síður í {{ns:snið}} nafnrýminu sem ekki eru notaðar í neinum öðrum síðum. Munið að gá að öðrum tenglum í sniðin áður en þeim er eytt.",
        "unusedtemplateswlh": "aðrir tenglar",
        "statistics": "Tölfræði",
        "statistics-header-pages": "Síðutölfræði",
        "statistics-header-edits": "Breytingatölfræði",
-       "statistics-header-views": "Uppflettitölfræði",
        "statistics-header-users": "Notandatölfræði",
        "statistics-header-hooks": "Önnur tölfræði",
        "statistics-articles": "Greinar alls",
        "statistics-files": "Skráafjöldi",
        "statistics-edits": "Síðubreytingar frá því {{SITENAME}} byrjaði",
        "statistics-edits-average": "Meðal breytingafjöldi á síðu",
-       "statistics-views-total": "Uppflettingar alls",
-       "statistics-views-total-desc": "Flettingar á síður sem eru ekki til eða kerfisíður eru ekki innifaldar.",
-       "statistics-views-peredit": "Uppflettingar á hverja breytingu (meðaltal)",
        "statistics-users": "Skráðir  [[Special:ListUsers|notendur]]",
        "statistics-users-active": "Virkir notendur",
        "statistics-users-active-desc": "Notendur sem hafa framkvæmt aðgerð {{PLURAL:$1|síðusta $1 dag|síðustu $1 daga}}",
-       "statistics-mostpopular": "Mest skoðuðu síður",
        "pageswithprop": "Síður með eiginleika",
        "pageswithprop-legend": "Síður með síðueiginleika",
        "pageswithprop-text": "Á þessari síðu er listi yfir síður sem hafa ákveðna síðueiginleika.",
        "uncategorizedtemplates": "Óflokkuð snið",
        "unusedcategories": "Ónotaðir flokkar",
        "unusedimages": "Munaðarlausar skrár",
-       "popularpages": "Vinsælar síður",
        "wantedcategories": "Eftirsóttir flokkar",
        "wantedpages": "Eftirsóttar síður",
        "wantedpages-badtitle": "Ógildur titill í listanum: $1",
        "deadendpagestext": "Eftirfarandi síður tengjast ekki við aðrar síður á {{SITENAME}}.",
        "protectedpages": "Verndaðar síður",
        "protectedpages-indef": "Aðeins óendanlegar verndanir",
+       "protectedpages-summary": "Þessi skrá sýnir lista yfir síður sem eru til og eru verndaðar í auknablikinu. Til að sjá lista yfir titla sem eru verndaðir gegn stofnun þeirra, sjáðu [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Keðjuverndun eingöngu",
+       "protectedpages-noredirect": "Fela tilvísanir",
        "protectedpagesempty": "Engar síður eru verndaðar með þessum stikum.",
+       "protectedpages-timestamp": "Tímastimpill",
+       "protectedpages-page": "Síða",
+       "protectedpages-expiry": "Rennur út",
+       "protectedpages-performer": "Vernduð af",
+       "protectedpages-params": "Verndunar stikar",
+       "protectedpages-reason": "Ástæða",
+       "protectedpages-unknown-timestamp": "Óþekktur",
+       "protectedpages-unknown-performer": "Óþekktur notandi",
        "protectedtitles": "Verndaðir titlar",
        "protectedtitlesempty": "Engir titlar eru verndaðir með þessum stikum.",
        "listusers": "Notendalisti",
        "querypage-disabled": "Þessi kerfisíða er óvirk til að minnka ekki afköst vefþjónsins.",
        "booksources": "Bókaleit",
        "booksources-search-legend": "Leita að bókaverslunum",
+       "booksources-search": "Leita",
        "booksources-text": "Fyrir neðan er listi af tenglum í aðrar síður sem selja nýjar og notaðar bækur og gætu einnig haft nánari upplýsingar í sambandi við bókina sem þú varst að leita að:",
        "booksources-invalid-isbn": "ISBN gildið virðist ekki vera gilt; leitaðu eftir villum við innslátt eða afritun gildisins frá upsprettu þess.",
        "specialloguserlabel": "Gerandi:",
        "wlheader-enotif": "Tilkynning með tölvupósti er virk.",
        "wlheader-showupdated": "Síðum sem hefur verið breytt síðan þú skoðaðir þær síðast eru '''feitletraðar'''.",
        "wlnote": "Hér fyrir neðan {{PLURAL:$1|er síðasta <strong>$1</strong> breyting|eru síðustu <strong>$1</strong> breytingar}} {{PLURAL:$2|síðustu <strong>$2</strong> klukkutímann|síðastliðna <strong>$2</strong> klukkutímana}}, frá $3, $4.",
-       "wlshowlast": "Sýna síðustu $1 klukkutíma, $2 daga,",
+       "wlshowlast": "Sýna síðustu $1 klukkutíma, $2 daga",
        "watchlist-options": "Vaktlistastillingar",
        "watching": "Vakta...",
        "unwatching": "Afvakta...",
        "protect-edit-reasonlist": "Breyta verndarástæðum",
        "protect-expiry-options": "1 tími:1 hour,1 dag:1 day,1 viku:1 week,2 vikur:2 weeks,1 mánuð:1 month,3 mánuði:3 months,6 mánuði:6 months,1 ár:1 year,aldrei:infinite",
        "restriction-type": "Réttindi:",
-       "restriction-level": "Takmarkaði við:",
+       "restriction-level": "Takmarkað við:",
        "minimum-size": "Lágmarksstærð",
        "maximum-size": "Hámarksstærð:",
-       "pagesize": "(bæt)",
+       "pagesize": "(bæti)",
        "restriction-edit": "Breyta",
        "restriction-move": "Færa",
        "restriction-create": "Skapa",
        "pageinfo-robot-policy": "Attriðaskráning af vélmennum",
        "pageinfo-robot-index": "Heimilað",
        "pageinfo-robot-noindex": "Ekki heimilað",
-       "pageinfo-views": "Fjöldi innlita",
        "pageinfo-watchers": "Fjöldi notenda, sem vakta síðuna",
        "pageinfo-few-watchers": "Vöktuð af færri en $1 {{PLURAL:$1|notanda|notendum}}",
        "pageinfo-redirects-name": "Fjöldi tilvísana til þessarar síðu",
        "autosumm-replace": "Skipti út innihaldi með „$1“",
        "autoredircomment": "Tilvísun á [[$1]]",
        "autosumm-new": "Ný síða: $1",
+       "autosumm-newblank": "Bjó til tóma síðu",
        "lag-warn-normal": "Breytingar nýrri en $1 {{PLURAL:$1|sekúnda|sekúndur}} kunna að vera ekki á þessm lista.",
        "lag-warn-high": "Vegna mikils álags á vefþjónanna, kunna breytingar yngri en $1 {{PLURAL:$1|sekúnda|sekúndur}} ekki að vera á þessum lista.",
        "watchlistedit-normal-title": "Breyta vaktlistanum",
        "watchlistedit-raw-done": "Vaktlistinn þinn hefur verið uppfærður.",
        "watchlistedit-raw-added": "$1 {{PLURAL:$1|titli|titlum}} var bætt við:",
        "watchlistedit-raw-removed": "$1 {{PLURAL:$1|titill var fjarlægður|titlar voru fjarlægðir}}:",
+       "watchlistedit-clear-titles": "Titlar:",
        "watchlisttools-view": "Sýna viðeigandi breytingar",
        "watchlisttools-edit": "Skoða og breyta vaktlistanum",
        "watchlisttools-raw": "Breyta opnum vaktlistanum",
        "logentry-rights-rights": "$1 {{GENDER:$2|breytti}} réttindum $3 frá $4 í $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|breytti}} réttindum $3",
        "logentry-rights-autopromote": "$1 fékk sjálfvirkt {{GENDER:$2|aukin}} réttindi frá $4 til $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|hlóð inn}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|hlóð inn}} nýrri útgáfu af $3",
        "rightsnone": "(engum)",
        "revdelete-summary": "breytingarágrip",
        "feedback-bugornote": "Ef þú ert reiðubúinn að lýsa tæknilegri villu í smáatriðum, vinsamlegast [$1 tilkynntu villu].\nEf ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemdin þín verður bætt við síðuna \"[$3 $2]\" ásamt notendanafni og nafni vafrarans sem þú ert að nota.",
        "expand_templates_xml_output": "XML-úttak",
        "expand_templates_ok": "Í lagi",
        "expand_templates_remove_comments": "Fjarlægja athugasemdir",
-       "expand_templates_preview": "Forskoða"
+       "expand_templates_preview": "Forskoða",
+       "mediastatistics": "Margmiðlunar tölfræði",
+       "mediastatistics-summary": "Tölfræði um upphaldar skráar gerðir. Hún inniheldur eingöngu nýjustu útgáfu skráarinnar. Gamlar eða eyddar skrár eru ekki teknar með.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bæti}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME tegund",
+       "mediastatistics-table-extensions": "Mögulegar skráargerðir",
+       "mediastatistics-table-count": "Fjöldi skráa",
+       "mediastatistics-table-totalbytes": "Heildarstærð",
+       "mediastatistics-header-unknown": "Óþekkt",
+       "mediastatistics-header-bitmap": "Bitmap myndir",
+       "mediastatistics-header-drawing": "Teikningar (vector-myndir)",
+       "mediastatistics-header-audio": "Hljóð",
+       "mediastatistics-header-video": "Myndbönd",
+       "mediastatistics-header-text": "Textar",
+       "mediastatistics-header-executable": "Uppsetninga skrár",
+       "mediastatistics-header-archive": "Þjappaðar skrár",
+       "json-warn-trailing-comma": "$1 eftirfylgjandi {{PLURAL:$1|komma var fjarlægð|kommur voru fjarlægðar}} úr JSON",
+       "json-error-unknown": "Það varð villa í JSON. Villa: $1",
+       "json-error-state-mismatch": "Ógild eða ranglega uppsett JSON",
+       "json-error-syntax": "málfræði villa",
+       "json-error-utf8": "Gallaðir UTF-8 stafir, líklega vitlaust kótaðir",
+       "json-error-unsupported-type": "Gildi af gerð sem ekki er hægt að kóta var gefin."
 }
index 95af635..ed1c57e 100644 (file)
        "protectedpagetext": "Questa pagina è stata protetta per impedirne la modifica o altre operazioni.",
        "viewsourcetext": "È possibile visualizzare e copiare il codice sorgente di questa pagina:",
        "viewyourtext": "È possibile visualizzare e copiare il codice sorgente delle '''tue modifiche''' a questa pagina:",
-       "protectedinterface": "Questa pagina contiene un elemento che fa parte dell'interfaccia utente del software di questo sito ed è protetta per evitare possibili abusi.\nPer aggiungere o modificare traduzioni per tutti i wiki usare [//translatewiki.net/ translatewiki.net], il progetto di localizzazione di MediaWiki.",
-       "editinginterface": "'''Attenzione:''' Il testo di questa pagina fa parte dell'interfaccia utente del sito. Tutte le modifiche apportate a questa pagina si riflettono sui messaggi visualizzati per tutti gli utenti su questo wiki.\nPer aggiungere o modificare le traduzioni valide su tutti i wiki, considera la possibilità di usare [//translatewiki.net/wiki/Main_Page?setlang=it translatewiki.net], il progetto MediaWiki per la localizzazione.",
+       "protectedinterface": "Questa pagina contiene un elemento che fa parte dell'interfaccia utente del software di questo sito ed è protetta per evitare possibili abusi.\nPer aggiungere o modificare le traduzioni valide su tutti i wiki, usa [//translatewiki.net/ translatewiki.net], il progetto di localizzazione di MediaWiki.",
+       "editinginterface": "<strong>Attenzione:</strong> il testo di questa pagina fa parte dell'interfaccia utente del software di questo sito. Tutte le modifiche apportate a questa pagina si riflettono sui messaggi visualizzati per tutti gli utenti su questo wiki.",
+       "translateinterface": "Per aggiungere o modificare le traduzioni valide su tutti i wiki, usa [//translatewiki.net/ translatewiki.net], il progetto MediaWiki per la localizzazione.",
        "cascadeprotected": "Su questa pagina non è possibile effettuare modifiche perché è stata inclusa {{PLURAL:$1|nella pagina indicata di seguito, che è stata protetta|nelle pagine indicate di seguito, che sono state protette}} selezionando la protezione \"ricorsiva\":\n$2",
        "namespaceprotected": "Non si dispone dei permessi necessari per modificare le pagine del namespace '''$1'''.",
        "customcssprotected": "Non si dispone dei permessi necessari alla modifica di questa pagina CSS, in quanto contiene le impostazioni personali di un altro utente.",
        "content-model-text": "testo normale",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Pagine contenenti chiamate a template con parametri duplicati",
+       "duplicate-args-category-desc": "La pagina contiene chiamate a template che utilizzano argomenti duplicati, come ad esempio <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Attenzione:''' Questa pagina contiene troppe chiamate alle parser functions.\n\nDovrebbe averne meno di $2, al momento ce {{PLURAL:$1|n'è $1|ne sono $1}}.",
        "expensive-parserfunction-category": "Pagine con troppe chiamate alle funzioni parser",
        "post-expand-template-inclusion-warning": "<strong>Attenzione:</strong> la dimensione dei template inclusi è troppo grande.\nAlcuni template non verranno inclusi.",
        "mergehistory-same-destination": "Le pagine di origine e di destinazione non possono coincidere",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Unioni",
-       "pagemerge-logentry": "ha unito [[$1]] a [[$2]] (versioni fino a $3)",
        "revertmerge": "Annulla unioni",
        "mergelogpagetext": "Di seguito sono elencate le ultime operazioni di unione della cronologia di due pagine.",
        "history-title": "$1: cronologia delle modifiche",
        "search-result-category-size": "{{PLURAL:$1|1 utente|$1 utenti}} ({{PLURAL:$2|1 sottocategoria|$2 sottocategorie}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(sezione $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(corrispondenza nel contenuto del file)",
        "search-suggest": "Forse cercavi: $1",
        "search-interwiki-caption": "Progetti fratelli",
        "gender-female": "È registrata su {{SITENAME}}",
        "prefs-help-gender": "L'impostazione di questa preferenza è opzionale.\nIl software utilizza questo valore per rivolgersi a te e menzionarti agli altri usando il genere grammaticale appropriato.\nQuesta 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-realname": "Il vero nome è facoltativo.\nSe fornito, può essere usato per attribuirvi la paternità del vostro lavoro.",
        "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.\nIl tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.",
        "prefs-help-email-required": "L'indirizzo email è obbligatorio.",
        "statistics": "Statistiche",
        "statistics-header-pages": "Statistiche relative alle pagine",
        "statistics-header-edits": "Statistiche relative alle modifiche",
-       "statistics-header-views": "Statistiche relative alle visualizzazioni",
        "statistics-header-users": "Statistiche relative agli utenti",
        "statistics-header-hooks": "Altre statistiche",
        "statistics-articles": "Pagine di contenuti",
        "statistics-files": "File caricati",
        "statistics-edits": "Modifiche a partire dall'installazione di {{SITENAME}}",
        "statistics-edits-average": "Media delle modifiche per pagina",
-       "statistics-views-total": "Visualizzazioni totali",
-       "statistics-views-total-desc": "Visualizzazioni di pagine inesistenti e pagine speciali non sono incluse",
-       "statistics-views-peredit": "Visualizzazioni per modifica",
        "statistics-users": "[[Special:ListUsers|Utenti]] registrati",
        "statistics-users-active": "Utenti attivi",
        "statistics-users-active-desc": "Utenti che hanno effettuato un'azione {{PLURAL:$1|nell'ultimo giorno|negli ultimi $1 giorni}}",
-       "statistics-mostpopular": "Pagine più visitate",
        "pageswithprop": "Pagine con una proprietà di pagina",
        "pageswithprop-legend": "Pagine con una proprietà di pagina",
        "pageswithprop-text": "Questa pagina elenca le pagine che utilizzano una particolare proprietà di pagina.",
        "uncategorizedtemplates": "Template privi di categorie",
        "unusedcategories": "Categorie vuote",
        "unusedimages": "File non utilizzati",
-       "popularpages": "Pagine più visitate",
        "wantedcategories": "Categorie richieste",
        "wantedpages": "Pagine più richieste",
        "wantedpages-badtitle": "Titolo non valido nel gruppo di risultati: $1",
        "pager-older-n": "{{PLURAL:$1|1 meno recente|$1 meno recenti}}",
        "suppress": "Oversight",
        "querypage-disabled": "Questa pagina speciale è disattivata per motivi di prestazioni.",
+       "apihelp": "Aiuto API",
+       "apihelp-no-such-module": "Modulo \"$1\" non trovato.",
        "booksources": "Fonti librarie",
        "booksources-search-legend": "Ricerca di fonti librarie",
        "booksources-isbn": "Codice ISBN:",
        "tooltip-pt-mycontris": "Elenco dei tuoi contributi",
        "tooltip-pt-login": "La registrazione è consigliata, anche se non obbligatoria",
        "tooltip-pt-logout": "Uscita (logout)",
+       "tooltip-pt-createaccount": "Siete incoraggiati a creare un'utenza ed accedere; tuttavia, non è obbligatorio",
        "tooltip-ca-talk": "Vedi le discussioni relative a questa pagina",
        "tooltip-ca-edit": "Puoi modificare questa pagina. Per favore usa il pulsante di anteprima prima di salvare",
        "tooltip-ca-addsection": "Inizia una nuova sezione",
        "tooltip-feed-atom": "Feed Atom per questa pagina",
        "tooltip-t-contributions": "Lista dei contributi di questo utente",
        "tooltip-t-emailuser": "Invia un messaggio email a questo utente",
+       "tooltip-t-info": "Ulteriori informazioni su questa pagina",
        "tooltip-t-upload": "Carica file multimediali",
        "tooltip-t-specialpages": "Lista di tutte le pagine speciali",
        "tooltip-t-print": "Versione stampabile di questa pagina",
        "pageinfo-robot-policy": "Indicizzazione per i robot",
        "pageinfo-robot-index": "Consentito",
        "pageinfo-robot-noindex": "Non consentito",
-       "pageinfo-views": "Numero di visualizzazioni",
        "pageinfo-watchers": "Numero di utenti che hanno la pagina nei loro osservati speciali",
        "pageinfo-few-watchers": "Meno di $1 {{PLURAL:$1|osservatore|osservatori}}",
        "pageinfo-redirects-name": "Numero di redirect a questa pagina",
        "unknown_extension_tag": "Tag estensione sconosciuto: \"$1\"",
        "duplicate-defaultsort": "Attenzione: la chiave di ordinamento predefinita \"$2\" sostituisce la precedente \"$1\".",
        "duplicate-displaytitle": "<strong>Attenzione:</strong> il titolo visualizzato \"$2\" sostituisce il precedente titolo \"$1\".",
+       "invalid-indicator-name": "<strong>Errore:</strong> attributo <code>name</code> degli indicatori dello stato della pagina non può essere vuoto.",
        "version": "Versione",
        "version-extensions": "Estensioni installate",
        "version-skins": "Skin installate",
        "revdelete-uname-unhid": "nome utente ripristinato",
        "revdelete-restricted": "limitazioni ai soli amministratori attivate",
        "revdelete-unrestricted": "limitazioni ai soli amministratori rimosse",
+       "logentry-merge-merge": "$1 {{GENDER:$2|ha unito}} $3 in $4 (versioni fino al $5)",
        "logentry-move-move": "$1 {{GENDER:$2|ha spostato}} la pagina $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ha spostato}} la pagina $3 a $4 senza lasciare redirect",
        "logentry-move-move_redir": "$1 {{GENDER:$2|ha spostato}} la pagina $3 a $4 tramite redirect",
        "api-error-stashfailed": "Errore interno: il server non è riuscito a memorizzare il documento temporaneo.",
        "api-error-publishfailed": "Errore interno: il server non è riuscito a pubblicare il documento temporaneo.",
        "api-error-stasherror": "Si è verificato un errore durante il caricamento del file in stash.",
+       "api-error-stashedfilenotfound": "Il file in stash non è stato trovato durante il tentativo di caricamento dallo stash.",
+       "api-error-stashpathinvalid": "Il percorso in cui il file in stash dovrebbe trovarsi non è valido.",
+       "api-error-stashfilestorage": "Si è verificato un errore durante la memorizzazione del file in stash.",
+       "api-error-stashzerolength": "Il server non può inserire il file in stash, poiché ha lunghezza zero.",
+       "api-error-stashnotloggedin": "Devi aver effettuato l'accesso per poter salvare il file nel caricamento in stash.",
+       "api-error-stashwrongowner": "Il file a cui stai tentando di accedere nello stash non appartiene a te.",
+       "api-error-stashnosuchfilekey": "La chiave del file a cui stai tentando di accedere nello stash non esiste.",
        "api-error-timeout": "Il server non ha risposto entro il tempo previsto.",
        "api-error-unclassified": "Si è verificato un errore sconosciuto.",
        "api-error-unknown-code": "Errore sconosciuto: \"$1\"",
index 46c0849..e95eeea 100644 (file)
@@ -60,7 +60,8 @@
                        "아라",
                        "Rxy",
                        "Mfuji",
-                       "Takot"
+                       "Takot",
+                       "SkyDaisy9"
                ]
        },
        "tog-underline": "リンクの下線:",
        "protectedpagetext": "このページは編集や他の操作ができないように保護されています。",
        "viewsourcetext": "このページのソースの閲覧やコピーができます:",
        "viewyourtext": "このページへの<strong>あなたの編集</strong>のソースの閲覧やコピーができます:",
-       "protectedinterface": "このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。\nすべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/ translatewiki.net] を使用してください。",
-       "editinginterface": "<strong>警告:</strong> ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。\nこのページを変更すると、このウィキの他の利用者のユーザーインターフェイスの外観に影響します。\nすべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
+       "protectedinterface": "このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。\nすべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
+       "editinginterface": "<strong>警告:</strong> ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。\nこのページを変更すると、このウィキの他の利用者のユーザーインターフェイスの外観に影響します。",
+       "translateinterface": "すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
        "cascadeprotected": "このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}で読み込まれているため、編集できないように保護されています:\n$2",
        "namespaceprotected": "<strong>$1</strong>名前空間にあるページを編集する権限がありません。",
        "customcssprotected": "この CSS ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。",
        "createacct-benefit-body2": "{{PLURAL:$1|ページ}}",
        "createacct-benefit-body3": "最近の{{PLURAL:$1|投稿者数}}",
        "badretype": "入力したパスワードが一致しません。",
-       "userexists": "å\85¥å\8a\9bã\81\95ã\82\8cã\81\9få\88©ç\94¨è\80\85å\90\8dã\81¯æ\97¢ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82\nä»\96ã\81®å\90\8då\89\8dã\82\92é\81¸ã\82\93ã\81§ください。",
+       "userexists": "å\85¥å\8a\9bã\81\97ã\81\9få\88©ç\94¨è\80\85å\90\8dã\81¯æ\97¢ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82\nå\88¥ã\81®å\88©ç\94¨è\80\85å\90\8dã\82\92æ\8c\87å®\9aã\81\97ã\81¦ください。",
        "loginerror": "ログインのエラー",
        "createacct-error": "アカウント作成エラー",
        "createaccounterror": "アカウントを作成できませんでした: $1",
        "content-model-text": "プレーンテキスト",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "テンプレート呼び出しで引数が重複しているページ",
+       "duplicate-args-category-desc": "引数が重複したテンプレート呼び出しを含むページ。例: <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>、<code><nowiki>{{foo|bar|1=baz}}</nowiki></code>",
        "expensive-parserfunction-warning": "<strong>警告:</strong> このページでは、高負荷なパーサー関数の呼び出し回数が多過ぎます。\n\n{{PLURAL:$2|呼び出しを $2 回}}未満にしてください ({{PLURAL:$1|現在は $1 回}})。",
        "expensive-parserfunction-category": "高負荷な構文解析関数の呼び出しが多過ぎるページ",
        "post-expand-template-inclusion-warning": "<strong>警告:</strong> テンプレートの読み込みサイズが大き過ぎます。\nいくつかのテンプレートは読み込まれません。",
        "mergehistory-same-destination": "統合元と統合先のページを同じにはできません",
        "mergehistory-reason": "理由:",
        "mergelog": "統合記録",
-       "pagemerge-logentry": "[[$1]]を[[$2]]に統合 ($3 版まで)",
        "revertmerge": "統合解除",
        "mergelogpagetext": "以下は、最近行われたあるページから別のページへの統合の一覧です。",
        "history-title": "「$1」の変更履歴",
        "searchprofile-images-tooltip": "ファイルを検索",
        "searchprofile-everything-tooltip": "全本文ページ (トークページを含む) 内を検索",
        "searchprofile-advanced-tooltip": "特定の名前空間内を検索",
-       "search-result-size": "$1 ({{PLURAL:$2|$2 語}})",
+       "search-result-size": "$1 ({{PLURAL:$2|$2 語}})",
        "search-result-category-size": "{{PLURAL:$1|$1 件}} ({{PLURAL:$2|$2 下位カテゴリ}}、{{PLURAL:$3|$3 ファイル}})",
        "search-redirect": "($1からのリダイレクト)",
        "search-section": "($1の節)",
+       "search-category": "(カテゴリ $1)",
        "search-file-match": "(ファイルの内容との一致)",
        "search-suggest": "もしかして: $1",
        "search-interwiki-caption": "姉妹プロジェクト",
        "prefs-watchlist": "ウォッチリスト",
        "prefs-watchlist-days": "ウォッチリストの表示日数:",
        "prefs-watchlist-days-max": "最大 $1 {{PLURAL:$1|日間}}",
-       "prefs-watchlist-edits": "拡張ウォッチリストの表示件数:",
+       "prefs-watchlist-edits": "ウォッチリストの展開時の最大表示件数:",
        "prefs-watchlist-edits-max": "最大数: 1000",
        "prefs-watchlist-token": "ウォッチリストのトークン:",
        "prefs-misc": "その他",
        "gender-female": "女",
        "prefs-help-gender": "この項目の設定は省略できます。\nソフトウェアが利用者向けの画面表示であなたに言及する際に、適切な文法的性を選択するために使用されます。\nこの情報は公開されます。",
        "email": "メール",
-       "prefs-help-realname": "本名は省略できます。\n入力すると、あなたの著作物の帰属表示に使れます。",
+       "prefs-help-realname": "本名は省略できます。\n入力すると、あなたの著作物の帰属表示に使用されます。",
        "prefs-help-email": "メールアドレスは省略できますが、パスワードを忘れた際にパスワードをリセットするのに必要です。",
        "prefs-help-email-others": "利用者ページやトークページ上のリンクを通じて、他の利用者があなたにメールで連絡を取れるようにすることもできます。\n他の利用者が連絡を取る際にあなたのメールアドレスが開示されることはありません。",
        "prefs-help-email-required": "メールアドレスが必要です。",
        "statistics": "統計",
        "statistics-header-pages": "ページに関する統計",
        "statistics-header-edits": "編集に関する統計",
-       "statistics-header-views": "閲覧に関する統計",
        "statistics-header-users": "利用者に関する統計",
        "statistics-header-hooks": "その他の統計",
        "statistics-articles": "記事数",
        "statistics-files": "アップロードされたファイル数",
        "statistics-edits": "{{SITENAME}}の開設以降の編集回数の総計",
        "statistics-edits-average": "1ページあたりの編集回数",
-       "statistics-views-total": "総閲覧回数",
-       "statistics-views-total-desc": "存在しないページと特別ページに対する閲覧は含まれていません",
-       "statistics-views-peredit": "1編集あたりの閲覧回数",
        "statistics-users": "[[Special:ListUsers|利用者]]",
        "statistics-users-active": "活動中の利用者",
        "statistics-users-active-desc": "過去 {{PLURAL:$1|$1 日間}}に何らかの操作をした利用者",
-       "statistics-mostpopular": "最も閲覧されているページ",
        "pageswithprop": "ページプロパティがあるページ",
        "pageswithprop-legend": "ページプロパティがあるページ",
        "pageswithprop-text": "このページでは、特定のページプロパティを持つページを列挙します。",
        "uncategorizedtemplates": "カテゴリ分類されていないテンプレート",
        "unusedcategories": "使われていないカテゴリ",
        "unusedimages": "使われていないファイル",
-       "popularpages": "人気のページ",
        "wantedcategories": "カテゴリページが存在しないカテゴリ",
        "wantedpages": "ページが存在しないリンク",
        "wantedpages-badtitle": "結果が、無効なページ名を含んでいます: $1",
        "pager-older-n": "{{PLURAL:$1|以前の$1件}}",
        "suppress": "秘匿する",
        "querypage-disabled": "パフォーマンスに悪影響を与えるおそれがあるため、この特別ページは無効になっています。",
+       "apihelp": "API のヘルプ",
+       "apihelp-no-such-module": "モジュール「$1」が見つかりません。",
        "booksources": "書籍情報源",
        "booksources-search-legend": "書籍情報源を検索",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "検索",
        "booksources-text": "お探しの書籍の新品/中古品を販売している外部サイトへのリンクを以下に列挙します。この書籍についてさらに詳しい情報があるかもしれません:",
        "booksources-invalid-isbn": "指定した ISBN は有効ではないようです。情報源から写し間違えていないか確認してください。",
        "specialloguserlabel": "実行者:",
        "wlheader-enotif": "メール通知が有効になっています。",
        "wlheader-showupdated": "最終訪問以降に変更されたページは、<strong>太字</strong>で表示されます。",
        "wlnote": "$3 $4 までの{{PLURAL:$2|<strong>$2</strong>時間}}になされた{{PLURAL:$1|<strong>$1</strong>件の変更}}は以下の通りです。",
-       "wlshowlast": "表示する期間: $1時間、$2日間",
+       "wlshowlast": "表示する期間: $1時間、$2日間",
        "watchlist-options": "ウォッチリストのオプション",
        "watching": "ウォッチリストに追加中...",
        "unwatching": "ウォッチリストから除去中...",
        "unblocked": "[[User:$1|$1]]のブロックを解除しました。",
        "unblocked-range": "$1のブロックを解除しました。",
        "unblocked-id": "ブロック$1を除去しました。",
-       "unblocked-ip": "[[Special:Contributions/$1|$1]]ã\81¯ã\83\96ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99。",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]]ã\81®ã\83\96ã\83­ã\83\83ã\82¯ã\82\92解é\99¤ã\81\97ã\81¾ã\81\97ã\81\9f。",
        "blocklist": "ブロックされている利用者",
        "ipblocklist": "ブロックされている利用者",
        "ipblocklist-legend": "ブロックされている利用者の検索",
        "tooltip-pt-mycontris": "自分の投稿の一覧",
        "tooltip-pt-login": "ログインすることを推奨します。ただし、必須ではありません。",
        "tooltip-pt-logout": "ログアウト",
+       "tooltip-pt-createaccount": "アカウントを作成してログインすることをお勧めしますが、必須ではありません",
        "tooltip-ca-talk": "本文ページについての議論",
        "tooltip-ca-edit": "このページを編集できます。保存前にプレビューボタンを使用してください。",
        "tooltip-ca-addsection": "新しい節を開始する",
        "tooltip-feed-atom": "このページのAtomフィード",
        "tooltip-t-contributions": "この利用者の投稿の一覧",
        "tooltip-t-emailuser": "この利用者にメールを送信する",
+       "tooltip-t-info": "このページについての詳細情報",
        "tooltip-t-upload": "ファイルをアップロードする",
        "tooltip-t-specialpages": "特別ページの一覧",
        "tooltip-t-print": "このページの印刷用ページ",
        "pageinfo-robot-policy": "ロボットによるインデックス作成",
        "pageinfo-robot-index": "許可",
        "pageinfo-robot-noindex": "不許可",
-       "pageinfo-views": "閲覧回数",
        "pageinfo-watchers": "ページをウォッチリストに入れている人数",
        "pageinfo-few-watchers": "ウォッチしている利用者 $1 {{PLURAL:$1|人未満}}",
        "pageinfo-redirects-name": "このページへのリダイレクトの数",
        "revdelete-uname-unhid": "利用者名の可視化",
        "revdelete-restricted": "管理者に対する制限の適用",
        "revdelete-unrestricted": "管理者に対する制限の除去",
+       "logentry-merge-merge": "$1{{GENDER:$2|統合元}} と$3を$4に統合(改訂版を$5に掲載)",
        "logentry-move-move": "$1 がページ「$3」を「$4」に{{GENDER:$2|移動しました}}",
        "logentry-move-move-noredirect": "$1 がページ「$3」を「$4」に、リダイレクトを残さずに{{GENDER:$2|移動しました}}",
        "logentry-move-move_redir": "$1 がページ「$3」をリダイレクトの「$4」に{{GENDER:$2|移動しました}}",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (有効)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''無効''')",
        "mediastatistics": "メディア統計",
-       "mediastatistics-summary": "アップロードされたファイルの種類に関する統計。これはファイルの最新バージョンのみを含みます。以前のまたは削除されたバージョンについては除外されています。",
-       "mediastatistics-nbytes": "{{PLURAL:$1|$1 バイト|$1 バイト}} ($2; $3%)",
+       "mediastatistics-summary": "ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ç¨®é¡\9eã\81«é\96¢ã\81\99ã\82\8bçµ±è¨\88ã\81§ã\81\99ã\80\82ã\81\93ã\82\8cã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c\80æ\96°ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\81¿ã\82\92å\90«ã\81¿ã\81¾ã\81\99ã\80\82以å\89\8dã\81®ã\81¾ã\81\9fã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ã\81¤ã\81\84ã\81¦ã\81¯é\99¤å¤\96ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 バイト}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIMEタイプ",
        "mediastatistics-table-extensions": "取りうる拡張子",
        "mediastatistics-table-count": "ファイル数",
        "mediastatistics-table-totalbytes": "合計サイズ",
        "mediastatistics-header-unknown": "不明",
        "mediastatistics-header-bitmap": "ビットマップ画像",
-       "mediastatistics-header-drawing": "線画 (ベクタイメージ)",
+       "mediastatistics-header-drawing": "ç·\9aç\94» (ã\83\99ã\82¯ã\82¿ã\83¼ã\82¤ã\83¡ã\83¼ã\82¸)",
        "mediastatistics-header-audio": "オーディオ",
        "mediastatistics-header-video": "動画",
        "mediastatistics-header-multimedia": "リッチメディア",
        "mediastatistics-header-office": "オフィス",
        "mediastatistics-header-text": "テキスト",
        "mediastatistics-header-executable": "実行ファイル",
-       "mediastatistics-header-archive": "圧縮フォーマット"
+       "mediastatistics-header-archive": "圧縮フォーマット",
+       "json-warn-trailing-comma": "JSON の末尾の{{PLURAL:$1|カンマ $1 個}}を除去しました",
+       "json-error-unknown": "JSON に問題点がありました。エラー: $1",
+       "json-error-depth": "スタックの深さが上限を超えました",
+       "json-error-state-mismatch": "JSON が無効か、または破損しています",
+       "json-error-ctrl-char": "制御文字のエラーです。おそらく正しく符号化されていません",
+       "json-error-syntax": "構文エラー",
+       "json-error-utf8": "UTF-8 の文字が破損しています。エンコーディングが誤っているおそれがあります",
+       "json-error-recursion": "エンコードされる値に1つ以上の循環参照が含まれます",
+       "json-error-inf-or-nan": "エンコードされる値に1つ以上の NAN または INF が含まれます",
+       "json-error-unsupported-type": "エンコードできない種類の値が入力されました"
 }
index d9fa6f7..ac1921e 100644 (file)
@@ -5,7 +5,8 @@
                        "Ukabia",
                        "Yocahuna",
                        "គីមស៊្រុន",
-                       "아라"
+                       "아라",
+                       "Chabi1"
                ]
        },
        "tog-underline": "Lingk andalainin",
        "powersearch-ns": "Saach ina niemspies:",
        "preferences": "Prefrens",
        "mypreferences": "Mi prefrans",
+       "prefs-help-realname": "Riil niem apshanal. Ef yu giit, imaita yuuz az achribyuushan fi yu wok.",
        "group-sysop": "Adminischrieta",
        "grouppage-sysop": "{{ns:project}}:Adminischrieta",
        "newuserlogpage": "Yuuza krieshan lag",
        "tooltip-feed-atom": "Atom fiid fi dis piej",
        "tooltip-t-contributions": "Vyuu di lis a kanchribyuushan a dis yuuza",
        "tooltip-t-emailuser": "Sen e-miel tu dis yuuza",
+       "tooltip-t-info": "Muo infamieshan bout da piej ya",
        "tooltip-t-upload": "Opluod fail",
        "tooltip-t-specialpages": "Lis a aal peshal piej",
        "tooltip-t-print": "Printobl voerjan a dis piej",
index 3d72b45..c57d440 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "(vinny)",
-            "Gleki",
-            "Homo logos",
-            "Inego (on jbo.wikipedia.org)",
-            "Malafaya",
-            "OldakQuill",
-            "PierreAbbat",
-            "គីមស៊្រុន"
-        ]
-    },
-    "underline-always": "roroi",
-    "underline-never": "noroi",
-    "sunday": "la zedjed.",
-    "monday": "la padjed.",
-    "tuesday": "la redjed.",
-    "wednesday": "la cedjed.",
-    "thursday": "la vodjed.",
-    "friday": "la mudjed.",
-    "saturday": "la xadjed.",
-    "sun": "la zedjed",
-    "mon": "la padjed",
-    "tue": "la redjed",
-    "wed": "la cidjed",
-    "thu": "la vodjed",
-    "fri": "la mudjed",
-    "sat": "la xadjed",
-    "january": "ianvari",
-    "february": "februari",
-    "march": "martio",
-    "april": "prilio",
-    "may_long": "madjio",
-    "june": "djunio",
-    "july": "djulio",
-    "august": "avgusto",
-    "september": "septembero",
-    "october": "oktobero",
-    "november": "novmbero",
-    "december": "decmbero",
-    "january-gen": "la pamast.",
-    "february-gen": "la .remast.",
-    "march-gen": "la cimast.",
-    "april-gen": "la vomast.",
-    "may-gen": "la mumast.",
-    "june-gen": "la xamast.",
-    "july-gen": "la zemast.",
-    "august-gen": "la bimast.",
-    "september-gen": "la somast.",
-    "october-gen": "la daumast.",
-    "november-gen": "la feimast.",
-    "december-gen": "la gaimast.",
-    "jan": "ian",
-    "feb": "fre",
-    "mar": "mar",
-    "apr": "pri",
-    "may": "mad",
-    "jun": "jun",
-    "jul": "jul",
-    "aug": "avg",
-    "sep": "sep",
-    "oct": "okt",
-    "nov": "nov",
-    "dec": "dec",
-    "pagecategories": "{{PLURAL:$1|klesi|klesi}}",
-    "category_header": "fe le kibypapri cu klesi \"$1\"",
-    "subcategories": "le'a ti",
-    "category-subcat-count": "{{PLURAL:$2|lo dei klesi cu se klesi lo po'o di'e|lo dei klesi cu se klesi  {{PLURAL:$1|pa lo|$1 lo}} $2 da.}}",
-    "category-article-count": "{{PLURAL:$2|pa vi ckupau ku po'o cmima lo vi klesi.| {{PLURAL:$1|lo vi ckupau|$1 vi ckupau }} ku cmima lo vi klesi, out of $2 total.}}",
-    "listingcontinuesabbrev": "co'unai",
-    "about": "ve skicu",
-    "cancel": "naljetnygau",
-    "moredotdotdot": ".au zmadu",
-    "mytalk": "lo casnu be mi",
-    "navigation": "ckupau",
-    "qbfind": "facki",
-    "qbedit": "stika",
-    "qbpageoptions": "ti ckupau",
-    "qbmyoptions": "lo pe mi ckupau",
-    "faq": "lo cafne se reisku",
-    "faqpage": "lo proiekto zo'u: lo cafne se reisku",
-    "vector-action-addsection": "jmina la'e se casnu",
-    "vector-action-delete": "vimcu",
-    "vector-action-move": "stika lo cmene",
-    "vector-action-protect": "bandu",
-    "vector-view-create": "zbasu",
-    "vector-view-edit": "stika",
-    "vector-view-history": "lo ckupau citri",
-    "vector-view-view": "tcidu",
-    "vector-view-viewsource": "cpacu lo krasi",
-    "actions": "nu zukte",
-    "namespaces": "cmene canlu",
-    "variants": "loi jutsi",
-    "errorpagetitle": "fliba",
-    "returnto": "xrugau fi la'e zoi gy. $1 .gy",
-    "tagline": "ra'i {{SITENAME}}",
-    "help": "sidju ckupau",
-    "search": "sisku",
-    "searchbutton": "sisku",
-    "searcharticle": "jarco",
-    "history": "lo ckupau citri",
-    "history_short": "galfi plivei",
-    "printableversion": "lo prina bredi versio",
-    "permalink": "vitno terjo'e",
-    "view": "cpacu",
-    "edit": "stika",
-    "create": "ninzba",
-    "editthispage": "stika lo vi ckupau",
-    "create-this-page": "zbasu lo vi ckupau",
-    "delete": "daspo",
-    "deletethispage": "vimcu lo vi ckupau",
-    "protect": "bandu",
-    "protect_change": "binxo",
-    "protectthispage": "bandu lo dei ckupau",
-    "newpage": "lo cnino ckupau",
-    "talkpagelinktext": "casnu",
-    "specialpage": "steci ckupau",
-    "personaltools": "Sivni tyobuobulysy",
-    "talk": "casnu",
-    "views": "nu cpacu",
-    "toolbox": "loi tutci",
-    "otherlanguages": "lo se bangu be lo drata",
-    "lastmodifiedat": "le vi ckupau rore'u se galfi de'i li $2 $1",
-    "protectedpage": "lo se bandu ckupau",
-    "jumpto": "plipe tyobu:",
-    "jumptonavigation": "ckupau",
-    "jumptosearch": "sisku",
-    "aboutsite": "skicu la'e zoi gy.{{SITENAME}}.gy",
-    "aboutpage": "Project:sera'a",
-    "copyright": "lo selvau cu gubni ja'i la'o gy. $1 .gy.",
-    "copyrightpage": "{{ns:project}}:fukyzifpo'e",
-    "currentevents": "caca'a fasnu",
-    "currentevents-url": "Project:caca'a fasnu",
-    "disclaimers": "nunxusra lo za'i na fuzme",
-    "disclaimerpage": "Project:kampu nunxusra be lo za'i na fuzme",
-    "edithelp": "stika nunsidju",
-    "mainpage": "Ralju Ckupau",
-    "mainpage-description": "ralju ckupau",
-    "portal": "bende ckupau",
-    "portal-url": "Project:bende ckupau",
-    "privacy": "javni be sera'a lo sivni",
-    "privacypage": "Project:i'inai zukselpla",
-    "ok": "ie",
-    "retrievedfrom": "cpacu fi la'o .url. \"$1\" .url.",
-    "editsection": "stika ti",
-    "editold": "stika",
-    "viewsourceold": "catlu le mifra",
-    "editlink": "stika ti",
-    "viewsourcelink": "casnu le mifra",
-    "editsectionhint": "stika lo te fendi noi du la'oi $1",
-    "toc": "ckupau pagbu",
-    "showtoc": "jarco",
-    "hidetoc": "cancygau",
-    "thisisdeleted": "View or restore $1?",
-    "viewdeleted": "View $1?",
-    "restorelink": "{{PLURAL:$1|one deleted edit|$1 deleted edits}}",
-    "feedlinks": "Feed:",
-    "feed-invalid": "Invalid subscription feed type.",
-    "feed-unavailable": "Syndication feeds are not available",
-    "site-rss-feed": "$1 RSS cidja",
-    "site-atom-feed": "$1 Atom cidja",
-    "red-link-title": "$1 (le vi kibypapri cu na zasti)",
-    "nstab-main": "lo ckupau",
-    "nstab-user": "lo pilno kibypapri",
-    "nstab-media": "Media page",
-    "nstab-special": "steci ckupau",
-    "nstab-project": "gungunma ckupau",
-    "nstab-image": "vreji",
-    "nstab-mediawiki": "notci",
-    "nstab-template": "lo morna",
-    "nstab-category": "klesi",
-    "badtitle": "na'e mapti cmene",
-    "viewsource": "catlu le mifra",
-    "yourname": "to pilno cmene toi",
-    "login": "co'a se jaspu",
-    "nav-login-createaccount": "jaspu nerkla / vreji lo cnino pilno",
-    "userlogin": "co'a pilno lo jaspu / zbasu lo jaspu",
-    "logout": "co'u se jaspu",
-    "userlogout": "co'u se jaspu",
-    "nologin": "xu no da jaspu do i $1",
-    "nologinlink": "zbasu lo jaspu",
-    "createaccount": "zbasu lo jaspu",
-    "gotaccountlink": "co'a se jaspu",
-    "loginlanguagelabel": "to bangu toi $1",
-    "resetpass-submit-cancel": "naljetnygau",
-    "passwordreset-username": "to pilno cmene toi",
-    "changeemail-cancel": "naljetnygau",
-    "link_tip": "lo nenri judri",
-    "extlink_sample": "http://www.example.com link title",
-    "media_tip": "judri lo vreji",
-    "summary": "to ve skicu toi",
-    "minoredit": "ti nu na'evajni galfi",
-    "watchthis": "zgana ti",
-    "savearticle": "stogau lo ckupau",
-    "showpreview": "zganygau lo jai se troci",
-    "showdiff": "catlu lo jai te frica",
-    "loginreqlink": "co'a se jaspu",
-    "newarticle": "to cnino toi",
-    "previewnote": "'''do o'i morji lo du'u di'e jai se troci se zgana po'o'''\n.i lo do nu stika cu pu'o se stogau",
-    "editing": "ca'o stika la'o vric. $1 vric.",
-    "editingsection": "ca'o stika la'o vric. $1 vric. noi te fendi",
-    "editingcomment": "ca'o stika la'o vric. $1 vric. noi cnino te fendi",
-    "template-protected": "(to loi se bende toi)",
-    "revisionasof": "ve farvi soi se detri la'oi $1",
-    "previousrevision": "lo laldo zmadu versio",
-    "cur": "cab",
-    "last": "prula'i",
-    "page_first": "pamoi",
-    "page_last": "fanmo",
-    "history-show-deleted": "mo'u se vimcu po'o",
-    "histfirst": "clira traji",
-    "histlast": "lerci traji",
-    "rev-delundel": "jarco/mipri",
-    "lineno": "Linji $1",
-    "editundo": "fatstika",
-    "searchresults": "tu'a le se sisku",
-    "searchresults-title": "Sisku pruce for \"$1\"",
-    "prevn": "lo lidne {{PLURAL:$1|$1}}",
-    "nextn": "lo se lidne {{PLURAL:$1|$1}}",
-    "prevn-title": "lo lidne $1 {{PLURAL:$1|result|results}}",
-    "shown-title": "zganygau $1 lo {{PLURAL:$1|danfu}} fau ro papri",
-    "searchprofile-articles": "lo se vasru papri",
-    "searchprofile-images": "tarti vreji",
-    "searchprofile-everything": "ro co'e",
-    "searchprofile-advanced": "lo tcila",
-    "searchprofile-articles-tooltip": "sisku fi la'oi $1",
-    "searchprofile-project-tooltip": "sisku fi la'oi $1",
-    "searchprofile-images-tooltip": "sisku tu'a lo vreji",
-    "search-result-size": "$1 ({{PLURAL:$2|1 valsi|$2 valsi}})",
-    "search-section": "(to la'oi $1 noi te fendi toi)",
-    "search-suggest": "xu do sisydji lu $1 li'u",
-    "searchall": "ro co'e",
-    "preferences": "lo se nelci",
-    "mypreferences": "lo se nelci",
-    "prefs-rc": "lo nu puzi stika",
-    "prefs-editing": "ca'o stika",
-    "searchresultshead": "tu'a le se sisku",
-    "savedprefs": "le do zmaselnei pu vreji",
-    "yourrealname": "to fatci cmene toi",
-    "action-edit": "stika lo vi ckupau",
-    "recentchanges": "lo nu puzi stika",
-    "recentchanges-summary": "liste loi nu puzi galfi la .uikis.",
-    "rcshowhidebots": "$1 lo zmiku",
-    "rcshowhideliu": "$1 lo se jaspu pilno",
-    "diff": "te frica",
-    "hist": "galfi plivei",
-    "hide": "cancygau",
-    "show": "Jarco",
-    "minoreditletter": "m",
-    "newpageletter": "n",
-    "boteditletter": "z",
-    "rc-enhanced-expand": "zganygau lo tcila",
-    "recentchangeslinked": "lo srana nu gasnu",
-    "recentchangeslinked-toolbox": "lo srana nu gasnu",
-    "recentchangeslinked-page": "to ckupau cmene toi",
-    "upload": "benji lo pa vreji",
-    "uploadbtn": "benji lo pa vreji",
-    "filedesc": "to ve skicu toi",
-    "file-anchor-link": "vreji",
-    "filehist": "lo vreji citri",
-    "filehist-current": "cabna",
-    "filehist-datetime": "detytcika",
-    "filehist-user": "pilno",
-    "filehist-comment": "pinka",
-    "imagelinks": "vreji nu pilno",
-    "randompage": "cunso ckupau",
-    "nbytes": "$1 {{PLURAL:$1|bitsi}}",
-    "newpages": "lo cnino ckupau",
-    "move": "stika lo cmene",
-    "booksources-go": "sazri",
-    "allpages": "ro ckupau",
-    "allarticles": "ro notci",
-    "allpagessubmit": "jarco",
-    "categories": "klesi",
-    "watchlist": "loi se zgana ckupau",
-    "mywatchlist": "loi se zgana ckupau",
-    "watch": "jundi",
-    "watchthispage": "zgana ti",
-    "unwatch": "de'a zgana",
-    "watching": "co'a jundi",
-    "unwatching": "co'u jundi",
-    "actioncomplete": "mo'u pruce",
-    "actionfailed": "fliba lo nu pruce",
-    "dellogpage": "plivei fi loi nu daspo",
-    "deletionlog": "plivei fi loi nu daspo",
-    "rollbacklink": "lamxru",
-    "restriction-edit": "stika",
-    "undeleteviewlink": "cpacu",
-    "namespace": "to cmene canlu toi",
-    "blanknamespace": "(ralju)",
-    "contributions": "{{GENDER:$1|lo pilno}} mo'u stika la'e di'e",
-    "mycontris": "lo be mi pu se stika",
-    "sp-contributions-talk": "lo nu casnu",
-    "sp-contributions-submit": "sisku",
-    "whatlinkshere": "ma jorne ti",
-    "whatlinkshere-page": "to ckupau toi",
-    "isimage": "judri lo vreji",
-    "whatlinkshere-prev": "{{PLURAL:$1|lidne|se lidne la'o url $1 url}}",
-    "whatlinkshere-links": "to loi judri toi",
-    "whatlinkshere-hidelinks": "loi judri la'o .url $1 .url",
-    "blocklink": "zunti",
-    "change-blocklink": "stika bliku",
-    "contribslink": "selstika",
-    "block-log-flags-nocreate": "gau nu ka'enai zbasu lo jaspu",
-    "revertmove": "xruti",
-    "allmessagesname": "cmene",
-    "thumbnail-more": "bardygau",
-    "tooltip-pt-userpage": "ckupau pe do poi pilno",
-    "tooltip-pt-mytalk": "pe do nu casnu ckupau",
-    "tooltip-pt-preferences": "lo se nelci be do",
-    "tooltip-pt-watchlist": "le liste be lo kibypapri poi do zgana",
-    "tooltip-pt-mycontris": "le liste be le do selstika",
-    "tooltip-pt-login": "e'u do co'a pilno lo jaspu ije ku'i do na bilga",
-    "tooltip-pt-logout": "co'u se jaspu",
-    "tooltip-ca-talk": "lo nu casnu lo se vasru be lo dei ckupau",
-    "tooltip-ca-history": "lo purci versio be lo dei papri",
-    "tooltip-ca-protect": "bandu lo dei papri",
-    "tooltip-ca-delete": "vimcu lo vi ckupau",
-    "tooltip-ca-move": "ko galfi lo cmene be lo vi ckupau",
-    "tooltip-ca-watch": "jmive lo dei ckupau lo se zgana liste pe do",
-    "tooltip-search": "Sisku {{SITENAME}}",
-    "tooltip-search-go": "vitke lo ckupau poi se cmene da bi'unai fau lo nu ri zasti",
-    "tooltip-search-fulltext": "sisku do'i lei ckupau",
-    "tooltip-p-logo": "vitke lo ralju ckupau",
-    "tooltip-n-mainpage": "vitke lo ralju ckupau",
-    "tooltip-n-mainpage-description": "vitke lo ralju ckupau",
-    "tooltip-n-portal": "srana lo dei proiekto je zo'e noi ka'e se zukte do vau je lo stuzi be lo plixau info",
-    "tooltip-n-recentchanges": "liste lo vreji be lo nu puzi stika bu'u lo dei uitki",
-    "tooltip-n-randompage": "jarco lo cunso ckupau",
-    "tooltip-n-help": "sidju kibypapri",
-    "tooltip-t-whatlinkshere": "nu liste lo zifyga'ikibjudri poi ke'a kibjorne le vi ckupau",
-    "tooltip-t-recentchangeslinked": "lo puzi nunga'i pe lo kibypapri poi kibjorne le vi ckupau",
-    "tooltip-t-upload": "benji lo pa vreji",
-    "tooltip-t-specialpages": "liste ro steci ckupau",
-    "tooltip-t-print": "lo prina versio be lo dei ckupau",
-    "tooltip-t-permalink": "lo stodi judri be lo dei versio be lo dei papri",
-    "tooltip-ca-nstab-main": "catlu lo se vasru ckupau",
-    "tooltip-ca-nstab-project": "cpacu lo gungunma ckupau",
-    "tooltip-ca-nstab-image": "catlu lo ckupau pe lo vreji",
-    "tooltip-ca-nstab-template": "cpacu lo morna",
-    "tooltip-save": "lo nu stika ku ranji gau",
-    "tooltip-undo": "fatygau le nunstika gi'e jarco le stika tampapri tai lo nu troci jarco .i kakne jmina lo krinu le torvelski",
-    "pageinfo-toolboxlink": "lo info be lo ckupau",
-    "bad_image_list": "lo formate cu jai ve ciksi do'e di'e\n\ni lo po'o liste cmima (to lo linji poi zo'oi * cu pamoi lerfu ke'a) cu se pilno\ni lo pamoi ke linji judrysni cu ei judrysni lo jai se curmi nai fail\ni ro lo se lidne judrysni pe lo bi'unai linji cu nai jai se javni vau je va'i me lo papri poi lo fail sinxa ka'e zvati lo bi'unai linji",
-    "watchlistall2": "ro co'e",
-    "namespacesall": "ro co'e",
-    "monthsall": "ro co'e",
-    "specialpages": "steci ckupau",
-    "feedback-cancel": "naljetnygau"
+       "@metadata": {
+               "authors": [
+                       "(vinny)",
+                       "Gleki",
+                       "Homo logos",
+                       "Inego (on jbo.wikipedia.org)",
+                       "Malafaya",
+                       "OldakQuill",
+                       "PierreAbbat",
+                       "គីមស៊្រុន"
+               ]
+       },
+       "tog-underline": "lo nu cnita linji ke judri sinxa",
+       "tog-hideminor": "na zgana lo nalvajni nu cnegau poi me lo puzi nu stika",
+       "tog-showtoolbar": "zgana lo stika kajna",
+       "underline-always": "roroi",
+       "underline-never": "noroi",
+       "editfont-sansserif": "cfine claxu lerfu",
+       "editfont-serif": "cfine lerfu",
+       "sunday": "la zedjed.",
+       "monday": "la padjed.",
+       "tuesday": "la redjed.",
+       "wednesday": "la cedjed.",
+       "thursday": "la vodjed.",
+       "friday": "la mudjed.",
+       "saturday": "la xadjed.",
+       "sun": "la zedjed",
+       "mon": "la padjed",
+       "tue": "la redjed",
+       "wed": "la cidjed",
+       "thu": "la vodjed",
+       "fri": "la mudjed",
+       "sat": "la xadjed",
+       "january": "ianvari",
+       "february": "februari",
+       "march": "martio",
+       "april": "prilio",
+       "may_long": "madjio",
+       "june": "djunio",
+       "july": "djulio",
+       "august": "avgusto",
+       "september": "septembero",
+       "october": "oktobero",
+       "november": "novmbero",
+       "december": "decmbero",
+       "january-gen": "la pamast.",
+       "february-gen": "la .remast.",
+       "march-gen": "la cimast.",
+       "april-gen": "la vomast.",
+       "may-gen": "la mumast.",
+       "june-gen": "la xamast.",
+       "july-gen": "la zemast.",
+       "august-gen": "la bimast.",
+       "september-gen": "la somast.",
+       "october-gen": "la daumast.",
+       "november-gen": "la feimast.",
+       "december-gen": "la gaimast.",
+       "jan": "ian",
+       "feb": "fre",
+       "mar": "mar",
+       "apr": "pri",
+       "may": "mad",
+       "jun": "jun",
+       "jul": "jul",
+       "aug": "avg",
+       "sep": "sep",
+       "oct": "okt",
+       "nov": "nov",
+       "dec": "dec",
+       "january-date": "ianvari $1",
+       "february-date": "februari $1",
+       "march-date": "martio $1",
+       "april-date": "prilio $1",
+       "may-date": "madjio $1",
+       "june-date": "djunio $1",
+       "july-date": "djulio $1",
+       "august-date": "avgusto $1",
+       "september-date": "septembero $1",
+       "october-date": "oktobero $1",
+       "november-date": "novmbero $1",
+       "december-date": "decmbero $1",
+       "pagecategories": "{{PLURAL:$1|klesi|klesi}}",
+       "category_header": "fe le kibypapri cu klesi \"$1\"",
+       "subcategories": "le'a ti",
+       "category-subcat-count": "{{PLURAL:$2|lo dei klesi cu se klesi lo po'o di'e|lo dei klesi cu se klesi  {{PLURAL:$1|pa lo|$1 lo}} $2 da.}}",
+       "category-article-count": "{{PLURAL:$2|pa vi ckupau ku po'o cmima lo vi klesi.| {{PLURAL:$1|lo vi ckupau|$1 vi ckupau }} ku cmima lo vi klesi, out of $2 total.}}",
+       "listingcontinuesabbrev": "co'unai",
+       "about": "ve skicu",
+       "cancel": "naljetnygau",
+       "moredotdotdot": ".au zmadu",
+       "mytalk": "lo casnu be mi",
+       "navigation": "ckupau",
+       "qbfind": "facki",
+       "qbedit": "stika",
+       "qbpageoptions": "ti ckupau",
+       "qbmyoptions": "lo pe mi ckupau",
+       "faq": "lo cafne se retsku",
+       "faqpage": "lo proiekto zo'u: lo cafne se retsku",
+       "actions": "nu zukte",
+       "namespaces": "cmene canlu",
+       "variants": "loi jutsi",
+       "errorpagetitle": "fliba",
+       "returnto": "xrugau fi la'e zoi gy. $1 .gy",
+       "tagline": "ra'i {{SITENAME}}",
+       "help": "sidju ckupau",
+       "search": "sisku",
+       "searchbutton": "sisku",
+       "searcharticle": "jarco",
+       "history": "lo ckupau citri",
+       "history_short": "galfi plivei",
+       "printableversion": "lo prina bredi versio",
+       "permalink": "vitno terjo'e",
+       "view": "cpacu",
+       "edit": "stika",
+       "create": "ninzba",
+       "editthispage": "stika lo vi ckupau",
+       "create-this-page": "zbasu lo vi ckupau",
+       "delete": "daspo",
+       "deletethispage": "vimcu lo vi ckupau",
+       "protect": "bandu",
+       "protect_change": "binxo",
+       "protectthispage": "bandu lo dei ckupau",
+       "newpage": "lo cnino ckupau",
+       "talkpage": "casnu lo dei ckupau",
+       "talkpagelinktext": "casnu",
+       "specialpage": "steci ckupau",
+       "personaltools": "Sivni tyobuobulysy",
+       "talk": "casnu",
+       "views": "nu cpacu",
+       "toolbox": "loi tutci",
+       "viewtalkpage": "catlu lo nu casnu",
+       "otherlanguages": "bau lo drata",
+       "lastmodifiedat": "le vi ckupau rore'u se galfi de'i li $2 $1",
+       "protectedpage": "lo se bandu ckupau",
+       "jumpto": "lo se plipe",
+       "jumptonavigation": "ckupau",
+       "jumptosearch": "sisku",
+       "pool-errorunknown": "lo se srera poi na se djuno",
+       "aboutsite": "skicu la'e zoi gy.{{SITENAME}}.gy",
+       "aboutpage": "Project:sera'a",
+       "copyright": "lo selvau cu gubni ja'i la'o gy. $1 .gy.",
+       "copyrightpage": "{{ns:project}}:fukyzifpo'e",
+       "currentevents": "caca'a fasnu",
+       "currentevents-url": "Project:caca'a fasnu",
+       "disclaimers": "nunxusra lo za'i na fuzme",
+       "disclaimerpage": "Project:kampu nunxusra be lo za'i na fuzme",
+       "edithelp": "stika nunsidju",
+       "mainpage": "Ralju Ckupau",
+       "mainpage-description": "ralju ckupau",
+       "portal": "bende ckupau",
+       "portal-url": "Project:bende ckupau",
+       "privacy": "javni be sera'a lo sivni",
+       "privacypage": "Project:loi javni be lo nu sivni",
+       "ok": "ie",
+       "retrievedfrom": "cpacu fi la'o .url. \"$1\" .url.",
+       "editsection": "stika ti",
+       "editold": "stika",
+       "viewsourceold": "catlu le mifra",
+       "editlink": "stika ti",
+       "viewsourcelink": "casnu le mifra",
+       "editsectionhint": "stika lo te fendi noi du la'oi $1",
+       "toc": "ckupau pagbu",
+       "showtoc": "jarco",
+       "hidetoc": "cancygau",
+       "thisisdeleted": "View or restore $1?",
+       "viewdeleted": "View $1?",
+       "restorelink": "{{PLURAL:$1|one deleted edit|$1 deleted edits}}",
+       "feedlinks": "Feed:",
+       "feed-invalid": "Invalid subscription feed type.",
+       "feed-unavailable": "Syndication feeds are not available",
+       "site-rss-feed": "$1 RSS cidja",
+       "site-atom-feed": "$1 Atom cidja",
+       "red-link-title": "$1 (le vi kibypapri cu na zasti)",
+       "nstab-main": "lo ckupau",
+       "nstab-user": "lo pilno kibypapri",
+       "nstab-media": "Media page",
+       "nstab-special": "steci ckupau",
+       "nstab-project": "gungunma ckupau",
+       "nstab-image": "vreji",
+       "nstab-mediawiki": "notci",
+       "nstab-template": "lo morna",
+       "nstab-category": "klesi",
+       "badtitle": "na'e mapti cmene",
+       "viewsource": "catlu le mifra",
+       "yourname": "to pilno cmene toi",
+       "login": "co'a se jaspu",
+       "nav-login-createaccount": "jaspu nerkla / vreji lo cnino pilno",
+       "userlogin": "co'a pilno lo jaspu / zbasu lo jaspu",
+       "logout": "de'a se jaspu",
+       "userlogout": "de'a se jaspu",
+       "nologin": "xu no da jaspu do i $1",
+       "nologinlink": "zbasu lo jaspu",
+       "createaccount": "zbasu lo jaspu",
+       "gotaccountlink": "co'a se jaspu",
+       "loginlanguagelabel": "to bangu toi $1",
+       "pt-userlogout": "de'a se jaspu",
+       "resetpass-submit-cancel": "naljetnygau",
+       "passwordreset-username": "to pilno cmene toi",
+       "link_tip": "lo nenri judri",
+       "extlink_sample": "http://www.example.com link title",
+       "media_tip": "judri lo vreji",
+       "summary": "to ve skicu toi",
+       "minoredit": "ti nu na'evajni galfi",
+       "watchthis": "zgana ti",
+       "savearticle": "stogau lo ckupau",
+       "showpreview": "zgana lo jai se troci",
+       "showdiff": "catlu lo jai te frica",
+       "loginreqlink": "co'a se jaspu",
+       "newarticle": "to cnino toi",
+       "noarticletext": "no da .uenzi va'o lo dei papri .i .e'u do [[Special:Search/{{PAGENAME}}|sisku tu'a lo cmene be lo dei papri]] lo drata papri ja <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sisku fi lo srana citri vreji] ja [{{fullurl:{{FULLPAGENAME}}|action=edit}} cnegau lo dei papri]</span>.",
+       "previewnote": "'''do o'i morji lo du'u di'e jai se troci se zgana po'o'''\n.i lo do nu stika cu pu'o se stogau",
+       "editing": "ca'o stika la'o vric. $1 vric.",
+       "editingsection": "ca'o stika la'o vric. $1 vric. noi te fendi",
+       "editingcomment": "ca'o stika la'o vric. $1 vric. noi cnino te fendi",
+       "template-protected": "(to loi se bende toi)",
+       "revisionasof": "ve farvi soi se detri la'oi $1",
+       "previousrevision": "lo laldo zmadu versio",
+       "cur": "cab",
+       "last": "prula'i",
+       "page_first": "pamoi",
+       "page_last": "fanmo",
+       "history-show-deleted": "mo'u se vimcu po'o",
+       "histfirst": "clira traji",
+       "histlast": "lerci traji",
+       "rev-delundel": "jarco/mipri",
+       "lineno": "Linji $1",
+       "editundo": "fatstika",
+       "searchresults": "tu'a le se sisku",
+       "searchresults-title": "Sisku pruce for \"$1\"",
+       "prevn": "lo lidne {{PLURAL:$1|$1}}",
+       "nextn": "lo se lidne {{PLURAL:$1|$1}}",
+       "prevn-title": "lo lidne $1 {{PLURAL:$1|result|results}}",
+       "shown-title": "fau ro papri zgana $1 lo {{PLURAL:$1|danfu}}",
+       "searchprofile-articles": "lo se vasru papri",
+       "searchprofile-images": "tarti vreji",
+       "searchprofile-everything": "ro co'e",
+       "searchprofile-advanced": "lo tcila",
+       "searchprofile-articles-tooltip": "sisku fi la'oi $1",
+       "searchprofile-images-tooltip": "sisku tu'a lo vreji",
+       "search-result-size": "$1 ({{PLURAL:$2|1 valsi|$2 valsi}})",
+       "search-section": "(to la'oi $1 noi te fendi toi)",
+       "search-suggest": "xu do sisydji lu $1 li'u",
+       "searchall": "ro co'e",
+       "preferences": "lo se nelci",
+       "mypreferences": "lo se nelci",
+       "prefs-rc": "lo nu puzi stika",
+       "prefs-editing": "ca'o stika",
+       "searchresultshead": "tu'a le se sisku",
+       "savedprefs": "le do zmaselnei pu vreji",
+       "yourrealname": "to fatci cmene toi",
+       "yourlanguage": "to bangu toi",
+       "action-edit": "stika lo vi ckupau",
+       "recentchanges": "lo nu puzi stika",
+       "recentchanges-legend": "loi optio pe lo pu zi nu stika",
+       "recentchanges-summary": "liste loi nu puzi stika le uitki",
+       "rcshowhidebots": "$1 lo zmiku",
+       "rcshowhideliu": "$1 lo se jaspu pilno",
+       "rclinks": "zgana $1 lo romoi nu stika ca $2 lo romoi djedi<br />$3",
+       "diff": "te frica",
+       "hist": "galfi plivei",
+       "hide": "cancygau",
+       "show": "Jarco",
+       "minoreditletter": "m",
+       "newpageletter": "n",
+       "boteditletter": "z",
+       "rc-enhanced-expand": "zgana lo tcila",
+       "recentchangeslinked": "lo srana nu gasnu",
+       "recentchangeslinked-toolbox": "lo srana nu gasnu",
+       "recentchangeslinked-page": "to ckupau cmene toi",
+       "upload": "benji lo pa vreji",
+       "uploadbtn": "benji lo pa vreji",
+       "filedesc": "to ve skicu toi",
+       "file-anchor-link": "vreji",
+       "filehist": "lo vreji citri",
+       "filehist-current": "cabna",
+       "filehist-datetime": "detytcika",
+       "filehist-user": "pilno",
+       "filehist-comment": "pinka",
+       "imagelinks": "vreji nu pilno",
+       "randompage": "cunso ckupau",
+       "nbytes": "$1 {{PLURAL:$1|bitsi}}",
+       "newpages": "lo cnino ckupau",
+       "move": "stika lo cmene",
+       "allpages": "ro ckupau",
+       "allarticles": "ro notci",
+       "allpagessubmit": "jarco",
+       "categories": "klesi",
+       "watchlist": "loi se zgana ckupau",
+       "mywatchlist": "loi se zgana ckupau",
+       "watch": "jundi",
+       "watchthispage": "zgana ti",
+       "unwatch": "de'a zgana",
+       "watching": "co'a jundi",
+       "unwatching": "co'u jundi",
+       "actioncomplete": "mo'u pruce",
+       "actionfailed": "fliba lo nu pruce",
+       "dellogpage": "plivei fi loi nu daspo",
+       "deletionlog": "plivei fi loi nu daspo",
+       "rollbacklink": "lamxru",
+       "restriction-edit": "stika",
+       "undeleteviewlink": "cpacu",
+       "namespace": "to cmene canlu toi",
+       "blanknamespace": "(ralju)",
+       "contributions": "{{GENDER:$1|lo pilno}} mo'u stika la'e di'e",
+       "mycontris": "lo be mi pu se stika",
+       "sp-contributions-talk": "lo nu casnu",
+       "sp-contributions-submit": "sisku",
+       "whatlinkshere": "ma jorne ti",
+       "whatlinkshere-page": "to ckupau toi",
+       "isimage": "judri lo vreji",
+       "whatlinkshere-prev": "{{PLURAL:$1|lidne|se lidne la'o url $1 url}}",
+       "whatlinkshere-links": "to loi judri toi",
+       "whatlinkshere-hidelinks": "loi judri la'o .url $1 .url",
+       "blocklink": "zunti",
+       "change-blocklink": "stika bliku",
+       "contribslink": "selstika",
+       "block-log-flags-nocreate": "gau nu ka'enai zbasu lo jaspu",
+       "revertmove": "xruti",
+       "allmessagesname": "cmene",
+       "allmessages-language": "to bangu toi",
+       "thumbnail-more": "bardygau",
+       "tooltip-pt-userpage": "ckupau pe do poi pilno",
+       "tooltip-pt-mytalk": "pe do nu casnu ckupau",
+       "tooltip-pt-preferences": "lo se nelci be do",
+       "tooltip-pt-watchlist": "le liste be lo kibypapri poi do zgana",
+       "tooltip-pt-mycontris": "le liste be le do selstika",
+       "tooltip-pt-login": "e'u do co'a pilno lo jaspu ije ku'i do na bilga",
+       "tooltip-pt-logout": "de'a se jaspu",
+       "tooltip-ca-talk": "lo nu casnu lo se vasru be lo dei ckupau",
+       "tooltip-ca-history": "lo purci versio be lo dei papri",
+       "tooltip-ca-protect": "bandu lo dei papri",
+       "tooltip-ca-delete": "vimcu lo vi ckupau",
+       "tooltip-ca-move": "ko galfi lo cmene be lo vi ckupau",
+       "tooltip-ca-watch": "jmive lo dei ckupau lo se zgana liste pe do",
+       "tooltip-search": "Sisku {{SITENAME}}",
+       "tooltip-search-go": "vitke lo ckupau poi se cmene da bi'unai fau lo nu ri zasti",
+       "tooltip-search-fulltext": "sisku do'i lei ckupau",
+       "tooltip-p-logo": "vitke lo ralju ckupau",
+       "tooltip-n-mainpage": "vitke lo ralju ckupau",
+       "tooltip-n-mainpage-description": "vitke lo ralju ckupau",
+       "tooltip-n-portal": "srana lo dei proiekto je zo'e noi ka'e se zukte do vau je lo stuzi be lo plixau info",
+       "tooltip-n-recentchanges": "liste lo vreji be lo nu puzi stika bu'u lo dei uitki",
+       "tooltip-n-randompage": "jarco lo cunso ckupau",
+       "tooltip-n-help": "sidju kibypapri",
+       "tooltip-t-whatlinkshere": "nu liste lo zifyga'ikibjudri poi ke'a kibjorne le vi ckupau",
+       "tooltip-t-recentchangeslinked": "lo puzi nunga'i pe lo kibypapri poi kibjorne le vi ckupau",
+       "tooltip-t-upload": "benji lo pa vreji",
+       "tooltip-t-specialpages": "liste ro steci ckupau",
+       "tooltip-t-print": "lo prina versio be lo dei ckupau",
+       "tooltip-t-permalink": "lo stodi judri be lo dei versio be lo dei papri",
+       "tooltip-ca-nstab-main": "catlu lo se vasru ckupau",
+       "tooltip-ca-nstab-project": "cpacu lo gungunma ckupau",
+       "tooltip-ca-nstab-image": "catlu lo ckupau pe lo vreji",
+       "tooltip-ca-nstab-template": "cpacu lo morna",
+       "tooltip-save": "lo nu stika ku ranji gau",
+       "tooltip-undo": "fatygau le nunstika gi'e jarco le stika tampapri tai lo nu troci jarco .i kakne jmina lo krinu le torvelski",
+       "pageinfo-toolboxlink": "lo info be lo ckupau",
+       "bad_image_list": "lo formate cu jai ve ciksi do'e di'e\n\ni lo po'o liste cmima (to lo linji poi zo'oi * cu pamoi lerfu ke'a) cu se pilno\ni lo pamoi ke linji judrysni cu ei judrysni lo jai se curmi nai fail\ni ro lo se lidne judrysni pe lo bi'unai linji cu nai jai se javni vau je va'i me lo papri poi lo fail sinxa ka'e zvati lo bi'unai linji",
+       "namespacesall": "ro co'e",
+       "monthsall": "ro co'e",
+       "specialpages": "steci ckupau",
+       "feedback-cancel": "naljetnygau"
 }
index 1e4aa6b..9ebdaa0 100644 (file)
        "watchthispage": "Åvervåg side",
        "unwatch": "Fjern åvervågnenge",
        "watchlist-details": "Du har $1 {{PLURAL:$1|side|sider}} på din åvervågnengsliste (øn diskusjesider).",
-       "wlshowlast": "Ves de seneste $1 têmer $2 dåg $3",
+       "wlshowlast": "Ves de seneste $1 têmer $2 dåg",
        "watching": "Åvervåge …",
        "unwatching": "Ekke åvervåge …",
        "deletepage": "Slet side",
        "metadata-expand": "Ves udvedede data",
        "metadata-collapse": "Skjul udvedede data",
        "metadata-fields": "Æ følgende felter frå EXIF-metadata i denne MediaWiki-beskedskrevselenger veses på billetbeskrevelsessider; yderligere lileskrevselenger ken veses.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "åle",
        "namespacesall": "åle",
        "monthsall": "åle",
        "watchlisttools-view": "Se ændrede sider i'n åvervågnengsliste",
index d0067ab..7665ee8 100644 (file)
        "mergehistory-same-destination": "Jeneng kaca sumber lan tujuan ora kena padha",
        "mergehistory-reason": "Alesan:",
        "mergelog": "Gabung log",
-       "pagemerge-logentry": "nggabungaké [[$1]] menyang [[$2]] (révisi nganti tekan $3)",
        "revertmerge": "Batalna panggabungan",
        "mergelogpagetext": "Ing ngisor iki kapacak daftar panggabungan sajarah kaca ing kaca liyané.",
        "history-title": "Riwayat rèvisi saka \"$1\"",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik kaca",
        "statistics-header-edits": "Statistik panyuntingan",
-       "statistics-header-views": "Statistik penampilan",
        "statistics-header-users": "Statistik panganggo",
        "statistics-header-hooks": "Statistik liya",
        "statistics-articles": "Kaca-kaca isi",
        "statistics-files": "Berkas sing diunggahaké",
        "statistics-edits": "Gunggung suntingan wiwit {{SITENAME}} diwiwiti",
        "statistics-edits-average": "Rata-rata suntingan saben kaca",
-       "statistics-views-total": "Gunggung panampilan kaca",
-       "statistics-views-total-desc": "Delokan nèng kaca sing ora ana lan kaca kusus ora kalebu",
-       "statistics-views-peredit": "Gunggung/cacahing panampilan saben suntingan",
        "statistics-users": "Gunggung [[Special:ListUsers|panganggo kadaftar]]",
        "statistics-users-active": "Para panganggo aktif",
        "statistics-users-active-desc": "Panganggo sing ngayahi aktivitas jroning {{PLURAL:$1|dia|$1 dina}} pungkasan",
-       "statistics-mostpopular": "Kaca sing paling akèh dideleng",
        "pageswithprop": "Kaca-kaca mawa ubarampé",
        "pageswithprop-legend": "Kaca-kaca mawa ubarampé",
        "pageswithprop-text": "Kaca iki njlèntèhaké kaca-kaca sing nganggo ubarampé astamiwa.",
        "uncategorizedtemplates": "Cithakan sing ora dikategorisasi",
        "unusedcategories": "Kategori sing ora dienggo",
        "unusedimages": "Berkas sing ora dienggo",
-       "popularpages": "Kaca populèr",
        "wantedcategories": "Kategori sing diperlokaké",
        "wantedpages": "Kaca sing dipèngini",
        "wantedpages-badtitle": "Judhul ora valid ing sèt asil: $1",
        "pageinfo-robot-policy": "Diindeks karo robot",
        "pageinfo-robot-index": "Entuk",
        "pageinfo-robot-noindex": "Ora entuk",
-       "pageinfo-views": "Cacahing delokan",
        "pageinfo-watchers": "Cacahé pangawas kaca",
        "pageinfo-few-watchers": "Kurang seka $1 {{PLURAL:$1|wong tilik|wong tilik}}",
        "pageinfo-redirects-name": "Jumlah pangalihan menyang kaca iki",
index 32b5fd8..9815cba 100644 (file)
        "mergehistory-reason": "მიზეზი:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "გაერთიანებათა ჟურნალი",
-       "pagemerge-logentry": "გაერთიანდა [[$1]] და [[$2]] (ვერსიები $3-მდე)",
        "revertmerge": "შერწყმის გაუქმება",
        "mergelogpagetext": "ქვემოთ წარმოდგენილია ამ გვერდის ბოლო გაერთიანებათა სია",
        "history-title": "$1: ცვლილებათა ისტორია",
        "recentchanges": "ბოლო ცვლილებები",
        "recentchanges-legend": "ბოლო ცვლილებების პარამეტრები",
        "recentchanges-summary": "უთვალთვალეთ ვიკის ბოლო ცვლილებებს ამ გვერდზე.",
+       "recentchanges-noresult": "მითითებულ პერიოდსა და სახელთა სივრცეში ცვლილებები არ არის.",
        "recentchanges-feed-description": "ვიკის უახლესი ცვლილებების მეთვალყურეობა ამ არხში.",
        "recentchanges-label-newpage": "ამ რედაქტირებით შეიქმნა ახალი გვერდი",
        "recentchanges-label-minor": "ეს არის მცირე შესწორება",
        "statistics": "სტატისტიკა",
        "statistics-header-pages": "გვერდების სტატისტიკა",
        "statistics-header-edits": "რედაქციების სტატისტიკა",
-       "statistics-header-views": "გვერდის მონახულების სტატისტიკა",
        "statistics-header-users": "მომხმარებლის სტატისტიკა",
        "statistics-header-hooks": "სხვა სტატისტიკა",
        "statistics-articles": "სტატია",
        "statistics-files": "ატვირთული ფაილები",
        "statistics-edits": "გვერდის შესწორებები მას შემდეგ რაც შეიქმნა პროექტი {{SITENAME}}",
        "statistics-edits-average": "რედაქტირების საერთო რაოდენობა გვერდზე",
-       "statistics-views-total": "სულ ხილვა",
-       "statistics-views-total-desc": "სათვალავში არ მიიღება არარსებული და სამუშაო გვერდების გადახედვა",
-       "statistics-views-peredit": "შესწორებათა ხილვა",
        "statistics-users": "დარეგისტრირებული [[Special:ListUsers|მომხმარებლები]]",
        "statistics-users-active": "აქტიური მომხმარებლები",
        "statistics-users-active-desc": "მომხმარებლები, რომლებმაც განახორციელეს ქმედება {{PLURAL:$1|ბოლო $1 დღის|ბოლო $1 დღის}} განმავლობაში",
-       "statistics-mostpopular": "ყველზე ხშირად ხილვადი გვერდები",
        "pageswithprop": "გვერდები განსაზღვრული თვისებით",
        "pageswithprop-legend": "გვერდები განსაზღვრული თვისებით",
        "pageswithprop-text": "აქ მოცემულია გვერდები, რომელთაც ხელით განესაზღვრათ გარკვეული თვისებები.",
        "uncategorizedtemplates": "თარგები კატეგორიების გარეშე",
        "unusedcategories": "გამოუყენებელი კატეგორიები",
        "unusedimages": "გამოუყენებელი ფაილები",
-       "popularpages": "პოპულარული გვერდები",
        "wantedcategories": "მოთხოვნილი კატეგორიები",
        "wantedpages": "მოთხოვნილი გვერდები",
        "wantedpages-badtitle": "შეცდომითი სათაური მთხოვნაში  $1.",
        "pageinfo-robot-policy": "ინდექსაცია საძიებო რობოტებით",
        "pageinfo-robot-index": "დაშვებულია",
        "pageinfo-robot-noindex": "არ არის დაშვებული",
-       "pageinfo-views": "ხილვების რაოდენობა",
        "pageinfo-watchers": "გვერდის დამკვირვებელთა რაოდენობა",
        "pageinfo-few-watchers": "სულ მცირე $1 {{PLURAL:$1|დამკვირვებელი|დამკვირვებელი}}",
        "pageinfo-redirects-name": "გადამისამართებების რაოდენობა ამ გვერდზე",
index 368016c..805de26 100644 (file)
        "mergehistory-comment": "[[:$1]] degen [[:$2]] degenge biriktirildi: $3",
        "mergehistory-same-destination": "Derek ha'm aqırg'ı betler birdey bolmawı kerek",
        "mergelog": "Biriktiriw jurnalı",
-       "pagemerge-logentry": "[[$1]] degen [[$2]] degenge biriktirildi ($3 shekemgi nusqalar)",
        "revertmerge": "Ajırat",
        "mergelogpagetext": "To'mende bir bet tariyxının' basqa betke biriktiriliwinin' en' aqırg'ı dizimi keltirilgen.",
        "history-title": "\"$1\" betinin' nusqa tariyxı",
        "statistics": "Statistika",
        "statistics-header-pages": "Bet statistikası",
        "statistics-header-edits": "Statistikanı o'zgertiw",
-       "statistics-header-views": "Statistikanı ko'riw",
        "statistics-header-users": "Paydalanıwshı statistikası",
        "statistics-articles": "Maqalalar",
        "statistics-pages": "Betler",
        "statistics-files": "Aploud qılıng'an fayllar",
        "statistics-edits": "{{SITENAME}} ornatılg'anlı beri bettegi o'zgerisler sanı",
        "statistics-edits-average": "Ha'r bir betke ortasha kiritilgen o'zgerisler sanı",
-       "statistics-views-total": "Barlıq ko'riwler",
-       "statistics-views-peredit": "Ha'r bir o'zgeriske ko'riwler sanı",
        "statistics-users": "Registratsiyadan o'tken [[Special:ListUsers|paydalanıwshılar]]",
        "statistics-users-active": "Aktiv paydalanıwshılar",
-       "statistics-mostpopular": "En' ko'p ko'rilgen betler",
        "doubleredirects": "Qos burıwshılar",
        "double-redirect-fixer": "Qayta bag'ıtlawshılardı du'zetiwshi",
        "brokenredirects": "Hesh betke bag'ıtlamaytug'ın burıwshılar",
        "uncategorizedtemplates": "Kategoriyasız shablonlar",
        "unusedcategories": "Paydalanılmag'an kategoriyalar",
        "unusedimages": "Paydalanılmag'an fayllar",
-       "popularpages": "En' ko'p ko'rilgen betler",
        "wantedcategories": "Talap qılıng'an kategoriyalar",
        "wantedpages": "Talap qılıng'an betler",
        "wantedfiles": "Kerekli fayllar",
index 86b33f8..48dbf78 100644 (file)
        "mergehistory-same-destination": "Asebter n azar d usebter n userken ur zemren ara ad illin d yiwen",
        "mergehistory-reason": "Ayɣer",
        "mergelog": "Aɣmis n izdayen",
-       "pagemerge-logentry": "[[$1]] yezdukel s [[$2]] (lqem alama d $3)",
        "revertmerge": "Fru",
        "mergelogpagetext": "Attan tebdart n wesdukel umezruy usebtar deg win n usebtar nniḍen amaynut.",
        "history-title": "Tiẓṛi tiss sint umezruy n \"$1\"",
        "statistics": "Tisnaddanin",
        "statistics-header-pages": "Tisnaddanin n isebtar",
        "statistics-header-edits": "Tisnaddanin n ibeddilen",
-       "statistics-header-views": "Tisnaddanin n iskanen",
        "statistics-header-users": "Tisnaddanin n wemseqdac",
        "statistics-header-hooks": "Tisnaddanin nniḍen",
        "statistics-articles": "Isebtar n ugbur",
        "statistics-files": "Ifuyla yettwaznen",
        "statistics-edits": "Ibeddilen n isebtar seg aserkeb n {{SITENAME}}",
        "statistics-edits-average": "Amḍan allal n ibeddilen sɣur asebter",
-       "statistics-views-total": "Iskanen",
-       "statistics-views-total-desc": "Timuɣliwin n isebtar ur llan ara dɣa d isebtar usligen ur sseddant ara",
-       "statistics-views-peredit": "Tizra s ubeddel",
        "statistics-users": "[[Special:ListUsers|Iseqdacen]] i siggezen",
        "statistics-users-active": "Iseqdacen urmiden",
        "statistics-users-active-desc": "Iseqdacen yesɛan xersum yiwet tigawt seg {{PLURAL:$1|ass agi aneggaru|$1 ussan agi ineggura}}",
-       "statistics-mostpopular": "isebtar mmeẓren aṭṭas",
        "pageswithprop": "Isebtar s ayla n usebtar",
        "pageswithprop-legend": "Isebtar s ayla n usebtar",
        "pageswithprop-text": "Asebtar agi, yefked umuɣ n isebtar yeseqdacen ayla n usebtar amaẓlay",
        "uncategorizedtemplates": "Talɣiwin mebla taggayt",
        "unusedcategories": "Taggayin ur nettwaseqdac ara",
        "unusedimages": "Ifayluwin ur nettwaseqdac ara",
-       "popularpages": "Isebtar iɣerfanen",
        "wantedcategories": "Taggayin mmebɣant",
        "wantedpages": "Isebtar mmebɣan",
        "wantedpages-badtitle": "Azwel ur yeɣbel ara deg igmad : $1",
        "pageinfo-robot-policy": "Asbeddi sɣur iṛubuten",
        "pageinfo-robot-index": "Tessireg",
        "pageinfo-robot-noindex": "Tegdel",
-       "pageinfo-views": "Amḍan n timuɣliwin",
        "pageinfo-watchers": "Amḍan n imttekkiyen yesɛan asebter agi deg umuɣ nsen n uɛassi",
        "pageinfo-few-watchers": "Kkes-as $1 {{PLURAL:$1|amanay|imanayen}}",
        "pageinfo-redirects-name": "Amḍan n izdayen ɣer asebtar agi",
index 8d7b40f..e98a76e 100644 (file)
        "mergehistory-same-destination": "Япэрейуэ щыт напэкӀуэцӀымрэ напэкӀуэцӀ псоуэ щытымрэ зэщхьэщыкӀын хуейщ",
        "mergehistory-reason": "Зытеухуар:",
        "mergelog": "Зэхэгъэхьэгъуэхэм я тхылъ",
-       "pagemerge-logentry": "Зы щӀащ [[$1]]-рэ [[$2]]-рэ (версиэхэр $3 нэгъунэ)",
        "revertmerge": "Зыхэдзын",
        "mergelogpagetext": "ИщӀагъымкӀэ зэхэгъэхьэгъуэхэм я тхыдэм и тхылъыр напэкӀуэцӀым еуэ гъэлъэгъуащ",
        "history-title": "\"$1\" и зэхъуэкIыныгъэм и тхыдэр",
index 6e514a9..91d64ad 100644 (file)
        "qbmyoptions": "Mikânda ya munu",
        "faq": "Kyuvu ná mvutu",
        "faqpage": "Lukanu:Kyuvu ná mvutu",
-       "vector-action-delete": "Kufwa",
-       "vector-action-move": "Nata",
-       "vector-action-protect": "Keba",
-       "vector-view-create": "Tunga",
-       "vector-view-edit": "Soba",
-       "vector-view-history": "Tala bansoba",
-       "vector-view-view": "Tânga",
        "errorpagetitle": "Fôti",
        "returnto": "Vutuka na $1",
        "tagline": "Katuka {{SITENAME}}",
        "newpage": "Mukânda ya yimpa",
        "talkpage": "Zônzana mukânda yayi",
        "talkpagelinktext": "Disolo",
-       "postcomment": "Ndâmbu ya yimpa",
        "talk": "Disolo",
        "views": "Bantadilu",
        "toolbox": "Bisadilu",
        "internalerror": "Fôti na kati",
        "internalerror_info": "Fôti na kati: $1",
        "filenotfound": "Fisyé \"$1\" me kutama ve.",
-       "fileexistserror": "Yawu lênda kusonika ve fisyé \"$1\": Fisyé kele.",
        "cannotdelete": "Mukânda to fisyé \"$1\" me lênda kufwa ve. Muntu ya nkaka kufwaka yawu?",
        "cannotdelete-title": "Mukânda \"$1\" lênda kufwa ve",
        "badtitle": "Nkûmbu ya mbote ve",
        "resetpass-submit-cancel": "Sala ve",
        "changeemail-none": "(nkatu)",
        "changeemail-password": "Mpovo ya nge ya kukota {{SITENAME}}:",
-       "changeemail-cancel": "Sala ve",
        "bold_sample": "Kisono ya vimbu",
        "bold_tip": "Kisono ya vimbu",
        "italic_sample": "Kisono ya nswalu",
        "permissionserrors": "Fôti ya luve",
        "permissionserrorstext": "Nge kele na luve ya kusala yayi ve, samu na:",
        "permissionserrorstext-withaction": "Nge kele na luve ve ku $2, samu na:",
-       "postedit-confirmation": "Nsoba ya nge me lundama.",
+       "postedit-confirmation-saved": "Nsoba ya nge me lundama.",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "page_first": "ntete",
        "searchmenu-new": "'''Tunga mukânda \"[[:$1]]\" na wiki yayi!'''",
        "searchprofile-everything": "Nyonso",
        "searchprofile-articles-tooltip": "Sosa na $1",
-       "searchprofile-project-tooltip": "Sosa na $1",
        "search-result-size": "$1 ({{PLURAL:$2|mpovo 1|bampovo $2}})",
        "search-section": "(kibuku $1)",
        "search-interwiki-default": "Bandându $1:",
        "newpages": "Mikânda ya yimpa",
        "move": "Nata",
        "allpages": "Mikânda nyonso",
-       "alphaindexline": "$1 tî $2",
        "allarticles": "Mikânda nyonso",
        "categories": "Mitîndu",
        "watch": "Keba",
        "tooltip-ca-nstab-image": "Tala mukânda ya fisyé",
        "tooltip-save": "Lunda bansoba ya nge",
        "tooltip-undo": "\"Vutula\" ke vutula nsoba yayi mpe yawu ke monisa lumoni ya kusoba. Nge lênda sonika kikuma ya mvutula.",
-       "watchlistall2": "nyonso",
        "namespacesall": "nyonso",
        "monthsall": "nyonso",
        "table_pager_next": "Mukânda ya kulânda",
index c4de62a..00959b6 100644 (file)
        "lonelypages": "څھوعو صفحات",
        "unusedcategories": "غیر استعمال شدہ زمرہ جات",
        "unusedimages": "غیر استعمال شدہ فائل",
-       "popularpages": "مقبول صفحات",
        "wantedcategories": "طلب شدہ زمرہ جات",
        "wantedpages": "درخواست شدہ مضامین",
        "wantedfiles": "درخواست شدہ مضامین",
index 71f6bb9..f422a47 100644 (file)
        "statistics": "İstatistiki",
        "statistics-header-pages": "İstatistikê pele",
        "statistics-header-edits": "İstatistikê vurnaene",
-       "statistics-header-views": "İstatistikê asaene",
        "statistics-header-users": "İstatistikê karberi",
        "statistics-header-hooks": "İstatistikê bini",
        "statistics-articles": "Pelê tedeesteu",
index abfc2bf..ac50fb7 100644 (file)
        "mergehistory-autocomment": "[[:$1]] دەگەن [[:$2]] دەگەنگە بىرىكتىرىلدى",
        "mergehistory-comment": "[[:$1]] دەگەن [[:$2]] دەگەنگە بىرىكتىرىلدى: $3",
        "mergelog": "بىرىكتىرۋ جۋرنالى",
-       "pagemerge-logentry": "[[$1]] دەگەن [[$2]] دەگەنگە بىرىكتىرىلدى ($3 دەيىنگى تۇزەتۋلەرى)",
        "revertmerge": "بىرىكتىرۋدى بولدىرماۋ",
        "mergelogpagetext": "تومەندە ٴبىر بەتتىڭ تارىيحى وزگە بەتكە بىرىكتىرۋ ەڭ سوڭعى ٴتىزىمى كەلتىرىلەدى.",
        "history-title": "«$1» — تۇزەتۋ تارىيحى",
        "randomredirect-nopages": "بۇل ەسىم اياسىندا ەش ايداعىش جوق.",
        "statistics": "ساناق",
        "statistics-header-users": "قاتىسۋشى ساناعى",
-       "statistics-mostpopular": "ەڭ كوپ قارالعان بەتتەر",
        "doubleredirects": "شىنجىرلى ايداعىشتار",
        "doubleredirectstext": "بۇل بەتتە باسقا ايداتۋ بەتتەرگە سىلتەيتىن بەتتەر تىزىمدەلىنەدى. ٴاربىر جولاقتا ٴبىرىنشى جانە ەكىنشى ايداعىشقا سىلتەمەلەر بار, سونىمەن بىرگە ەكىنشى ايداعىش نىساناسى بار, ادەتتە بۇل ٴبىرىنشى ايداعىش باعىتتايتىن «ناقتى» نىسانا بەت اتاۋى بولۋى كەرەك.",
        "brokenredirects": "ەش بەتكە كەلتىرمەيتىن ايداعىشتار",
        "uncategorizedtemplates": "ساناتسىز ۇلگىلەر",
        "unusedcategories": "پايدالانىلماعان ساناتتار",
        "unusedimages": "پايدالانىلماعان فايلدار",
-       "popularpages": "ەڭ كوپ قارالعان بەتتەر",
        "wantedcategories": "باستالماعان ساناتتار",
        "wantedpages": "باستالماعان بەتتەر",
        "mostlinked": "ەڭ كوپ سىلتەلگەن بەتتەر",
index fba9511..b37caa4 100644 (file)
        "mergehistory-same-destination": "Бастапқы және мақсатты беттер бірдей болмауы керек",
        "mergehistory-reason": "Себебі:",
        "mergelog": "Біріктіру журналы",
-       "pagemerge-logentry": "[[$1]] деген [[$2]] дегенге біріктірілді ($3 дейінгі түзетулері)",
        "revertmerge": "Біріктіруді болдырмау",
        "mergelogpagetext": "Төменде бір беттің тарихы өзге бетке біріктіру ең соңғы тізімі келтіріледі.",
        "history-title": "«$1» дегеннің өңделу тарихы",
        "statistics": "Санақ",
        "statistics-header-pages": "Беттер статистикасы",
        "statistics-header-edits": "Өңдеулер статистикасы",
-       "statistics-header-views": "Қаралу статистикасы",
        "statistics-header-users": "Қатысушы статистикасы",
        "statistics-header-hooks": "Басқа статистикалар",
        "statistics-articles": "Мақалалар саны",
        "statistics-files": "Жүктелген файлдар",
        "statistics-edits": "{{SITENAME}} құрылғанан бергі бет өңдеулері",
        "statistics-edits-average": "Әр бетке шаққандағы өңдеулердің орташа саны",
-       "statistics-views-total": "Барлық қаралулар",
-       "statistics-views-total-desc": "Қаралуларға бар болмаған беттер және арнайы беттер кірмейді",
-       "statistics-views-peredit": "Өңдеуге шаққанда қаралулар",
        "statistics-users": "Тіркелген қатысушылар [[Special:ListUsers|(тізім)]]",
        "statistics-users-active": "Белсенді қатысушылар",
        "statistics-users-active-desc": "Соңғы {{PLURAL:$1|күнде|$1 күнде}} қандай да бір іс-әрекет жасаған қатысушылар",
-       "statistics-mostpopular": "Ең көп қаралған беттер",
        "pageswithprop": "Беттер бет сипатымен",
        "pageswithprop-legend": "Беттер бет сипатымен",
        "pageswithprop-prop": "Меншік атауы:",
        "uncategorizedtemplates": "Санатсыз үлгілер",
        "unusedcategories": "Пайдаланылмаған санаттар",
        "unusedimages": "Пайдаланылмаған файлдар",
-       "popularpages": "Ең көп қаралған беттер",
        "wantedcategories": "Басталмаған санаттар",
        "wantedpages": "Басталмаған беттер",
        "wantedfiles": "Басталмаған файлдар",
        "pagemovedsub": "Бет жылжытылды",
        "movepage-moved": "<strong>«$1» беті «$2» бетіне жылжытылды</strong>",
        "movepage-moved-redirect": "Айдатқыш жасалды.",
+       "movepage-moved-noredirect": "Бағыттау беті басталуы жасырылды.",
        "articleexists": "Осылай аталған бет әлдақашан бар немесе таңдаған атауыңыз жарамды емес.\nБасқа атауды таңдаңыз.",
        "cantmove-titleprotected": "Бетті осы орынға жылжыта алмайсыз, себебі жаңа тақырып аты бастаудан қорғалған",
        "movetalk": "Қатысты талқылау бетін де жылжыту",
        "delete_and_move": "Жою және жылжыту",
        "delete_and_move_text": "== Жоюды қажет етеді ==\nТағайындалған «[[:$1]]» беті әлдеқашан бар.\nЖылжытуға жол беру үшін бұны жойғыңыз келе ме?",
        "delete_and_move_confirm": "Иә, бұл бетті жой",
-       "delete_and_move_reason": "\"[[$1]]\" дегеннен жылжытуға жол беру үшін жойылған",
+       "delete_and_move_reason": "«[[$1]]» дегеннен жылжытуға жол беру үшін жойылған",
        "selfmove": "Қайнар және нысана тақырып аттары бірдей;\nбет өзінің үстіне жылжытылмайды.",
        "immobile-source-namespace": "\"$1\" есім кеңістігіндегі беттер жылжытылмайды",
        "immobile-target-namespace": "\"$1\" есім кеңістігіне беттерді жылдытылмайды",
        "pageinfo-robot-policy": "Индекстеуді робот жүргізуге",
        "pageinfo-robot-index": "рұқсат берілген",
        "pageinfo-robot-noindex": "рұқсат етілмеген",
-       "pageinfo-views": "Қараушылар саны",
        "pageinfo-watchers": "Бетті қараушылар саны",
        "pageinfo-few-watchers": "$1 азырақ {{PLURAL:$1|қараушы|қараушы}}",
        "pageinfo-redirects-name": "Бұл бетке бағытталғандар саны",
index a00317a..449e9a8 100644 (file)
        "mergehistory-autocomment": "[[:$1]] degen [[:$2]] degenge biriktirildi",
        "mergehistory-comment": "[[:$1]] degen [[:$2]] degenge biriktirildi: $3",
        "mergelog": "Biriktirw jwrnalı",
-       "pagemerge-logentry": "[[$1]] degen [[$2]] degenge biriktirildi ($3 deýingi tüzetwleri)",
        "revertmerge": "Biriktirwdi boldırmaw",
        "mergelogpagetext": "Tömende bir bettiñ tarïxı özge betke biriktirw eñ soñğı tizimi keltiriledi.",
        "history-title": "«$1» — tüzetw tarïxı",
        "randomredirect-nopages": "Bul esim ayasında eş aýdağış joq.",
        "statistics": "Sanaq",
        "statistics-header-users": "Qatıswşı sanağı",
-       "statistics-mostpopular": "Eñ köp qaralğan better",
        "doubleredirects": "Şınjırlı aýdağıştar",
        "doubleredirectstext": "Bul bette basqa aýdatw betterge silteýtin better tizimdelinedi. Ärbir jolaqta birinşi jäne ekinşi aýdağışqa siltemeler bar, sonımen birge ekinşi aýdağış nısanası bar, ädette bul birinşi aýdağış bağıttaýtın «naqtı» nısana bet atawı bolwı kerek.",
        "brokenredirects": "Eş betke keltirmeýtin aýdağıştar",
        "uncategorizedtemplates": "Sanatsız ülgiler",
        "unusedcategories": "Paýdalanılmağan sanattar",
        "unusedimages": "Paýdalanılmağan faýldar",
-       "popularpages": "Eñ köp qaralğan better",
        "wantedcategories": "Bastalmağan sanattar",
        "wantedpages": "Bastalmağan better",
        "mostlinked": "Eñ köp siltengen better",
index b6d6856..dd10a35 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Aputtu",
-            "Iketsi",
-            "Kaare",
-            "Kaniina (on kl.wikipedia.org)",
-            "Qaqqalik",
-            "לערי ריינהארט"
-        ]
-    },
-    "sunday": "Sapaat",
-    "monday": "Ataasinngorneq",
-    "tuesday": "Marlunngorneq",
-    "wednesday": "Pingasunngorneq",
-    "thursday": "Sisamanngorneq",
-    "friday": "Tallimanngorneq",
-    "saturday": "Arfininngorneq",
-    "sun": "Sap",
-    "mon": "Ata",
-    "tue": "Mar",
-    "wed": "Pin",
-    "thu": "Sis",
-    "fri": "Tal",
-    "sat": "Arf",
-    "january": "Jannuaari",
-    "february": "Februaari",
-    "march": "Martsi",
-    "april": "Apriili",
-    "may_long": "Maaji",
-    "june": "Juuni",
-    "july": "Juuli",
-    "august": "Aggusti",
-    "september": "Septemberi",
-    "october": "Oktoberi",
-    "november": "Novemberi",
-    "december": "Decemberi",
-    "january-gen": "Januaari",
-    "february-gen": "Februaari",
-    "march-gen": "Marsi",
-    "april-gen": "Apriili",
-    "may-gen": "Maaji",
-    "june-gen": "Juuni",
-    "july-gen": "Juuli",
-    "august-gen": "Aggusti",
-    "september-gen": "Septembari",
-    "october-gen": "Oktobari",
-    "november-gen": "Novembari",
-    "december-gen": "Decembari",
-    "jan": "Jan",
-    "feb": "Feb",
-    "mar": "Mar",
-    "apr": "Apr",
-    "may": "Maaji",
-    "jun": "Jun",
-    "jul": "Jul",
-    "aug": "Aug",
-    "sep": "Sep",
-    "oct": "Okt",
-    "nov": "Nov",
-    "dec": "Dec",
-    "pagecategories": "{{PLURAL:$1|Sumut atassuseq|Sunut atassusit}}",
-    "category_header": "Quppernerit sumut atassusermi \"$1\"-miittut",
-    "subcategories": "Sunut atassuserni ataaniittut",
-    "category-subcat-count": "{{PLURAL:$2|Una sumut atassuseq ataatsimik ataani ilaqarpoq.|Una sumut atassuseq imarivai {{PLURAL:$1|sumut atassuseq ataaniittoq|$1 sunut atassusit ataaniittut}}, $2-suni.}}",
-    "category-article-count": "Una sumut atassuseq imarivaa {{PLURAL:$2|qupperneq ataaseq ataaniittoq|{{PLURAL:$1|qupperneq ataaseq ataaniittoq|quppernerit ataaniittut $1-it}} $2-suni.}}",
-    "about": "Pillugu",
-    "newwindow": "(nutaamut ammassaaq)",
-    "cancel": "Unitsiguk",
-    "moredotdotdot": "Suli...",
-    "mytalk": "Oqalliffikka",
-    "navigation": "Sumiissusersiuut",
-    "qbfind": "Naniuk",
-    "qbedit": "Aaqqissoruk",
-    "vector-action-addsection": "Imm. nutaaq",
-    "vector-action-move": "Nuuguk",
-    "vector-view-create": "Pilersiguk",
-    "vector-view-edit": "Aaqqissoruk",
-    "vector-view-history": "Oqalutt.",
-    "vector-view-view": "Takuuk",
-    "vector-view-viewsource": "Toqqavia takuuk",
-    "errorpagetitle": "Kukkuneq",
-    "returnto": "$1 -mut uterit",
-    "tagline": "{{SITENAME}}-meersoq",
-    "help": "Ikiuutit",
-    "search": "Ujarlerit",
-    "searchbutton": "Ujarlerit",
-    "go": "Ikunnarit",
-    "searcharticle": "Tassunngarit",
-    "history": "Oqaluttuassartaa",
-    "history_short": "Oqaluttuassartaa",
-    "printableversion": "Naqikkuminartoq",
-    "permalink": "Ataavartumik innersuut",
-    "edit": "Aaqqissoruk",
-    "create": "Pilersiguk",
-    "editthispage": "Qupperneq aaqqissuuguk",
-    "delete": "Peeruk",
-    "deletethispage": "Qupperneq piiaruk",
-    "protect": "Illersoruk",
-    "protect_change": "allannguutit",
-    "unprotect": "Illersorunnaaruk",
-    "newpage": "Qupperneq nutaaq",
-    "talkpagelinktext": "Oqallinneq",
-    "personaltools": "Namminermut sannatit",
-    "talk": "Oqallinneq",
-    "views": "Takutitat",
-    "toolbox": "Atortut",
-    "otherlanguages": "Oqaatsit allat",
-    "redirectedfrom": "($1-mit nuunneq)",
-    "lastmodifiedat": "Una qupperneq kingullermik allanngortinneqarsimavoq $1 $2",
-    "jumpto": "Uunngarit:",
-    "jumptonavigation": "sumiissusersiuut",
-    "jumptosearch": "ujarlerit",
-    "aboutsite": "{{SITENAME}} pillugu",
-    "aboutpage": "Project:Pillugu",
-    "currentevents": "Maannakkut pisut",
-    "disclaimers": "Aalajangersagaq",
-    "edithelp": "Ikiuutit",
-    "mainpage": "Saqqaa",
-    "mainpage-description": "Saqqaa",
-    "portal": "Allattartup saqqaa",
-    "privacy": "Namminermut paasissutissat",
-    "retrievedfrom": "Uannga aaneqartoq \"$1\"",
-    "youhavenewmessages": "<!-- This sentence shall be empty because of kl grammar. --> $1 ($2)",
-    "editsection": "aaqqissoruk",
-    "editold": "aaqqissoruk",
-    "viewsourceold": "toqqavia takuuk",
-    "editlink": "aaqqissoruk",
-    "editsectionhint": "Aaqqissuuguk immikkoortoq: $1",
-    "toc": "Imarisai",
-    "showtoc": "saqqummeruk",
-    "hidetoc": "toqqoruk",
-    "site-rss-feed": "$1 RSS Feed",
-    "site-atom-feed": "$1 Atom Feed",
-    "page-rss-feed": "\"$1\" RSS Feed",
-    "red-link-title": "$1 (Qupperneq suli allaffigineqanngilaq)",
-    "nstab-main": "Allaaserisaq",
-    "nstab-user": "Atuisup quppernera",
-    "nstab-special": "Immikkut",
-    "nstab-project": "Pillugu",
-    "nstab-image": "Assiliaq",
-    "nstab-template": "Ilisserut",
-    "nstab-help": "Ikiuutit",
-    "nstab-category": "Sumut atassuseq",
-    "viewsource": "Toqqavia takuuk",
-    "protectedpagetext": "Una qupperneq allaffigineqarnissamut illersugaavoq.",
-    "viewsourcetext": "Qupperneq takusinnaavat aamma sanarfia kopeersinnaavat:",
-    "logouttext": "'''Maanna anivutit.'''\n\n{{SITENAME}} atorlugu ingerlaqqissinnaavutit kinaanerit isertorlugu, iseqqissinnaavutilluunniit taamatut isissuteqarlutit imalt. allat iserfigisinnaanngorpaat.",
-    "yourname": "Atuisutut atit",
-    "yourpassword": "Isissutissaq:",
-    "yourpasswordagain": "Isissutissaq allaqqiguk",
-    "remembermypassword": "Iserfiga tullissaanut eqqaamalara (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Iserit",
-    "nav-login-createaccount": "Konto-mik pilersitsigit imalt. iserit",
-    "loginprompt": "Pisariaqassaaq cookies-itit atussallugit {{SITENAME}} -mut isissaguit.",
-    "userlogin": "Kontomik pilersitsigit / iserit",
-    "logout": "Anigit",
-    "userlogout": "Anigit",
-    "nologin": "Kontomik peqanngilatit? '''$1'''.",
-    "nologinlink": "Kontomik pilersitsigit",
-    "createaccount": "Kontomik nutaamik pilersitsigit",
-    "gotaccount": "Kontomik peqareerpit? '''$1'''.",
-    "gotaccountlink": "Iserit",
-    "createaccountmail": "e-mail-ikkut",
-    "badretype": "Isissutissat allanneqartut assigiinngillat.",
-    "userexists": "Atuisup atia atorneqareerpoq. Allamik qinersigit.",
-    "loginerror": "Iserniarnerlunneq",
-    "loginsuccesstitle": "Maanna isersimalerputit",
-    "loginsuccess": "Maanna {{SITENAME}} -mut isersimalerputit \"$1\" -itut taaguuserlutit.",
-    "wrongpassword": "Isissutissaq kukkusumik allanneqarsimavoq. Misileqqiuk.",
-    "mailmypassword": "E-mail-ikkut isissutissaq nutaaq nassiuguk",
-    "acct_creation_throttle_hit": "Konto-mik pilersitsereersimagavit pilersitseqqissinnaanngilatit, IP-adressit malillugu.\nTaamaattumik maannakkorpiaq kontomik pilersitsisinnaanngilatit.",
-    "oldpassword": "Isissutissatoqaq:",
-    "newpassword": "Isissutissaq nutaaq:",
-    "retypenew": "Isissutissaq nutaaq allaqqiuk",
-    "summary": "Allaaserinera:",
-    "subject": "Pineqartoq/qulequtaq:",
-    "minoredit": "Annikitsumik allannguutaavoq",
-    "watchthis": "Allaaserisaq ersersimatiguk",
-    "savearticle": "Toqqoruk",
-    "preview": "Isikkua",
-    "showpreview": "Isikkua takuuk",
-    "showdiff": "Allannguutit",
-    "anoneditwarning": "'''Mianersoqqussut:''' Isersimanak sulilerputit.\nIP adressit nuisassaaq massuma quppernerup oqaluttuassartaani.",
-    "accmailtitle": "Password-i nassiunneqarsimavoq.",
-    "accmailtext": "Password-i \"$1\" $2-mut nassiunneqarsimavoq.",
-    "newarticle": "(Nuutaq)",
-    "newarticletext": "Maanga innersuunneqarsimavutit quppernermut suli pilersinneqarsimanngitsumut.\nQupperneq pilersissagukku, boks-ip iluani allagit (takuuk [[{{MediaWiki:Helppage}}|ikiuutit]] paasissutissaanerusut).\nMaanngarsimaguit kukkusumik, toortaat '''utimut''' tooruk.",
-    "anontalkpagetext": "---- ''Manna tassaavoq oqalliffik atuisumit anonym-iusumeersumit, konto-mik pilersitsisimanngitsumik imalt. atorneq ajugaanik.\nTaamaattumik IP-adressia kinaanerattut atortariaqassavarput.\nIP-adressi pigineqarsinnaavoq atuisunit arlalinnit.\nAtuisuuguit anonym-iusoq, isumaqarlutillu soqutiginngisannik oqaaseqarfigineqarlutit, qinnuigivatsigit [[Special:UserLogin/signup|atuisutut pilersitsissallutit]] aamma [[Special:UserLogin|iserlutit]], taava siunissami paarlattoornernik atuisuni arlalinni pinaveersaartoqarniassammat.''",
-    "noarticletext": "Maannamut una qupperneq allaffigineqanngilaq.\nTaamatut oqaasilimmik quppernerni allani [[Special:Search/{{PAGENAME}}|ujaasisinnaavutit]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} log-ini ujaasisinnavutillu] imaluunniit [{{fullurl:{{FULLPAGENAME}}|action=edit}} qupperneq pilersissinnaavat]</span>.",
-    "previewnote": "Eqqaamallugu isikkua takutinneqaannarpoq, toqqorneqanngilaq suli!",
-    "editing": "Aaqqissorpaa $1",
-    "editingsection": "Aaqqissorpaa $1 (immikkoortoq)",
-    "editingcomment": "Aaqqissorpaa $1 (immikkoortoq nutaaq)",
-    "yourtext": "Allatat",
-    "editingold": "'''Mianersoqqussut: Qupperneq pisoqaanerusoq aaqqissuutilerpat.'''\nToqqorukku quppernerup taamaannera taarserneqassaaq.",
-    "protectedpagewarning": "'''Mianersoqqussut: Una qupperneq illersugaavoq, administratorit kisimik aaqqissorsinnaavaat.'''",
-    "semiprotectedpagewarning": "'''Malugiuk:''' Qupperneq parnaaqqavoq, atuisutut nalunaarsimasut kisimik allanngortitersinnaavaat.",
-    "templatesused": "{{PLURAL:$1|Ilisserut|Ilisserutit}} quppernermi atorneqartoq/tut:",
-    "permissionserrorstext-withaction": "Pisinnaatitaaffeqanngilatit $2 atussallugu, {{PLURAL:$1|peqqutigalugu|peqqutigalugit}}:",
-    "moveddeleted-notice": "Una qupperneq peerneqarsimavoq.\nPeersinermut nuutsinermullu nalunaarsuutit ataani takuneqarsinnaapput.",
-    "currentrev": "Maanna taamaannera",
-    "currentrev-asof": "Maanna taamaannera $1-meersoq",
-    "revisionasof": "Taamaannera $1-meersoq",
-    "previousrevision": "← Pisoqaaneq",
-    "nextrevision": "Nutaaneq →",
-    "currentrevisionlink": "Massakkuunera takuuk",
-    "cur": "maanna",
-    "last": "siulia",
-    "page_first": "siulliit",
-    "page_last": "kingulliit",
-    "histlegend": "Nassuiaat: (maanna) = assigiinngissut maanna inneranut, (siulia) = assigiinngissut siulianut, M = annikitsumik allannguut",
-    "history-fieldset-title": "Oqaluttuassartaani qupperaagit",
-    "histfirst": "Pisoqaaneq",
-    "histlast": "Nutaaneq",
-    "history-title": "\"$1\"-p oqaluttuassartaa",
-    "compareselectedversions": "Qinikkat nalilersukkit",
-    "editundo": "peeruk",
-    "searchresults": "Ujaasinermi inernerit",
-    "searchresults-title": "Uuma ujarnera \"$1\"",
-    "prevn": "siulii {{PLURAL:$1|$1}}",
-    "nextn": "tullii {{PLURAL:$1|$1}}",
-    "viewprevnext": "Takuuk ($1 {{int:pipe-separator}} $2) ($3)",
-    "searchmenu-exists": "'''Qupperneqarpoq \"[[:$1]]\" -mik atilimmik maani wikimi'''",
-    "searchmenu-new": "'''Qupperneq [[:$1]] pilersiguk maani wikimi'''",
-    "searchprofile-articles": "Imarisai",
-    "searchprofile-project": "Ikiuutit suliniutillu imaat",
-    "searchprofile-everything": "Tamarmik",
-    "searchprofile-advanced": "Ujaasiffik anneq",
-    "search-result-size": "$1 ({{PLURAL:$2|oqaaseq|$2 oqaatsit}})",
-    "search-redirect": "(nuunneq $1)",
-    "search-suggest": "Una piviuk: $1",
-    "showingresultsheader": "{{PLURAL:$5|Inernera '''$1''' '''$3'''|Inerneri '''$1 - $2''' '''$3'''}}-suni '''$4'''-mut",
-    "search-nonefound": "Ujaasineq inerneqanngilaq",
-    "mypreferences": "Inissiffissat",
-    "prefs-rc": "Allannguutit kingulliit",
-    "saveprefs": "Toqqukkit",
-    "yourlanguage": "Oqaatsit:",
-    "group-sysop": "Administratorit",
-    "recentchanges": "Allannguutit kingulliit",
-    "recentchanges-legend": "Inissisimaffiit allannguutini kingullerni",
-    "recentchanges-summary": "Uani quppernermi '''{{SITENAME}}'''-mi allannguutit kingulliit malinnaavigisinnaavatit.",
-    "recentchanges-label-newpage": "Tassaavoq qupperneq nutaaq",
-    "recentchanges-label-minor": "Tassaavoq allannguut annikitsoq",
-    "recentchanges-label-bot": "Bot-ip allannguutaa",
-    "recentchanges-legend-newpage": "$1 - qupperneq nutaaq",
-    "rclistfrom": "Allannguutit kingulliit takukkit $1 -nngaanniit",
-    "rcshowhideminor": "$1 allannguutit annikitsut",
-    "rcshowhidebots": "$1 robottit",
-    "rcshowhideliu": "$1 atuisut nalunaarsimasut",
-    "rcshowhideanons": "$1 atuisut anonymejusut",
-    "rcshowhidepatr": "$1 allannguutit misissorneqarsimasut",
-    "rcshowhidemine": "$1 nammineq tapit",
-    "rclinks": "Takutikkit $1 -it allannguutit kingulliit ulluni kingullerni $2 -ni<br />$3",
-    "diff": "assigiinng",
-    "hist": "oqalutt",
-    "hide": "Assequt",
-    "show": "Saqqummiuk",
-    "minoreditletter": "m",
-    "newpageletter": "N",
-    "boteditletter": "b",
-    "recentchangeslinked": "Allannguutit naleqqiussat",
-    "recentchangeslinked-feed": "Allannguutit naleqqiussat",
-    "recentchangeslinked-toolbox": "Allannguutit naleqqiussat",
-    "upload": "Fiilimik ilisigit",
-    "uploadedimage": "ilivaa \"[[$1]]\"",
-    "listfiles_user": "Atuisoq",
-    "file-anchor-link": "Assiliaq",
-    "filehist-datetime": "Ulloq/Piffissaq",
-    "filehist-user": "Atuisoq",
-    "imagelinks": "Innersuutit",
-    "mimesearch": "MIME ujaarlerit",
-    "randompage": "Nalaatsornermi qupperneq",
-    "statistics": "Kisitsisinngorlugit paasissutissat",
-    "newpages": "Quppernerit nutaat",
-    "move": "Nuuguk",
-    "pager-newer-n": "{{PLURAL:$1|nutaaneq 1|nutaanerit $1}}",
-    "pager-older-n": "{{PLURAL:$1|pisoqaaneq 1|pisoqaanerit $1}}",
-    "booksources-go": "Ujaruk",
-    "specialloguserlabel": "Atuisoq:",
-    "allarticles": "Quppernerit tamarmik",
-    "allpagessubmit": "Tassunngarit",
-    "categories": "Sunut atassusit",
-    "categoriespagetext": "Uku {{PLURAL:$1|sumut atassuseq|sunut atassusit}} imarivai quppernerit media-lluunniit.\n[[Special:UnusedCategories|Sunut atassusit]] atorneqanngitsut maani ilaanngillat.\nAamma takuuk [[Special:WantedCategories|sunut atassusinut kissaatigineqartut]].",
-    "categoriesfrom": "Takuuk qanoq aallartiffianeersumiit:",
-    "linksearch-ok": "Ujaruk",
-    "watchlist": "Ersersimasut",
-    "mywatchlist": "Nuisatiffikka",
-    "addedwatchtext": "Una qupperneq \"[[:$1]]\" ersersimatitannut ilanngunneqarpoq. Siunissami allannguutit ilinnut malugeqquneqartassapput aamma [[Special:RecentChanges|allannguutini kingullerni]] issusuumik allanneqartuusassallutik. Ersersimatikkusunngikkukku [[Special:Watchlist|piiginnassavat]] ersersimasuutitanni.",
-    "watch": "Ersilli",
-    "watchthispage": "Qupperneq ersersimatiguk",
-    "unwatch": "Ersitsinnagu",
-    "watching": "Saqqumitiguk",
-    "unwatching": "Saqquminera peeruk",
-    "excontent": "imarivaa: '$1'",
-    "excontentauthor": "imarivaa: '$1' (allattutuaavorlu '[[Special:Contributions/$2|$2]]')",
-    "delete-confirm": "Peeruk \"$1\"",
-    "actioncomplete": "Naammassivoq",
-    "deletedtext": "\"$1\" peerpoq. Takukkit $2 peerneqarsimasut kingulliit.",
-    "revertpage": "Inisseqqiineq [[User:$1|$1]]-meersoq, peerneqarpoq [[Special:Contributions/$2|$2]] ([[User talk:$2|diskussion]])-meersoq",
-    "prot_1movedto2": "[[$1]]-i nuunneqarsimavoq [[$2]]-mut",
-    "protect-expiry-options": "1 tiimi:1 hour,ulloq 1:1 day,sap akunn 1:1 week,sap akunn 2:2 weeks,qaammat 1:1 month,qaammatit 3:3 months,qaammatit 6:6 months,ukioq 1:1 year,killeqanngitsoq:infinite",
-    "undeletebtn": "Inisseqqiguk",
-    "undelete-search-submit": "Ujarlerit",
-    "namespace": "Quppernerup ilusia:",
-    "invert": "Quppernerup ilusia qinernagu",
-    "blanknamespace": "(Pingaarneq)",
-    "contributions": "Atuisup tapii",
-    "mycontris": "Tapikka",
-    "contribsub2": "$1-meersoq ($2)",
-    "uctop": "(kingulleq)",
-    "month": "Qaammat:",
-    "year": "Ukioq:",
-    "sp-contributions-newbies": "Atuisut nutaaginnaat takukkit",
-    "sp-contributions-talk": "oqallinneq",
-    "sp-contributions-search": "Tapiisunik ujaasineq",
-    "sp-contributions-username": "IP adresse imalt. atuisoq:",
-    "sp-contributions-submit": "Ujaruk",
-    "whatlinkshere": "Suna maangamut innersuussisoq",
-    "whatlinkshere-prev": "{{PLURAL:$1|siulia|siulii $1}}",
-    "whatlinkshere-next": "{{PLURAL:$1|tullia|tullii $1}}",
-    "blockip": "Atuisoq asseruk",
-    "blockip-legend": "Atuisoq asseruk",
-    "ipadressorusername": "IP adresse imalt. atuisoq:",
-    "ipboptions": "2 tiimit:2 hours,ulloq 1:1 day,ullut 3:3 days,sap akunn 1:1 week,sap akunn 2:2 weeks,qaammat 1:1 month,qaammatit 3:3 months,qaammatit 6:6 months,ukioq 1:1 year,killeqanngitsoq:infinite",
-    "ipblocklist-submit": "Ujarlerit",
-    "infiniteblock": "killeqanngitsoq",
-    "expiringblock": "atorunnaassaaq $1 $2-nngoruni",
-    "blocklink": "assersoruk",
-    "contribslink": "tapikkat",
-    "blocklogentry": "asserpaa [[$1]] $2-mik sivissusilimmik $3",
-    "movearticle": "Qupperneq nuuguk",
-    "move-watch": "Qupperneq ersersimatiguk",
-    "movepagebtn": "Qupperneq nuuguk",
-    "pagemovedsub": "Nuunnera iluatsippoq",
-    "movepage-moved": "Qupperneq '''\"$1\" uunga nuuppoq \"$2\"'''",
-    "allmessages-language": "Oqaatsit:",
-    "allmessages-filter-submit": "Takuuk",
-    "thumbnail-more": "Allisiguk",
-    "tooltip-pt-userpage": "Atuisutut quppernerit",
-    "tooltip-pt-mytalk": "Oqalliffiit",
-    "tooltip-pt-preferences": "Inissiinikka",
-    "tooltip-pt-mycontris": "Tapikkatit",
-    "tooltip-pt-login": "Iseqquneqaraluarputit, pitsaanerussagaluarpoq",
-    "tooltip-pt-logout": "Aniffik",
-    "tooltip-ca-talk": "Quppernerup imaanik oqallinneq",
-    "tooltip-ca-edit": "Allanngortiterisinnaavutit. Isikkua takulaariuk",
-    "tooltip-ca-history": "Quppernerup siulii",
-    "tooltip-ca-move": "Qupperneq nuuguk",
-    "tooltip-ca-watch": "Saqqumitiguk",
-    "tooltip-search": "Ujaarlerit {{SITENAME}}",
-    "tooltip-search-go": "Tassunngarit nassaassappat",
-    "tooltip-search-fulltext": "Taanna ujaruk",
-    "tooltip-n-mainpage": "Saqqaa iseruk",
-    "tooltip-n-mainpage-description": "Saqqaa iseruk",
-    "tooltip-n-portal": "Suliaq, ilitsersuut, nassaassaasinnaasullu",
-    "tooltip-n-currentevents": "Maannakkut pisut tunuliaqutai takukkit",
-    "tooltip-n-recentchanges": "Wikimi allannguutit kingulliit",
-    "tooltip-n-randompage": "Allaaserisamukarit",
-    "tooltip-n-help": "Qanoq iliussaanga ...",
-    "tooltip-t-whatlinkshere": "Innersuussami saqqummiussat",
-    "tooltip-t-recentchangeslinked": "Massuma quppernerani allannguutit kingulliit",
-    "tooltip-t-upload": "Assinik mediafiilinilluunniit ilisigit",
-    "tooltip-t-specialpages": "Quppernerit immikkut ittut nassaassaasinnaasut",
-    "tooltip-t-print": "Quppernerup naqikkuminarnera",
-    "tooltip-t-permalink": "Massuma quppernerup taamaaqqaarnera",
-    "tooltip-ca-nstab-main": "Imarisaa takuuk",
-    "tooltip-save": "Allannguutitit toqqukkit",
-    "tooltip-preview": "Isikkua takuuk, toqqortinnaguk atortaruk!",
-    "lastmodifiedatby": "Una qupperneq kingullermik allanngortinneqarsimavoq $2, $1 $3-mit.",
-    "previousdiff": "← Assigiinngissut siulia",
-    "nextdiff": "Assigiinngissut tullia →",
-    "ilsubmit": "Ujarlerit",
-    "namespacesall": "tamarmik",
-    "monthsall": "tamarmik",
-    "autosumm-new": "Qupperneq pilersippaa '$1'",
-    "specialpages": "Quppernerit immikkut ittut",
-    "searchsuggest-search": "Ujarlerit"
+       "@metadata": {
+               "authors": [
+                       "Aputtu",
+                       "Iketsi",
+                       "Kaare",
+                       "Kaniina (on kl.wikipedia.org)",
+                       "Qaqqalik",
+                       "לערי ריינהארט",
+                       "아라"
+               ]
+       },
+       "sunday": "Sapaat",
+       "monday": "Ataasinngorneq",
+       "tuesday": "Marlunngorneq",
+       "wednesday": "Pingasunngorneq",
+       "thursday": "Sisamanngorneq",
+       "friday": "Tallimanngorneq",
+       "saturday": "Arfininngorneq",
+       "sun": "Sap",
+       "mon": "Ata",
+       "tue": "Mar",
+       "wed": "Pin",
+       "thu": "Sis",
+       "fri": "Tal",
+       "sat": "Arf",
+       "january": "Jannuaari",
+       "february": "Februaari",
+       "march": "Martsi",
+       "april": "Apriili",
+       "may_long": "Maaji",
+       "june": "Juuni",
+       "july": "Juuli",
+       "august": "Aggusti",
+       "september": "Septemberi",
+       "october": "Oktoberi",
+       "november": "Novemberi",
+       "december": "Decemberi",
+       "january-gen": "Januaari",
+       "february-gen": "Februaari",
+       "march-gen": "Marsi",
+       "april-gen": "Apriili",
+       "may-gen": "Maaji",
+       "june-gen": "Juuni",
+       "july-gen": "Juuli",
+       "august-gen": "Aggusti",
+       "september-gen": "Septembari",
+       "october-gen": "Oktobari",
+       "november-gen": "Novembari",
+       "december-gen": "Decembari",
+       "jan": "Jan",
+       "feb": "Feb",
+       "mar": "Mar",
+       "apr": "Apr",
+       "may": "Maaji",
+       "jun": "Jun",
+       "jul": "Jul",
+       "aug": "Aug",
+       "sep": "Sep",
+       "oct": "Okt",
+       "nov": "Nov",
+       "dec": "Dec",
+       "pagecategories": "{{PLURAL:$1|Sumut atassuseq|Sunut atassusit}}",
+       "category_header": "Quppernerit sumut atassusermi \"$1\"-miittut",
+       "subcategories": "Sunut atassuserni ataaniittut",
+       "category-subcat-count": "{{PLURAL:$2|Una sumut atassuseq ataatsimik ataani ilaqarpoq.|Una sumut atassuseq imarivai {{PLURAL:$1|sumut atassuseq ataaniittoq|$1 sunut atassusit ataaniittut}}, $2-suni.}}",
+       "category-article-count": "Una sumut atassuseq imarivaa {{PLURAL:$2|qupperneq ataaseq ataaniittoq|{{PLURAL:$1|qupperneq ataaseq ataaniittoq|quppernerit ataaniittut $1-it}} $2-suni.}}",
+       "about": "Pillugu",
+       "newwindow": "(nutaamut ammassaaq)",
+       "cancel": "Unitsiguk",
+       "moredotdotdot": "Suli...",
+       "mytalk": "Oqalliffikka",
+       "navigation": "Sumiissusersiuut",
+       "qbfind": "Naniuk",
+       "qbedit": "Aaqqissoruk",
+       "errorpagetitle": "Kukkuneq",
+       "returnto": "$1 -mut uterit",
+       "tagline": "{{SITENAME}}-meersoq",
+       "help": "Ikiuutit",
+       "search": "Ujarlerit",
+       "searchbutton": "Ujarlerit",
+       "go": "Ikunnarit",
+       "searcharticle": "Tassunngarit",
+       "history": "Oqaluttuassartaa",
+       "history_short": "Oqaluttuassartaa",
+       "printableversion": "Naqikkuminartoq",
+       "permalink": "Ataavartumik innersuut",
+       "edit": "Aaqqissoruk",
+       "create": "Pilersiguk",
+       "editthispage": "Qupperneq aaqqissuuguk",
+       "delete": "Peeruk",
+       "deletethispage": "Qupperneq piiaruk",
+       "protect": "Illersoruk",
+       "protect_change": "allannguutit",
+       "unprotect": "Illersorunnaaruk",
+       "newpage": "Qupperneq nutaaq",
+       "talkpagelinktext": "Oqallinneq",
+       "personaltools": "Namminermut sannatit",
+       "talk": "Oqallinneq",
+       "views": "Takutitat",
+       "toolbox": "Atortut",
+       "otherlanguages": "Oqaatsit allat",
+       "redirectedfrom": "($1-mit nuunneq)",
+       "lastmodifiedat": "Una qupperneq kingullermik allanngortinneqarsimavoq $1 $2",
+       "jumpto": "Uunngarit:",
+       "jumptonavigation": "sumiissusersiuut",
+       "jumptosearch": "ujarlerit",
+       "aboutsite": "{{SITENAME}} pillugu",
+       "aboutpage": "Project:Pillugu",
+       "currentevents": "Maannakkut pisut",
+       "disclaimers": "Aalajangersagaq",
+       "edithelp": "Ikiuutit",
+       "mainpage": "Saqqaa",
+       "mainpage-description": "Saqqaa",
+       "portal": "Allattartup saqqaa",
+       "privacy": "Namminermut paasissutissat",
+       "retrievedfrom": "Uannga aaneqartoq \"$1\"",
+       "youhavenewmessages": "<!-- This sentence shall be empty because of kl grammar. --> $1 ($2)",
+       "editsection": "aaqqissoruk",
+       "editold": "aaqqissoruk",
+       "viewsourceold": "toqqavia takuuk",
+       "editlink": "aaqqissoruk",
+       "editsectionhint": "Aaqqissuuguk immikkoortoq: $1",
+       "toc": "Imarisai",
+       "showtoc": "saqqummeruk",
+       "hidetoc": "toqqoruk",
+       "site-rss-feed": "$1 RSS Feed",
+       "site-atom-feed": "$1 Atom Feed",
+       "page-rss-feed": "\"$1\" RSS Feed",
+       "red-link-title": "$1 (Qupperneq suli allaffigineqanngilaq)",
+       "nstab-main": "Allaaserisaq",
+       "nstab-user": "Atuisup quppernera",
+       "nstab-special": "Immikkut",
+       "nstab-project": "Pillugu",
+       "nstab-image": "Assiliaq",
+       "nstab-template": "Ilisserut",
+       "nstab-help": "Ikiuutit",
+       "nstab-category": "Sumut atassuseq",
+       "viewsource": "Toqqavia takuuk",
+       "protectedpagetext": "Una qupperneq allaffigineqarnissamut illersugaavoq.",
+       "viewsourcetext": "Qupperneq takusinnaavat aamma sanarfia kopeersinnaavat:",
+       "logouttext": "'''Maanna anivutit.'''\n\n{{SITENAME}} atorlugu ingerlaqqissinnaavutit kinaanerit isertorlugu, iseqqissinnaavutilluunniit taamatut isissuteqarlutit imalt. allat iserfigisinnaanngorpaat.",
+       "yourname": "Atuisutut atit",
+       "yourpassword": "Isissutissaq:",
+       "yourpasswordagain": "Isissutissaq allaqqiguk",
+       "remembermypassword": "Iserfiga tullissaanut eqqaamalara (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Iserit",
+       "nav-login-createaccount": "Konto-mik pilersitsigit imalt. iserit",
+       "userlogin": "Kontomik pilersitsigit / iserit",
+       "logout": "Anigit",
+       "userlogout": "Anigit",
+       "nologin": "Kontomik peqanngilatit? '''$1'''.",
+       "nologinlink": "Kontomik pilersitsigit",
+       "createaccount": "Kontomik nutaamik pilersitsigit",
+       "gotaccount": "Kontomik peqareerpit? '''$1'''.",
+       "gotaccountlink": "Iserit",
+       "createaccountmail": "e-mail-ikkut",
+       "badretype": "Isissutissat allanneqartut assigiinngillat.",
+       "userexists": "Atuisup atia atorneqareerpoq. Allamik qinersigit.",
+       "loginerror": "Iserniarnerlunneq",
+       "loginsuccesstitle": "Maanna isersimalerputit",
+       "loginsuccess": "Maanna {{SITENAME}} -mut isersimalerputit \"$1\" -itut taaguuserlutit.",
+       "wrongpassword": "Isissutissaq kukkusumik allanneqarsimavoq. Misileqqiuk.",
+       "mailmypassword": "E-mail-ikkut isissutissaq nutaaq nassiuguk",
+       "acct_creation_throttle_hit": "Konto-mik pilersitsereersimagavit pilersitseqqissinnaanngilatit, IP-adressit malillugu.\nTaamaattumik maannakkorpiaq kontomik pilersitsisinnaanngilatit.",
+       "oldpassword": "Isissutissatoqaq:",
+       "newpassword": "Isissutissaq nutaaq:",
+       "retypenew": "Isissutissaq nutaaq allaqqiuk",
+       "summary": "Allaaserinera:",
+       "subject": "Pineqartoq/qulequtaq:",
+       "minoredit": "Annikitsumik allannguutaavoq",
+       "watchthis": "Allaaserisaq ersersimatiguk",
+       "savearticle": "Toqqoruk",
+       "preview": "Isikkua",
+       "showpreview": "Isikkua takuuk",
+       "showdiff": "Allannguutit",
+       "anoneditwarning": "'''Mianersoqqussut:''' Isersimanak sulilerputit.\nIP adressit nuisassaaq massuma quppernerup oqaluttuassartaani.",
+       "accmailtitle": "Password-i nassiunneqarsimavoq.",
+       "accmailtext": "Password-i \"$1\" $2-mut nassiunneqarsimavoq.",
+       "newarticle": "(Nuutaq)",
+       "newarticletext": "Maanga innersuunneqarsimavutit quppernermut suli pilersinneqarsimanngitsumut.\nQupperneq pilersissagukku, boks-ip iluani allagit (takuuk [$1 ikiuutit] paasissutissaanerusut).\nMaanngarsimaguit kukkusumik, toortaat '''utimut''' tooruk.",
+       "anontalkpagetext": "---- ''Manna tassaavoq oqalliffik atuisumit anonym-iusumeersumit, konto-mik pilersitsisimanngitsumik imalt. atorneq ajugaanik.\nTaamaattumik IP-adressia kinaanerattut atortariaqassavarput.\nIP-adressi pigineqarsinnaavoq atuisunit arlalinnit.\nAtuisuuguit anonym-iusoq, isumaqarlutillu soqutiginngisannik oqaaseqarfigineqarlutit, qinnuigivatsigit [[Special:UserLogin/signup|atuisutut pilersitsissallutit]] aamma [[Special:UserLogin|iserlutit]], taava siunissami paarlattoornernik atuisuni arlalinni pinaveersaartoqarniassammat.''",
+       "noarticletext": "Maannamut una qupperneq allaffigineqanngilaq.\nTaamatut oqaasilimmik quppernerni allani [[Special:Search/{{PAGENAME}}|ujaasisinnaavutit]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} log-ini ujaasisinnavutillu] imaluunniit [{{fullurl:{{FULLPAGENAME}}|action=edit}} qupperneq pilersissinnaavat]</span>.",
+       "previewnote": "Eqqaamallugu isikkua takutinneqaannarpoq, toqqorneqanngilaq suli!",
+       "editing": "Aaqqissorpaa $1",
+       "editingsection": "Aaqqissorpaa $1 (immikkoortoq)",
+       "editingcomment": "Aaqqissorpaa $1 (immikkoortoq nutaaq)",
+       "yourtext": "Allatat",
+       "editingold": "'''Mianersoqqussut: Qupperneq pisoqaanerusoq aaqqissuutilerpat.'''\nToqqorukku quppernerup taamaannera taarserneqassaaq.",
+       "protectedpagewarning": "'''Mianersoqqussut: Una qupperneq illersugaavoq, administratorit kisimik aaqqissorsinnaavaat.'''",
+       "semiprotectedpagewarning": "'''Malugiuk:''' Qupperneq parnaaqqavoq, atuisutut nalunaarsimasut kisimik allanngortitersinnaavaat.",
+       "templatesused": "{{PLURAL:$1|Ilisserut|Ilisserutit}} quppernermi atorneqartoq/tut:",
+       "permissionserrorstext-withaction": "Pisinnaatitaaffeqanngilatit $2 atussallugu, {{PLURAL:$1|peqqutigalugu|peqqutigalugit}}:",
+       "moveddeleted-notice": "Una qupperneq peerneqarsimavoq.\nPeersinermut nuutsinermullu nalunaarsuutit ataani takuneqarsinnaapput.",
+       "currentrev": "Maanna taamaannera",
+       "currentrev-asof": "Maanna taamaannera $1-meersoq",
+       "revisionasof": "Taamaannera $1-meersoq",
+       "previousrevision": "← Pisoqaaneq",
+       "nextrevision": "Nutaaneq →",
+       "currentrevisionlink": "Massakkuunera takuuk",
+       "cur": "maanna",
+       "last": "siulia",
+       "page_first": "siulliit",
+       "page_last": "kingulliit",
+       "histlegend": "Nassuiaat: (maanna) = assigiinngissut maanna inneranut, (siulia) = assigiinngissut siulianut, M = annikitsumik allannguut",
+       "history-fieldset-title": "Oqaluttuassartaani qupperaagit",
+       "histfirst": "Pisoqaaneq",
+       "histlast": "Nutaaneq",
+       "history-title": "\"$1\"-p oqaluttuassartaa",
+       "compareselectedversions": "Qinikkat nalilersukkit",
+       "editundo": "peeruk",
+       "searchresults": "Ujaasinermi inernerit",
+       "searchresults-title": "Uuma ujarnera \"$1\"",
+       "prevn": "siulii {{PLURAL:$1|$1}}",
+       "nextn": "tullii {{PLURAL:$1|$1}}",
+       "viewprevnext": "Takuuk ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "'''Qupperneqarpoq \"[[:$1]]\" -mik atilimmik maani wikimi'''",
+       "searchmenu-new": "'''Qupperneq [[:$1]] pilersiguk maani wikimi'''",
+       "searchprofile-articles": "Imarisai",
+       "searchprofile-everything": "Tamarmik",
+       "searchprofile-advanced": "Ujaasiffik anneq",
+       "search-result-size": "$1 ({{PLURAL:$2|oqaaseq|$2 oqaatsit}})",
+       "search-redirect": "(nuunneq $1)",
+       "search-suggest": "Una piviuk: $1",
+       "search-nonefound": "Ujaasineq inerneqanngilaq",
+       "mypreferences": "Inissiffissat",
+       "prefs-rc": "Allannguutit kingulliit",
+       "saveprefs": "Toqqukkit",
+       "yourlanguage": "Oqaatsit:",
+       "group-sysop": "Administratorit",
+       "recentchanges": "Allannguutit kingulliit",
+       "recentchanges-legend": "Inissisimaffiit allannguutini kingullerni",
+       "recentchanges-summary": "Uani quppernermi '''{{SITENAME}}'''-mi allannguutit kingulliit malinnaavigisinnaavatit.",
+       "recentchanges-label-newpage": "Tassaavoq qupperneq nutaaq",
+       "recentchanges-label-minor": "Tassaavoq allannguut annikitsoq",
+       "recentchanges-label-bot": "Bot-ip allannguutaa",
+       "recentchanges-legend-newpage": "$1 - qupperneq nutaaq",
+       "rclistfrom": "Allannguutit kingulliit takukkit $3 $2 -nngaanniit",
+       "rcshowhideminor": "$1 allannguutit annikitsut",
+       "rcshowhidebots": "$1 robottit",
+       "rcshowhideliu": "$1 atuisut nalunaarsimasut",
+       "rcshowhideanons": "$1 atuisut anonymejusut",
+       "rcshowhidepatr": "$1 allannguutit misissorneqarsimasut",
+       "rcshowhidemine": "$1 nammineq tapit",
+       "rclinks": "Takutikkit $1 -it allannguutit kingulliit ulluni kingullerni $2 -ni<br />$3",
+       "diff": "assigiinng",
+       "hist": "oqalutt",
+       "hide": "Assequt",
+       "show": "Saqqummiuk",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "recentchangeslinked": "Allannguutit naleqqiussat",
+       "recentchangeslinked-feed": "Allannguutit naleqqiussat",
+       "recentchangeslinked-toolbox": "Allannguutit naleqqiussat",
+       "upload": "Fiilimik ilisigit",
+       "listfiles_user": "Atuisoq",
+       "file-anchor-link": "Assiliaq",
+       "filehist-datetime": "Ulloq/Piffissaq",
+       "filehist-user": "Atuisoq",
+       "imagelinks": "Innersuutit",
+       "mimesearch": "MIME ujaarlerit",
+       "randompage": "Nalaatsornermi qupperneq",
+       "statistics": "Kisitsisinngorlugit paasissutissat",
+       "newpages": "Quppernerit nutaat",
+       "move": "Nuuguk",
+       "pager-newer-n": "{{PLURAL:$1|nutaaneq 1|nutaanerit $1}}",
+       "pager-older-n": "{{PLURAL:$1|pisoqaaneq 1|pisoqaanerit $1}}",
+       "specialloguserlabel": "Atuisoq:",
+       "allarticles": "Quppernerit tamarmik",
+       "allpagessubmit": "Tassunngarit",
+       "categories": "Sunut atassusit",
+       "categoriespagetext": "Uku {{PLURAL:$1|sumut atassuseq|sunut atassusit}} imarivai quppernerit media-lluunniit.\n[[Special:UnusedCategories|Sunut atassusit]] atorneqanngitsut maani ilaanngillat.\nAamma takuuk [[Special:WantedCategories|sunut atassusinut kissaatigineqartut]].",
+       "categoriesfrom": "Takuuk qanoq aallartiffianeersumiit:",
+       "linksearch-ok": "Ujaruk",
+       "watchlist": "Ersersimasut",
+       "mywatchlist": "Nuisatiffikka",
+       "addedwatchtext": "Una qupperneq \"[[:$1]]\" ersersimatitannut ilanngunneqarpoq. Siunissami allannguutit ilinnut malugeqquneqartassapput aamma [[Special:RecentChanges|allannguutini kingullerni]] issusuumik allanneqartuusassallutik. Ersersimatikkusunngikkukku [[Special:Watchlist|piiginnassavat]] ersersimasuutitanni.",
+       "watch": "Ersilli",
+       "watchthispage": "Qupperneq ersersimatiguk",
+       "unwatch": "Ersitsinnagu",
+       "watching": "Saqqumitiguk",
+       "unwatching": "Saqquminera peeruk",
+       "excontent": "imarivaa: '$1'",
+       "excontentauthor": "imarivaa: '$1' (allattutuaavorlu '[[Special:Contributions/$2|$2]]')",
+       "delete-confirm": "Peeruk \"$1\"",
+       "actioncomplete": "Naammassivoq",
+       "deletedtext": "\"$1\" peerpoq. Takukkit $2 peerneqarsimasut kingulliit.",
+       "revertpage": "Inisseqqiineq [[User:$1|$1]]-meersoq, peerneqarpoq [[Special:Contributions/$2|$2]] ([[User talk:$2|diskussion]])-meersoq",
+       "prot_1movedto2": "[[$1]]-i nuunneqarsimavoq [[$2]]-mut",
+       "protect-expiry-options": "1 tiimi:1 hour,ulloq 1:1 day,sap akunn 1:1 week,sap akunn 2:2 weeks,qaammat 1:1 month,qaammatit 3:3 months,qaammatit 6:6 months,ukioq 1:1 year,killeqanngitsoq:infinite",
+       "undeletebtn": "Inisseqqiguk",
+       "undelete-search-submit": "Ujarlerit",
+       "namespace": "Quppernerup ilusia:",
+       "invert": "Quppernerup ilusia qinernagu",
+       "blanknamespace": "(Pingaarneq)",
+       "contributions": "Atuisup tapii",
+       "mycontris": "Tapikka",
+       "contribsub2": "$1-meersoq ($2)",
+       "uctop": "(kingulleq)",
+       "month": "Qaammat:",
+       "year": "Ukioq:",
+       "sp-contributions-newbies": "Atuisut nutaaginnaat takukkit",
+       "sp-contributions-talk": "oqallinneq",
+       "sp-contributions-search": "Tapiisunik ujaasineq",
+       "sp-contributions-username": "IP adresse imalt. atuisoq:",
+       "sp-contributions-submit": "Ujaruk",
+       "whatlinkshere": "Suna maangamut innersuussisoq",
+       "whatlinkshere-prev": "{{PLURAL:$1|siulia|siulii $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|tullia|tullii $1}}",
+       "blockip": "Atuisoq asseruk",
+       "blockip-legend": "Atuisoq asseruk",
+       "ipaddressorusername": "IP adresse imalt. atuisoq:",
+       "ipboptions": "2 tiimit:2 hours,ulloq 1:1 day,ullut 3:3 days,sap akunn 1:1 week,sap akunn 2:2 weeks,qaammat 1:1 month,qaammatit 3:3 months,qaammatit 6:6 months,ukioq 1:1 year,killeqanngitsoq:infinite",
+       "ipblocklist-submit": "Ujarlerit",
+       "infiniteblock": "killeqanngitsoq",
+       "expiringblock": "atorunnaassaaq $1 $2-nngoruni",
+       "blocklink": "assersoruk",
+       "contribslink": "tapikkat",
+       "blocklogentry": "asserpaa [[$1]] $2-mik sivissusilimmik $3",
+       "movearticle": "Qupperneq nuuguk",
+       "move-watch": "Qupperneq ersersimatiguk",
+       "movepagebtn": "Qupperneq nuuguk",
+       "pagemovedsub": "Nuunnera iluatsippoq",
+       "movepage-moved": "Qupperneq '''\"$1\" uunga nuuppoq \"$2\"'''",
+       "allmessages-language": "Oqaatsit:",
+       "allmessages-filter-submit": "Takuuk",
+       "thumbnail-more": "Allisiguk",
+       "tooltip-pt-userpage": "Atuisutut quppernerit",
+       "tooltip-pt-mytalk": "Oqalliffiit",
+       "tooltip-pt-preferences": "Inissiinikka",
+       "tooltip-pt-mycontris": "Tapikkatit",
+       "tooltip-pt-login": "Iseqquneqaraluarputit, pitsaanerussagaluarpoq",
+       "tooltip-pt-logout": "Aniffik",
+       "tooltip-ca-talk": "Quppernerup imaanik oqallinneq",
+       "tooltip-ca-edit": "Allanngortiterisinnaavutit. Isikkua takulaariuk",
+       "tooltip-ca-history": "Quppernerup siulii",
+       "tooltip-ca-move": "Qupperneq nuuguk",
+       "tooltip-ca-watch": "Saqqumitiguk",
+       "tooltip-search": "Ujaarlerit {{SITENAME}}",
+       "tooltip-search-go": "Tassunngarit nassaassappat",
+       "tooltip-search-fulltext": "Taanna ujaruk",
+       "tooltip-n-mainpage": "Saqqaa iseruk",
+       "tooltip-n-mainpage-description": "Saqqaa iseruk",
+       "tooltip-n-portal": "Suliaq, ilitsersuut, nassaassaasinnaasullu",
+       "tooltip-n-currentevents": "Maannakkut pisut tunuliaqutai takukkit",
+       "tooltip-n-recentchanges": "Wikimi allannguutit kingulliit",
+       "tooltip-n-randompage": "Allaaserisamukarit",
+       "tooltip-n-help": "Qanoq iliussaanga ...",
+       "tooltip-t-whatlinkshere": "Innersuussami saqqummiussat",
+       "tooltip-t-recentchangeslinked": "Massuma quppernerani allannguutit kingulliit",
+       "tooltip-t-upload": "Assinik mediafiilinilluunniit ilisigit",
+       "tooltip-t-specialpages": "Quppernerit immikkut ittut nassaassaasinnaasut",
+       "tooltip-t-print": "Quppernerup naqikkuminarnera",
+       "tooltip-t-permalink": "Massuma quppernerup taamaaqqaarnera",
+       "tooltip-ca-nstab-main": "Imarisaa takuuk",
+       "tooltip-save": "Allannguutitit toqqukkit",
+       "tooltip-preview": "Isikkua takuuk, toqqortinnaguk atortaruk!",
+       "lastmodifiedatby": "Una qupperneq kingullermik allanngortinneqarsimavoq $2, $1 $3-mit.",
+       "previousdiff": "← Assigiinngissut siulia",
+       "nextdiff": "Assigiinngissut tullia →",
+       "ilsubmit": "Ujarlerit",
+       "namespacesall": "tamarmik",
+       "monthsall": "tamarmik",
+       "autosumm-new": "Qupperneq pilersippaa '$1'",
+       "specialpages": "Quppernerit immikkut ittut",
+       "searchsuggest-search": "Ujarlerit"
 }
index cd8d378..0d10bec 100644 (file)
        "permalink": "តំណភ្ជាប់អចិន្ត្រៃយ៍",
        "print": "បោះពុម្ព",
        "view": "មើល",
+       "view-foreign": "មើលលើ $1",
        "edit": "កែប្រែ",
        "create": "បង្កើត",
        "editthispage": "កែប្រែទំព័រនេះ",
        "otherlanguages": "ជាភាសាដទៃទៀត",
        "redirectedfrom": "(ត្រូវបានបញ្ជូនបន្តពី $1)",
        "redirectpagesub": "ទំព័របញ្ជូនបន្ត",
+       "redirectto": "បញ្ជូនបន្តទៅ៖",
        "lastmodifiedat": "ទំព័រនេះត្រូវបានកែចុងក្រោយនៅ$2 $1",
        "viewcount": "ទំព័រនេះ​ត្រូវបានចូលមើល​ចំនួន'''{{PLURAL:$1|ម្ដង|$1ដង}}'''",
        "protectedpage": "ទំព័រដែលត្រូវបានការពារ",
        "hidetoc": "លាក់",
        "collapsible-collapse": "បង្រួម",
        "collapsible-expand": "ពន្លាត",
+       "confirmable-confirm": "តើ {{GENDER:$1|អ្នក}} ប្រាកដហើយ?",
+       "confirmable-yes": "បាទ/ចាស",
+       "confirmable-no": "ទេ",
        "thisisdeleted": "មើល ឬ​ ស្ដារ $1 ឡើងវិញ?",
        "viewdeleted": "មើល $1?",
        "restorelink": "{{PLURAL:$1|កំណែប្រែមួយត្រូវបានលុបចោល|កំណែប្រែចំនួន $1 ត្រូវបានលុបចោល}}",
        "viewsourcetext": "អ្នកអាចមើលនិងចម្លងកូដរបស់ទំព័រនេះ៖",
        "viewyourtext": "អ្នកអាចមើលនិងចម្លងកូដរបស់'''ការកែប្រែរបស់អ្នក'''មកកាន់ទំព័រនេះ៖",
        "protectedinterface": "ទំព័រនេះផ្ដល់នូវអត្ថបទអន្តរមុខសម្រាប់សូហ្វវែរនៅក្នុងវិគីនេះ និងត្រូវបានចាក់សោដើម្បីចៀសវាងការបំពាន។\nដើម្បីបន្ថែមឬផ្លាស់ប្ដូរការបកប្រែសំរាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគំរោងបកប្រែរបស់MediaWiki។",
-       "editinginterface": "'''ប្រយ័ត្ន៖''' អ្នកកំពុងតែកែប្រែទំព័រដែលបានប្រើប្រាស់​ដើម្បីផ្ដល់ជូនអន្តរមុខសម្រាប់សូហ្វវែរ។ បំលាស់ប្ដូរចំពោះទំព័រនេះ​នឹងប៉ះពាល់ដល់ទ្រង់ទ្រាយរបស់ទំព័រអន្តរមុខសំរាប់អ្នកប្រើប្រាស់​ជាច្រើន ដែលប្រើប្រាស់វិគីនេះ។ ដើម្បីបន្ថែមឬផ្លាស់ប្ដូរការបកប្រែ​សំរាប់វិគីទាំងអស់ សូបប្រើប្រាស់  [//translatewiki.net/wiki/Main_Page?setlang=km translatewiki.net] គម្រោង​បកប្រែរបស់មេឌាវិគី ។",
+       "editinginterface": "'''ប្រយ័ត្ន៖''' អ្នកកំពុងតែកែប្រែទំព័រដែលបានប្រើប្រាស់​ដើម្បីផ្ដល់ជូនអន្តរមុខសម្រាប់សូហ្វវែរ។ បំលាស់ប្ដូរចំពោះទំព័រនេះ​នឹងប៉ះពាល់ដល់ទ្រង់ទ្រាយរបស់ទំព័រអន្តរមុខសំរាប់អ្នកប្រើប្រាស់​ជាច្រើន ដែលប្រើប្រាស់វិគីនេះ។",
+       "translateinterface": "ដើម្បីបន្ថែមឬកែប្រែការបកប្រែសម្រាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគម្រោងបកប្រែវិគីមេឌា។",
        "cascadeprotected": "ទំព័រនេះត្រូវបានការពារពីការការប្រែដោយសារវាមាន{{PLURAL:$1|ទំព័រ, ដែលមាន}} ដែលត្រូវបានការពារជាមួយជំរើស\"ជាបណ្ដាក់\"៖\n$2",
        "namespaceprotected": "អ្នកមិនមានសិទ្ធិកែប្រែទំព័រក្នុងប្រភេទ'''$1'''ទេ។",
        "customcssprotected": "អ្នកមិនមាន​ការអនុញ្ញាត​ក្នុងការកែប្រែទំព័រ CSS នេះទេ ព្រោះវាផ្ទុកការកំណត់ផ្ទាល់ខ្លួនផ្សេងៗរបស់អ្នកប្រើប្រាស់ម្នាក់ផ្សេងទៀត។",
        "invalidtitle-knownnamespace": "ចំណងជើងមិនត្រឹមត្រូវដែលមានលំហឈ្មោះ \"$2\" និងអត្ថបទ \"$3\"",
        "invalidtitle-unknownnamespace": "ចំណងជើងមិនត្រឹមត្រូវដែលមានលំហឈ្មោះមិនស្គាល់លេខ $1 និងអត្ថបទ \"$2\"",
        "exception-nologin": "មិនទាន់កត់ឈ្មោះចូលទេ",
-       "exception-nologin-text": "សូម[[Special:Userlogin|lកត់ឈ្មោះចូល]]ដើម្បីចូលអានទំព័រឬធ្វើសកម្មភាពនេះ។",
+       "exception-nologin-text": "សូមកត់ឈ្មោះចូលដើម្បីចូលអានទំព័រឬធ្វើសកម្មភាពនេះ។",
        "exception-nologin-text-manual": "សូម $1 ដើម្បីអាចចូលមើលទំព័រនេះឬធ្វើសកម្មភាពអ្វីមួយ។",
        "virus-badscanner": "ការ​កំណត់​រចនា​សម្ព័ន្ធ​មិន​ល្អ​៖ កម្មវិធី​ស្កេន​មេរោគមិន​ស្គាល់​៖ ''$1''",
        "virus-scanfailed": "ស្កេនមិនបានសំរេច (កូដ $1)",
        "gotaccountlink": "កត់ឈ្មោះចូល",
        "userlogin-resetlink": "តើអ្នកភ្លេចព័ត៌មានលម្អិតសម្រាប់កត់ឈ្មោះចូលហើយ?",
        "userlogin-resetpassword-link": "អ្នកភ្លេចពាក្យសម្ងាត់ហើយ?",
+       "userlogin-helplink2": "ជំនួយលើការកត់ឈ្មោះចូល",
        "userlogin-loggedin": "អ្នកបានកត់ឈ្មោះចូលជា {{GENDER:$1|$1}} ហើយ។\nប្រើសំណុំបែបបទខាងក្រោមដើម្បីកត់ឈ្មោះចូលជាអ្នកប្រើប្រាស់ផ្សេងម្នាក់ទៀត។",
        "userlogin-createanother": "បង្កើតគណនីមួយទៀត",
        "createacct-emailrequired": "អាសយដ្ឋានអ៊ីមែល",
        "loginlanguagelabel": "ភាសា៖ $1",
        "createacct-another-realname-tip": "អ្នកអាចផ្ដល់ឈ្មោះពិតរបស់អ្នកក៏បានមិនផ្ដល់ក៏បាន។ បើអ្នកផ្ដល់ឱ្យ វានឹងត្រូវបានប្រើប្រាស់់ដើម្បីបញ្ជាក់ភាពជាម្ចាស់​លើការរួមចំណែក​នានា​របស់អ្នក។",
        "pt-login": "កត់ឈ្មោះចូល",
+       "pt-login-button": "កត់ឈ្មោះចូល",
        "pt-createaccount": "បង្កើតគណនី",
        "pt-userlogout": "កត់ឈ្មោះចេញ",
        "php-mail-error-unknown": "កំហុសមិនស្គាល់នៅក្នុងអនុគមន៍ mail() របស់ PHP",
        "resetpass-temp-emailed": "អ្នកបានកត់ឈ្មោះចូលដោយប្រើលេខកូដបណ្ដោះអាសន្នផ្ញើតាមអ៊ីមែល។\nដើម្បីបញ្ចប់ការកត់ឈ្មោះចូល អ្នកចាំបាច់ត្រូវតែកំណត់ពាក្យសម្ងាត់ថ្មីនៅទីនេះ៖",
        "resetpass-temp-password": "ពាក្យសម្ងាត់បណ្តោះអាសន្ន:",
        "resetpass-expired": "ពាក្យសម្ងាត់របស់អ្នកហួសសុពលភាពហើយ។ សូមកំណត់ពាក្យសម្ងាត់ថ្មីដើម្បីកត់ឈ្មោះចូល។",
-       "resetpass-expired-soft": "ពាក្យសម្ងាត់របស់អ្នកហួសសុពលភាពហើយ ហើយអ្នកត្រូវតែកំណត់វាឡើងវិញ។ សូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីឥឡូវនេះ ឬចុចបោះបង់ដើម្បីកំណត់វានៅពេលក្រោយ។",
-       "passwordreset": "កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ",
+       "resetpass-expired-soft": "ពាក្យសម្ងាត់របស់អ្នកហួសសុពលភាពហើយ ហើយអ្នកត្រូវតែកំណត់វាឡើងវិញ។ សូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីឥឡូវនេះ ឬចុច\"{{int:resetpass-submit-cancel}}\"ដើម្បីកំណត់វានៅពេលក្រោយ។",
+       "resetpass-validity-soft": "ពាក្យសម្ងាត់របស់អ្នកមិនត្រឹមត្រូវទេ៖ $1\n\nសូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយឥឡូវនេះ ឬក៏ចុច\"{{int:resetpass-submit-cancel}}\" ដើម្បីកំណត់វាឡើងវិញនៅពេលក្រោយ។",
+       "passwordreset": "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ",
        "passwordreset-text-one": "បំពេញសំណុំបែបបទនេះដើម្បីស្ដារពាក្យសម្ងាត់របស់អ្នក។",
        "passwordreset-text-many": "{{PLURAL:$1|សូមបំពេញក្នុងប្រអប់មួយក្នុងចំណោមប្រអប់ខាងក្រោមដើម្បីទទួលពាក្យសម្ងាត់បណ្ដោះអាសន្នមួយតាមរយៈអ៊ីមែល។}}",
-       "passwordreset-legend": "á\9e\80á\9f\86á\9e\8eá\9e\8fá\9f\8bâ\80\8bá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bâ\80\8bá\9e\9fá\9e¶á\9e¡á\9e¾á\9e\84á\9e\9cá\9e·á\9e\89",
+       "passwordreset-legend": "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ",
        "passwordreset-disabled": "មុខងារប្ដូរទៅពាក្យសម្ងាត់ដើមត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។",
        "passwordreset-emaildisabled": "មុខងារអ៊ីមែលត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។",
        "passwordreset-username": "អត្តនាម៖",
        "preview": "មើលជាមុន",
        "showpreview": "បង្ហាញ​ការមើលជាមុន",
        "showdiff": "បង្ហាញ​បន្លាស់ប្ដូរ",
-       "anoneditwarning": "'''ប្រយ័ត្ន ៖''' អ្នកមិនបានកត់ឈ្មោះចូល​ទេ។ អាសយដ្ឋានIPរបស់អ្នក​នឹងត្រូវបាន​កត់ត្រាទុក​ក្នុងប្រវត្តិកែប្រែ​នៃទំព័រ​នេះ។",
-       "anonpreviewwarning": "''អ្នកមិនបានកត់ឈ្មោះចូល​ទេ។ ប្រសិនបើអ្នកធ្វើការរក្សាទុក នោះអាសយដ្ឋានIPរបស់អ្នក​នឹងត្រូវបាន​កត់ត្រាទុក​ក្នុងប្រវត្តិកែប្រែ​នៃទំព័រ​នេះ។''",
+       "anoneditwarning": "'''ប្រយ័ត្ន ៖''' អ្នកមិនបានកត់ឈ្មោះចូល​ទេ។ អាសយដ្ឋានIPរបស់អ្នក​នឹងត្រូវបាន​កត់ត្រាទុក​ក្នុងប្រវត្តិកែប្រែ​នៃទំព័រ​នេះ។ បើសិនជាអ្នក <strong>[$1 កត់ឈ្មោះចូល]</strong> ឬ <strong>[$2 បង្កើតគណនី]</strong> នោះការកែប្រែរបស់អ្នកនឹងត្រូវភ្ចាប់ជាមួយអត្តនាមរបស់អ្នកផង នឹងមានផលប្រយោជន៍ផ្សេងទៀតផង។",
+       "anonpreviewwarning": "<em>អ្នកមិនបានកត់ឈ្មោះចូល​ទេ។ ប្រសិនបើអ្នកធ្វើការរក្សាទុក នោះអាសយដ្ឋានIPរបស់អ្នក​នឹងត្រូវបាន​កត់ត្រាទុក​ក្នុងប្រវត្តិកែប្រែ​នៃទំព័រ​នេះ។</em>",
        "missingsummary": "'''រំលឹក៖''' អ្នកមិនទាន់បានផ្ដល់ចំណារពន្យល់អំពីកំណែប្រែនេះទេ។\n\nបើសិនជាអ្នកចុច '''រក្សាទុក''' ម្ដងទៀតនោះកំណែប្រែរបស់អ្នកនឹងត្រូវរក្សាទុកដោយគ្មានចំណារពន្យល់។",
        "missingcommenttext": "សូមវាយបញ្ចូលយោបល់មួយនៅខាងក្រោម។",
        "missingcommentheader": "'''រំលឹក៖''' អ្នកមិនទាន់បានផ្ដល់ឱ្យនូវ ប្រធានបទ/ចំណងជើង របស់មតិយោបល់នេះទេ។\nបើសិនជាអ្នកចុច \"{{int:savearticle}}\" ម្ដងទៀតនោះកំណែប្រែរបស់អ្នកនឹងត្រូវរក្សាទុកដោយគ្មានវា។",
        "edit-gone-missing": "មិនអាចបន្ទាន់សម័យទំព័រនេះទេ។\n\nទំព័រនេះហាក់ដូចជាត្រូវបានលុបចោលហើយ។",
        "edit-conflict": "កែប្រែ​ភាពឆ្គង​។",
        "edit-no-change": "ការកែប្រែរបស់អ្នកត្រូវបានមិនទុកជាការទេ ព្រោះគ្មានការផ្លាស់ប្ដូរណាមួយត្រូវបានធ្វើនៅលើអត្ថបទនេះទេ។",
+       "postedit-confirmation-created": "បានបង្កើតទំព័ររូចហើយ។",
+       "postedit-confirmation-restored": "បានស្ដារទំព័រឡើងវិញរួចហើយ។",
        "postedit-confirmation-saved": "កំណែប្រែរបស់អ្នកត្រូវបានរក្សាទុកហើយ។",
        "edit-already-exists": "មិនអាចបង្កើតទំព័រថ្មីមួយទេ។\n\nទំព័រនេះមានរួចហើយ។",
        "defaultmessagetext": "អត្ថបទសារតាមលំនាំដើម",
        "currentrev": "កំណែបច្ចុប្បន្ន",
        "currentrev-asof": "កំណែប្រែបច្ចុប្បន្ន $1",
        "revisionasof": "កំណែ​របស់ $1",
-       "revision-info": "á\9e\80á\9f\86á\9e\8eá\9f\82â\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8b $1 á\9e\8aá\9f\84á\9e\99 $2",
+       "revision-info": "á\9e\80á\9f\86á\9e\8eá\9f\82â\80\8bá\9e\93á\9f\85 $1 á\9e\8aá\9f\84á\9e\99 {{GENDER:$6|$2}}$7",
        "previousrevision": "← កំណែ​មុន",
        "nextrevision": "កំណែបន្ទាប់ →",
        "currentrevisionlink": "កំណែបច្ចុប្បន្ន",
        "mergehistory-same-destination": "ទំព័រប្រភពនិងទំព័រគោលដៅមិនអាចមានចំណងជើងដូចគ្នាបានទេ។",
        "mergehistory-reason": "មូលហេតុ៖",
        "mergelog": "កំណត់ហេតុនៃការច្របាច់បញ្ចូលគ្នា",
-       "pagemerge-logentry": "បានច្របាច់បញ្ចូល[[$1]]ទៅក្នុង[[$2]] (ចំនួនកំណែរហូតដល់$3)",
        "revertmerge": "បំបែកចេញ",
        "mergelogpagetext": "ខាងក្រោមគឺជាតារាងនៃការច្របាច់បញ្ចូលគ្នាថ្មីៗបំផុតរបស់ប្រវត្តិនៃទំព័រមួយទៅក្នុងប្រវត្តិនៃទំព័រមួយទៀត។",
        "history-title": "ប្រវត្តិកំណែប្រែរបស់ \"$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-images": "ពហុ​ព័ត៌មាន",
        "searchprofile-everything": "ទាំងអស់",
        "search-result-category-size": "{{PLURAL:$1|សមាជិកម្នាក់|សមាជិក$1នាក់}} ({{PLURAL:$2|កូនចំណាត់ថ្នាក់ក្រុម១|$2 កូនចំណាត់ថ្នាក់ក្រុម}}, {{PLURAL:$3|1 ឯកសារ|$3 ឯកសារ}})",
        "search-redirect": "(បញ្ជូនបន្ត $1)",
        "search-section": "(ផ្នែក $1)",
+       "search-category": "(ចំណាត់ថ្នាក់ក្រុម $1)",
+       "search-file-match": "(ខ្លឹមសារឯកសារត្រូវគ្នា)",
        "search-suggest": "ប្រហែលជាអ្នកចង់រក៖ $1",
        "search-interwiki-caption": "គម្រោងជាបងប្អូន",
        "search-interwiki-default": "លទ្ធផលពី$1៖",
        "preferences": "ចំណង់ចំណូលចិត្ត",
        "mypreferences": "ចំណង់ចំណូលចិត្ត​",
        "prefs-edits": "ចំនួនកំណែប្រែ៖",
+       "prefsnologintext2": "សូមកត់ឈ្មោះចូលដើម្បីផ្លាស់ប្ដូរចំណង់ចំណូលចិត្តរបស់អ្នក។",
        "prefs-skin": "សំបក",
        "skin-preview": "មើលជាមុន",
        "datedefault": "គ្មានចំណូលចិត្ត",
        "gender-female": "ស្រី",
        "prefs-help-gender": "ចំណង់ចំណូលចិត្តនេះកំណត់ក៏បានមិនកំណត់ក៏បាន៖ ប្រើសំរាប់អោយសូហ្វវែរហៅតាមភេទអោយបាមត្រឹមត្រូវ។ ព័ត៌មាននេះនឹងត្រូវបង្ហាញជាសាធារណៈ។",
        "email": "អ៊ីមែល",
-       "prefs-help-realname": "á\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e¶á\9e\85á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\96á\9e·á\9e\8fá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\80á\9f\8fá\9e\94á\9e¶á\9e\93á\9e\98á\9e·á\9e\93á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\80á\9f\8fá\9e\94á\9e¶á\9e\93á\9f\94 á\9e\94á\9e¾á\9e¢á\9f\92á\9e\93á\9e\80á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e±á\9f\92á\9e\99 á\9e\9cá\9e¶á\9e\93á\9e¹á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9f\8bá\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\89á\9f\92á\9e\87á\9e¶á\9e\80á\9f\8bá\9e\97á\9e¶á\9e\96á\9e\87á\9e¶á\9e\98á\9f\92á\9e\85á\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\9bá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\9aá\9e½á\9e\98á\9e\85á\9f\86á\9e\8eá\9f\82á\9e\80â\80\8bá\9e\93á\9e¶á\9e\93á\9e​របស់អ្នក។",
+       "prefs-help-realname": "á\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e¶á\9e\85á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\96á\9e·á\9e\8fá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\80á\9f\8fá\9e\94á\9e¶á\9e\93á\9e\98á\9e·á\9e\93á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\80á\9f\8fá\9e\94á\9e¶á\9e\93á\9f\94 á\9e\94á\9e¾á\9e¢á\9f\92á\9e\93á\9e\80á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e±á\9f\92á\9e\99 á\9e\9cá\9e¶á\9e\93á\9e¹á\9e\84á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9f\8bá\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\89á\9f\92á\9e\87á\9e¶á\9e\80á\9f\8bá\9e\97á\9e¶á\9e\96á\9e\87á\9e¶á\9e\98á\9f\92á\9e\85á\9e¶á\9e\9fá\9f\8bâ\80\8bá\9e\9bá\9e¾á\9e\9fá\9f\92á\9e\93á\9e¶á\9e\8aá\9f\83​របស់អ្នក។",
        "prefs-help-email": "អ្នកអាចផ្ដល់អាសយដ្ឋានអ៊ីមែលរបស់អ្នកក៏បានមិនផ្ដល់ក៏បាន។ ប៉ុន្ដែអាសយដ្ឋានអ៊ីមែលដែលផ្ដល់អោយនឹងមានប្រយោជន៍ក្នុងការប្ដូរពាក្យសម្ងាត់ ពេលដែលអ្នកភ្លេចវា។",
        "prefs-help-email-others": "អ្នកក៏អាចជ្រើសរើស​ការផ្ដល់លទ្ឋភាព​​ឱ្យអ្នកដទៃទាក់ទងអ្នក​តាមរយៈ​​ទំព័រអ្នកប្រើប្រាស់​​ឬទំព័រពិភាក្សារបស់អ្នក​​ដោយមិនចាំបាច់ឱ្យគេដឹងពីអត្តសញ្ញាណរបស់អ្នកផងដែរ។",
        "prefs-help-email-required": "អាសយដ្ឋានអ៊ីមែលត្រូវការជាចាំបាច់។",
        "right-move": "ប្ដូរទីតាំងទំព័រ",
        "right-move-subpages": "ប្ដូរទីតាំងទំព័ររួមជាមួយទំព័ររងរបស់វា",
        "right-move-rootuserpages": "ប្ដូរទីតាំងឫសទំព័រអ្នកប្រើប្រាស់",
+       "right-move-categorypages": "ប្ដូរទីតាំងទំព័រចំណាត់ថ្នាក់ក្រុម",
        "right-movefile": "ប្ដូរទីតាំងឯកសារ",
        "right-suppressredirect": "មិនបង្កើតការបញ្ជូនបន្តពីទំព័រប្រភពនៅពេលប្ដូរទីតាំងទំព័រ",
        "right-upload": "ផ្ទុកឡើងឯកសារ",
        "action-move": "ប្ដូរទីតាំងទំព័រនេះ",
        "action-move-subpages": "ប្ដូរទីតាំងទំព័រនេះព្រមទាំងអនុទំព័ររបស់វា",
        "action-move-rootuserpages": "ប្ដូរទីតាំងឫសទំព័រអ្នកប្រើប្រាស់",
+       "action-move-categorypages": "ប្ដូរទីតាំងទំព័រចំណាត់ថ្នាក់ក្រុម",
        "action-movefile": "ប្ដូរទីតាំងឯកសារនេះ",
        "action-upload": "ផ្ទុកឡើងឯកសារនេះ",
        "action-reupload": "ផ្ទុកជាន់ពីលើឯកសារដែលមានស្រាប់ហើយនេះ",
        "license-nopreview": "(មិនទាន់មានការបង្ហាញការមើលជាមុនទេ)",
        "upload_source_url": "(URL ត្រឹមត្រូវនិងបើកចំហជាសាធារណៈ)",
        "upload_source_file": "(ឯកសារក្នុងកុំព្យូទ័ររបស់អ្នក)",
+       "listfiles-delete": "លុបចោល",
        "listfiles-summary": "ទំព័រពិសេស​នេះ​បង្ហាញ​គ្រប់​ឯកសារ​ដែល​បានផ្ទុកឡើង។",
        "listfiles_search_for": "ស្វែងរកឈ្មោះមេឌា៖",
        "imgfile": "ឯកសារ",
        "statistics": "ស្ថិតិ",
        "statistics-header-pages": "ស្ថិតិទំព័រ",
        "statistics-header-edits": "ស្ថិតិកំណែប្រែ",
-       "statistics-header-views": "មើលស្ថិតិ",
        "statistics-header-users": "ស្ថិតិអ្នកប្រើប្រាស់",
        "statistics-header-hooks": "ស្ថិតិ​ដទៃទៀត​",
        "statistics-articles": "ទំព័រខ្លឹមសារ",
        "statistics-files": "ឯកសារបានផ្ទុកឡើង",
        "statistics-edits": "ការកែប្រែទំព័រចាប់តាំងពី{{SITENAME}}ត្រូវបានដំឡើង",
        "statistics-edits-average": "កំណែប្រែជាមធ្យមក្នុងមួយទំព័រ",
-       "statistics-views-total": "ចំនួនការចូលមើលសរុប",
-       "statistics-views-total-desc": "មិនរាប់បញ្ចូលការចូលមើលទំព័រដែលគ្មានរូបរាងនិងទំព័រពិសេសៗទេ",
-       "statistics-views-peredit": "ចំនួនការចូលមើលក្នុងមួយកំណែប្រែ",
        "statistics-users": "[[Special:ListUsers|អ្នកប្រើប្រាស់]]ដែលបានចុះឈ្មោះ",
        "statistics-users-active": "អ្នកប្រើប្រាស់សកម្ម",
        "statistics-users-active-desc": "អ្នក​ប្រើប្រាស់​ដែល​បាន​អនុវត្ត​សកម្មភាព​ក្នុង​{{PLURAL:$1|ថ្ងៃ​}}ចុង​ក្រោយ​",
-       "statistics-mostpopular": "ទំព័រដែលត្រូវបានមើលច្រើនបំផុត",
        "doubleredirects": "ទំព័របញ្ជូនបន្តទ្វេដង",
        "doubleredirectstext": "ទំព័រនេះរាយឈ្មោះទំព័រដែលបញ្ជូនបន្តទៅទំព័របញ្ជូនបន្ដផ្សេងទៀត។\n\nជួរនីមួយៗមានតំនភ្ជាប់ទៅកាន់ទំព័របញ្ជូនបន្តទី១និងទី២ ព្រមជាមួយទំព័រគោលដៅរបស់ទំព័របញ្ជូនបន្តទី២(ដែលជាធម្មតានេះក៏ជាទំព័រគោលដៅ\"ពិត\"របស់ទំព័របញ្ជូនបន្តទី១ដែរ)។",
        "double-redirect-fixed-move": "[[$1]] ត្រូវបានដកចេញ។\n\nវាត្រូវបានបញ្ជូនបន្តទៅ [[$2]]",
        "uncategorizedtemplates": "ទំព័រគំរូគ្មានចំណាត់ថ្នាក់ក្រុម",
        "unusedcategories": "ចំណាត់ថ្នាក់ក្រុមដែលមិនត្រូវបានប្រើប្រាស់",
        "unusedimages": "ឯកសារ(មេឌា​ រូបភាព)ដែលមិនត្រូវបានប្រើប្រាស់",
-       "popularpages": "ទំព័រដែលមានប្រជាប្រិយ",
        "wantedcategories": "ចំណាត់ថ្នាក់ក្រុមដែលគ្រប់គ្នាចង់បាន",
        "wantedpages": "ទំព័រ​ដែល​គ្រប់គ្នា​ចង់បាន",
        "wantedpages-badtitle": "ចំណងជើង​មិន​ត្រឹមត្រូវ​នៅ​ក្នុង​សំនុំ​លទ្ធផល​៖ $1",
        "booksources": "ប្រភពសៀវភៅ",
        "booksources-search-legend": "ស្វែងរកប្រភពសៀវភៅ",
        "booksources-isbn": "លេខ​កូដ​សៀវ​ភៅ​ ISBN ៖",
+       "booksources-search": "ស្វែងរក",
        "booksources-text": "ខាងក្រោមនេះជាបញ្ជីនៃតំណភ្ជាប់ទៅវិបសាយនានាដែលលក់​សៀវភៅថ្មីនិងជជុះ ហើយអាចផ្ដល់ព័ត៌មានបន្ថែមផ្សេងទៀតអំពីសៀវភៅដែលអ្នកកំពុងស្វែងរក៖",
        "booksources-invalid-isbn": "លេខISBNដែលអ្នកផ្ដល់អោយហាក់ដូចជាមិនត្រឹមត្រូវទេ។ សូមពិនិត្យក្រែងលោមានកំហុសក្នុងការចម្លងចេញពីប្រភពដើម។",
        "specialloguserlabel": "អ្នកប្រព្រឹត្តិ៖",
        "listgrouprights-removegroup-self": "យក​ចេញ​{{PLURAL:$2|ក្រុម}}ពី​​គណនី​ផ្ទាល់ខ្លួន​៖ $1",
        "listgrouprights-addgroup-self-all": "បន្ថែម​ក្រុម​ទាំងអស់​ទៅ​គណនី​ផ្ទាល់ខ្លួន​",
        "listgrouprights-removegroup-self-all": "យក​ចេញ​​ក្រុម​ទាំងអស់​ពី​​គណនី​ផ្ទាល់ខ្លួន​",
+       "trackingcategories-name": "ឈ្មោះសារ",
        "mailnologin": "គ្មានអាសយដ្ឋានផ្ញើទេ",
        "mailnologintext": "អ្នកត្រូវតែ [[Special:UserLogin|កត់ឈ្មោះចូល]] និង មានអាសយដ្ឋានអ៊ីមែលមានសុពលភាពមួយ ក្នុង[[Special:Preferences|ចំណង់ចំណូលចិត្ត]]របស់អ្នក ដើម្បីមានសិទ្ធិផ្ញើអ៊ីមែលទៅអ្នកប្រើប្រាស់ដទៃទៀត។",
        "emailuser": "ផ្ញើអ៊ីមែល​ទៅកាន់​អ្នក​ប្រើប្រាស់នេះ",
        "mywatchlist": "បញ្ជីតាមដាន​",
        "watchlistfor2": "សម្រាប់ $1 $2",
        "nowatchlist": "គ្មានអ្វីនៅក្នុងបញ្ជីតាមដានរបស់អ្នកទេ។",
-       "watchlistanontext": "សូម $1 ដើម្បី​មើល​ឬ​កែប្រែ​របស់​ក្នុង​បញ្ជីតាមដាន​របស់អ្នក។",
+       "watchlistanontext": "សូមកត់ឈ្មោះចូលដើម្បី​មើល​ឬ​កែប្រែ​របស់​ក្នុង​បញ្ជីតាមដាន​របស់អ្នក។",
        "watchnologin": "មិនទាន់កត់ឈ្មោះចូលទេ",
        "addwatch": "បន្ថែមទៅបញ្ជីតាមដាន",
        "addedwatchtext": "ទំព័រ \"[[:$1]]\" ត្រូវបានដាក់បញ្ចូលទៅក្នុង​[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។ រាល់ការផ្លាស់ប្ដូរនៃទំព័រនេះ រួមទាំងទំព័រពិភាក្សារបស់វាផងដែរ នឹងត្រូវបានដាក់បញ្ចូលក្នុងបញ្ជីនៅទីនោះ។",
+       "addedwatchtext-short": "ទំព័រ \"$1\" ត្រូវបានបន្ថែមទៅក្នុងបញ្ជីតាមដានរបស់អ្នកហើយ។",
        "removewatch": "ដកចេញពីបញ្ជីតាមដាន",
-       "removedwatchtext": "ទំព័រ \"[[:$1]]\" ត្រូវបានដកចេញពី[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។",
+       "removedwatchtext": "ទំព័រ \"[[:$1]]\" ត្រូវបានដកចេញពី[[Special:Watchlist|បញ្ជីតាមដានរបស់លោកអ្នក]]ហើយ ។",
+       "removedwatchtext-short": "ទំព័រ \"$1\" ត្រូវបានដកចេញបញ្ជីតាមដានរបស់អ្នកហើយ។",
        "watch": "តាមដាន",
        "watchthispage": "តាមដានទំព័រនេះ",
        "unwatch": "ឈប់​តាមដាន",
        "wlheader-enotif": "បើកប្រើការផ្ដល់ដំណឹងតាមរយៈអ៊ីមែល។",
        "wlheader-showupdated": "ទំព័រដែលត្រូវបានផ្លាស់ប្តូរតាំងពីពេលចូលមើលចុងក្រោយរបស់អ្នក ត្រូវបានបង្ហាញជា '''អក្សរដិត'''។",
        "wlnote": "ខាងក្រោមនេះជា {{PLURAL:$1|បំលាស់ប្តូរចុងក្រោយ|'''$1'''បំលាស់ប្តូរចុងក្រោយ}}ក្នុងរយះពេល{{PLURAL:$2|'''$2'''ម៉ោង}}ចុងក្រោយ គិតចាប់ពី $3, $4។",
-       "wlshowlast": "បង្ហាញ $1ម៉ោងចុងក្រោយ $2ថ្ងៃចុងក្រោយ ឬ",
+       "wlshowlast": "បង្ហាញ $1ម៉ោងចុងក្រោយ $2ថ្ងៃចុងក្រោយ",
        "watchlist-options": "ជម្រើសនានាក្នុងបញ្ជីតាមដាន",
        "watching": "កំពុង​តាមដាន...",
        "unwatching": "ឈប់​តាមដាន...",
        "delete-edit-reasonlist": "ពិនិត្យផ្ទៀងផ្ទាត់ហេតុផលនៃការលុប",
        "delete-toobig": "ទំព័រនេះមានប្រវត្តិកែប្រែធំលើសពី $1 {{PLURAL:$1|កំណែ|កំណែ}}។\n\nការលុបទំព័របែបនេះចោលត្រូវបានហាមឃាត់ ដើម្បីបង្ការកុំអោយមានការរអាក់រអួលក្នុង{{SITENAME}}។",
        "delete-warning-toobig": "ទំព័រនេះមានប្រវត្តិកែប្រែធំលើសពី $1 {{PLURAL:$1|កំណែ|កំណែ}}។\n\nការលុបទំព័របែបនេះចោលអាចធ្វើអោយមានការរអាក់រអួលប្រតិបត្តិការរបស់មូលដ្ឋានទិន្នន័យក្នុង{{SITENAME}}។\n\nសូមបន្តសកម្មភាពនេះដោយប្រុងប្រយ័ត្ន។",
+       "deleteprotected": "អ្នកមិនអាចលុបចោលទំព័រនេះបានទេព្រោះវាត្រូវបានការពារហើយ។",
        "rollback": "មូលត្រឡប់កំណែប្រែ",
        "rollback_short": "មូលត្រឡប់",
        "rollbacklink": "មូលត្រឡប់",
        "protect-othertime": "រយៈពេលផុតកំណត់ផ្សេងទៀត៖",
        "protect-othertime-op": "រយៈពេលផុតកំណត់ផ្សេងទៀត",
        "protect-existing-expiry": "រយៈពេលផុតកំណត់មានស្រាប់៖ $3, $2",
+       "protect-existing-expiry-infinity": "រយៈពេលផុតកំណត់មានស្រាប់៖ ជារៀងរហូត",
        "protect-otherreason": "មូលហេតុបន្ថែមផ្សេងៗទៀត៖",
        "protect-otherreason-op": "មូលហេតុផ្សេងទៀត",
        "protect-dropdown": "*មូលហេតុការពារជាទូទៅ\n** ទទួលការបំផ្លិចបំផ្លាញយ៉ាងសំបើមក្រៃលែង\n** ស្ព៊ែមយ៉ាងសំបើមក្រៃលែង\n** សង្រ្គាមនៃការកែប្រែដែលនាំឲខូចប្រយោជន៍\n** ទំព័រដែលមានចរាចរកម្រិតខ្ពស់",
        "contributions-title": "ការរួមចំណែករបស់អ្នកប្រើប្រាស់ $1",
        "mycontris": "ការរួមចំណែក",
        "contribsub2": "សម្រាប់{{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "គណនីអ្នកប្រើប្រាស់ដែលមានឈ្មោះ \"$1\"មិនទាន់បានចុះឈ្មោះទេ។",
        "nocontribs": "គ្មានការផ្លាស់ប្តូរត្រូវបានឃើញដូចនឹងលក្ខណៈវិនិច្ឆ័យទាំងនេះ។",
        "uctop": "(បច្ចុប្បន្ន)",
        "month": "ខែ៖",
        "autoblockid": "ដាក់ការហាមឃាត់ជាស្វ័យប្រវត្តិលើ #$1",
        "block": "ដាក់ការហាមឃាត់លើអ្នកប្រើប្រាស់",
        "unblock": "ដកការហាមឃាត់លើអ្នកប្រើប្រាស់",
-       "blockip": "á\9e\8aá\9e¶á\9e\80á\9f\8bá\9e\80á\9e¶á\9e\9aá\9e á\9e¶á\9e\98á\9e\83á\9e¶á\9e\8fá\9f\8bá\9e\9bá\9e¾á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b",
+       "blockip": "á\9e á\9e¶á\9e\98á\9e\83á\9e¶á\9e\8fá\9f\8b{{GENDER:$1|á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b}}",
        "blockip-legend": "ដាក់ការហាមឃាត់លើអ្នកប្រើប្រាស់",
        "blockiptext": "សូម​ប្រើប្រាស់​សំណុំ​បែបបទ​ខាងក្រោម​ដើម្បី​ហាមឃាត់ការសរសេរ​ពី​អាសយដ្ឋាន IP ឬ​ឈ្មោះ​អ្នកប្រើប្រាស់ណាមួយ​។\nការ​ធ្វើ​បែបនេះ​គួរតែ​ធ្វើឡើង​ក្នុង​គោលបំណង​បង្ការ​ការប៉ុនប៉ង​បំផ្លាញ(vandalism)ដូច​ដែល​មាន​ចែង​ក្នុង[[{{MediaWiki:Policy-url}}|គោលការណ៍]]។\nសូមបំពេញមូលហេតុច្បាស់លាស់មួយខាងក្រោម (ឧទាហរណ៍៖ រាយឈ្មោះទំព័រនានាដែលត្រូវបានគេបំផ្លាញ)។",
        "ipaddressorusername": "អាសយដ្ឋានIP ឬអត្តនាម៖",
        "ipb-unblock-addr": "ដកការហាមឃាត់លើ $1",
        "ipb-unblock": "ដកការហាមឃាត់លើអ្នកប្រើប្រាស់ ឬ អាសយដ្ឋាន IP",
        "ipb-blocklist": "មើលការហាមឃាត់ដែលមានហើយ",
-       "ipb-blocklist-contribs": "ការរួមចំណែកសម្រាប់ $1",
+       "ipb-blocklist-contribs": "ការរួមចំណែកសម្រាប់ {{GENDER:$1|$1}}",
        "unblockip": "ដកការហាមឃាត់លើអ្នកប្រើប្រាស់",
        "unblockiptext": "សូម​ប្រើប្រាស់​ទម្រង់​បែបបទ​ខាងក្រោម​នេះ ដើម្បី​បើក​សិទ្ឋិ​សរសេរ​ឡើងវិញ សម្រាប់​អាសយដ្ឋាន​IP​ឬ​អ្នកប្រើប្រាស់​ដែល​ត្រូវ​បាន​ហាមឃាត់ពីមុន​។",
        "ipusubmit": "ដក​ការហាមឃាត់នេះ​ចេញ",
        "thumbnail_image-missing": "ឯកសារហាក់ដូចជាកំពុងបាត់ខ្លួន៖$1",
        "import": "ការនាំចូលទំព័រ",
        "importinterwiki": "ការនាំចូលអន្តរវិគី",
+       "import-interwiki-sourcewiki": "វិគីប្រភព៖",
+       "import-interwiki-sourcepage": "ទំព័រប្រភព៖",
        "import-interwiki-history": "ចម្លង គ្រប់កំណែចាស់ នៃទំព័រនេះ",
        "import-interwiki-templates": "រាប់​បញ្ចូល​ទំព័រគំរូ​ទាំងអស់​",
        "import-interwiki-submit": "នាំចូល",
        "tooltip-feed-atom": "បម្រែបម្រួល Atom ចំពោះទំព័រនេះ",
        "tooltip-t-contributions": "បង្ហាញបញ្ជីរួមចំណែករបស់អ្នកប្រើប្រាស់នេះ",
        "tooltip-t-emailuser": "ផ្ញើអ៊ីមែលទៅកាន់អ្នកប្រើប្រាស់នេះ",
+       "tooltip-t-info": "ព័ត៌មានបន្ថែមអំពីទំព័រនេះ",
        "tooltip-t-upload": "ឯកសារផ្ទុកឡើង",
        "tooltip-t-specialpages": "បញ្ជីទំព័រពិសេសៗទាំងមូល",
        "tooltip-t-print": "ទម្រង់សម្រាប់បោះពុម្ភរបស់ទំព័រនេះ",
        "pageinfo-robot-policy": "ដាក់ក្នុងលិបិក្រមដោយរូបយន្ត",
        "pageinfo-robot-index": "អនុញ្ញាត",
        "pageinfo-robot-noindex": "មិនអនុញ្ញាត",
-       "pageinfo-views": "ចំនួនការបើកមើល",
        "pageinfo-watchers": "ចំនួនអ្នកតាមដានទំព័រ",
        "pageinfo-few-watchers": "អ្នកតាមដានតិចជាង $1 {{PLURAL:$1|នាក់|នាក់}}",
        "pageinfo-redirects-name": "ចំនួនការបញ្ជូនបន្តមកកាន់ទំព័រនេះ",
        "autosumm-replace": "ជំនួសខ្លឹមសារនៃទំព័រដោយ '$1'",
        "autoredircomment": "បញ្ជូនបន្តទៅ [[$1]]",
        "autosumm-new": "បានបង្កើតទំព័រដែលផ្ដើមដោយ $1",
+       "autosumm-newblank": "បានបង្កើតទំព័រទទេ",
        "size-bytes": "$1បៃ",
        "size-kilobytes": "$1គីឡូបៃ",
        "size-megabytes": "$1មេកាបៃ",
        "watchlistedit-raw-done": "បញ្ជីតាមដានរបស់អ្នកត្រូវបានធ្វើឱ្យទាន់សម័យហើយ។",
        "watchlistedit-raw-added": "{{PLURAL:$1| ចំណងជើង១បានត្រូវ|$1 ចំណងជើងបានត្រូវ}}ដាក់បន្ថែម៖",
        "watchlistedit-raw-removed": "{{PLURAL:$1|១ចំណងជើងបានត្រូវ|$1ចំណងជើងបានត្រូវ}}ដកចេញ៖",
+       "watchlistedit-clear-title": "បានសម្អាតបញ្ចីតាមដាន",
+       "watchlistedit-clear-legend": "សម្អាតបញ្ជីតាមដាន",
        "watchlisttools-view": "មើលបន្លាស់ប្ដូរពាក់ព័ន្ធ",
        "watchlisttools-edit": "មើលនិងកែប្រែបញ្ជីតាមដាន",
        "watchlisttools-raw": "កែប្រែបញ្ជីតាមដានឆៅ",
        "version-hook-name": "ឈ្មោះ​ Hook",
        "version-hook-subscribedby": "បានជាវ ជាប្រចាំ ដោយ",
        "version-version": "(កំណែ $1)",
+       "version-no-ext-name": "[គ្មានឈ្មោះ]",
        "version-license": "អាជ្ញាបណ្ណ​មេឌាវិគី",
        "version-ext-license": "អាជ្ញាបណ្ណ",
+       "version-skin-colheader-name": "សំបក",
        "version-ext-colheader-version": "កំណែ",
        "version-ext-colheader-license": "អាជ្ញាបណ្ណ",
        "version-ext-colheader-description": "ការពិពណ៌នា",
        "fileduplicatesearch-result-n": "មាន {{PLURAL:$2|1 ឯកសារដូចគ្នាបេះបិទ|$2 ឯកសារដូចគ្នាបេះបិទ}}ទៅនឹងឯកសារ \"$1\"។",
        "fileduplicatesearch-noresults": "រកមិនឃើញឯកសារដែលមានឈ្មោះ \"$1\" ទេ។",
        "specialpages": "ទំព័រ​ពិសេស​ៗ",
+       "specialpages-note-top": "កំណត់សម្គាល់",
        "specialpages-note": "* ទំព័រពិសេសៗធម្មតា។\n* <span class=\"mw-specialpagerestricted\">ទំព័រពិសេសៗដែលមានការដាក់កំហិត។</span>",
        "specialpages-group-maintenance": "របាយការណ៍នានាអំពីតំហែទាំ",
        "specialpages-group-other": "ទំព័រពិសេសៗផ្សេងៗទៀត",
        "htmlform-no": "ទេ",
        "htmlform-yes": "ព្រម",
        "htmlform-chosen-placeholder": "ជ្រើសយកជម្រើសមួយ",
+       "htmlform-cloner-create": "បន្ថែមទៀត",
+       "htmlform-cloner-delete": "ដកចេញ",
        "logentry-delete-delete": "$1 {{GENDER:$2|បានលុប}} ទំព័រ $3 ចោល",
        "logentry-delete-restore": "$1 {{GENDER:$2|បានស្ដារ}} ទំព័រ $3 ឡើងវិញ",
        "revdelete-content-hid": "ខ្លឹមសារត្រូវបានលាក់",
index e06db43..cb9be3c 100644 (file)
        "mergehistory-comment": "[[:$1]] ಅನ್ನು [[:$2]] ಒಳಗೆ ಸೇರಿಸಲಾಗಿದೆ: $3",
        "mergehistory-reason": "ಕಾರಣ:",
        "mergelog": "ಸೇರ್ಪಡೆಯ ದಾಖಲೆ",
-       "pagemerge-logentry": "[[$1]] ಅನ್ನು [[$2]] ಒಳಗೆ ಸೇರಿಸಲಾಗಿದೆ ($3 ರವರೆಗಿನ ಬದಲಾವಣೆಗಳು)",
        "revertmerge": "ಸೇರ್ಪಡೆಯನ್ನು ತೊಡೆದುಹಾಕು",
        "mergelogpagetext": "ಒಂದು ಪುಟದ ಇತಿಹಾಸವನ್ನು ಇನ್ನೊಂದರೊಳಗೆ ಇತ್ತೀಚೆಗೆ ಸೇರ್ಪಡೆ ಮಾಡಲಾಗಿರುವ ಪಟ್ಟಿ ಕೆಳಗಿದೆ.",
        "history-title": "\"$1\" ಪುಟದ ಬದಲಾವಣೆಗಳ ಇತಿಹಾಸ",
        "statistics": "ಅಂಕಿ ಅಂಶಗಳು",
        "statistics-header-pages": "ಪುಟಗಳ ಅಂಕಿಅಂಶಗಳು",
        "statistics-header-edits": "ಸಂಪಾದನಾ ಅಂಕಿಅಂಶಗಳು",
-       "statistics-header-views": "ವೀಕ್ಷಣಾ ಅಂಕಿಅಂಶಗಳು",
        "statistics-header-users": "ಸದಸ್ಯರ ಅಂಕಿ ಅಂಶ",
        "statistics-header-hooks": "ಇತರ ಅಂಕಿಅಂಶಗಳು",
        "statistics-articles": "ಲೇಖನ ಪುಟ",
        "statistics-pages": "ಪುಟಗಳು",
        "statistics-files": "ಅಪ್ಲೋಡ್ ಆಗಿರುವ ಫೈಲುಗಳು",
        "statistics-edits-average": "ಪುಟದ ಸರಾಸರಿ ಮಾರ್ಪಡಿಕೆಗಳು",
-       "statistics-views-total": "ಒಟ್ಟು ವೀಕ್ಷಣೆಗಳು",
        "statistics-users-active": "ಸಕ್ರಿಯ ಬಳಕೆದಾರರು",
-       "statistics-mostpopular": "ಅತ್ಯಂತ ಹೆಚ್ಚು ವೀಕ್ಷಿತ ಪುಟಗಳು",
        "pageswithprop-submit": "ಹೋಗು",
        "doubleredirects": "ಮರುಕಳಿಸಿದ ಪುನರ್ನಿರ್ದೇಶನಗಳು",
        "brokenredirects": "ಮುರಿದ ರಿಡೈರೆಕ್ಟ್‌ಗಳು",
        "uncategorizedtemplates": "ಅವರ್ಗೀಕೃತ ಟೆಂಪ್ಲೇಟುಗಳು",
        "unusedcategories": "ಬಳಕೆಯಲ್ಲಿರದ ವರ್ಗಗಳು",
        "unusedimages": "ಉಪಯೋಗಿಸದ ಚಿತ್ರಗಳು",
-       "popularpages": "ಜನಪ್ರಿಯ ಪುಟಗಳು",
        "wantedcategories": "ಬೇಕಾಗಿರುವ ವರ್ಗಗಳು",
        "wantedpages": "ಬೇಕಾಗಿರುವ ಪುಟಗಳು",
        "wantedfiles": "ಬೇಕಾಗಿರುವ ಕಡತಗಳು",
index 4cc872f..0d2af85 100644 (file)
@@ -40,7 +40,8 @@
                        "Keysuck",
                        "Infinity",
                        "Bluemersen",
-                       "Revi"
+                       "Revi",
+                       "Namoroka"
                ]
        },
        "tog-underline": "링크에 밑줄:",
@@ -85,7 +86,7 @@
        "underline-always": "항상",
        "underline-never": "항상 치지 않기",
        "underline-default": "스킨 또는 브라우저 기본값",
-       "editfont-style": "í\8e¸ì§\91 ì°½의 글꼴:",
+       "editfont-style": "í\8e¸ì§\91 ì\98\81ì\97­의 글꼴:",
        "editfont-default": "브라우저 기본값",
        "editfont-monospace": "고정폭 글꼴",
        "editfont-sansserif": "산세리프 글꼴",
        "hidden-categories": "{{PLURAL:$1|숨은 분류}}",
        "hidden-category-category": "숨은 분류",
        "category-subcat-count": "{{PLURAL:$2|이 분류에는 하위 분류 1개만이 속해 있습니다.|다음은 이 분류에 속하는 {{PLURAL:$1|하위 분류}} $2개 가운데 $1개입니다.}}",
-       "category-subcat-count-limited": "이 분류에 {{PLURAL:$1|하위 분류}} $1개가 있습니다.",
+       "category-subcat-count-limited": "이 분류에 {{PLURAL:$1|하위 분류가|하위 분류 $1개가}} 있습니다.",
        "category-article-count": "{{PLURAL:$2|이 분류에는 문서 1개만이 속해 있습니다.|다음은 이 분류에 속하는 {{PLURAL:$1|문서}} $2개 가운데 $1개입니다.}}",
-       "category-article-count-limited": "이 분류에 {{PLURAL:$1|문서}} $1개가 있습니다.",
+       "category-article-count-limited": "이 분류에 {{PLURAL:$1|문서가|문서 $1개가}} 있습니다.",
        "category-file-count": "{{PLURAL:$2|이 분류에는 파일 1개만이 속해 있습니다.|다음은 이 분류에 속하는 {{PLURAL:$1|파일}} $2개 가운데 $1개입니다.}}",
-       "category-file-count-limited": "이 분류에 {{PLURAL:$1|파일}} $1개가 있습니다.",
+       "category-file-count-limited": "이 분류에 {{PLURAL:$1|파일이|파일 $1개가}} 있습니다.",
        "listingcontinuesabbrev": "(계속)",
        "index-category": "색인된 문서",
        "noindex-category": "색인에서 제외되는 문서",
        "morenotlisted": "이 목록은 완성되지 않았습니다.",
        "mypage": "문서",
        "mytalk": "토론",
-       "anontalk": "ì\9dµëª\85 사용자와 토론",
+       "anontalk": "ì\9d´ IP ì£¼ì\86\8cì\9d\98 사용자와 토론",
        "navigation": "둘러보기",
        "and": ",",
        "qbfind": "찾기",
        "delete": "삭제",
        "deletethispage": "이 문서 삭제하기",
        "undeletethispage": "이 문서를 되살리기",
-       "undelete_short": "{{PLURAL:$1|편집}} $1개 되살리기",
-       "viewdeleted_short": "{{PLURAL:$1|삭제된 편집}} $1개 보기",
+       "undelete_short": "{{PLURAL:$1|편집 한 개|편집 $1개}} 되살리기",
+       "viewdeleted_short": "{{PLURAL:$1|삭제된 편집 한 개|삭제된 편집 $1개}} 보기",
        "protect": "보호",
        "protect_change": "보호 수준 바꾸기",
        "protectthispage": "이 문서 보호하기",
        "privacypage": "Project:개인 정보 정책",
        "badaccess": "권한 오류",
        "badaccess-group0": "요청한 명령을 실행할 권한이 없습니다.",
-       "badaccess-groups": "요청한 명령은 {{PLURAL:$2|다음|다음 중 하나의}} 권한을 가진 사용자에게만 가능합니다: $1",
+       "badaccess-groups": "요청한 명령은 {{PLURAL:$2|다음|다음 중 하나의}} 권한을 가진 사용자에게 제한됩니다: $1.",
        "versionrequired": "미디어위키 $1 버전 필요",
        "versionrequiredtext": "이 문서를 사용하려면 $1 버전 미디어위키가 필요합니다.\n[[Special:Version|설치된 미디어위키 버전]]을 참고하세요.",
        "ok": "확인",
        "retrievedfrom": "원본 주소 \"$1\"",
-       "youhavenewmessages": "다른 사용자가 $1를 {{PLURAL:$3|남겼습니다}}. ($2)",
-       "youhavenewmessagesfromusers": "{{PLURAL:$3|다른 사용자가|사용자 $3명이}} $1를 {{PLURAL:$4|남겼습니다}}. ($2)",
-       "youhavenewmessagesmanyusers": "여러 사용자가 $1를 남겼습니다. ($2)",
+       "youhavenewmessages": "다른 사용자로부터의 $1가 {{PLURAL:$3|있습니다}}. ($2)",
+       "youhavenewmessagesfromusers": "{{PLURAL:$3|다른 사용자로|사용자 $3명으로}}부터의 $1가 {{PLURAL:$4|있습니다}}. ($2)",
+       "youhavenewmessagesmanyusers": "여러 사용자로부터의 $1가 있습니다. ($2)",
        "newmessageslinkplural": "{{PLURAL:$1|새 메시지}}",
        "newmessagesdifflinkplural": "마지막으로 {{PLURAL:$1|바뀐 내용}}",
        "youhavenewmessagesmulti": "다른 사용자가 $1에 남긴 새 메시지가 있습니다",
        "confirmable-no": "아니오",
        "thisisdeleted": "$1 문서를 보거나 되살리겠습니까?",
        "viewdeleted": "$1 문서를 보겠습니까?",
-       "restorelink": "{{PLURAL:$1|삭제된 편집}} $1개",
+       "restorelink": "{{PLURAL:$1|삭제된 편집 한 개|삭제된 편집 $1개}}",
        "feedlinks": "피드:",
        "feed-invalid": "잘못된 구독 피드 방식입니다.",
-       "feed-unavailable": "피드 서비스를 사용할 수 없습니다",
+       "feed-unavailable": "피드 배달을 사용할 수 없습니다",
        "site-rss-feed": "$1 RSS 피드",
        "site-atom-feed": "$1 Atom 피드",
        "page-rss-feed": "\"$1\" RSS 피드",
        "nstab-template": "틀",
        "nstab-help": "도움말",
        "nstab-category": "분류",
-       "nosuchaction": "해당하는 명령이 없습니다.",
-       "nosuchactiontext": "URLì\9d´ ì§\80ì \95í\95\9c ëª\85ë ¹ì\9d´ ì\9e\98못ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.\nURLì\9d\84 ì\9e\98못 ì\9e\85ë ¥í\95\98ì\98\80ê±°ë\82\98, ì\9e\98못ë\90\9c ë§\81í\81¬ë¥¼ ë\94°ë\9d¼ê°\94ì\9d\84 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.\n{{SITENAME}}ì\9d\98 ë²\84ê·¸ì\9d¼ ì\88\98ë\8f\84 있습니다.",
+       "nosuchaction": "이러한 명령이 없습니다",
+       "nosuchactiontext": "URLì\97\90 ì§\80ì \95í\95\9c ëª\85ë ¹ì\9d´ ì\98¬ë°\94르ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤.\nURLì\9d\84 ì\9e\98못 ì\9e\85ë ¥í\96\88ê±°ë\82\98, ì\98¬ë°\94르ì§\80 ì\95\8aì\9d\80 ë§\81í\81¬ë¥¼ ë\94°ë\9d¼ê°\94ì\9d\84 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.\n{{SITENAME}}ì\97\90 ì\82¬ì\9a©í\95\98ë\8a\94 ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ì\9d\98 ë²\84ê·¸ê°\80 ì\9e\88ì\9d\84 ì\88\98 있습니다.",
        "nosuchspecialpage": "해당하는 특수 문서가 없습니다.",
        "nospecialpagetext": "<strong>요청한 특수 문서가 존재하지 않습니다.</strong>\n\n특수 문서의 목록은 [[Special:SpecialPages|여기]]에서 볼 수 있습니다.",
        "error": "오류",
        "databaseerror-query": "쿼리: $1",
        "databaseerror-function": "함수: $1",
        "databaseerror-error": "오류: $1",
-       "laggedslavemode": "'''경고:''' 문서가 최근에 바뀐 내용을 포함하지 않을 수도 있습니다.",
+       "laggedslavemode": "<strong>경고:</strong> 문서가 최근에 바뀐 내용을 포함하지 않을 수도 있습니다.",
        "readonly": "데이터베이스 잠김",
        "enterlockreason": "데이터베이스를 잠그는 이유와 예상되는 기간을 적어 주세요.",
        "readonlytext": "데이터베이스가 잠겨 있어서 문서를 편집할 수 없습니다. 데이터베이스 관리가 끝난 후에는 정상으로 돌아올 것입니다.\n\n관리자가 데이터베이스를 잠글 때 남긴 메시지는 다음과 같습니다: $1",
        "filedeleteerror": "\"$1\" 파일을 삭제할 수 없습니다.",
        "directorycreateerror": "\"$1\" 디렉터리를 만들 수 없습니다.",
        "filenotfound": "\"$1\" 파일을 찾을 수 없습니다.",
-       "unexpected": "예기치 못한 값: \"$1\"=\"$2\"",
+       "unexpected": "예기치 않은 값: \"$1\"=\"$2\".",
        "formerror": "오류: 양식을 제출할 수 없습니다.",
-       "badarticleerror": "해당 명령은 이 문서에서 실행할 수 없습니다.",
+       "badarticleerror": "이 명령은 이 문서에서 수행할 수 없습니다.",
        "cannotdelete": "\"$1\" 문서나 파일을 삭제할 수 없습니다.\n이미 삭제되었을 수도 있습니다.",
        "cannotdelete-title": "\"$1\" 문서를 삭제할 수 없습니다.",
        "delete-hook-aborted": "훅이 삭제를 중단했습니다.\n아무런 설명도 주어지지 않았습니다.",
        "no-null-revision": "\"$1\" 문서에 대한 새 빈 판을 만들 수 없습니다",
        "badtitle": "잘못된 제목",
        "badtitletext": "요청한 문서 제목이 잘못되었거나, 비어있거나, 잘못된 인터위키 제목으로 링크했습니다.\n문서 제목에 사용할 수 없는 문자를 사용했을 수 있습니다.",
-       "perfcached": "ë\8b¤ì\9d\8c ì\9e\90ë£\8cë\8a\94 ìº\90ì\8b\9cë\90\9c ê²\83ì\9d´ë¯\80ë¡\9c ì\83\88ë¡\9c ë°\94ë\80\90 ë\82´ì\9a©ì\9d\84 ë°\98ì\98\81í\95\98ì§\80 ëª»í\95  ì\88\98ë\8f\84 ì\9e\88ì\8aµë\8b\88ë\8b¤. ìº\90ì\8b\9cì\97\90 ìµ\9cë\8c\80 {{PLURAL:$1|$1ê°\9cì\9d\98 ê²°ê³¼}}가 있습니다.",
-       "perfcachedts": "ë\8b¤ì\9d\8c ì\9e\90ë£\8cë\8a\94 ìº\90ì\8b\9cë\90\9c ê²\83ì\9c¼ë¡\9c, $1ì\97\90 ë§\88ì§\80ë§\89ì\9c¼ë¡\9c ì\83\88ë¡\9c ê³ ì³\90ì¡\8cì\8aµë\8b\88ë\8b¤. ìº\90ì\8b\9cì\97\90 ìµ\9cë\8c\80 {{PLURAL:$4|결과 $4개}}가 있습니다.",
-       "querypage-no-updates": "ì\9d´ ë¬¸ì\84\9cì\9d\98 ì\83\88ë¡\9c ê³ ì¹¨ì\9d´ í\98\84ì\9e¬ ë¹\84í\99\9cì\84±í\99\94ë\90\98ì\96´ ì\9e\88ì\8aµë\8b\88ë\8b¤.\nì\9d´ ë¬¸ì\84\9cì\9d\98 ì\9e\90ë£\8c를 ì\9e ì\8b\9c ë\8f\99ì\95\88 새로 고치지 않을 것입니다.",
+       "perfcached": "ë\8b¤ì\9d\8c ì\9e\90ë£\8cë\8a\94 ìº\90ì\8b\9cë\90\9c ê²\83ì\9d´ë©° ìµ\9cì\8b ì\9d´ ì\95\84ë\8b\90 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ìº\90ì\8b\9cì\97\90 ìµ\9cë\8c\80 {{PLURAL:$1|ê²°ê³¼ í\95\9c ê°\9c|ê²°ê³¼ $1ê°\9c}}가 있습니다.",
+       "perfcachedts": "ë\8b¤ì\9d\8c ì\9e\90ë£\8cë\8a\94 ìº\90ì\8b\9cë\90\9c ê²\83ì\9c¼ë¡\9c, $1ì\97\90 ë§\88ì§\80ë§\89ì\9c¼ë¡\9c ì\97\85ë\8d°ì\9d´í\8a¸ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤. ìº\90ì\8b\9cì\97\90 ìµ\9cë\8c\80 {{PLURAL:$4|ê²°ê³¼ í\95\9c ê°\9c|결과 $4개}}가 있습니다.",
+       "querypage-no-updates": "ì\9d´ ë¬¸ì\84\9cì\9d\98 ì\83\88ë¡\9c ê³ ì¹¨ì\9d´ í\98\84ì\9e¬ ë¹\84í\99\9cì\84±í\99\94ë\90\98ì\96´ ì\9e\88ì\8aµë\8b\88ë\8b¤.\nì\9e\90ë£\8cê°\80 ì\9e ì\8b\9c 새로 고치지 않을 것입니다.",
        "viewsource": "원본 보기",
        "viewsource-title": "$1 문서 원본 보기",
        "actionthrottled": "동작 중지",
        "viewsourcetext": "문서의 원본을 보거나 복사할 수 있습니다:",
        "viewyourtext": "이 문서에 남긴 '''내 편집''' 내용을 보거나 복사할 수 있습니다:",
        "protectedinterface": "이 문서는 이 위키의 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하시기 바랍니다.",
-       "editinginterface": "'''경고''': 소프트웨어 인터페이스에 쓰이는 문서를 고치고 있습니다.\n이 문서에 있는 내용을 바꾸면 이 위키에 있는 모든 사용자에게 영향을 끼칩니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하시기 바랍니다.",
+       "editinginterface": "<strong>경고</strong>: 소프트웨어 인터페이스에 쓰이는 문서를 고치고 있습니다.\n이 문서에 있는 내용을 바꾸면 이 위키에 있는 모든 사용자에게 영향을 끼칩니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/ translatewiki.net]에 참여하시기 바랍니다.",
        "cascadeprotected": "이 문서는 다음 \"연쇄적\" 보호가 걸린 {{PLURAL:$1|문서}}에 포함되어 있어 함께 보호됩니다:\n$2",
        "namespaceprotected": "'''$1''' 이름공간을 편집할 수 있는 권한이 없습니다.",
        "customcssprotected": "여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 CSS 문서를 편집할 수 없습니다.",
        "exception-nologin-text-manual": "이 문서에 접근하거나 이 명령을 수행하려면 $1하세요.",
        "virus-badscanner": "잘못된 설정: 알 수 없는 바이러스 검사기: '''$1'''",
        "virus-scanfailed": "검사 실패 (코드 $1)",
-       "virus-unknownscanner": "알 수 없는 백신 소프트웨어:",
-       "logouttext": "'''지금 로그아웃했습니다.'''\n\n브라우저 캐시를 지우지 않으면 일부 문서에서 로그인이 되어 있는 것처럼 보일 수 있습니다.",
+       "virus-unknownscanner": "알 수 없는 안티 바이러스:",
+       "logouttext": "<strong>지금 로그아웃했습니다.</strong>\n\n브라우저 캐시를 지우지 않으면 일부 문서에서 로그인이 되어 있는 것처럼 보일 수 있습니다.",
        "welcomeuser": "$1님, 환영합니다!",
        "welcomecreation-msg": "계정이 만들어졌습니다.\n[[Special:Preferences|{{SITENAME}} 사용자 환경 설정]]을 바꿀 수 있습니다.",
        "yourname": "사용자 이름:",
        "yourtext": "당신의 편집",
        "storedversion": "현재 문서",
        "nonunicodebrowser": "'''경고: 웹 브라우저가 유니코드를 완벽하게 지원하지 않습니다.'''\n아스키가 아닌 문자가 16진수 코드로 나타날 수 있습니다.",
-       "editingold": "'''경고: 지금 이전 버전의 문서를 고치고 있습니다.'''\n이것을 저장하면 최근에 편집된 부분이 사라질 수 있습니다.",
+       "editingold": "<strong>경고: 이 문서의 오래된 판을 편집하고 있습니다.</strong>\n이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.",
        "yourdiff": "차이",
        "copyrightwarning": "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요).\n만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.\n'''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
        "copyrightwarning2": "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요.\n만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 내용에 대해서는 $1 문서를 읽어 주세요).\n'''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
        "content-model-text": "일반 텍스트",
        "content-model-javascript": "자바스크립트",
        "content-model-css": "CSS",
+       "duplicate-args-category": "중복된 인수를 사용한 틀의 호출을 포함한 문서",
        "expensive-parserfunction-warning": "'''경고:''' 이 문서는 너무 많은 파서 함수를 포함하고 있습니다.\n\n$2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개를 쓰고 있습니다}}.",
        "expensive-parserfunction-category": "느린 파서 함수 호출을 너무 많이 하는 문서",
        "post-expand-template-inclusion-warning": "'''경고:''' 틀 포함 크기가 너무 큽니다.\n일부 틀은 포함되지 않을 수 있습니다.",
        "parser-template-loop-warning": "재귀적인 틀이 발견되었습니다: [[$1]]",
        "parser-template-recursion-depth-warning": "틀 반복 깊이 제한을 초과함 ($1)",
        "language-converter-depth-warning": "언어 변환기 실행 제한 초과($1)",
-       "node-count-exceeded-category": "문ì\84\9cê°\80 ë\85¸ë\93\9c í\9a\9fì\88\98를 ì´\88ê³¼í\95\98ì\98\80ì\8aµë\8b\88ë\8b¤.",
-       "node-count-exceeded-category-desc": "ë\85¸ë\93\9c í\9a\9fì\88\98를 ì´\88ê³¼í\95\98ë\8a\94 ë¬¸ì\84\9cì\9d\98 ë¶\84ë¥\98ì\9e\85니다.",
+       "node-count-exceeded-category": "ë\85¸ë\93\9c í\9a\9fì\88\98를 ì´\88ê³¼í\95\9c ë¬¸ì\84\9c",
+       "node-count-exceeded-category-desc": "문ì\84\9cê°\80 ìµ\9cë\8c\80 ë\85¸ë\93\9c ì\88\98를 ì´\88ê³¼í\95©니다.",
        "node-count-exceeded-warning": "문서가 노드 수를 초과하였습니다.",
-       "expansion-depth-exceeded-category": "문서가 확장 깊이를 초과하였습니다.",
+       "expansion-depth-exceeded-category": "확장 깊이를 초과한 문서",
        "expansion-depth-exceeded-category-desc": "최대 확장 깊이를 초과하는 문서입니다.",
        "expansion-depth-exceeded-warning": "문서가 확장 깊이를 초과하였습니다",
        "parser-unstrip-loop-warning": "Unstrip의 반복을 감지했습니다",
        "rev-deleted-user": "(사용자 이름 삭제됨)",
        "rev-deleted-event": "(기록 동작이 제거됨)",
        "rev-deleted-user-contribs": "[사용자 이름 또는 IP 주소 삭제됨 -  기여 목록에서 편집이 숨겨짐]",
-       "rev-deleted-text-permission": "해당 편집이 문서 역사에서 '''삭제'''되었습니다.\n자세한 사항은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 볼 수 있습니다.",
-       "rev-deleted-text-unhide": "해당 편집이 문서 역사에서 '''삭제'''되었습니다.\n자세한 사항은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 볼 수 있습니다.\n이 편집을 보기를 원하신다면 [$1 해당 편집]을 볼 수 있습니다.",
-       "rev-suppressed-text-unhide": "해당 편집이 문서 역사에서 '''숨겨져''' 있습니다.\n자세한 사항은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 볼 수 있습니다.\n이 편집을 보기를 원하신다면 [$1 해당 편집]을 볼 수 있습니다.",
-       "rev-deleted-text-view": "이 문서의 편집은 역사에서 '''삭제'''되었습니다.\n삭제된 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
-       "rev-suppressed-text-view": "이 문서의 편집은 역사에서 '''숨겨져''' 있습니다.\n숨겨진 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 자세한 내용을 볼 수 있습니다.",
+       "rev-deleted-text-permission": "이 문서의 판은 <strong>삭제되어</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾을 수 있습니다.",
+       "rev-suppressed-text-permission": "이 문서의 판은 <strong>숨겨져</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.",
+       "rev-deleted-text-unhide": "이 문서의 판이 <strong>삭제되어</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾을 수 있습니다.\n이 판을 보기를 원한다면 여전히 [$1 해당 판]을 볼 수 있습니다.",
+       "rev-suppressed-text-unhide": "이 문서의 판이 <strong>숨겨져</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.\n이 판을 보기를 원한다면 여전히 [$1 해당 판]을 볼 수 있습니다.",
+       "rev-deleted-text-view": "이 문서의 판은 <strong>삭제되어</strong> 있습니다.\n삭제된 판을 볼 수 있으며 자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾을 수 있습니다.",
+       "rev-suppressed-text-view": "이 문서의 판은 <strong>숨겨져</strong> 있습니다.\n숨겨진 판을 볼 수 있으며 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.",
        "rev-deleted-no-diff": "특정 판이 문서 역사에서 '''삭제'''되었기 때문에 비교할 수 없습니다.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
        "rev-suppressed-no-diff": "두 판 중 일부가 '''삭제'''되었기 때문에 문서 편집 내용을 비교할 수 없습니다.",
        "rev-deleted-unhide-diff": "이 비교에 사용된 판 가운데 하나가 '''삭제'''되었습니다.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에 자세한 내용을 찾아볼 수 있습니다.\n계속 작업하고 싶다면 여전히 [$1 비교 보기]를 계속할 수 있습니다.",
        "mergehistory-same-destination": "원본 문서 이름과 대상 문서 이름은 달라야 합니다",
        "mergehistory-reason": "이유:",
        "mergelog": "합치기 기록",
-       "pagemerge-logentry": "사용자가 [[$1]]을 [[$2]]에 합쳤습니다 ($3판이 위로 옮겨짐)",
        "revertmerge": "합치기 해제",
        "mergelogpagetext": "다음은 한 문서의 역사를 다른 문서의 역사와 합친 최근 기록입니다.",
        "history-title": "\"$1\"의 편집 역사",
        "search-file-match": "(내용이 일치하는 파일 있음)",
        "search-suggest": "$1 문서를 찾고 있으신가요?",
        "search-interwiki-caption": "자매 프로젝트",
-       "search-interwiki-default": "$1 로부터의 결과:",
+       "search-interwiki-default": "$1로부터의 결과:",
        "search-interwiki-more": "(더 보기)",
        "search-relatedarticle": "관련",
        "searchrelated": "관련",
        "searchall": "모두",
        "showingresults": "'''$2'''번 부터의 {{PLURAL:$1|결과 '''1'''개|결과 '''$1'''개}}입니다.",
        "showingresultsinrange": "#<strong>$2</strong>부터 #<strong>$3</strong>까지의 범위에서 <strong>$1</strong>개의 {{PLURAL:$1|결과}}가 아래에 보입니다.",
+       "search-showingresults": "{{PLURAL:$4|결과 <strong>$3</strong>개 중 <strong>$1</strong>개|결과 <strong>$3</strong>개 중 <strong>$1 - $2</strong>개}}",
        "search-nonefound": "검색어와 일치하는 결과가 없습니다.",
        "powersearch-legend": "고급 검색",
        "powersearch-ns": "다음 이름공간에서 검색:",
        "powersearch-toggleall": "모두",
        "powersearch-togglenone": "모두 제외",
        "powersearch-remember": "향후 검색에 선택 기억하기",
-       "search-external": "바깥에서 검색",
+       "search-external": "바깥 검색",
        "searchdisabled": "{{SITENAME}} 검색이 비활성화되어 있습니다.\n검색이 작동하지 않는 동안에는 Google(구글)을 통해 검색할 수 있습니다.\n검색 엔진의 내용은 최신이 아닐 수 있다는 점을 참고하세요.",
        "search-error": "검색하는 동안 오류가 발생했습니다: $1",
        "preferences": "사용자 환경 설정",
        "mypreferences": "환경 설정",
        "prefs-edits": "편집 수:",
-       "prefsnologintext2": "ì\82¬ì\9a©ì\9e\90 í\99\98ê²½ ì\84¤ì \95ì\9d\84 ë³\80ê²½í\95\98려면 ë¡\9cê·¸ì\9d¸í\95\98ì\8b­ì\8b\9cì\98¤.",
+       "prefsnologintext2": "ì\82¬ì\9a©ì\9e\90 í\99\98ê²½ ì\84¤ì \95ì\9d\84 ë°\94꾸려면 ë¡\9cê·¸ì\9d¸í\95\98ì\84¸ì\9a\94.",
        "prefs-skin": "스킨",
        "skin-preview": "미리 보기",
        "datedefault": "설정하지 않음",
        "prefs-files": "파일",
        "prefs-custom-css": "사용자 CSS",
        "prefs-custom-js": "사용자 자바스크립트",
-       "prefs-common-css-js": "모든 스킨에 대한 공통 CSS/자바스크립트:",
+       "prefs-common-css-js": "모든 스킨에 공유된 CSS/자바스크립트:",
        "prefs-reset-intro": "이 페이지를 사용해 사이트 기본값으로 환경 설정을 재설정할 수 있습니다.\n이는 되돌릴 수 없습니다.",
        "prefs-emailconfirm-label": "이메일 인증:",
        "youremail": "이메일:",
        "gender-female": "위키 문서를 편집하는 여자입니다",
        "prefs-help-gender": "이 환경 설정은 선택 사항입니다.\n소프트웨어는 적절한 성별 문법을 사용하여 다른 사용자에게 당신을 언급하는 것을 해결하기 위해 사용됩니다.\n이 정보는 공개됩니다.",
        "email": "이메일",
-       "prefs-help-realname": "ì\8b¤ëª\85ì\9d\80 ì\84 í\83\9d ì\82¬í\95­ì\9e\85ë\8b\88ë\8b¤.\nì\8b¤ëª\85ì\9d\84 ì\9e\85ë ¥í\95\98ë©´ ë¬¸ì\84\9c ê¸°ì\97¬ì\97\90 ì\9e\90ì\8b ì\9d\98 ì\9d´ë¦\84ì\9d´ ë\93¤ì\96´ê°\80ê²\8c ë\90©니다.",
+       "prefs-help-realname": "ì\8b¤ëª\85ì\9d\80 ì\84 í\83\9d ì\82¬í\95­ì\9e\85ë\8b\88ë\8b¤.\nì\8b¤ëª\85ì\9d\84 ì\9e\85ë ¥í\95\98ë©´ ë\8b¹ì\8b ì\9d\98 ê¸°ì\97¬ì\97\90 ë\8c\80í\95\9c ì \80ì\9e\91ì\9e\90í\91\9cì\8b\9cì\97\90 ì\93°ì\9d´ê²\8c ë\90  ì\88\98 ì\9e\88ì\8aµ니다.",
        "prefs-help-email": "이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호를 재설정하기 위해 필요합니다.",
        "prefs-help-email-others": "자신의 문서나 토론 문서에 있는 이메일 보내기 링크로 다른 사용자가 연락할 수 있게 할 수도 있습니다.\n이 경우에도 이메일 주소는 다른 사용자가 연락할 때 공개되지 않습니다.",
        "prefs-help-email-required": "이메일 주소가 필요합니다.",
        "prefs-tokenwatchlist": "토큰",
        "prefs-diffs": "차이",
        "prefs-help-prefershttps": "이 사용자 환경 설정은 다음 로그인부터 적용됩니다.",
+       "prefswarning-warning": "사용자 환경 설정에서 바뀐 것이 아직 저장되어 있지 않습니다.\n사용자 환경 설정에서 \"$1\"을 클릭하지 않고 이 페이지를 떠나면 바뀌지 않습니다.",
        "prefs-tabs-navigation-hint": "팁: 탭 목록에서 탭 사이를 둘러보려면 왼쪽과 오른쪽 화살표 키를 사용할 수 있습니다.",
        "email-address-validity-valid": "이메일 주소가 올바른 것으로 보입니다",
        "email-address-validity-invalid": "올바른 이메일 주소를 입력하세요",
        "right-deletedtext": "삭제된 문서의 내용과 편집상의 차이를 보기",
        "right-browsearchive": "삭제된 문서 검색",
        "right-undelete": "삭제된 문서 되살리기",
-       "right-suppressrevision": "관리자가 보지 못하도록 숨겨진 판을 검토하고 되살리기",
+       "right-suppressrevision": "어떤 사용자도 보지 못하도록 숨겨진 판을 검토하고 되살리기",
        "right-viewsuppressed": "어떤 사용자가 숨긴 판 보기",
        "right-suppressionlog": "숨겨진 기록을 보기",
        "right-block": "다른 사용자가 편집을 못하도록 차단",
        "recentchanges-feed-description": "이 피드에 위키의 최근 바뀜을 추적합니다.",
        "recentchanges-label-newpage": "새로 만든 문서",
        "recentchanges-label-minor": "사소한 편집",
-       "recentchanges-label-bot": "ë´\87ì\9d\98 편집",
-       "recentchanges-label-unpatrolled": "ì\95\84ì§\81 ì\88\9cì°°하지 않은 편집",
+       "recentchanges-label-bot": "ë´\87ì\9d´ ì\88\98í\96\89í\95\9c 편집",
+       "recentchanges-label-unpatrolled": "ì\95\84ì§\81 ì \90ê²\80하지 않은 편집",
        "recentchanges-label-plusminus": "바이트로 표기된 바뀐 문서 크기",
        "recentchanges-legend-heading": "'''범례:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|새 문서 목록]]도 보세요)",
        "nolicense": "선택하지 않음",
        "licenses-edit": "라이선스 옵션 편집",
        "license-nopreview": "(미리 보기 불가능)",
-       "upload_source_url": "(올바르고, 공개적으로 접근할 수 있는 URL)",
+       "upload_source_url": "(올바르고, 공개적으로 접근할 수 있는 URL에서 선택한 파일)",
        "upload_source_file": "(당신의 컴퓨터에서 선택한 파일)",
        "listfiles-delete": "삭제",
        "listfiles-summary": "이 특수 문서는 모든 올려진 파일을 보여줍니다.",
        "filerevert-legend": "파일 되돌리기",
        "filerevert-intro": "'''[[Media:$1|$1]]''' 파일을 [$4 $2 $3 버전]으로 되돌립니다.",
        "filerevert-comment": "이유:",
-       "filerevert-defaultcomment": "$1 $2 버전으로 되돌림",
+       "filerevert-defaultcomment": "$1 $2 으로 되돌림",
        "filerevert-submit": "되돌리기",
        "filerevert-success": "'''[[Media:$1|$1]]''' 파일을 [$4 $2 $3 버전]으로 되돌렸습니다.",
        "filerevert-badversion": "입력된 시간 기록을 가진 파일의 로컬 버전이 없습니다.",
        "filedelete-maintenance-title": "파일을 삭제할 수 없습니다",
        "mimesearch": "MIME 검색",
        "mimesearch-summary": "이 페이지는 MIME 유형에 해당하는 파일을 필터합니다.\n입력: 내용종류/하위종류나 내용종류/*, 예를 들어 <code>image/jpeg</code>",
-       "mimetype": "MIME 형식:",
+       "mimetype": "MIME 종류:",
        "download": "다운로드",
        "unwatchedpages": "주시되지 않는 문서 목록",
        "listredirects": "넘겨주기 문서 목록",
        "statistics": "통계",
        "statistics-header-pages": "문서 통계",
        "statistics-header-edits": "편집 통계",
-       "statistics-header-views": "방문 통계",
        "statistics-header-users": "사용자 통계",
        "statistics-header-hooks": "기타 통계",
        "statistics-articles": "본문",
        "statistics-files": "올려져 있는 파일",
        "statistics-edits": "{{SITENAME}} 설치 이후 문서의 전체 편집 수",
        "statistics-edits-average": "문서당 평균 편집 수",
-       "statistics-views-total": "총 방문 수",
-       "statistics-views-total-desc": "존재하지 않는 문서나 특수 문서에 대한 방문 수는 포함하지 않았습니다",
-       "statistics-views-peredit": "편집당 방문 횟수",
        "statistics-users": "등록된 [[Special:ListUsers|사용자]]",
        "statistics-users-active": "활동적인 사용자",
        "statistics-users-active-desc": "최근 {{PLURAL:$1|$1일}} 동안 활동한 사용자",
-       "statistics-mostpopular": "가장 많이 읽힌 문서",
        "pageswithprop": "문서 속성이 있는 문서",
        "pageswithprop-legend": "문서 속성이 있는 문서",
        "pageswithprop-text": "이 문서는 특정 문서 속성을 사용한 문서를 나타냅니다.",
        "uncategorizedtemplates": "분류되지 않은 틀 목록",
        "unusedcategories": "사용하지 않는 분류 목록",
        "unusedimages": "사용하지 않는 파일 목록",
-       "popularpages": "인기 있는 문서 목록",
        "wantedcategories": "필요한 분류 목록",
        "wantedpages": "필요한 문서 목록",
        "wantedpages-badtitle": "문서 제목이 잘못되었습니다: $1",
        "pager-older-n": "{{PLURAL:$1|이전 1개|이전 $1개}}",
        "suppress": "오버사이트",
        "querypage-disabled": "이 특수 문서는 성능상의 이유로 비활성화되었습니다.",
+       "apihelp": "API 도움말",
        "booksources": "책 찾기",
        "booksources-search-legend": "책 원본 검색",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "검색",
        "booksources-text": "아래의 목록은 새 책이나 중고 책을 판매하는 바깥 사이트로, 원하는 책의 정보를 얻을 수 있습니다.",
        "booksources-invalid-isbn": "입력한 ISBN이 잘못된 것으로 보입니다. 원본과 대조해 보세요.",
        "specialloguserlabel": "작업 수행자:",
        "noindex-category-desc": "문서는 그것과 그 플래그가 허용된 곳에 있는 이름공간에서 <code><nowiki>__NOINDEX__</nowiki></code> 특수 명령이 있기 때문에 로봇이 색인하지 않습니다.",
        "index-category-desc": "문서는 그것(과 플래그가 허용된 곳에 있는 이름공간에 있는 것)에 <code><nowiki>__INDEX__</nowiki></code>가 있어서, 정상적이지 않을 곳에 로봇에 의해 색인됩니다.",
        "post-expand-template-inclusion-category-desc": "모든 틀을 전개하였을 때, 문서 크기가 <code>$wgMaxArticleSize</code>보다 커지므로, 어떤 틀은 전개하지 않았습니다.",
-       "post-expand-template-argument-category-desc": "틀 변수 (<code>{{{Foo}}}</code>와 같은, 중괄호가 세 개 있는 무언가)를 확장하고 나서, 문서는 <code>$wgMaxArticleSize</code>보다 커집니다.",
-       "expensive-parserfunction-category-desc": "(<code>#ifexist</code>와 같은) 느린 파서 함수가 너무 많이 문서에 포함되어 있습니다. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]를 보세요.",
-       "broken-file-category-desc": "ë\84ë¥\98ê°\80 ê¹¨ì§\84 í\8c\8cì\9d¼ ë§\81í\81¬ (í\8c\8cì\9d¼ì\9d´ ì¡´ì\9e¬í\95\98ì§\80 ì\95\8aì\9d\84 ë\95\8c í\8f¬í\95¨ë\90\98ë\8a\94 ë§\81í\81¬)ê°\80 ì\9e\88ë\8a\94 ë¬¸ì\84\9cê°\80 ì\9e\88ë\8b¤ë©´ ì¶\94ê°\80ë\90©ë\8b\88ë\8b¤.",
-       "hidden-category-category-desc": "기본적으로 문서에 분류 링크 상자가 보여지는 것에서 막기 위한, <code><nowiki>__HIDDENCAT__</nowiki></code>가 있는 분류입니다.",
+       "post-expand-template-argument-category-desc": "틀 변수 (<code>{{{Foo}}}</code>와 같은, 중괄호가 세 개 있는 무언가)를 확장하고 나서 문서는 <code>$wgMaxArticleSize</code>보다 커집니다.",
+       "expensive-parserfunction-category-desc": "문서에 (<code>#ifexist</code>와 같은) 느린 파서 함수가 너무 많이 쓰이고 있습니다. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]를 보세요.",
+       "broken-file-category-desc": "문ì\84\9cì\97\90 ê¹¨ì§\84 í\8c\8cì\9d¼ ë§\81í\81¬ (í\8c\8cì\9d¼ì\9d´ ì¡´ì\9e¬í\95\98ì§\80 ì\95\8aì\9d\84 ë\95\8c í\8f¬í\95¨ë\90\98ë\8a\94 ë§\81í\81¬)를 í\8f¬í\95¨í\95©ë\8b\88ë\8b¤.",
+       "hidden-category-category-desc": "기본적으로 문서에 분류 링크 상자가 보여지는 것에서 막기 위한, 분류의 문서 내용에 <code><nowiki>__HIDDENCAT__</nowiki></code>를 포함합니다.",
        "trackingcategories-nodesc": "사용할 수 있는 설명이 없습니다.",
        "trackingcategories-disabled": "분류가 비활성화되어 있습니다",
        "mailnologin": "보낼 이메일 주소가 없음",
        "mywatchlist": "주시문서 목록",
        "watchlistfor2": "사용자:$1 $2",
        "nowatchlist": "주시하는 문서가 아직 없습니다.",
-       "watchlistanontext": "주시문서 목록을 보거나 고치려면 $1 하세요.",
+       "watchlistanontext": "주시문서 목록을 보거나 고치려면 로그인하세요.",
        "watchnologin": "로그인하지 않음",
        "addwatch": "주시문서 목록에 추가",
        "addedwatchtext": "\"[[:$1]]\" 문서를 [[Special:Watchlist|주시문서 목록]]에 추가했습니다.\n앞으로 이 문서나 관련된 토론 문서가 바뀌면 보일 것입니다.",
        "watchlist-details": "별도의 토론 문서를 세지 않고, 주시문서 목록에 {{PLURAL:$1|문서 $1개}}가 있습니다.",
        "wlheader-enotif": "이메일 알림 기능이 활성화되었습니다.",
        "wlheader-showupdated": "마지막으로 방문한 이후에 바뀐 문서는 '''굵은 글씨'''로 보입니다.",
-       "wlnote": "다음은 최근 {{PLURAL:$2|'''$2'''시간}} 동안 {{PLURAL:$1|바뀐 문서 '''$1'''개 입니다}}. ($3 $4 기준)",
-       "wlshowlast": "ìµ\9cê·¼ $1ì\8b\9cê°\84 $2ì\9d¼ ë\98\90ë\8a\94  ë\8f\99ì\95\88ì\97\90 ë°\94ë\80\90 ë¬¸ì\84\9c ë³´ê¸°",
+       "wlnote": "$3 $4 기준으로, 아래에 최근 {{PLURAL:$2|한 시간|<strong>$2</strong>시간}} 동안 {{PLURAL:$1|마지막 바뀜이|마지막 바뀜 <strong>$1</strong>개가}} 있습니다.",
+       "wlshowlast": "ìµ\9cê·¼ $1ì\8b\9cê°\84 $2ì\9d¼ ë\8f\99ì\95\88ì\9d\98 ë°\94ë\80\9c ë³´ê¸°",
        "watchlist-options": "주시문서 목록 설정",
        "watching": "주시 추가 중…",
        "unwatching": "주시 해제 중…",
        "exbeforeblank": "비우기 전의 내용: \"$1\"",
        "delete-confirm": "\"$1\" 삭제",
        "delete-legend": "삭제",
-       "historywarning": "'''경고:''' 삭제하려는 문서에 이전 {{PLURAL:$1|편집 역사}} 약 $1개가 있습니다:",
+       "historywarning": "<strong>경고:</strong> 삭제하려고 하는 문서에 {{PLURAL:$1|판}} $1개의 역사가 있습니다:",
        "confirmdeletetext": "문서와 문서 역사를 삭제하려고 합니다.\n삭제하려는 문서가 맞는지, 이 문서를 삭제하는 것이 [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지를 확인해 주세요.",
        "actioncomplete": "동작 완료",
        "actionfailed": "명령 실패",
        "dellogpage": "삭제 기록",
        "dellogpagetext": "아래의 목록은 최근에 삭제된 문서입니다.",
        "deletionlog": "삭제 기록",
-       "reverted": "이전 버전으로 되돌렸습니다.",
+       "reverted": "이전 판으로 되돌렸습니다",
        "deletecomment": "이유:",
        "deleteotherreason": "다른 이유/추가적인 이유:",
        "deletereasonotherlist": "다른 이유",
        "cantrollback": "편집을 되돌릴 수 없습니다.\n문서를 편집한 사용자가 한 명뿐입니다.",
        "alreadyrolled": "[[:$1]]에서 [[User:$2|$2]] ([[User talk:$2|토론]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])의 편집을 되돌릴 수 없습니다.\n누군가가 이미 문서를 고치거나 되돌렸습니다.\n\n마지막으로 이 문서를 편집한 사용자는 [[User:$3|$3]] ([[User talk:$3|토론]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])입니다.",
        "editcomment": "편집 요약: \"$1\"",
-       "revertpage": "[[Special:Contributions/$2|$2]]([[User talk:$2|토론]])의 편집을 [[User:$1|$1]]의 마지막 버전으로 되돌림",
+       "revertpage": "[[Special:Contributions/$2|$2]]([[User talk:$2|토론]])의 편집을 [[User:$1|$1]]의 마지막 으로 되돌림",
        "revertpage-nouser": "숨긴 사용자의 편집을 {{GENDER:$1|[[User:$1|$1]]}}의 마지막 판으로 되돌림",
-       "rollback-success": "$1의 편집을 $2의 마지막 버전으로 되돌렸습니다.",
+       "rollback-success": "$1의 편집을 되돌렸습니다.\n$2의 마지막 판으로 바뀌었습니다.",
        "sessionfailure-title": "세션 실패",
        "sessionfailure": "로그인 세션에 문제가 발생한 것 같습니다.\n세션 하이재킹을 막기 위해 동작이 취소되었습니다.\n브라우저의 뒤로 버튼을 누르고 문서를 새로 고침한 후에 다시 시도해 주세요.",
        "protectlogpage": "문서 보호 기록",
        "protect-othertime": "다른 기간:",
        "protect-othertime-op": "다른 기간",
        "protect-existing-expiry": "현재 만료 기간: $2 $3",
+       "protect-existing-expiry-infinity": "기존 만료 시간: 무기한",
        "protect-otherreason": "다른 이유/추가적인 이유:",
        "protect-otherreason-op": "다른 이유",
-       "protect-dropdown": "*ì\9d¼ë°\98ì \81ì\9d¸ ë³´í\98¸ ì\9d´ì\9c \n** ë¹\88ë²\88í\95\9c í\9b¼ì\86\90 í\96\89ì\9c\84\n** ë¹\88ë²\88í\95\9c ê´\91ê³  í\96\89ì\9c\84\n** 비생산적인 편집 분쟁\n** 방문이 많은 문서",
+       "protect-dropdown": "*ì\9d¼ë°\98ì \81ì\9d¸ ë³´í\98¸ ì\9d´ì\9c \n** ë¹\88ë²\88í\95\9c í\9b¼ì\86\90 í\96\89ì\9c\84\n** ë¹\88ë²\88í\9e\88 ê´\91고를 ë\84£ì\9d\8c\n** 비생산적인 편집 분쟁\n** 방문이 많은 문서",
        "protect-edit-reasonlist": "보호 이유 편집하기",
        "protect-expiry-options": "1시간:1 hour,1일:1 day,1주일:1 week,2주일:2 weeks,1개월:1 month,3개월:3 months,6개월:6 months,1년:1 year,무기한:infinite",
        "restriction-type": "권한:",
        "import-upload": "XML 데이터 올리기",
        "import-token-mismatch": "세션 데이터가 손실되었습니다.\n다시 시도하세요.",
        "import-invalid-interwiki": "해당 위키에서 문서를 가져올 수 없습니다.",
-       "import-error-edit": "현재 문서를 편집할 권한이 없기 때문에 \"$1\" 문서를 불러올 수 없습니다.",
-       "import-error-create": "현재 문서를 만들 권한이 없기 때문에 \"$1\" 문서를 불러올 수 없습니다.",
-       "import-error-interwiki": "\"$1\" 문서는 제목이 바깥 링크(인터위키)용으로 할당되어 있기 때문에 가져오지 않습니다.",
-       "import-error-special": "\"$1\" 문서는 특수 문서에 속해 있기 때문에 가져오지 않습니다.",
-       "import-error-invalid": "\"$1\" ë¬¸ì\84\9cë\8a\94 ì \9c목ì\9d´ ì\9e\98못ë\90\98ì\97\88기 ë\95\8c문ì\97\90 ê°\80ì ¸ì\98¤ì§\80 ì\95\8a습니다.",
+       "import-error-edit": "문서를 편집할 수 없기 때문에 \"$1\" 문서를 가져올 수 없었습니다.",
+       "import-error-create": "문서를 만들 수 없기 때문에 \"$1\" 문서를 가져올 수 없었습니다.",
+       "import-error-interwiki": "\"$1\" ë¬¸ì\84\9cë\8a\94 ì \9c목ì\9d´ ë°\94ê¹¥ ë§\81í\81¬(ì\9d¸í\84°ì\9c\84í\82¤)ì\9a©ì\9c¼ë¡\9c í\95 ë\8b¹ë\90\98ì\96´ ì\9e\88기 ë\95\8c문ì\97\90 ê°\80ì ¸ì\98¤ì§\80 ì\95\8aì\95\98ì\8aµë\8b\88ë\8b¤.",
+       "import-error-special": "\"$1\" 문서는 문서가 허용하지 않는 특수 이름공간에 속해 있기 때문에 가져오지 않았습니다.",
+       "import-error-invalid": "\"$1\" ë¬¸ì\84\9cë\8a\94 ì\9d´ ì\9c\84í\82¤ì\97\90ì\84\9c ê°\80ì ¸ì\98¤ë ¤ê³  í\95\98ë\8a\94 ë¬¸ì\84\9cì\9d\98 ì\9d´ë¦\84ì\9d´ ì\98¬ë°\94르ì§\80 ì\95\8a기 ë\95\8c문ì\97\90 ê°\80ì ¸ì\98¤ì§\80 ì\95\8aì\95\98습니다.",
        "import-error-unserialize": "\"$1\" 문서의 $2 판이 일렬적이지 않습니다. $3 내용 모델을 사용하여 $4 형식으로 일렬화되도록 판을 보고했습니다.",
        "import-error-bad-location": "$3 내용 모델을 사용하는 $2 판을 이 위키의 \"$1\"에 저장할 수 없습니다. 모델을 문서에서 지원하지 않습니다.",
        "import-options-wrong": "잘못된 {{PLURAL:$2|선택 사항}}: <nowiki>$1</nowiki>",
        "print.css": "/* 이 CSS 설정은 인쇄 출력 화면에 적용됩니다 */",
        "noscript.css": "/* 이 CSS 설정은 자바스크립트를 비활성화한 사용자에 적용됩니다 */",
        "group-autoconfirmed.css": "/* 이 CSS 설정은 자동 인증된 사용자에만 적용됩니다 */",
+       "group-user.css": "/* 이 CSS 설정은 등록된 사용자에만 적용됩니다 */",
        "group-bot.css": "/* 이 CSS 설정은 봇에만 적용됩니다 */",
        "group-sysop.css": "/* 이 CSS 설정은 관리자에만 적용됩니다 */",
        "group-bureaucrat.css": "/* 이 CSS 설정은 사무관에만 적용됩니다 */",
        "common.js": "/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */",
        "group-autoconfirmed.js": "/* 이 자바스크립트 설정은 자동 인증된 사용자에만 적용됩니다 */",
+       "group-user.js": "/* 이 자바스크립트 설정은 등록된 사용자에만 적용됩니다 */",
        "group-bot.js": "/* 이 자바스크립트 설정은 봇에만 적용됩니다 */",
        "group-sysop.js": "/* 이 자바스크립트 설정은 관리자에만 적용됩니다 */",
        "group-bureaucrat.js": "/* 이 자바스크립트 설정은 사무관에만 적용됩니다 */",
        "pageinfo-robot-policy": "로봇에 의한 색인",
        "pageinfo-robot-index": "허용됨",
        "pageinfo-robot-noindex": "불허됨",
-       "pageinfo-views": "읽은 수",
        "pageinfo-watchers": "문서를 주시하는 사용자 수",
        "pageinfo-few-watchers": "{{PLURAL:$1|주시하는 사용자}} $1명 미만",
        "pageinfo-redirects-name": "이 문서의 넘겨주기 수",
        "log-name-pagelang": "언어 바꾸기 기록",
        "log-description-pagelang": "문서 언어를 바꾼 기록입니다.",
        "logentry-pagelang-pagelang": "$1 사용자가 $3의 문서 언어를 $4에서 $5로 {{GENDER:$2|바꾸었습니다}}.",
+       "default-skin-not-found": "이런! 당신의 위키에 <code dir=\"ltr\">$wgDefaultSkin</code>에 <code>$1</code>(으)로 지정한 기본 스킨은 사용할 수 없습니다.\n\n설치에는 다음 스킨이 포함된 것으로 보입니다. 스킨을 활성화하고 기본값으로 선택하는 방법에 대한 정보에 대해서는 [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: 스킨 설정]을 보세요.\n\n$2\n\n; 미디어위키를 설치했다면:\n: 아마 git에서 설치했거나, 어떤 다른 방법을 사용하여 직접 설치했을 수 있을 것으로 봅니다. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org의 스킨 디렉터리]에서 어떤 스킨을 설치해보세요:\n:* 여러 스킨과 확장 기능이 들어 있는 [https://www.mediawiki.org/wiki/Download tarball 설치 프로그램]을 다운로드하세요. 거기서 <code>skins/</code> 디렉터리를 복사하여 붙여 넣을 수 있습니다.\n:* 미디어위키 설치의 <code dir=\"ltr\">skins/</code> 디렉터리 안에 git를 통해 <code>mediawiki/skins/*</code> 저장소 중 하나를 복제하세요.\n: 당신이 미디어위키 개발자이면 당신의 git 저장소를 방해하면 안됩니다.\n\n; 미디어위키를 업그레이드했다면:\n: 미디어위키 1.24와 새 버전은 더 이상 설치된 스킨을 자동으로 활성화하지 않습니다 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: 스킨 자동발견]을 보세요). 현재 설치된 스킨을 모두 활성화하려면 <code>LocalSettings.php</code> 안에 다음 줄을 붙여 넣을 수 있습니다:\n\n<pre dir=\"ltr\">$3</pre>\n\n; <code>LocalSettings.php</code>를 수정했다면:\n: 스킨 이름에 오타가 났는지 다시 확인하세요.",
+       "default-skin-not-found-no-skins": "이런! 당신의 위키에 <code dir=\"ltr\">$wgDefaultSkin</code>에 <code>$1</code>(으)로 지정한 기본 스킨은 사용할 수 없습니다.\n\n설치된 스킨은 없습니다.\n\n; 미디어위키를 설치했거나 업그레이드했다면:\n: 아마 git에서 설치했거나, 어떤 다른 방법을 사용하여 직접 설치했을 수 있을 것으로 봅니다. 미디어위키 1.24와 새 버전은 주 저장소에 어떠한 스킨도 포함되어 있지 않습니다. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org의 스킨 디렉터리]에서 어떤 스킨을 설치해보세요:\n:* 여러 스킨과 확장 기능이 들어 있는 [https://www.mediawiki.org/wiki/Download tarball 설치 프로그램]을 다운로드하세요. 거기서 <code>skins/</code> 디렉터리를 복사하여 붙여 넣을 수 있습니다.\n:* 미디어위키 설치의 <code dir=\"ltr\">skins/</code> 디렉터리 안에 git를 통해 <code>mediawiki/skins/*</code> 저장소 중 하나를 복제하세요.\n: 당신이 미디어위키 개발자이면 당신의 git 저장소를 방해하면 안됩니다. 스킨을 활성화하고 기본값으로 선택하는 방법에 대한 정보에 대해서는 [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: 스킨 설정]을 보세요.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (활성화)",
-       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''비활성화''')"
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''비활성화''')",
+       "mediastatistics": "미디어 통계",
+       "mediastatistics-summary": "올려진 파일 유형에 대한 통계입니다. 이 통계는 파일의 가장 최신 판만을 포함합니다. 오래되거나 삭제된 파일의 판은 제외됩니다.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 바이트}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME 종류",
+       "mediastatistics-table-extensions": "가능한 확장 기능",
+       "mediastatistics-table-count": "파일 수",
+       "mediastatistics-table-totalbytes": "압축된 크기",
+       "mediastatistics-header-unknown": "알 수 없음",
+       "mediastatistics-header-bitmap": "비트맵 그림",
+       "mediastatistics-header-drawing": "드로잉 (벡터 이미지)",
+       "mediastatistics-header-audio": "소리",
+       "mediastatistics-header-video": "동영상",
+       "mediastatistics-header-multimedia": "리치 미디어",
+       "mediastatistics-header-office": "오피스",
+       "mediastatistics-header-text": "텍스트",
+       "mediastatistics-header-executable": "실행 파일",
+       "mediastatistics-header-archive": "압축 파일",
+       "json-warn-trailing-comma": "뒤 {{PLURAL:$1|쉼표}} $1개가 JSON에서 제거되었습니다",
+       "json-error-unknown": "JSON에 문제가 있었습니다. 오류: $1",
+       "json-error-depth": "최대 스택 깊이를 초과했습니다",
+       "json-error-state-mismatch": "올바르지 않거나 잘못된 형식의 JSON",
+       "json-error-ctrl-char": "제어 문자 오류, 올바르지 않게 인코딩되어 있을 수 있습니다",
+       "json-error-syntax": "구문 오류",
+       "json-error-utf8": "잘못된 형식의 UTF-8 문자, 올바르지 않게 인코딩되어 있을 수 있습니다",
+       "json-error-recursion": "인코딩할 값에 하나 이상의 재귀 참조",
+       "json-error-inf-or-nan": "인코딩할 값에 하나 이상의 NAN이나 INF 값",
+       "json-error-unsupported-type": "인코딩할 수 없는 유형의 값을 받았습니다"
 }
index 4cded69..2cc313f 100644 (file)
        "pager-older-n": "{{PLURAL:$1|1=важжык 1|важжык $1}}",
        "booksources": "Небöггез-öшмöссэз",
        "booksources-search-legend": "Небöг йылiсь юöррез кошшан",
-       "booksources-go": "Кошшыны",
        "log": "Журналлэз",
        "allpages": "Быдöс листбоккез",
        "prevpage": "Одзжыкся листбок ($1)",
        "unwatch": "Оз ков синмавны",
        "unwatchthispage": "Дугдыны синмавны",
        "watchlist-details": "Синмалан нимлёдзат $1 {{PLURAL:$1|листбок|листбок|листбок}}, сёрнитан листбоккесö лыдö босьттöг.",
-       "wlshowlast": "Мыччавны медбöрья $1 час $2 лун $3 понда",
+       "wlshowlast": "Мыччавны медбöрья $1 час $2 лун  понда",
        "watchlist-options": "Синмалан нимлёз понда лöсьöтаннэз",
        "watching": "Синмавны …",
        "unwatching": "Дугдыны синмавны …",
        "metadata-fields": "EXIF метадатаэза ыббез, кöдна шуöмöсь нимлёдзын, лоасö сё ни мыччалöмöсь серпаса листбок вылын, мöдiккез лоасö, он кö шу мöднёж, сайöвтöмöсь:\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Пасьта",
        "exif-imagelength": "Вылына",
-       "watchlistall2": "быдöс",
        "namespacesall": "быдöс",
        "monthsall": "быдöс",
        "watchlisttools-view": "Видзöт лöсялана вильмöтöммез",
index bd0d9a6..141312d 100644 (file)
        "mergehistory-same-destination": "Тамал эмда нюзюрдеги бетле бирча болургъа болмайды",
        "mergehistory-reason": "Чурум:",
        "mergelog": "Бирлешиулени журналы",
-       "pagemerge-logentry": "[[$1]] бла [[$2]] бирлешдирилгенди ($3 дери версияла)",
        "revertmerge": "Бёлюрге",
        "mergelogpagetext": "Тюбюрек бетлени тарихлерини ахыр бирлешдириулери берилгенди.",
        "history-title": "$1 — тюрлениу тарихи",
        "statistics": "Статистика",
        "statistics-header-pages": "Бетлени статистикалары",
        "statistics-header-edits": "Тюрлендириулени статистикасы",
-       "statistics-header-views": "Къарауланы статистикалары",
        "statistics-header-users": "Къошулуучуланы статистикалары",
        "statistics-header-hooks": "Башха статистика",
        "statistics-articles": "Статьяла",
        "statistics-files": "Джюкленнген файлла",
        "statistics-edits": "{{SITENAME}} къуралгъанындан бери этилген тюрлендириуле.",
        "statistics-edits-average": "Хар бетдеги тюрлендириулени орта саны",
-       "statistics-views-total": "Къараула бютеулей",
-       "statistics-views-total-desc": "Къуралмагъан бетле бла къуллукъ бетлеге къараула саналмайдыла.",
-       "statistics-views-peredit": "Тюрлендириуге къарауну саны",
        "statistics-users": "Регистрация этилген [[Special:ListUsers|къошулуучула]]",
        "statistics-users-active": "Актив къошулуучула",
        "statistics-users-active-desc": "Ахыр {{PLURAL:$1|кюнде|$1 кюнде}} ишлеме этген къошулуучула",
-       "statistics-mostpopular": "Эм кёб къаралгъан бетле",
        "pageswithprop-prop": "Амалны аты:",
        "pageswithprop-submit": "Таб",
        "doubleredirects": "Джибериу болгъан джибериуле",
        "uncategorizedtemplates": "Категория салынмагъан шаблонла",
        "unusedcategories": "Хайырланылынмагъан категорияла",
        "unusedimages": "Хайырланмагъан файлла",
-       "popularpages": "Популяр бетле",
        "wantedcategories": "Керекли категорияла",
        "wantedpages": "Керекли бетле",
        "wantedpages-badtitle": "Сорманы эсеблеринде халатлы башлыкъ: $1",
        "pageinfo-robot-policy": "Излеу роботла бла индексация",
        "pageinfo-robot-index": "Эркинлик берилгенди",
        "pageinfo-robot-noindex": "Эркинлик берилмегенди",
-       "pageinfo-views": "Къарауланы саны",
        "pageinfo-watchers": "Бетни кёзде тутханланы саны",
        "pageinfo-redirects-name": "Бу бетге редиректлени саны",
        "pageinfo-firstuser": "Бетле къураучу",
index 5cb828e..aab1026 100644 (file)
        "movethispage": "Muf dhis pej hyar",
        "booksources": "Buk sòrsdèm",
        "booksources-search-legend": "Sarcg fòr buk sòrsdèm",
-       "booksources-go": "Go",
        "log": "Lògdèm",
        "allpages": "Òll pejdèm",
        "allarticles": "Òll pejdèm",
        "show-big-image": "Original fail",
        "ilsubmit": "Sarch",
        "metadata": "Mètadata",
-       "watchlistall2": "òll",
        "namespacesall": "òll",
        "monthsall": "òll",
        "confirmemail": "Kònfirm yu emel addrèss",
index d083aa1..dcc2e27 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Harvzsf",
-            "Joebertj",
-            "Jose77",
-            "Oxyzen",
-            "RonaldPanaligan"
-        ]
-    },
-    "tog-underline": "Koritan ang dalum kang manga ''link'':",
-    "tog-hideminor": "Tagoon ang gagmay nga ''edit'' sa mga bag-o nga ilis",
-    "tog-extendwatchlist": "Palapadun ang ''watchlist'' agud nga mapakita ang tanan nga ginasogtan nga pag-ilis",
-    "tog-numberheadings": "Automatiko nga togroan kang nomero ang manga ''heading''",
-    "tog-showtoolbar": "Ipakita ang pangbolig sa pag-ilis (JavaScript)",
-    "tog-rememberpassword": "Tandaan ang akun nga ''log-in'' sa dya nga ''computer'' (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "tog-watchcreations": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpanghimo ko",
-    "tog-watchdefault": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpang-''edit'' ko",
-    "tog-watchmoves": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpanghalin ko",
-    "tog-watchdeletion": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpamara ko",
-    "tog-previewonfirst": "Ipakita ang preview sa ona nga ilis",
-    "tog-enotifwatchlistpages": "Padarhan ako kang e-mail kon may nag-ilis kang pahina nga akun ginabantayan",
-    "tog-enotifminoredits": "Padarhan man ako kang ''e-mail'' tohay sa manga gagmay nga pag-ilis sa manga pahina",
-    "tog-shownumberswatching": "Ipakita ang karakuun kang manga ''user'' nga galantaw",
-    "tog-forceeditsummary": "Paman-an ako kon blanko nga ''edit summary'' ang akun ginapasulud",
-    "tog-watchlisthideown": "Indi pagpakita sa ''watchlist'' ang akun nga manga gin-islan",
-    "tog-watchlisthidebots": "Indi pagpakita sa ''watchlist'' ang manga gin-islan kang bot",
-    "tog-watchlisthideminor": "Indi pagpakita sa ''watchlist'' ang mga gagmay nga inislan",
-    "tog-ccmeonemails": "Padarhi man ako kang manga ''e-mail'' nga ginpadara ko sa iban nga manga ''user''",
-    "underline-always": "Pirme gid",
-    "underline-never": "Indi gid",
-    "underline-default": "Onay nga browser",
-    "sunday": "Domingo",
-    "monday": "Lones",
-    "tuesday": "Martes",
-    "wednesday": "Miyerkoles",
-    "thursday": "Webes",
-    "friday": "Biyernes",
-    "saturday": "Sabado",
-    "sun": "Dom",
-    "mon": "Lon",
-    "tue": "Mar",
-    "wed": "Miy",
-    "thu": "Web",
-    "fri": "Biy",
-    "sat": "Sab",
-    "january": "Enero",
-    "february": "Pebrero",
-    "march": "Marso",
-    "april": "Abril",
-    "may_long": "Mayo",
-    "june": "Honyo",
-    "july": "Holyo",
-    "august": "Agosto",
-    "september": "Setyembre",
-    "october": "Oktobre",
-    "november": "Nobyembre",
-    "december": "Disyembre",
-    "january-gen": "Enero",
-    "february-gen": "Pebrero",
-    "march-gen": "Marso",
-    "april-gen": "Abril",
-    "may-gen": "Abril",
-    "june-gen": "Honyo",
-    "july-gen": "Holyo",
-    "august-gen": "Agosto",
-    "september-gen": "Setyembre",
-    "october-gen": "Oktobre",
-    "november-gen": "Nobyembre",
-    "december-gen": "Disyembre",
-    "jan": "Ene",
-    "feb": "Peb",
-    "apr": "Abr",
-    "may": "May",
-    "jun": "Hon",
-    "jul": "Hol",
-    "aug": "Ago",
-    "sep": "Set",
-    "oct": "Okt",
-    "nov": "Nob",
-    "dec": "Dis",
-    "category_header": "Manga artikolo sa \"$1\"",
-    "subcategories": "Manga ''subcategory''",
-    "category-media-header": "Manga midya sa \"$1\"",
-    "category-empty": "''Wara it manga artikolo okon medya ang katergorya nga dya.''",
-    "about": "Angut sa Iwan",
-    "article": "Pahina kasudlan",
-    "newwindow": "(gabokas sa bag-o nga ''window'')",
-    "cancel": "Kanselar",
-    "moredotdotdot": "Raku pa...",
-    "mypage": "Akun nga pahina",
-    "anontalk": "Istoryahun ang dya nga ''IP''",
-    "qbfind": "Sagap",
-    "qbbrowse": "Bilid",
-    "qbedit": "Iislan",
-    "qbpageoptions": "Dya nga Pahina",
-    "faq": "FAQ",
-    "faqpage": "Project:FAQ",
-    "errorpagetitle": "Sayup",
-    "returnto": "Balik sa $1.",
-    "help": "Bolig",
-    "search": "Sagap",
-    "searchbutton": "Sagap",
-    "go": "Agto",
-    "searcharticle": "Agto",
-    "history": "Kasaysayan kang Pahina",
-    "history_short": "Kasaysayan",
-    "updatedmarker": "ginpabag-o halin kang orihi ko nga pagbisita",
-    "printableversion": "Bersyon nga sarang ma-''print''",
-    "permalink": "Permanyente nga ''link''",
-    "print": "Printa",
-    "edit": "Iislan",
-    "editthispage": "Islan ang dya nga pahina",
-    "delete": "Para",
-    "deletethispage": "Paraun ang dya nga Pahina",
-    "protect": "Amlig",
-    "protect_change": "iislan",
-    "protectthispage": "Amligan ang dya nga pahina",
-    "unprotect": "huksun ang proteksyon",
-    "unprotectthispage": "Huksun ang proteksyon sa dya nga pahina",
-    "newpage": "Bag-o nga pahina",
-    "talkpage": "Sogdanunun ang dya nga pahina",
-    "talkpagelinktext": "Wakal",
-    "specialpage": "Espesyal nga Pahina",
-    "postcomment": "Togro Komento",
-    "articlepage": "Turukun ang pahina kasudlan",
-    "talk": "Sugilanon",
-    "views": "Manga paglantaw",
-    "toolbox": "Pangbolig",
-    "otherlanguages": "Sa iban nga lingwahe",
-    "redirectpagesub": "Idaho ang pahina",
-    "protectedpage": "Protektado nga pahina",
-    "jumpto": "Lompat sa:",
-    "jumptosearch": "sagap",
-    "aboutsite": "Tunggəd sa {{SITENAME}}",
-    "aboutpage": "Project:Tunggəd",
-    "disclaimers": "Mga Panginwala",
-    "disclaimerpage": "Project:Panginwala nga Pangtanan",
-    "edithelp": "Panoytoy sa Pag-ilis",
-    "mainpage": "Pono nga Pahina",
-    "mainpage-description": "Pono nga Pahina",
-    "privacy": "Surundun sa Privacy",
-    "privacypage": "Project:Surundun sa Privacy",
-    "badaccess": "Sayup sa lisensya",
-    "badaccess-group0": "Indi kaw ginpasogtan nga himoon ang lihuk nga ginalaum mo.",
-    "badaccess-groups": "Ang imo ginpangayo nga lihuk ay para lang sa mga users sa {{PLURAL:$2|nga grupo|sara sa mga grupo}}: $1.",
-    "versionrequired": "Version $1 kang MediaWiki kinahanglan",
-    "versionrequiredtext": "Version $1 of MediaWiki kinahanglan para magamit ang page nga ja.\nLantawa sa [[Special:Version|version kang page]].",
-    "ok": "OK dun",
-    "youhavenewmessages": "May rudyan kaw nga $1 ($2).",
-    "youhavenewmessagesmulti": "May rudyan kaw nga manga bag-o nga mensahe sa $1",
-    "editsection": "iislan",
-    "editold": "iislan",
-    "toc": "Manga Sulud",
-    "showtoc": "ipakita",
-    "hidetoc": "itago",
-    "nstab-main": "Pahina",
-    "nstab-media": "Pahina kang Midya",
-    "nstab-special": "Espesyal nga pahina",
-    "nstab-project": "Pahina kang Proyekto",
-    "nstab-image": "Inayap",
-    "nstab-mediawiki": "Mensahe",
-    "nstab-template": "''Template''",
-    "nstab-help": "Pahina kang Panoytoy",
-    "nstab-category": "Kategorya",
-    "error": "Sayup",
-    "databaseerror": "Sayup sa database",
-    "readonly": "Napintalan ang ''database''",
-    "internalerror": "Sayup internal",
-    "internalerror_info": "Sayup internal: $1",
-    "filecopyerror": "Indi makopya ang ''file'' halin sa \"$1\" paagto sa \"$2\".",
-    "filerenameerror": "Indi maislan ang ngaran kang ''file'' halin sa \"$1\" paagto sa \"$2\".",
-    "filedeleteerror": "Indi mapara ang ''file'' nga \"$1\".",
-    "directorycreateerror": "Indi mahimo ang ''directory'' nga \"$1\".",
-    "filenotfound": "Indi makita ang ''file'' nga \"$1\".",
-    "fileexistserror": "Indi makasolat sa ''file'' nga \"$1\": may amo kadya run nga ''file''",
-    "viewsource": "Turukun ang ginhalinan",
-    "remembermypassword": "Tandaan ang akun nga ''log-in'' sa dya nga ''browser'' (kang maximum nga $1 {{PLURAL:$1|ka adlaw|ka mga adlaw}})",
-    "nologinlink": "Himo ka sangka ''account''",
-    "createaccount": "Himo ka ''account''",
-    "preview": "Bilid",
-    "skin-preview": "Bilid",
-    "searchresultshead": "Sagap",
-    "youremail": "E-mail:",
-    "email": "E-mail",
-    "hide": "Itago",
-    "show": "Ipakita",
-    "upload-file-error": "Sayup internal",
-    "imgfile": "inayap",
-    "file-anchor-link": "Inayap",
-    "filedelete-submit": "Para",
-    "brokenredirects-edit": "Iislan",
-    "brokenredirects-delete": "para",
-    "withoutinterwiki-submit": "Ipakita",
-    "booksources-go": "Agto",
-    "categories": "Manga Kategorya",
-    "linksearch-ok": "Sagap",
-    "listusers-submit": "Ipakita",
-    "emailmessage": "Mensahe",
-    "delete-legend": "Para",
-    "restriction-edit": "Iislan",
-    "undelete-search-submit": "Sagap",
-    "sp-contributions-talk": "wakal",
-    "sp-contributions-submit": "Sagap",
-    "whatlinkshere-page": "Pahina:",
-    "isredirect": "idaho ang pahina",
-    "ipblocklist-submit": "Sagap",
-    "tooltip-ca-protect": "Amligan ang dya nga pahina",
-    "tooltip-ca-delete": "Paraun ang dya nga Pahina",
-    "tooltip-p-logo": "Pono nga Pahina",
-    "tooltip-n-mainpage": "Agtoni ang Main Page",
-    "tooltip-n-portal": "Tunggəd sa project, ano pwede mo mahimo, diin mo makita ang mga bagay bagay",
-    "tooltip-n-currentevents": "Pangita-a ang mga ginhalinan sa mga nagakaratabo sa tulad",
-    "tooltip-n-recentchanges": "Listahan kang mga bag-o lang na-ilis sa wiki.",
-    "tooltip-n-randompage": "Magkarga kang random nga page",
-    "tooltip-n-help": "Lugar kun diin mo masagap.",
-    "tooltip-t-whatlinkshere": "Listahan kang tanan nga mga wiki pages nga naga-link paagto ja",
-    "tooltip-t-recentchangeslinked": "Mga bag-o lng ilis nga mga page nga naka-link halin sa page nga ja",
-    "tooltip-feed-rss": "RSS feed para sa page nga ja",
-    "tooltip-feed-atom": "Atom feed para sa page nga ja",
-    "tooltip-t-contributions": "Lantawa ang listahan kang mga ginbulig kang user nga ja",
-    "tooltip-t-emailuser": "Padarhi kang e-mail ang user nga ja",
-    "ilsubmit": "Sagap",
-    "confirm_purge_button": "OK dun",
-    "imgmultigo": "Agto!",
-    "table_pager_limit_submit": "Agto",
-    "version-specialpages": "Manga espesyal nga pahina",
-    "fileduplicatesearch-submit": "Sagap",
-    "specialpages": "Manga espesyal nga pahina",
-    "expand_templates_ok": "OK dun",
-    "expand_templates_preview": "Bilid"
+       "@metadata": {
+               "authors": [
+                       "Harvzsf",
+                       "Joebertj",
+                       "Jose77",
+                       "Oxyzen",
+                       "RonaldPanaligan",
+                       "TMg"
+               ]
+       },
+       "tog-underline": "Koritan ang dalum kang manga ''link'':",
+       "tog-hideminor": "Tagoon ang gagmay nga ''edit'' sa mga bag-o nga ilis",
+       "tog-extendwatchlist": "Palapadun ang ''watchlist'' agud nga mapakita ang tanan nga ginasogtan nga pag-ilis",
+       "tog-numberheadings": "Automatiko nga togroan kang nomero ang manga ''heading''",
+       "tog-showtoolbar": "Ipakita ang pangbolig sa pag-ilis (JavaScript)",
+       "tog-watchcreations": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpanghimo ko",
+       "tog-watchdefault": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpang-''edit'' ko",
+       "tog-watchmoves": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpanghalin ko",
+       "tog-watchdeletion": "Idogang sa akun nga ''watchlist'' ang manga pahina nga ginpamara ko",
+       "tog-previewonfirst": "Ipakita ang preview sa ona nga ilis",
+       "tog-enotifwatchlistpages": "Padarhan ako kang e-mail kon may nag-ilis kang pahina nga akun ginabantayan",
+       "tog-enotifminoredits": "Padarhan man ako kang ''e-mail'' tohay sa manga gagmay nga pag-ilis sa manga pahina",
+       "tog-shownumberswatching": "Ipakita ang karakuun kang manga ''user'' nga galantaw",
+       "tog-forceeditsummary": "Paman-an ako kon blanko nga ''edit summary'' ang akun ginapasulud",
+       "tog-watchlisthideown": "Indi pagpakita sa ''watchlist'' ang akun nga manga gin-islan",
+       "tog-watchlisthidebots": "Indi pagpakita sa ''watchlist'' ang manga gin-islan kang bot",
+       "tog-watchlisthideminor": "Indi pagpakita sa ''watchlist'' ang mga gagmay nga inislan",
+       "tog-ccmeonemails": "Padarhi man ako kang manga ''e-mail'' nga ginpadara ko sa iban nga manga ''user''",
+       "underline-always": "Pirme gid",
+       "underline-never": "Indi gid",
+       "underline-default": "Onay nga browser",
+       "sunday": "Domingo",
+       "monday": "Lones",
+       "tuesday": "Martes",
+       "wednesday": "Miyerkoles",
+       "thursday": "Webes",
+       "friday": "Biyernes",
+       "saturday": "Sabado",
+       "sun": "Dom",
+       "mon": "Lon",
+       "tue": "Mar",
+       "wed": "Miy",
+       "thu": "Web",
+       "fri": "Biy",
+       "sat": "Sab",
+       "january": "Enero",
+       "february": "Pebrero",
+       "march": "Marso",
+       "april": "Abril",
+       "may_long": "Mayo",
+       "june": "Honyo",
+       "july": "Holyo",
+       "august": "Agosto",
+       "september": "Setyembre",
+       "october": "Oktobre",
+       "november": "Nobyembre",
+       "december": "Disyembre",
+       "january-gen": "Enero",
+       "february-gen": "Pebrero",
+       "march-gen": "Marso",
+       "april-gen": "Abril",
+       "may-gen": "Mayo",
+       "june-gen": "Honyo",
+       "july-gen": "Holyo",
+       "august-gen": "Agosto",
+       "september-gen": "Setyembre",
+       "october-gen": "Oktobre",
+       "november-gen": "Nobyembre",
+       "december-gen": "Disyembre",
+       "jan": "Ene",
+       "feb": "Peb",
+       "apr": "Abr",
+       "may": "May",
+       "jun": "Hon",
+       "jul": "Hol",
+       "aug": "Ago",
+       "sep": "Set",
+       "oct": "Okt",
+       "nov": "Nob",
+       "dec": "Dis",
+       "category_header": "Manga artikolo sa \"$1\"",
+       "subcategories": "Manga ''subcategory''",
+       "category-media-header": "Manga midya sa \"$1\"",
+       "category-empty": "''Wara it manga artikolo okon medya ang katergorya nga dya.''",
+       "about": "Angut sa Iwan",
+       "article": "Pahina kasudlan",
+       "newwindow": "(gabokas sa bag-o nga ''window'')",
+       "cancel": "Kanselar",
+       "moredotdotdot": "Raku pa...",
+       "mypage": "Akun nga pahina",
+       "anontalk": "Istoryahun ang dya nga ''IP''",
+       "qbfind": "Sagap",
+       "qbbrowse": "Bilid",
+       "qbedit": "Iislan",
+       "qbpageoptions": "Dya nga Pahina",
+       "faq": "FAQ",
+       "faqpage": "Project:FAQ",
+       "errorpagetitle": "Sayup",
+       "returnto": "Balik sa $1.",
+       "help": "Bolig",
+       "search": "Sagap",
+       "searchbutton": "Sagap",
+       "go": "Agto",
+       "searcharticle": "Agto",
+       "history": "Kasaysayan kang Pahina",
+       "history_short": "Kasaysayan",
+       "updatedmarker": "ginpabag-o halin kang orihi ko nga pagbisita",
+       "printableversion": "Bersyon nga sarang ma-''print''",
+       "permalink": "Permanyente nga ''link''",
+       "print": "Printa",
+       "edit": "Iislan",
+       "editthispage": "Islan ang dya nga pahina",
+       "delete": "Para",
+       "deletethispage": "Paraun ang dya nga Pahina",
+       "protect": "Amlig",
+       "protect_change": "iislan",
+       "protectthispage": "Amligan ang dya nga pahina",
+       "unprotect": "huksun ang proteksyon",
+       "unprotectthispage": "Huksun ang proteksyon sa dya nga pahina",
+       "newpage": "Bag-o nga pahina",
+       "talkpage": "Sogdanunun ang dya nga pahina",
+       "talkpagelinktext": "Wakal",
+       "specialpage": "Espesyal nga Pahina",
+       "articlepage": "Turukun ang pahina kasudlan",
+       "talk": "Sugilanon",
+       "views": "Manga paglantaw",
+       "toolbox": "Pangbolig",
+       "otherlanguages": "Sa iban nga lingwahe",
+       "redirectpagesub": "Idaho ang pahina",
+       "protectedpage": "Protektado nga pahina",
+       "jumpto": "Lompat sa:",
+       "jumptosearch": "sagap",
+       "aboutsite": "Tunggəd sa {{SITENAME}}",
+       "aboutpage": "Project:Tunggəd",
+       "disclaimers": "Mga Panginwala",
+       "disclaimerpage": "Project:Panginwala nga Pangtanan",
+       "edithelp": "Panoytoy sa Pag-ilis",
+       "mainpage": "Pono nga Pahina",
+       "mainpage-description": "Pono nga Pahina",
+       "privacy": "Surundun sa Privacy",
+       "privacypage": "Project:Surundun sa Privacy",
+       "badaccess": "Sayup sa lisensya",
+       "badaccess-group0": "Indi kaw ginpasogtan nga himoon ang lihuk nga ginalaum mo.",
+       "badaccess-groups": "Ang imo ginpangayo nga lihuk ay para lang sa mga users sa {{PLURAL:$2|nga grupo|sara sa mga grupo}}: $1.",
+       "versionrequired": "Version $1 kang MediaWiki kinahanglan",
+       "versionrequiredtext": "Version $1 of MediaWiki kinahanglan para magamit ang page nga ja.\nLantawa sa [[Special:Version|version kang page]].",
+       "ok": "OK dun",
+       "youhavenewmessages": "May rudyan kaw nga $1 ($2).",
+       "youhavenewmessagesmulti": "May rudyan kaw nga manga bag-o nga mensahe sa $1",
+       "editsection": "iislan",
+       "editold": "iislan",
+       "toc": "Manga Sulud",
+       "showtoc": "ipakita",
+       "hidetoc": "itago",
+       "nstab-main": "Pahina",
+       "nstab-media": "Pahina kang Midya",
+       "nstab-special": "Espesyal nga pahina",
+       "nstab-project": "Pahina kang Proyekto",
+       "nstab-image": "Inayap",
+       "nstab-mediawiki": "Mensahe",
+       "nstab-template": "''Template''",
+       "nstab-help": "Pahina kang Panoytoy",
+       "nstab-category": "Kategorya",
+       "error": "Sayup",
+       "databaseerror": "Sayup sa database",
+       "readonly": "Napintalan ang ''database''",
+       "internalerror": "Sayup internal",
+       "internalerror_info": "Sayup internal: $1",
+       "filecopyerror": "Indi makopya ang ''file'' halin sa \"$1\" paagto sa \"$2\".",
+       "filerenameerror": "Indi maislan ang ngaran kang ''file'' halin sa \"$1\" paagto sa \"$2\".",
+       "filedeleteerror": "Indi mapara ang ''file'' nga \"$1\".",
+       "directorycreateerror": "Indi mahimo ang ''directory'' nga \"$1\".",
+       "filenotfound": "Indi makita ang ''file'' nga \"$1\".",
+       "viewsource": "Turukun ang ginhalinan",
+       "remembermypassword": "Tandaan ang akun nga ''log-in'' sa dya nga ''browser'' (kang maximum nga $1 {{PLURAL:$1|ka adlaw|ka mga adlaw}})",
+       "nologinlink": "Himo ka sangka ''account''",
+       "createaccount": "Himo ka ''account''",
+       "preview": "Bilid",
+       "skin-preview": "Bilid",
+       "searchresultshead": "Sagap",
+       "youremail": "E-mail:",
+       "email": "E-mail",
+       "hide": "Itago",
+       "show": "Ipakita",
+       "upload-file-error": "Sayup internal",
+       "imgfile": "inayap",
+       "file-anchor-link": "Inayap",
+       "filedelete-submit": "Para",
+       "brokenredirects-edit": "Iislan",
+       "brokenredirects-delete": "para",
+       "withoutinterwiki-submit": "Ipakita",
+       "categories": "Manga Kategorya",
+       "linksearch-ok": "Sagap",
+       "listusers-submit": "Ipakita",
+       "emailmessage": "Mensahe",
+       "delete-legend": "Para",
+       "restriction-edit": "Iislan",
+       "undelete-search-submit": "Sagap",
+       "sp-contributions-talk": "wakal",
+       "sp-contributions-submit": "Sagap",
+       "whatlinkshere-page": "Pahina:",
+       "isredirect": "idaho ang pahina",
+       "ipblocklist-submit": "Sagap",
+       "tooltip-ca-protect": "Amligan ang dya nga pahina",
+       "tooltip-ca-delete": "Paraun ang dya nga Pahina",
+       "tooltip-p-logo": "Pono nga Pahina",
+       "tooltip-n-mainpage": "Agtoni ang Main Page",
+       "tooltip-n-portal": "Tunggəd sa project, ano pwede mo mahimo, diin mo makita ang mga bagay bagay",
+       "tooltip-n-currentevents": "Pangita-a ang mga ginhalinan sa mga nagakaratabo sa tulad",
+       "tooltip-n-recentchanges": "Listahan kang mga bag-o lang na-ilis sa wiki.",
+       "tooltip-n-randompage": "Magkarga kang random nga page",
+       "tooltip-n-help": "Lugar kun diin mo masagap.",
+       "tooltip-t-whatlinkshere": "Listahan kang tanan nga mga wiki pages nga naga-link paagto ja",
+       "tooltip-t-recentchangeslinked": "Mga bag-o lng ilis nga mga page nga naka-link halin sa page nga ja",
+       "tooltip-feed-rss": "RSS feed para sa page nga ja",
+       "tooltip-feed-atom": "Atom feed para sa page nga ja",
+       "tooltip-t-contributions": "Lantawa ang listahan kang mga ginbulig kang user nga ja",
+       "tooltip-t-emailuser": "Padarhi kang e-mail ang user nga ja",
+       "ilsubmit": "Sagap",
+       "confirm_purge_button": "OK dun",
+       "imgmultigo": "Agto!",
+       "table_pager_limit_submit": "Agto",
+       "version-specialpages": "Manga espesyal nga pahina",
+       "fileduplicatesearch-submit": "Sagap",
+       "specialpages": "Manga espesyal nga pahina",
+       "expand_templates_ok": "OK dun",
+       "expand_templates_preview": "Bilid"
 }
index 51c758d..3dcc18b 100644 (file)
@@ -1,46 +1,44 @@
 {
-    "@metadata": {
-        "authors": [
-            "Rachitrali",
-            "Rk_kaul (on ks.wikipedia.org)",
-            "VibhasKS"
-        ]
-    },
-    "monday": "ژِنٛدٕروار",
-    "january": "جنوری",
-    "february": "فرؤری",
-    "march": "مارچ",
-    "april": "اپریٖل",
-    "may_long": "مٔی",
-    "june": "جوٗن",
-    "july": "جولائی",
-    "august": "اَگست",
-    "september": "سیٚپٹَمبَر",
-    "october": "اکتوبر",
-    "november": "نَوَمبَر",
-    "december": "ڈیٚسَمبَر",
-    "jan": "جنوری",
-    "about": "مُتعلِق",
-    "vector-view-edit": "تَرتیٖب دِیُن",
-    "vector-view-view": "پَرُن",
-    "help": "مدد",
-    "search": "ژھارُن",
-    "searchbutton": "ژھارُن",
-    "history_short": "توٲریٖخ",
-    "talkpagelinktext": "بَحَژ",
-    "talk": "بَحَژ",
-    "toolbox": "اَوزار",
-    "otherlanguages": "باقیَن زَبانَن منٛز",
-    "jumptosearch": "ژھارُن",
-    "aboutsite": "مُتعلِق {{SITENAME}}",
-    "mainpage": "گَرٕ",
-    "mainpage-description": "اہم صَفہٕ",
-    "nstab-main": "صَفہٕ",
-    "nstab-category": "زٲژ",
-    "summary": "خُلاسہٕ:",
-    "recentchanges": "نَوِ تبدیلی",
-    "filedesc": "خُلاسہٕ",
-    "sp-contributions-talk": "بَحَژ",
-    "sp-contributions-submit": "ژھارُن",
-    "allmessagesname": "ناو"
+       "@metadata": {
+               "authors": [
+                       "Rachitrali",
+                       "Rk_kaul (on ks.wikipedia.org)",
+                       "VibhasKS"
+               ]
+       },
+       "monday": "ژِنٛدٕروار",
+       "january": "جنوری",
+       "february": "فرؤری",
+       "march": "مارچ",
+       "april": "اپریٖل",
+       "may_long": "مٔی",
+       "june": "جوٗن",
+       "july": "جولائی",
+       "august": "اَگست",
+       "september": "سیٚپٹَمبَر",
+       "october": "اکتوبر",
+       "november": "نَوَمبَر",
+       "december": "ڈیٚسَمبَر",
+       "jan": "جنوری",
+       "about": "مُتعلِق",
+       "help": "مدد",
+       "search": "ژھارُن",
+       "searchbutton": "ژھارُن",
+       "history_short": "توٲریٖخ",
+       "talkpagelinktext": "بَحَژ",
+       "talk": "بَحَژ",
+       "toolbox": "اَوزار",
+       "otherlanguages": "باقیَن زَبانَن منٛز",
+       "jumptosearch": "ژھارُن",
+       "aboutsite": "مُتعلِق {{SITENAME}}",
+       "mainpage": "گَرٕ",
+       "mainpage-description": "اہم صَفہٕ",
+       "nstab-main": "صَفہٕ",
+       "nstab-category": "زٲژ",
+       "summary": "خُلاسہٕ:",
+       "recentchanges": "نَوِ تبدیلی",
+       "filedesc": "خُلاسہٕ",
+       "sp-contributions-talk": "بَحَژ",
+       "sp-contributions-submit": "ژھارُن",
+       "allmessagesname": "ناو"
 }
index 67b030d..27d0d11 100644 (file)
        "invalidtitle-knownnamespace": "„$3“ es ene onjöltijje Tittel för em Appachtemang „$2“",
        "invalidtitle-unknownnamespace": "„$2“ es ene onjöltijje Tittel för e Appachtemang met dä verkehte Nommer $1.",
        "exception-nologin": "Nit enjelogg",
-       "exception-nologin-text": "Heh di Sigg udder heh dä Opdraach jeiht blooß, wann De heh [[Special:Userlogin|em Wiki enjelogg]] bes.",
+       "exception-nologin-text": "Heh di Sigg udder heh dä Opdraach jeiht blooß, wann De heh enjelogg bes.",
        "exception-nologin-text-manual": "De mööds ald $1, öm heh di Sigg udder di Axjuhn zohjriife ze dörve.",
        "virus-badscanner": "Fääler en de Enstellunge: Dat Projramm ''$1'' fö noh Kompjuterwiere ze söke, dat kenne mer nit.",
        "virus-scanfailed": "Dat Söhke eß donevve jejange, dä Kood för dä Fähler es „$1“.",
        "mergehistory-same-destination": "De Quell-Sigg un de Ziel-Sigg dörve nit deselve Sigg sinn.",
        "mergehistory-reason": "Der Jrond:",
        "mergelog": "Logboch fum Sigge zesamme Läje",
-       "pagemerge-logentry": "Versione beß $3 fun „[[$1]]“ zosamme jelaat met „[[$2]]“",
        "revertmerge": "Dat Zosammelääje widder retuur maache",
        "mergelogpagetext": "Dat hee is dat Logboch fun de zesammejelaate Versione fun Sigge",
        "history-title": "Älder Versione vun dä Sigg „$1“",
        "statistics": "Schtatistike",
        "statistics-header-pages": "Zahle övver Sigge",
        "statistics-header-edits": "Zahle övver Änderunge",
-       "statistics-header-views": "Zahle övver afjeroofe Sigge",
        "statistics-header-users": "Schtatistike övver de Metmaacher",
        "statistics-header-hooks": "Ander Schtatistike",
        "statistics-articles": "Atikele",
        "statistics-files": "Huhjelade Dateie",
        "statistics-edits": "Änderunge aan Sigge",
        "statistics-edits-average": "Aanzahl Änderunge pro Sigg em Dorschschnett",
-       "statistics-views-total": "Sigge affjeroofe, ėnßjesamp",
-       "statistics-views-total-desc": "Sigge, die et nit johv, un Extrasigge sin nit metjezallt",
-       "statistics-views-peredit": "Sigge affjeroofe, pro Änderung",
        "statistics-users": "[[Special:ListUsers|Metmaacher]] aajemelldt",
        "statistics-users-active": "Aktive Metmaacher",
        "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",
        "pageswithprop-legend": "Sigge med en Eijeschaff",
        "pageswithprop-text": "Heh di Sigg zeisch Sigge, di en beschtemmpte Eijeschaf han",
        "uncategorizedtemplates": "Schablone, die en kein Saachjruppe sen",
        "unusedcategories": "Saachjruppe met nix dren",
        "unusedimages": "Dateie, die nit en Sigge dren stäche",
-       "popularpages": "Sigge, die off avjerofe wääde",
        "wantedcategories": "Saachjruppe, die mer noch nit han, die noch jebruch wääde",
        "wantedpages": "Sigge, die mer noch nit han, die noch jebruch wääde",
        "wantedpages-badtitle": "Ene onjöltijje Tittel för en Sigg: $1",
        "pageinfo-robot-policy": "Et opnämme es för Söhkmaschiine",
        "pageinfo-robot-index": "zohjelohße",
        "pageinfo-robot-noindex": "verbodde",
-       "pageinfo-views": "De Aanzahl Affroofe",
        "pageinfo-watchers": "De Aanzahl Oppaßer för di Sigg",
        "pageinfo-few-watchers": "Et jidd_er winnijer wi {{PLURAL:$1|eine|$1|keine}} Oppaßer.",
        "pageinfo-redirects-name": "Ömleidong(e) op heh di Sigg",
index bd6c9bf..643bc40 100644 (file)
        "statistics": "Statîstîk",
        "statistics-header-pages": "Statîstîkên rûpelê",
        "statistics-header-edits": "Statîstîkan biguherîne",
-       "statistics-header-views": "Amaran bibîne",
        "statistics-header-users": "Statistîkên bikarhêner",
        "statistics-header-hooks": "Statîstîkên din",
        "statistics-articles": "Rûpelên naverokê",
        "statistics-pages": "Rûpel",
        "statistics-pages-desc": "Hemû rûpelên di vê wîkiyê de, bi hemû rûpelên gotûbêj, beralîkirin, hwd.",
        "statistics-files": "Wêneyên barkirî",
-       "statistics-views-total": "Hemû nîşandan",
        "statistics-users": "[[Special:ListUsers|Bikarhênerên tomarkirî]]",
        "statistics-users-active": "Bikarhênerên çalak",
-       "statistics-mostpopular": "Rûpelên herî lênerî",
        "doubleredirects": "Beralîkirinên ducarî",
        "double-redirect-fixed-move": "Cihê [[$1]] hatiye guhertin, ew niha beralîkirina [[$2]] ye.",
        "brokenredirects": "Beralîkirinên xerabûyî",
        "uncategorizedtemplates": "Şablonên bê kategorî",
        "unusedcategories": "Kategoriyên ku nayên bikaranîn",
        "unusedimages": "Wêneyên ku nayên bikaranîn",
-       "popularpages": "Rûpelên populer",
        "wantedcategories": "Kategoriyên ku tên xwestin",
        "wantedpages": "Rûpelên ku tên xwestin",
        "wantedfiles": "Wêneyên ku tên xwestin",
        "spamprotectionmatch": "Ev nivîsa parastinê spam vêxist: $1",
        "pageinfo-header-edits": "Guherandin",
        "pageinfo-header-restrictions": "Parastina rûpelê",
-       "pageinfo-views": "Hejmara dîtinê",
        "pageinfo-watchers": "Hejmara kesên dişopînin",
        "pageinfo-subpages-name": "Binrûpelên vê rûpelê",
        "pageinfo-edits": "Hejmara guherandinan",
index e483c28..ab8596d 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Comp1089",
-            "Yufereff",
-            "ОйЛ"
-        ]
-    },
-    "sunday": "вежалун",
-    "monday": "выльлун",
-    "tuesday": "воторник",
-    "wednesday": "середа",
-    "thursday": "четверг",
-    "friday": "пекнича",
-    "saturday": "субöта",
-    "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": "ӧшым",
-    "pagecategories": "{{PLURAL:$1|1=Категория|Категория}}",
-    "article": "Гижӧд",
-    "cancel": "Дугӧдны",
-    "mytalk": "Сёрнитан лист бокӧй",
-    "qbfind": "Корсьысьӧм",
-    "qbedit": "Веськӧдны",
-    "vector-action-move": "Ним вежны",
-    "vector-view-edit": "Вежны",
-    "vector-view-view": "Лыддьыны",
-    "namespaces": "Ним пространствояс",
-    "search": "Корсьысьӧм",
-    "searchbutton": "Аддзыны",
-    "searcharticle": "Вуджны",
-    "history_short": "Важвылӧм",
-    "printableversion": "Лэдзӧм версия",
-    "permalink": "Вежласьтӧм ыстӧд",
-    "edit": "Вежны",
-    "delete": "Бырӧдны",
-    "protect": "Дорйыны",
-    "newpage": "Выль лист бок",
-    "talkpagelinktext": "сёрнитанін",
-    "talk": "Сёрнитанін",
-    "toolbox": "Инструментъяс",
-    "otherlanguages": "Мӧд кывъясӧн",
-    "jumptosearch": "корсьысьӧм",
-    "aboutsite": "{{SITENAME}} йылысь",
-    "currentevents": "Быд лунся лоӧмтор",
-    "mainpage": "Медшӧр лист бок",
-    "mainpage-description": "Медшӧр лист бок",
-    "portal": "Йитчӧм",
-    "portal-url": "Project:Йитчӧм портал",
-    "editsection": "веськӧдны",
-    "editold": "веськӧдны",
-    "editlink": "вежны",
-    "editsectionhint": "«$1» секция веськӧдны",
-    "red-link-title": "$1 (гижӧд абу)",
-    "nstab-main": "Гижӧд",
-    "nstab-user": "Пырысь",
-    "nstab-project": "Проект йылысь",
-    "nstab-category": "Категория",
-    "yourname": "Пырысьлӧн ним:",
-    "login": "Висьтасьны",
-    "nav-login-createaccount": "Висьтасьны / гижсьыны",
-    "userlogin": "Висьтасьны али гижсьыны",
-    "logout": "Сеанс эштӧдӧм",
-    "userlogout": "Сеанс эштӧдӧм",
-    "gotaccountlink": "Висьтасьӧй",
-    "loginlanguagelabel": "Кыв: $1",
-    "savearticle": "Лист бокӧс гижны",
-    "newarticle": "(Выль)",
-    "currentrev": "Быд лунся версия",
-    "search-result-size": "$1 ({{PLURAL:$2|$2 кыв}})",
-    "timezonelegend": "Час кытш",
-    "recentchanges": "Выль веськӧдӧмъяс",
-    "hide": "Дзебны",
-    "newpageletter": "В",
-    "boteditletter": "б",
-    "recentchangeslinked-page": "Гижӧдлӧн ним:",
-    "upload": "Файл сӧвтны",
-    "uploadbtn": "Файл сӧвтны",
-    "filehist-datetime": "Кадпас/кад",
-    "filehist-user": "Пырысь",
-    "filehist-comment": "Пасйӧд",
-    "randompage": "Кӧсйытӧг гижӧд",
-    "newpages": "Выль лист бокъяс",
-    "move": "Ним вежны",
-    "specialloguserlabel": "Пырысь:",
-    "log": "Журналъяс",
-    "allarticles": "Став гижӧдъяс",
-    "mywatchlist": "Видзӧдӧм лыддьӧгӧй",
-    "deletepage": "Лист бокӧс бырӧдны",
-    "deletereason-dropdown": "* Типовые причины удаления\n** вандализм\n** по запросу автора\n** нарушение авторских прав\n* MediaWiki\n** Дубликат сообщения с translatewiki.net",
-    "protect-level-sysop": "Администраторъяс сӧмын",
-    "namespace": "Ним пространство:",
-    "contributions": "Вӧлысьлӧн чӧжӧс",
-    "mycontris": "Чӧжӧсӧй",
-    "whatlinkshere": "Ыстӧдъяс татчӧ",
-    "contribslink": "чӧжӧс",
-    "newtitle": "Выль ним",
-    "movepagebtn": "Лист бокӧс ним вежны",
-    "allmessages": "Система юӧртӧмъяс",
-    "tooltip-pt-userpage": "Пырысьлӧн лист бокӧй",
-    "tooltip-ca-talk": "Гижӧдлӧн сёрнитӧм лист бокӧй али Википедиялӧн дӧнъялӧм лист бокӧй",
-    "tooltip-ca-move": "Лист боклӧн ним вежны",
-    "specialpages": "Торъя лист бокъяс"
+       "@metadata": {
+               "authors": [
+                       "Comp1089",
+                       "Yufereff",
+                       "ОйЛ"
+               ]
+       },
+       "sunday": "вежалун",
+       "monday": "выльлун",
+       "tuesday": "воторник",
+       "wednesday": "середа",
+       "thursday": "четверг",
+       "friday": "пекнича",
+       "saturday": "субöта",
+       "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": "ӧшым",
+       "pagecategories": "{{PLURAL:$1|1=Категория|Категория}}",
+       "article": "Гижӧд",
+       "cancel": "Дугӧдны",
+       "mytalk": "Сёрнитан лист бокӧй",
+       "qbfind": "Корсьысьӧм",
+       "qbedit": "Веськӧдны",
+       "namespaces": "Ним пространствояс",
+       "search": "Корсьысьӧм",
+       "searchbutton": "Аддзыны",
+       "searcharticle": "Вуджны",
+       "history_short": "Важвылӧм",
+       "printableversion": "Лэдзӧм версия",
+       "permalink": "Вежласьтӧм ыстӧд",
+       "edit": "Вежны",
+       "delete": "Бырӧдны",
+       "protect": "Дорйыны",
+       "newpage": "Выль лист бок",
+       "talkpagelinktext": "сёрнитанін",
+       "talk": "Сёрнитанін",
+       "toolbox": "Инструментъяс",
+       "otherlanguages": "Мӧд кывъясӧн",
+       "jumptosearch": "корсьысьӧм",
+       "aboutsite": "{{SITENAME}} йылысь",
+       "currentevents": "Быд лунся лоӧмтор",
+       "mainpage": "Медшӧр лист бок",
+       "mainpage-description": "Медшӧр лист бок",
+       "portal": "Йитчӧм",
+       "portal-url": "Project:Йитчӧм портал",
+       "editsection": "веськӧдны",
+       "editold": "веськӧдны",
+       "editlink": "вежны",
+       "editsectionhint": "«$1» секция веськӧдны",
+       "red-link-title": "$1 (гижӧд абу)",
+       "nstab-main": "Гижӧд",
+       "nstab-user": "Пырысь",
+       "nstab-project": "Проект йылысь",
+       "nstab-category": "Категория",
+       "yourname": "Пырысьлӧн ним:",
+       "login": "Висьтасьны",
+       "nav-login-createaccount": "Висьтасьны / гижсьыны",
+       "userlogin": "Висьтасьны али гижсьыны",
+       "logout": "Сеанс эштӧдӧм",
+       "userlogout": "Сеанс эштӧдӧм",
+       "gotaccountlink": "Висьтасьӧй",
+       "loginlanguagelabel": "Кыв: $1",
+       "savearticle": "Лист бокӧс гижны",
+       "newarticle": "(Выль)",
+       "currentrev": "Быд лунся версия",
+       "search-result-size": "$1 ({{PLURAL:$2|$2 кыв}})",
+       "timezonelegend": "Час кытш",
+       "recentchanges": "Выль веськӧдӧмъяс",
+       "hide": "Дзебны",
+       "newpageletter": "В",
+       "boteditletter": "б",
+       "recentchangeslinked-page": "Гижӧдлӧн ним:",
+       "upload": "Файл сӧвтны",
+       "uploadbtn": "Файл сӧвтны",
+       "filehist-datetime": "Кадпас/кад",
+       "filehist-user": "Пырысь",
+       "filehist-comment": "Пасйӧд",
+       "randompage": "Кӧсйытӧг гижӧд",
+       "newpages": "Выль лист бокъяс",
+       "move": "Ним вежны",
+       "specialloguserlabel": "Пырысь:",
+       "log": "Журналъяс",
+       "allarticles": "Став гижӧдъяс",
+       "mywatchlist": "Видзӧдӧм лыддьӧгӧй",
+       "deletepage": "Лист бокӧс бырӧдны",
+       "deletereason-dropdown": "* Типовые причины удаления\n** вандализм\n** по запросу автора\n** нарушение авторских прав\n* MediaWiki\n** Дубликат сообщения с translatewiki.net",
+       "protect-level-sysop": "Администраторъяс сӧмын",
+       "namespace": "Ним пространство:",
+       "contributions": "Вӧлысьлӧн чӧжӧс",
+       "mycontris": "Чӧжӧсӧй",
+       "whatlinkshere": "Ыстӧдъяс татчӧ",
+       "contribslink": "чӧжӧс",
+       "newtitle": "Выль ним",
+       "movepagebtn": "Лист бокӧс ним вежны",
+       "allmessages": "Система юӧртӧмъяс",
+       "tooltip-pt-userpage": "Пырысьлӧн лист бокӧй",
+       "tooltip-ca-talk": "Гижӧдлӧн сёрнитӧм лист бокӧй али Википедиялӧн дӧнъялӧм лист бокӧй",
+       "tooltip-ca-move": "Лист боклӧн ним вежны",
+       "specialpages": "Торъя лист бокъяс"
 }
index b22ab0e..2d3df3a 100644 (file)
        "unusedtemplateswlh": "башка шилтемелер",
        "randompage": "Тушкелди макала",
        "statistics": "Статистика",
-       "statistics-header-views": "Көрүү статистикасы",
        "statistics-header-users": "Колдонуучулардын статистикасы",
        "statistics-header-hooks": "Башка статистика",
        "statistics-articles": "Макалалар",
        "uncategorizedtemplates": "Категорияланбаган калыптар",
        "unusedcategories": "Колдонулбаган категориялар",
        "unusedimages": "Колдонулбаган файлдар",
-       "popularpages": "Популярдуу барактар",
        "wantedcategories": "Керек болгон категориялар",
        "wantedpages": "Керек болгон барактар",
        "wantedfiles": "Керек болгон файлдар",
        "pageinfo-header-edits": "Оңдоо тарыхы",
        "pageinfo-display-title": "Көрүнүүчү башжазуу",
        "pageinfo-article-id": "Барактын идентификатору",
-       "pageinfo-views": "Кароолордун саны",
        "pageinfo-redirects-name": "Бул баракка багыттамалар",
        "pageinfo-firstuser": "Барактын түзүүчүсү",
        "pageinfo-lastuser": "Акыркы редактор",
index 9862797..0c55c6c 100644 (file)
        "statistics": "Census",
        "statistics-header-pages": "Census paginarum",
        "statistics-header-edits": "Census recensionum",
-       "statistics-header-views": "Census visuum",
        "statistics-header-users": "Census usorum",
        "statistics-header-hooks": "Alia statistica",
        "statistics-articles": "Paginae in spatio nominali principali",
        "statistics-files": "Fasciculi impositi",
        "statistics-edits": "Recensiones paginarum factae ab initio {{grammar:genitive|{{SITENAME}}}}",
        "statistics-edits-average": "Recensiones per paginam",
-       "statistics-views-total": "Visus",
-       "statistics-views-peredit": "Visus per recensionem",
        "statistics-users": "[[Special:ListUsers|Usores]] relati",
        "statistics-users-active": "Usores activi",
        "statistics-users-active-desc": "Usores qui {{PLURAL:$1|proxima die|proximis $1 diebus}} actionem perfecerunt",
-       "statistics-mostpopular": "Paginae plurimum visae",
        "pageswithprop-submit": "Pergere",
        "doubleredirects": "Redirectiones duplices",
        "double-redirect-fixed-move": "[[$1]] mota est et nunc redirigit ad [[$2]]",
        "uncategorizedtemplates": "Formulae sine categoriis",
        "unusedcategories": "Categoriae non in usu",
        "unusedimages": "Fasciculi non in usu",
-       "popularpages": "Paginae saepe monstratae",
        "wantedcategories": "Categoriae desideratae",
        "wantedpages": "Paginae desideratae",
        "wantedfiles": "Fasciculi desiderati",
index b33c180..13a065e 100644 (file)
        "viewsourcetext": "Dir kënnt de Quelltext vun dëser Säit kucken a kopéieren:",
        "viewyourtext": "Dir kënnt de Quelltext vun '''Ären Ännerungen''' op dëser Säit kucken a kopéieren:",
        "protectedinterface": "Op dëser Säit fannt Dir Text fir de Sprooch-Interface vun der Software op dëser Wiki an dofir ass si gespaart fir Mëssbrauch ze verhënneren.\n\nFir Iwwersetzungen fir all Wikien bäizesetzen oder z'änneren gitt w.e.g. op [//translatewiki.net/ translatewiki.net], de MediaWiki-Lokalisatiouns-Projet.",
-       "editinginterface": "'''Opgepasst:''' Dir sidd am Gaang, eng Säit z'änneren, déi do ass, fir Interface-Text fir d'Software ze liwweren. \nÄnnerungen op dëser Säit änneren den Interface-Text, jee no Kontext, op allen oder verschiddene Säiten, déi vun alle Benotzer op dëser Wiki gesi ginn. \nFir d'Iwwersetzunge fir all Wikien derbäizesetzen oder z'änneren gitt w.e.g. op [//translatewiki.net translatewiki.net], de MediaWiki-Lokalisatiouns-Projet.",
+       "editinginterface": "<strong>Opgepasst:</strong> Dir sidd am Gaang, eng Säit z'änneren, déi do ass, fir Interface-Text fir d'Software ze liwweren. \nÄnnerungen op dëser Säit änneren den Interface-Text, jee no Kontext, op allen oder verschiddene Säiten, déi vun alle Benotzer op dëser Wiki gesi ginn.",
        "cascadeprotected": "Dës Säit gouf fir Ännerunge gespaart, well se duerch Cascadeprotectioun vun {{PLURAL:$1|dëser Säit|dëse Säite}} gespaart ass mat der Cascadenoptioun:\n$2",
        "namespaceprotected": "Dir hutt net déi néideg Rechter fir d'Säiten am Nummraum '''$1''' ze änneren.",
        "customcssprotected": "Dir hutt net d'Recht dës CSS-Säit z'änneren, well dorop déi perséinlech Astellunge vun engem anere Benotzer gespäichert sinn.",
        "page_last": "lescht",
        "histlegend": "Fir d'Ännerungen unzeweisen: Klickt déi zwou Versiounen un, déi solle verglach ginn.<br />\n*(aktuell) = Ënnerscheed mat der aktueller Versioun,\n*(lescht) = Ënnerscheed mat der aler Versioun,\n*k = Kleng Ännerung.",
        "history-fieldset-title": "An de Versioune sichen",
-       "history-show-deleted": "nëmmen déi geläschten",
+       "history-show-deleted": "nëmmen déi geläscht",
        "histfirst": "eelst",
        "histlast": "neist",
        "historysize": "({{PLURAL:$1|1 Byte|$1 Byten}})",
        "mergehistory-same-destination": "Ausgangs- an Zilsäit däerfen net déi selwescht sinn",
        "mergehistory-reason": "Grond:",
        "mergelog": "Fusiouns-Logbuch",
-       "pagemerge-logentry": "[[$1]] zesummegeluecht an [[$2]] (Versioune bis $3)",
        "revertmerge": "Zesummeféieren ophiewen",
        "mergelogpagetext": "Lëscht vun de rezenten Zesummeféierunge vu Versiounsgeschichten.",
        "history-title": "$1: Historique vun de Versiounen",
        "search-result-category-size": "{{PLURAL:$1|1 Säit|$1 Säiten}} ({{PLURAL:$2|1 Ënnerkategorie|$2 Ënnerkategorien}}, {{PLURAL:$3|1 Fichier|$3 Fichieren}})",
        "search-redirect": "(Viruleedung $1)",
        "search-section": "(Abschnitt $1)",
+       "search-category": "(Kategorie $1)",
        "search-file-match": "(Inhalt vum Fichier passt)",
        "search-suggest": "Mengt Dir: $1",
        "search-interwiki-caption": "Schwësterprojeten",
        "gender-female": "Si ännert Wikisäiten",
        "prefs-help-gender": "Fakultativ:\nD'Software benotzt seng Wäerter fir Iech unzeschwätzen a fir vun Iech vis-a-vis vun Aneren grammatesch ''Gender-korrekt'' ze schwätzen. \n\nDës Informatioun ass ëffentlech.",
        "email": "E-Mail",
-       "prefs-help-realname": "Äre richtegen Numm ass fakultativ. Wann Dir en ugitt, gëtt e benotzt fir Iech Är Kontributiounen zouzeuerdnen.",
+       "prefs-help-realname": "De richtegen Numm ass fakultativ.\nWann en ugi gouf, gëtt e benotzt fir Iech Är Kontributiounen zouzeuerdnen.",
        "prefs-help-email": "D'E-Mailadress ass fakultativ, awer si gëtt gebraucht fir Iech Äert Passwuert ze mailen, wann Dir et géift vergiessen.",
        "prefs-help-email-others": "Dir kënnt Iech och dofir decidéieren datt Anerer Iech iwwer Är Diskussiounssäit kontaktéieren ouni datt Dir derbäi Är Identitéit verrode musst.",
        "prefs-help-email-required": "Eng gëlteg E-Mail-Adress gëtt heifir gebraucht.",
        "statistics": "Statistik",
        "statistics-header-pages": "Säitestatistiken",
        "statistics-header-edits": "Statistik vun den Ännerungen",
-       "statistics-header-views": "Statistiken iwwer d'Visitten",
        "statistics-header-users": "Benotzerstatistik",
        "statistics-header-hooks": "Aner Statistiken",
        "statistics-articles": "Säite mat Inhalt",
        "statistics-files": "Eropgeluede Fichieren",
        "statistics-edits": "Säitenännerungen zanter datt et {{SITENAME}} gëtt",
        "statistics-edits-average": "Duerchschnëttlech Zuel vun Ännerunge pro Säit",
-       "statistics-views-total": "Total vun den Oprif",
-       "statistics-views-total-desc": "Kucke vu Säiten déi et net gëtt a vu Spezialsäite sinn net mat dran",
-       "statistics-views-peredit": "Affichage pro Ännerung",
        "statistics-users": "Registréiert [[Special:ListUsers|Benotzer]]",
        "statistics-users-active": "Aktiv Benotzer",
        "statistics-users-active-desc": "Benotzer déi während {{PLURAL:$1|dem leschten Dag|de leschten $1 Deeg}} eppes gemaach hunn",
-       "statistics-mostpopular": "Am meeschte gekuckte Säiten",
        "pageswithprop": "Säite mat enger Säiteneegeschaft",
        "pageswithprop-legend": "Säite mat enger Säiteneegeschaft",
        "pageswithprop-text": "Op dëser Säit sti Säiten déi eng speziell Säiteneegeschaft benotzen.",
        "uncategorizedtemplates": "Schablounen ouni Kategorie",
        "unusedcategories": "Net benotzt Kategorien",
        "unusedimages": "Net benotzt Fichieren",
-       "popularpages": "Populär Säiten",
        "wantedcategories": "Gewënscht Kategorien",
        "wantedpages": "Gewënscht Säiten",
        "wantedpages-badtitle": "Net valabelen Titel am Resultat: $1",
        "pager-older-n": "{{PLURAL:$1|vireg|vireg $1}}",
        "suppress": "Iwwersiicht",
        "querypage-disabled": "Dës Spezialsäit ass aus Performance-Grënn ausgeschalt.",
+       "apihelp": "API-Hëllef",
+       "apihelp-no-such-module": "Modul \"$1\" net fonnt.",
        "booksources": "Bicherreferenzen",
        "booksources-search-legend": "No Bicherreferenze sichen",
        "booksources-search": "Sichen",
        "wlheader-enotif": "E-Mail-Notifikatioun ass ageschalt.",
        "wlheader-showupdated": "Säiten déi zanter Ärer leschter Visite geännert goufen, si '''fett''' geschriwwen",
        "wlnote": "Hei {{PLURAL:$1|ass déi lescht Ännerung|sinn déi lescht <strong>$1</strong> Ännerunge}} vun {{PLURAL:$2|der leschter Stonn|de leschte(n) <strong>$2</strong> Stonnen}}, Stand: $3 ëm $4 Auer.",
-       "wlshowlast": "D'Ännerunge vun de leschte(n) $1 Stonnen, $2 Deeg oder  (an de leschten 30 Deeg) weisen.",
+       "wlshowlast": "Déi lescht $1 Stonnen $2 Deeg weisen",
        "watchlist-options": "Optioune vun der Iwwerwaachungslëscht",
        "watching": "Iwwerwaachen …",
        "unwatching": "Net méi iwwerwaachen …",
        "tooltip-feed-atom": "Atom-Feed fir dës Säit",
        "tooltip-t-contributions": "Lëscht vun de Kontributioune vun dësem Benotzer",
        "tooltip-t-emailuser": "Dësem Benotzer eng E-Mail schécken",
+       "tooltip-t-info": "Méi Informatiounen iwwer dës Säit",
        "tooltip-t-upload": "Biller oder Mediefichieren eroplueden",
        "tooltip-t-specialpages": "Lëscht vun alle Spezialsäiten",
        "tooltip-t-print": "Versioun vun dëser Säit fir auszedrécken",
        "pageinfo-robot-policy": "Indexéierung duerch Botten",
        "pageinfo-robot-index": "Erlaabt",
        "pageinfo-robot-noindex": "Net erlaabt",
-       "pageinfo-views": "Zuel vun de Kéieren déi dës Säit gekuckt gouf",
        "pageinfo-watchers": "Zuel vun de Benotzer déi d'Säit iwwerwaachen",
        "pageinfo-few-watchers": "Manner wéi $1 {{PLURAL:$1|Benotzer deen iwwerwaacht|Benotzer déi iwwerwaachen}}",
        "pageinfo-redirects-name": "Zuel vun de Viruleedungen op dës Säit",
        "log-description-pagelang": "Dëst ass a Log mat den Ännerunge vun de Sprooche vun de Säiten.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktivéiert)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desaktivéiert''')",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 Byte|$1 Byten}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME-Typ",
        "mediastatistics-table-extensions": "Méiglech Erweiderungen",
        "mediastatistics-table-count": "Zuel vun de Fichieren",
        "mediastatistics-header-unknown": "Onbekannt",
        "mediastatistics-header-audio": "Audio",
        "mediastatistics-header-video": "Videoen",
        "mediastatistics-header-office": "Office",
+       "mediastatistics-header-text": "Textuell",
        "json-error-unknown": "Et gouf e Problem mam JSON. Feeler: $1",
        "json-error-syntax": "Syntaxfeeler"
 }
index b05d164..63fa3b2 100644 (file)
@@ -1,48 +1,48 @@
 {
-    "@metadata": {
-        "authors": [
-            "Amire80"
-        ]
-    },
-    "article": "Тарих",
-    "mytalk": "На цӀухху-бусу байсса интернетрал лажин",
-    "qbedit": "Дакьин дуван",
-    "history": "Тарих",
-    "history_short": "Тарих",
-    "edit": "Дакьин дуван",
-    "talkpagelinktext": "Ихтилат",
-    "talk": "Ихтилат",
-    "currentevents": "Нанисса ишру",
-    "currentevents-url": "Project:Нанисса ишру",
-    "mainpage": "Агьаммур лажин",
-    "mainpage-description": "Агьаммур лажин",
-    "editsection": "дакьин дуван",
-    "editold": "дакьин дуван",
-    "nstab-main": "Тарих",
-    "nstab-user": "Гьуртту хьума",
-    "nstab-special": "Къуллугъирал лажин",
-    "nstab-image": "Сурат",
-    "nstab-template": "Шаблон",
-    "nstab-category": "Категория",
-    "userlogin": "Системалухь цу уссарав бусан",
-    "logout": "Уккаву",
-    "userlogout": "Уккаву",
-    "minoredit": "Мюрщсса дахханашиву",
-    "watchthis": "Ва лажин ябитаврил сияхӀравун ххи дан",
-    "savearticle": "Лажин ядан",
-    "preview": "Цалсса ххалбаву",
-    "showpreview": "Цалсса ххалбаву",
-    "recentchanges": "Махъсса дахханашивурту",
-    "file-anchor-link": "Сурат",
-    "filehist-user": "Гьурттучув",
-    "move": "ЦӀа даххана дан",
-    "specialloguserlabel": "Гьурттучув:",
-    "emailuser": "ГьурттучувначӀансса чагьар",
-    "watchlist": "Ябитаврил сияхӀ",
-    "watch": "Хъирив агьан",
-    "unwatch": "Хъирив къаагьан",
-    "contributions": "Гьурттучунал бутӀа",
-    "mycontris": "Ттул даву",
-    "sp-contributions-talk": "Ихтилат",
-    "move-watch": "Ва лажин ябитаврил сияхӀравун ххи дан"
+       "@metadata": {
+               "authors": [
+                       "Amire80"
+               ]
+       },
+       "article": "Тарих",
+       "mytalk": "На цӀухху-бусу байсса интернетрал лажин",
+       "qbedit": "Дакьин дуван",
+       "history": "Тарих",
+       "history_short": "Тарих",
+       "edit": "Дакьин дуван",
+       "talkpagelinktext": "Ихтилат",
+       "talk": "Ихтилат",
+       "currentevents": "Нанисса ишру",
+       "currentevents-url": "Project:Нанисса ишру",
+       "mainpage": "Агьаммур лажин",
+       "mainpage-description": "Агьаммур лажин",
+       "editsection": "дакьин дуван",
+       "editold": "дакьин дуван",
+       "nstab-main": "Тарих",
+       "nstab-user": "Гьуртту хьума",
+       "nstab-special": "Къуллугъирал лажин",
+       "nstab-image": "Сурат",
+       "nstab-template": "Шаблон",
+       "nstab-category": "Категория",
+       "userlogin": "Системалухь цу уссарав бусан",
+       "logout": "Уккаву",
+       "userlogout": "Уккаву",
+       "minoredit": "Мюрщсса дахханашиву",
+       "watchthis": "Ва лажин ябитаврил сияхӀравун ххи дан",
+       "savearticle": "Лажин ядан",
+       "preview": "Цалсса ххалбаву",
+       "showpreview": "Цалсса ххалбаву",
+       "recentchanges": "Махъсса дахханашивурту",
+       "file-anchor-link": "Сурат",
+       "filehist-user": "Гьурттучув",
+       "move": "ЦӀа даххана дан",
+       "specialloguserlabel": "Гьурттучув:",
+       "emailuser": "ГьурттучувначӀансса чагьар",
+       "watchlist": "Ябитаврил сияхӀ",
+       "watch": "Хъирив агьан",
+       "unwatch": "Хъирив къаагьан",
+       "contributions": "Гьурттучунал бутӀа",
+       "mycontris": "Ттул даву",
+       "sp-contributions-talk": "Ихтилат",
+       "move-watch": "Ва лажин ябитаврил сияхӀравун ххи дан"
 }
index c93489e..438934a 100644 (file)
        "statistics": "Статистика",
        "statistics-header-pages": "Ччинрин статистика",
        "statistics-header-edits": "Дуьзар хъувунрин статистика",
-       "statistics-header-views": "Статистикадиз килигун",
        "statistics-header-users": "Иштиракчидин статистика",
        "statistics-articles": "Макъалаяр",
        "statistics-pages": "Ччинар",
        "statistics-files": "Ппарнавай файлар",
-       "statistics-views-total": "Вири килигунар",
        "statistics-users-active": "Актив уртахар",
        "brokenredirects-edit": "дегишарун",
        "brokenredirects-delete": "алудун",
        "tooltip-undo": "«Гьич авун»  авунвай дуьзар хъувун paxкурзава ва сифтедин килигунин режимда  дуьзар хъувундин форма ахъа йийзва. Им нетижадиз себеб алава йийз мумкинвал гузва",
        "tooltip-summary": "Куьруь нетижа гьадрун",
        "pageinfo-header-edits": "Дуьзар хъувун",
-       "pageinfo-views": "Килигунрин кьадар",
        "pageinfo-edits": "Дьузар хъувунрин кьадар",
        "previousdiff": "Вилик алатай дуьзар хъувун",
        "nextdiff": "ЦIийи масакIаяр",
index e92a88d..b9d66ee 100644 (file)
        "uncategorizedtemplates": "Modeles sin categoria",
        "unusedcategories": "Categorias nonusada",
        "unusedimages": "Images nonusada",
-       "popularpages": "Pajes poplal",
        "wantedcategories": "Categorias desireda",
        "wantedpages": "Pajes desirada",
        "mostlinked": "Pajes la plu liada",
index 7e37ade..13620dd 100644 (file)
        "mergehistory-same-destination": "De brónpagina en bestömmingspagina kinne neet dezelfde zien",
        "mergehistory-reason": "Reeje:",
        "mergelog": "Samevoegingslogbook",
-       "pagemerge-logentry": "voegde [[$1]] nao [[$2]] same (versies tot en met $3)",
        "revertmerge": "Samevoging ongedaon make",
        "mergelogpagetext": "Hiejonger zuut geer 'ne lies van recente samevoeginge van 'ne paginagesjiedenis nao 'ne angere.",
        "history-title": "$1: bewèrkingseuverzich",
        "statistics": "Sjtattestieke",
        "statistics-header-pages": "Paginastatistieke",
        "statistics-header-edits": "Bewerkingsstatistieke",
-       "statistics-header-views": "Paginaweergavestatistieke",
        "statistics-header-users": "Stattestieke euver gebroekers",
        "statistics-header-hooks": "Anger gegaeves",
        "statistics-articles": "Inhoudelijke pagina's",
        "statistics-files": "Bestenj",
        "statistics-edits": "Paginabewerkinge sins t begin van {{SITENAME}}",
        "statistics-edits-average": "Gemiddeld aantal bewerkinge per pagina",
-       "statistics-views-total": "Totaal aantal weergegeve pagina's",
-       "statistics-views-total-desc": "'t Bekieke van neet-bestaonde pagina's en speciaal pagina's is neet inbegrepe",
-       "statistics-views-peredit": "Weergegeve pagina's per bewerking",
        "statistics-users": "Geregistreerde [[Special:ListUsers|gebroekers]]",
        "statistics-users-active": "Actieve gebroekers",
        "statistics-users-active-desc": "Gebroekers die in de aafgeloupe {{PLURAL:$1|daag|$1 daag}} 'ne hanjeling höbbe oetgevoerd",
-       "statistics-mostpopular": "Meisbekeke pazjena's",
        "doubleredirects": "Dobbel redirects",
        "doubleredirectstext": "Dees lies haet paazjes mit redireks die nao anger redireks gaon.\nOp eder raegel vings te de ierste redirectpazjena, de twiede redirectpazjena en de iesjte raegel van de twiede redirectpazjena. Meistes bevat dees litste de pazjena woe de iesjte redirect naotoe zouw mótte verwieze.\n<del>Dórchstreipinge</del> zègke det 't al gedaon is.",
        "double-redirect-fixed-move": "[[$1]] is verplaats en is noe 'n doorverwiezing nao [[$2]]",
        "uncategorizedtemplates": "Óngecategorizeerde sjablone",
        "unusedcategories": "Óngebroekde kategorieë",
        "unusedimages": "Ongebroekde aafbeildinge",
-       "popularpages": "Populaire artikels",
        "wantedcategories": "Gewunsjde categorieë",
        "wantedpages": "Gewunsjde pazjena's",
        "wantedpages-badtitle": "Verkeerde titel in 't rizzeltaot gezatj: $1",
        "simpleantispam-label": "Antispemcontrole.\nVol dit veld '''NEET''' in!",
        "pageinfo-title": "Informatie euver \"$1\"",
        "pageinfo-header-edits": "Bewirk",
-       "pageinfo-views": "Aantal waergave",
        "pageinfo-watchers": "Aantal volgers",
        "pageinfo-edits": "Aantal bewèrkinge",
        "pageinfo-authors": "Aantal versjillende sjrievers",
index 727743d..9feb651 100644 (file)
        "search-interwiki-more": " (vel)",
        "searchrelated": "sidtõd",
        "searchall": "tikkiž",
-       "showingresultsheader": "{{PLURAL:$5|'''$1''' '''$3'''-st rezultātõst|Rezultātõd '''$1–$2''' '''$3'''-st}} kizzimizõn '''$4'''",
        "search-nonefound": "Vȯtšimizõn vȯtšimi äb lieudtõd vastūkst.",
        "powersearch-legend": " Juo akurāt vȯtšimi",
        "powersearch-ns": "Vȯtšimi nim-rūimšti:",
        "pager-older-n": "{{PLURAL:$1|jo vaņīmi 1|jo vaņīmizt $1}}",
        "booksources": "Rōntõ vȯtšimi",
        "booksources-search-legend": "Rōntõ vȯtšimi",
-       "booksources-go": "Li",
        "log": "Logūd",
        "allpages": "Amād lēḑõd",
        "prevpage": "Jedmõli lēḑ ($1)",
        "watchthispage": "Vaņ iļ siedā līedpūoltõ",
        "unwatch": "Lopta iļ-vaņtlimi",
        "watchlist-details": " {{PLURAL:$1|$1 lēḑ|$1 līedtõ}} ātõ iļ-vaņtlimiz nimkēras,  bäz luggõmõt nõvpidāmiz-līedidi.",
-       "wlshowlast": "Nägţ perīzt $1 stuņdõ $2 päuvõ $3",
+       "wlshowlast": "Nägţ perīzt $1 stuņdõ $2 päuvõ",
        "watchlist-options": "Iļ-vaņtlimiz nimkēra pie-lēmizt",
        "watching": "Vaņtlimi iļ sīe...",
        "unwatching": "Iļ-vaņtlimiz loptimi...",
        "metadata-expand": "Nägţ mūḑi jo akurātidi ažḑi",
        "metadata-collapse": "Vaŗ jarā juo akurāt ažād",
        "metadata-fields": "Täs lugdõd fail meta-tīetõkst vellidi nägţõbõd bīlda seļţimiz līeds meta-tīetõkst vaņtlimiz āigal. Munt tīetõkst ātõ bäz kītõmõt jarā vaŗtõd. \n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "tikkiž",
        "namespacesall": "tikkiž",
        "monthsall": "tikkiž",
        "watchlisttools-view": "Nägţ sīe mõitõkši",
index f875f91..264bb81 100644 (file)
        "revdelete-edit-reasonlist": "Mudifega i mutiv del scancelament",
        "mergehistory-submit": "Önés le versiù",
        "mergehistory-reason": "Mutìf:",
-       "pagemerge-logentry": "el g'ha ünìt [[$1]] a [[$2]] (reviziù 'nfìna al $3)",
        "revertmerge": "Scancela i ünión",
        "history-title": "Crunulugia di mudifegh de \"$1\"",
        "difference-title-multipage": "Diferènsa 'ntra le pàgine \"$1\" e \"$2\"",
        "statistics": "Statistich",
        "statistics-header-pages": "Statistegh di paginn",
        "statistics-header-edits": "Statistegh di mudifegh",
-       "statistics-header-views": "Statistegh di visüalizazión",
        "statistics-header-users": "Statistegh di druvadur",
        "statistics-header-hooks": "Alter statistegh",
        "statistics-articles": "Paginn de cuntegnüü",
        "uncategorizedtemplates": "Mudel ch'i gh'hann mía de categuria.",
        "unusedcategories": "Categurij mía druvaa",
        "unusedimages": "Imagin mia druvaa",
-       "popularpages": "Pàgine éste piö de spès",
        "wantedcategories": "Categurij ricercaa",
        "wantedpages": "Pagin ricercaa",
        "mostlinked": "Püssè ligaa a pagin",
index 5e8fda1..7c0baaa 100644 (file)
        "passwordreset-username": "Nkómbó ya mosáleli:",
        "passwordreset-email": "Adɛlɛ́sɛ-ímɛ́lɛ:",
        "changeemail-none": "(mɔ́kɔ́ tɛ́)",
-       "changeemail-cancel": "Kozóngela",
        "bold_sample": "Nkomá ya mbinga",
        "bold_tip": "Nkomá ya mbinga",
        "italic_sample": "Nkomá ya kotɛ́ngama",
        "newpages-username": "Nkómbó ya mosáleli:",
        "move": "Kobóngola nkómbó",
        "movethispage": "Kobóngola nkómbó ya lonkásá loye",
-       "booksources-go": "Kɛndɛ́",
        "log": "Bapasɔ́",
        "allpages": "Nkásá ínsɔ",
        "nextpage": "Lonkásá ya nsima ($1)",
        "unwatch": "Kolanda tɛ́",
        "watchlist-details": "{{PLURAL:$1|Lonkásá $1 elandámí|Nkásá $1 bilandámí}}, longola nkásá ya ntembe.",
        "wlnote": "Áwa o nsé {{PLURAL:$1|ezalí mbóngwana ya nsúka|izalí mbóngwana '''$1''' ya nsúka}} o {{PLURAL:$2|ngonga|ngonga '''$2'''}} ya nsúka.",
-       "wlshowlast": "Komɔ́nisa ngónga $1 ya nsúka, mikɔlɔ $2 mya nsúka tǒ $3",
+       "wlshowlast": "Komɔ́nisa ngónga $1 ya nsúka, mikɔlɔ $2 mya nsúka tǒ",
        "watching": "Kolanda...",
        "unwatching": "Kolanda tɛ́...",
        "created": "ekomákí",
        "ilsubmit": "Boluki",
        "exif-artist": "Mokeli",
        "exif-subjectdistancerange-2": "kokanga view",
-       "watchlistall2": "nyɔ́nsɔ",
        "namespacesall": "Nyɔ́nsɔ",
        "monthsall": "nyɔ́nsɔ",
        "confirm_purge_button": "Nandimi",
index dfffb14..b45d90c 100644 (file)
        "move": "ຍ້າຍ",
        "movethispage": "ຍ້າຍໜ້ານີ້",
        "booksources": "ປຶ້ມອ້າງອີງ",
-       "booksources-go": "ໄປ",
        "log": "ບັນທຶກ",
        "all-logs-page": "ທຸກໆຂໍ້ມູນບັນທຶກການນຳໃຊ້",
        "logempty": "ຍັງບໍ່ພົບເນື້ອໃນບັນທຶກ.",
        "watchthispage": "ຕິດຕາມໜ້ານີ້",
        "unwatch": "ເຊົາຕິດຕາມ",
        "wlheader-showupdated": "ບັນດາ ໜ້າ ທີ່ມີການປ່ຽນແປງ ຫຼັງຈາກທີ່ທ່ານ ເຂົ້າຊົມຫຼ້າສຸດ ຈະຖືກສະແດງເປັນ ໂຕໜັງສື  '''ເຂັ້ມ'''",
-       "wlshowlast": "ສະແດງ $1 ຊົ່ວໂມງຫຼ້າສຸດ $2 ມື້ຫຼ້າສຸດ $3",
+       "wlshowlast": "ສະແດງ $1 ຊົ່ວໂມງຫຼ້າສຸດ $2 ມື້ຫຼ້າສຸດ",
        "watching": "ພວມຕິດຕາມ...",
        "unwatching": "ພວມເຊົາຕິດຕາມ...",
        "enotif_lastvisited": "ເບິ່ງ $1 ເພື່ອ ທຸກໆການປ່ຽນແປງ ຕັ້ງແຕ່ເທື່ອສຸດທ້າຍ ທີ່ ທ່ານເຂົ້າຫາ.",
        "exif-imagedescription": "ຫົວຂໍ້ຮູບ",
        "exif-artist": "ຜູ້ຂຽນ",
        "exif-copyright": "ເຈົ້າຂອງລິຂະສິດ",
-       "watchlistall2": "ທັງໝົດ",
        "namespacesall": "ທັງໝົດ",
        "monthsall": "ທັງໝົດ",
        "confirmemail": "ຢືນຢັນ ທີ່ຢູ່ ອີເມລ",
index f262071..f511adc 100644 (file)
        "uncategorizedtemplates": "Yegani coni kattegori",
        "unusedcategories": "Kattegori kopu",
        "unusedimages": "Imegi kopu",
-       "popularpages": "Petulo populali",
        "wantedcategories": "Ni sa kattegorina con ling'ki",
        "wantedpages": "Ni sa petulo con ling'ki",
        "mostlinked": "Petulo con plus ling'ki di a",
index cbca863..b1a590b 100644 (file)
        "mergehistory-reason": "دليل:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "سریک سازی پهرستنومه",
-       "pagemerge-logentry": " [[$1]] وا [[$2]] سریک سازی بی (وانیریا که د $3 فره تر هئن)",
        "revertmerge": "بی لوئه",
        "mergelogpagetext": "شما د هار نوم گه آخرین چیا وه یک شیوسن ویرگار یه بلگه نه د بلگه تر میئنیت.",
        "history-title": "دوواره دیئن ویرگار$1",
        "search-result-category-size": "{{جمی:$1|1 اندوم|$1 اندومیا}} ({{جمی:$2|1 زیردسه|$2 زیردسه یا}}, {{جمی:$3|1 جانیا|$3 جانیایا}}",
        "search-redirect": "(ورگشتن $1)",
        "search-section": "(بشق $1)",
+       "search-category": "(دسه $1)",
        "search-file-match": "(یکی کردن مینونه جانیا)",
        "search-suggest": "منظورت يه بی:$1",
        "search-interwiki-caption": "پروجه یا خوئر",
        "statistics": "آماريا",
        "statistics-header-pages": "بلگه آماریا",
        "statistics-header-edits": "آماریا نه ویرایشت بکید",
-       "statistics-header-views": "آماریا نه بوینیت",
        "statistics-header-users": "آماریا کاریار",
        "statistics-header-hooks": "آماریا هنی",
        "statistics-articles": "بلگه یا مینونه",
        "statistics-files": "جانیا یا سوار بیه",
        "statistics-edits": "ویرایشت بلگه یا د گاتی که  {{SITENAME}} دروس بیه",
        "statistics-edits-average": "میانگین ویرایشت یا سی هر بلگه",
-       "statistics-views-total": "همه نه بوینیت",
-       "statistics-views-total-desc": "دیئن بلگه یایی که وجود نارن و بلگه یا ویجه د ور گرته نئ",
-       "statistics-views-peredit": "هر ویرایشت نه بوینیت",
        "statistics-users": "ثوت نام بیه [[ویجه:نوم گه کاریاریا|کاریاریا]]",
        "statistics-users-active": "کاروریا کارکو",
        "statistics-users-active-desc": "کاریاریایی که د {{PLURAL:$1|رو|$1 رو}} دماتر کنشتگر بینه",
-       "statistics-mostpopular": "بلگه یایی که بیشتر دیئه بینه",
        "pageswithprop": "بلگه یایی که خاصیت صفحه ها دشو",
        "pageswithprop-legend": "بلگه یایی که خاصیت صفحه ها دشو",
        "pageswithprop-text": "ای بلگه نومگه ای یه د بلگه یایی که یه گل ویجه گی د یه بلگه خاص نه وه کار می بنن.",
        "uncategorizedtemplates": "قالویا دسه بنی نبیه",
        "unusedcategories": "دسه یا استفاده نبیه",
        "unusedimages": "فایلیا استفاده نبیه",
-       "popularpages": "بلگه یا حاستنی",
        "wantedcategories": "بلگه یا حاستنی",
        "wantedpages": "بلگه یا حاستنی",
        "wantedpages-badtitle": "سرون نامعتور د کومله نتیجه یا:$1",
        "pager-older-n": "{{جمی:$1|گپسالتر 1|گپسالتر $1}}",
        "suppress": "پائیئن",
        "querypage-disabled": "ای بلگه ویجه سی دلیلیا انجومکاری ناکشتگر بیه.",
+       "apihelp": "هومیاری آی پی آی",
+       "apihelp-no-such-module": "ماجول \"$1\" پیدا نبی.",
        "booksources": "سرچشمه يل كتاو",
        "booksources-search-legend": "پی جوری سی سرچشمه یا کتاو",
        "booksources-isbn": "آی اس بی ان:",
        "booksources-search": "پی جوری",
+       "booksources-text": "د هار نومگه ای د هوم پیوندیا د دیارگه یا هنی اومائه که کتاویا نو و دس دوئم می فروشن، و همچنو شایت دونسمنیا بیشتری راجع وه کتاو حاستنی شما داشتوئن:",
        "booksources-invalid-isbn": "شازک که دئه بیه معتور نئ؛ وارسی خطایا د گات ؤرداشتن د سرچشمه اولی وه کار گرته بوئه.",
        "specialloguserlabel": "انجومکار:",
        "speciallogtitlelabel": "حاستنی(موضوع یا کاریار):",
        "log": "نیسنن رخ ونیا",
        "all-logs-page": "همه پهرستنومه یا عمومی",
+       "alllogstext": "نماشت یه جا همه پهرستنومه یا که هان د{{SITENAME}}.\nمی تونید وا انتخاو نوع پهرستنومه، نوم کاریاری(حساس وه کؤچکی و گپی حرفیا) و بلگه یا آلشت کرده(حساس و گپی و کؤچکی حرنیا) نمایشت نه دیر د ویرتر بکیت.\n\n{{SITENAME}}.",
        "logempty": "او چی ای که شما میهایت د پهرستنومه نیئش.",
        "log-title-wildcard": "بلگه یایی نه پی جوری کو که وا ای سرون شرو موئن",
        "showhideselectedlogentries": "آلشت دئن ورتیه گر پهرستنومه یا انتخاو بیه",
        "cachedspecial-viewing-cached-ts": "شما داریت یه گل نسقه د ای بلگه نه که ها د مینجاگر سیل می کیت، و ای نسقه شایت کاملند راستکی نبا.",
        "cachedspecial-refresh-now": "دیئن آخری.",
        "categories": "دسه يا",
+       "categoriespagetext": "{{PLURAL:$1|دسه|دسه یا}} هاری دشو جانیایا یا بلگه {{PLURAL:$1|هئ|هیئن}}.\n[[Special:UnusedCategories|دسه یا وه کار نگرته بیه]] د ایچه نیئن.\nهمچنو[[Special:WantedCategories|دسه یا حاستنی نه]] بوینیت.",
        "categoriesfrom": "دسه یایی که د شرو بینه نشو بیه:",
        "special-categories-sort-count": "سرجاخودگری د اساس شمارشت",
        "special-categories-sort-abc": "سرجاخودگری د اساس الفبا",
        "linksearch-pat": "سازه یار پی جوری:",
        "linksearch-ns": "نوم جا:",
        "linksearch-ok": "پی جوری",
+       "linksearch-text": "نشونه یا چی «‎*.wikipedia.org» نم بوئه وه کار گرت.\nد کمترونه یه گل پوشگر ریتراز وارو، .\"*.org\" میها.<br />\n{{PLURAL:$2|پروتکل|پروتکل یا}} بی حامین: <code>$1</code> (پیش حاست سی http:// د حال وباری که پروتکل میزوکاری نبیه با).",
        "linksearch-line": "$1 داره د $2 هوم پیوند بوئه",
        "linksearch-error": "نشونه یا فقط د اول نوم مئموندار اینترنتی می تونن وه کار گرته بان.",
        "listusersfrom": "کاریاریایی که د شرو بینه نشو بیه:",
        "activeusers-hidesysops": "دیوون داریا نه قام کو",
        "activeusers-noresult": "هیچ کاروری پیدا نبی",
        "listgrouprights": "حقوق گرو کاریاری",
+       "listgrouprights-summary": "نومگه های گرته د ور گرویا کاریاری تعریف بیه د ای ویکی و اختیارات دئه بیه د ونونه.\nدونسمنیا بیشتر دباره هرکوم د اختیارات نه د   [[{{MediaWiki:Listgrouprights-helppage}}]] پیدا بکیت.",
        "listgrouprights-key": "Legend:\n* <span class=\"listgrouprights-granted\">دئه بیه د سمت راست</span>\n* <span class=\"listgrouprights-revoked\">انجوم شیو بیه د سمت راست</span>",
        "listgrouprights-group": "دسه",
        "listgrouprights-rights": "حقوقیا",
        "listgrouprights-namespaceprotection-namespace": "نوم جا",
        "listgrouprights-namespaceprotection-restrictedto": "دسرسیا مجاز کاریار سی ویرایشت",
        "trackingcategories": "دما گری دسه یا",
+       "trackingcategories-summary": "ای بلگه نومگه دسه یایی دماگری بیه ئه که وه شکل خودانجوم وه دس ویکی وارسگر پر بوئن . نومیا ونو نها آلشت کردن پیغومیا سامونه ای مرتوط د نومجا {{ns:8}} آلشت دئه با.",
        "trackingcategories-msg": "دماگری دسه",
        "trackingcategories-name": "نوم پیغوم",
        "trackingcategories-desc": "جادیارکنیا گنجایشت دسه",
+       "noindex-category-desc": "ای بلگه وا رباتیا نومگه کاری نبیه و سی یه کلیمه یا جادویی <code><nowiki>__NOINDEX__</nowiki></code> د وه یا د جاگه ای که بیرق مجازه دش هئ.",
+       "index-category-desc": "ای بلگه<code><nowiki>__INDEX__</nowiki></code> که ها دش(و د نومجایی یه که بیرق دش مجازه)،  سی یه وا رباط ما مشگلی ناره که وه شکل عادی نباید با.",
        "broken-file-category-desc": "بلگه مینونه دار یه گل هوم پیوند جانیا خراوه(هوم پیوندی سی جاسازی کردن یه گل جانیا سی گاتی که او جانیا نئئش).",
        "trackingcategories-nodesc": "هیچ شرحی د دسرس نئ.",
        "trackingcategories-disabled": "دسه ناکشتگر بیه",
        "whatlinkshere-page": "بلگه",
        "linkshere": "بلگیا نهایی د '''[[:$1]]''' هوم پیوند بیه",
        "nolinkshere": "هیژ بگله ای د  '''[[:$1]]''' هوم پیوند نبیه",
+       "nolinkshere-ns": "هیچ بلگه ای د نومجا انتخاو بیه وه'''[[:$1]]''' هوم پیوند ناره.",
        "isredirect": "بلگه دوباره ورگشتن",
        "istemplate": "نشونی دئن",
        "isimage": "فایل هوم پیوند",
        "ipaddressorusername": "نوم نشون آی پی يا نوم كاروری:",
        "ipbexpiry": "تموم بين:",
        "ipbreason": "دليل:",
+       "ipb-hardblock": "پیشگری د ویرایشت کردن کاریاریی که د طریق ای تیرنشون آی پی وامین اومانه.",
        "ipbcreateaccount": "نهاگری دروس کردن حساو",
        "ipbemailban": "نهاگرتن کاریار د کل کردن انجومانامه",
        "ipbenableautoblock": "بستن خودانجوم آخری تیرنشون آی پی وه کار گرته بیه وه دس کاریار و تیرنشونیا هنی که که د ونو سی ویرایشت وه سعی می کن.",
        "badipaddress": "تیرنشون نامعتور آی پی",
        "blockipsuccesssub": "قلف کردن د خوئی انجوم بی",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] بسته بیه.<br />\nسی وارسی بسته بیه یا [[Special:BlockList|نوم گه بسته بیه یا ]] نه سیل بکیت.",
+       "ipb-blockingself": "شما د حال نهاگری خوتونیت! آیا دلراس هیئت که میهایت چنی کاری انجوم بیتو؟",
        "ipb-edit-dropdown": "ویرایشت دلیلیا نهاگرتن",
        "ipb-unblock-addr": "وا کردن قلف $1",
        "ipb-unblock": "واز کردن نوم کاریاری یا تیرنشون آی پی",
        "emailblock": "انجومانامه ناکشتگر بیه",
        "blocklist-nousertalk": "نبوئه بلگه چک چنه خوتونه ویرایشت بکید",
        "ipblocklist-empty": "جاگه نوم گه حالیه",
+       "ipblocklist-no-results": "دسرسی نوم کاریاری یا تیرنشون آی پی حاسته بیه نهاگری نبیه.",
        "blocklink": "بسته بوئه",
        "unblocklink": "بی قطی",
        "change-blocklink": "اجازه نديئن سی  آلشت",
        "emaillink": "انجومانامه نه کل کو",
        "blocklogpage": "قلف",
        "blocklogentry": " [[$1]] وا یه گل وخت تموم بیئن $2 و $3  قلف بیه",
+       "reblock-logentry": "میزوکاری سی نهاگری[[$1]] آلشت بیه سی آخر نهاگری د $2 $3",
        "unblocklogentry": "وا کردن قلف $1",
        "block-log-flags-anononly": "فقط کاریاریایی که نادیارن",
        "block-log-flags-nocreate": "حساو راس کردن عاجز بیه.",
        "block-log-flags-nousertalk": "نبوئه بلگه چک چنه خوتونه ویرایشت بکید",
        "block-log-flags-angry-autoblock": "نهاگری خودانجوم پئشکرده کنشتگر بیه",
        "block-log-flags-hiddenname": "نوم کاروری قام بیه",
+       "range_block_disabled": "درس کردن بسن یه گل پوشگر وه دس دیوونداریا ناکنشتگر بیه.",
        "ipb_expiry_invalid": "گات تموم بیین نامعتوره.",
+       "ipb_expiry_temp": "نهاگری نوم کاریاریا قام بیه واس همیشه یی با.",
        "ipb_already_blocked": "\"$1\" ایسه نهاگری بیه.",
+       "ipb-needreblock": "$1 د دماتر نهاگری بیه. آیا میهایت میزوکاری ونه آلشت بیتو؟",
        "ipb-otherblocks-header": "هنی{{PLURAL:$1|نهاگرتن|نهاگرتنیا}}",
        "ip_range_invalid": "پوشگر نامعتور آی پی",
+       "ip_range_toolarge": "نهاگری پوشینه یا گپتر $1/ مجاز نئ.",
        "proxyblocker": "قلف کننه پروکسی",
        "sorbs": "دی ان اس بی ال",
+       "ipbnounblockself": "شما صلادار وارکدن دسرسی خوتو نییت.",
        "lockdb": "قلف کردن رسینه گا",
        "unlockdb": "رسینه گا قلف نبیه",
+       "lockconfirm": "هره، مه واقعند میهام که رسینه گا نهاگری با.",
        "unlockconfirm": "هره، مه واقعند میهام که رسینه گا وا بوئه.",
        "lockbtn": "قلف کردن رسینه گا",
        "unlockbtn": "رسینه گا قلف نبیه",
+       "locknoconfirm": "شما کلیت پشت راسکاری نه نشودار نکردیته.",
        "lockdbsuccesssub": "رسینه گا د خوئی قلف بیه",
        "unlockdbsuccesssub": "قلف رسینه گا ؤرداشته بیه",
+       "unlockdbsuccesstext": "رسینه گا وا بیه.",
        "databasenotlocked": "رسینه گا وازه.",
        "lockedbyandtime": "(وا{{GENDER:$1|$1}} د $2 د$3)",
        "move-page": "$1 جا وه جا کو",
        "movearticle": "جا وه جا کردن بلگه:",
        "movenotallowed": "شما وه جا وه جا کردن بلگه دسرسی ناریت",
        "movenotallowedfile": "شما وه جا وه جا کردن جانیایا دسرسی ناریت",
+       "cant-move-category-page": "شما صلا ینه که دسه یا نه ناریت.",
+       "cant-move-to-category-page": "شما صلا ینه که یه بلگه نه بوریت وه بلگه دسه ناریت.",
        "newtitle": "سی سرون هنی:",
+       "move-watch": "دیئن بلگه سرچشمه و بلگه حاستنی",
        "movepagebtn": "بلگه جا وه جا کو",
        "pagemovedsub": "د خوئی جا وه جا بیه",
+       "movepage-moved": "<strong>\"$1\" جا وه جا بیه سی \"$2\"</strong>",
        "movepage-moved-redirect": "یه گل واگردونی دروس بیه.",
+       "movepage-moved-noredirect": "د دروس کردن واگردونی جلوگری بیه.",
+       "movetalk": "بلگه چک چنه ئم جا وه جا بوئه",
+       "move-subpages": "جا وه جایی بلگه یا(تا $1 بلگه)",
+       "move-talk-subpages": "جا وه جا کردن زیر بلگه یا بلگه چک چنه (تا $1 بلگه)",
+       "movepage-page-moved": "بلگه $1 د $2 جا وه جا بیه",
+       "movepage-page-unmoved": "نبوئه بلگه $1 د $2 جا وه جا بوئه",
        "movelogpage": "جاوه جا کردن",
        "movelogpagetext": "د هار یه گل نوم گه د جا وه جایی یا بلگه هئ",
+       "movesubpage": "{{جمی:$1|زیر بلگه|زیر بلگه یا}}",
+       "movenosubpage": "ای بلگه زیر بلگه نئ.",
        "movereason": "دلیل:",
        "revertmove": "لرستن",
        "delete_and_move": "پاکسا و جا وه جا بوئه",
        "delete_and_move_confirm": "هری بلگه نه پاکسا کو",
+       "delete_and_move_reason": "پاکساکاری سی ممکن بیین جا وه جایی «[[$1]]»",
+       "immobile-source-namespace": "نبوئه بلگه یا نه وه نومجا \"$1\" جا وه جا با",
+       "immobile-target-namespace": "نبوئه بلگه یا نه وه نومجا \"$1\" جا وه جا با",
+       "immobile-target-namespace-iw": "هوم پیوند مینجاویکی حاستنی مجازی سی جا وه جا کردن بلگه نئ.",
        "immobile-source-page": "ای بلگه جا وه جا کردنی نئ.",
+       "immobile-target-page": "نبوئه وه ای مقصد چنی سرونی جا وه جا بوئه.",
+       "imagenocrossnamespace": "نبوئه جانیانه وه یه گل نومجا غیرجانیایی جا وه جا بکیت",
+       "nonfile-cannot-move-to-file": "نبوئه جانیانه وه یه گل نومجا غیرجانیایی جا وه جا بکیت",
+       "imagetypemismatch": "دماون جانیا تازه وا نوع وه سازگاری ناره",
+       "imageinvalidfilename": "نوم جانیا هدف معتور نئ",
+       "fix-double-redirects": "وه هنگوم سازی همه واگردونیایی که وه گوتار اصلی هشاره میکن",
        "move-leave-redirect": "وه جا نیائن یه گل واگردونی",
        "protectedpagemovewarning": "<strong>زئنار:ای بلگه سی یه پر و پیم بیه که کاریاریایی که دسرسی دیوونداری دارن فقط بتونن دش ویرایشت بکن.</strong>\nآخرین سیائه سی سرچشمه یا د هار اماییه کاری بیه:",
        "semiprotectedpagemovewarning": "<strong>د ویر داشتویت:</strong> ای بلگه سی یه که فقط کاریاریا ثوت نام کرده تونستون دش ویرایشت بکه ن پر و پیم بیه.\nآخرین پهرستنومه دئه بیه سی سرچشمه هار نها اماییه بیه:",
        "export": "وه صحرا ديئن بلگيا",
        "exportall": "وه صحرا ديئن همه بلگيا",
+       "exportcuronly": "فقط مینونه دار وانئری ایسنی با،نه همه ویرگار نه",
+       "exportlistauthors": "مینونه دار نومگه کامل هومیاریا سی هر بلگه",
        "export-submit": "وه در ديئن",
+       "export-addcattext": "اضاف کردن بلگه یا د یه گل دسه:",
        "export-addcat": "اضاف کو",
+       "export-addnstext": "اضاف کردن بلگه یا د یه نومجا:",
        "export-addns": "اضاف كو",
        "export-download": "ذخیره کردن جانیا",
        "export-templates": "شامل چوئه یا",
+       "export-pagelinks": "مینونه دار بیین بلگه یا هوم پیوند تا ای پی یا:",
        "allmessages": "سامونه پیغومیا",
        "allmessagesname": "نوم",
        "allmessagesdefault": "سفارشت متنی پيش فرض",
        "allmessagescurrent": "نیسسه ایسنی پیغوم",
        "allmessages-filter-legend": "فیلتر",
+       "allmessages-filter": "فیلتر کردن د اساس شخصی کردن:",
        "allmessages-filter-unmodified": "آلشت نبیه",
        "allmessages-filter-all": "همه",
        "allmessages-filter-modified": "آلشت بیه",
        "thumbnail-more": "گپ كردن",
        "filemissing": "گم بیئن جانیا",
        "thumbnail_error": "خطا د راس بیئن بن کلئکی:$1",
+       "thumbnail_error_remote": "پیغوم خطا $1 :\n$2",
+       "djvu_page_error": "بلگه DjVu وه در د حد مجاز",
+       "djvu_no_xml": "امکان پیدا کردن جانیا XML سی وه کار گرتن DjVu وجود ناشت.",
+       "thumbnail-temp-create": "نبوئه جانیا موقت بن کلیکی نه راست بکیت",
+       "thumbnail-dest-create": "نبوئه بن کلیکی نه د مقصدش اماییه بکیت",
+       "thumbnail_invalid_params": "بن کلیکی وا پارامتریا نامعتور",
+       "thumbnail_dest_directory": "نبوئه دایرکتوری مقصد نه درست بکیت",
+       "thumbnail_image-type": "نوع عسگ حامیین داری نبوئه",
+       "thumbnail_image-missing": "وه ویر و باور میا که جانیا گم بیه:$1",
        "import": "وامین اوردن بلگه یا",
+       "importinterwiki": "وامین اوردن ترانس ویکی",
        "import-interwiki-sourcewiki": "سرچشمه ویکی:",
        "import-interwiki-sourcepage": "بلگه سرچشمه:",
+       "import-interwiki-history": "ؤرداشتن ویرگار همه وانئریا سی ای بلگه",
        "import-interwiki-templates": "همه چوئه یا",
        "import-interwiki-submit": "وامین اوردن",
        "import-interwiki-namespace": "نومجا مقصد:",
+       "import-interwiki-rootpage": "ریشه بلگه مقصد(دل به حایی):",
        "import-upload-filename": "نوم جانیا:",
        "import-comment": "ویر و باور:",
        "importstart": "د حال و بار وامین اوردن",
        "import-revision-count": "$1 {{جمی:$1|وانئری|وانئریا}}",
        "importnopages": "هیچ بلگه ای وامین نیومائه.",
+       "imported-log-entries": "$1 {{PLURAL:$1|داده وار پهرستنومه|داده وار پهرستنومه یا}} وامین اومائه.",
        "importfailed": "وامین اوردن شکست حرده: <nowiki>$1</nowiki>",
+       "importunknownsource": "نوع سرچشمه وامین اوردن نادیاره",
        "importcantopen": "نبوئه جانیا دئه بیه نه وا بکید",
        "importbadinterwiki": "هوم پیوند مینجاویکی گن",
        "importsuccess": "وامین اوردن تموم بی!",
        "importnofile": "هیچ جانیا دئه بیه ای سوار نبیه.",
+       "importuploaderrorpartial": "د سوارکرد وامین اوردن جانیا شکستی پیش اومائه.\nانازه جانیا د انازه بیشترونه مجاز گپتره.",
+       "importuploaderrortemp": "د سوارکرد جانیا وامین اوردن مشگلی پیش اومائه.\nتابنده موقت گم بیه.",
+       "import-parse-failure": "خطا د وااشکافت یه گل وامین اوردن ایکس ام ال",
        "import-noarticle": "هیچ بلگه ای سی وامین اوردن نئ!",
+       "import-nonewrevisions": "وانئرییا وامین اورده نبیه(همه یا د ایسنی هئشو، یا سی پیش اومائن خطا ور نظر نبینه).",
+       "xml-error-string": "$1 د خط$2, ستین $3 (byte $4): $5",
        "import-upload": "سوار کرد دونسمنیا ایکس ام ال",
        "import-token-mismatch": "کمبود د دونسمنیا نشینگه.\nلطفن هنی کوششت بکید.",
+       "import-invalid-interwiki": "نبوئه د ویکی دیارکرده چی یی وامین اورد.",
+       "import-error-edit": "بلگه «$1» وامین نیومائه، سی یه که شما نمی تونیت ونه ویرایشت بکیت.",
+       "import-error-create": "بلگه «$1» وامین نیومائه، سی یه که شما نمی تونیت ونه راست بکیت.",
+       "import-error-interwiki": "بلگه «$1» وامین نیومائه، سی یه که نوم وه سی یه گل هوم پیوندگری خارجی اماییه کاری بیه(مینجا ویکی).",
+       "import-error-special": "بلگه «$1» وامین نیومائه، سی یه که وه مال وه یه گل نومجا خاصه که او بلگه یا صلادار نئین.",
+       "import-error-invalid": "بلگه \"$1\"  سی یه که نامعتور بیین نومش ممکن بی د ویکی وامین اورده نبیه.",
+       "import-error-unserialize": "نبوئه وه دراوردن بلگه $2 د بلگه «$1» د شکل رازینه کاری بیه نه انجوم بییت.چؤ اومائه که نسقه ای د مدل مینونه $3 وه کار گرته که وه د شکل $4 رازینه کاری بیه.",
+       "import-options-wrong": "{{PLURAL:$2|جزئیات|جزئیات}} اشتوا: <nowiki>$1</nowiki>",
+       "import-rootpage-invalid": "ریشه دئه بیه د بلگه یه گل سرون نامعتوره.",
+       "import-rootpage-nosubpage": "نومجا \"$1\" بلگه پایه صلا زیر بلگه نه نمی یه.",
        "importlogpage": "پهرستنومه دئن",
+       "importlogpagetext": "وامین اوردن بلگه یا وا ویرگارچه ویرایشت ونو د ویکی یا هنی",
+       "import-logentry-upload": "[[$1]] نه د طریق سوارکرد جانیا وامین اورد",
+       "import-logentry-upload-detail": "$1 {{جمی:$1|وانئری|وانئریا}} وامین اومانه",
+       "import-logentry-interwiki": "$1 نه تراویکی کرد",
+       "import-logentry-interwiki-detail": "$1 {{جمی:$1|وانئری|وانئریا}} د $2 وامین اومائنه",
        "javascripttest": "ازمایشت کردن جاوا اسکریپت",
+       "javascripttest-title": "د حال انجوم دئن ازمایشتیا $1",
+       "javascripttest-pagetext-noframework": "ای بلگه سی انجوم دئن ازمایشتیا جاوا اسکریپت اماییه کاری بیه.",
+       "javascripttest-pagetext-unknownframework": "چوئه کار نادیار ازمایشت \"$1\"",
+       "javascripttest-pagetext-frameworks": "لطفن یه گل د چوئه یا ازمایشت هاری نه انتخاو بکیت :$1",
+       "javascripttest-pagetext-skins": "یه گل پوسه نه سی انجوم دئن ازمایشتا انتخاو بکیت:",
+       "javascripttest-qunit-intro": "[$1 مستندیا ازمایشت] نه د mediawiki.org سیل بکیت.",
+       "javascripttest-qunit-heading": "کومله ازمایشت QUnit جاوااسکریپت سی ویکی وارسگر",
        "tooltip-pt-userpage": "بلگه كارورتو",
+       "tooltip-pt-anonuserpage": "بلگه کاریاری تیرنشون آی پی ای که دش ویرایشت می کید",
        "tooltip-pt-mytalk": "بلگه قسه كردن شما",
+       "tooltip-pt-anontalk": "چک چنه دباره ویرایشتیا ای تیرنشون آی پی",
        "tooltip-pt-preferences": "اولويتيا شما",
        "tooltip-pt-watchlist": "نوم نوشت د بلگه يايی كه شما آلشتاشونه پيگئری  ميكيد",
        "tooltip-pt-mycontris": "يه گل د هومياريا شما",
        "tooltip-ca-viewsource": "ای بلگه حفاظت بيه.\nشما تونيت سرچمه ش بئوينيت",
        "tooltip-ca-history": "دوواره ديئن ای بلگه",
        "tooltip-ca-protect": "ای بلگه نه حفاظت بكيد",
+       "tooltip-ca-unprotect": "پر و پیم گیری د ای بلگه نه آلشت بکیت",
        "tooltip-ca-delete": "ای بلگه نه پاکسا کو",
+       "tooltip-ca-undelete": "د نو زنه کردن ویرایشتیا ری ای بلگه دما یه که پاکساگری بان",
        "tooltip-ca-move": "ای بگله نه جا وه جا كو",
        "tooltip-ca-watch": "اضاف کردن ای بلگه وه نوم نوشت پیگئریاتو",
        "tooltip-ca-unwatch": "ورداشتن ای بلگه وه نوم نوشت پیگئریاتو",
        "tooltip-feed-atom": "تغذيه كؤچك سی ای بلگه",
        "tooltip-t-contributions": "یه نوم گه د هومیاریا ای کارور",
        "tooltip-t-emailuser": "سی ای كارور ايميل كل كو",
+       "tooltip-t-info": "دونسمنیا بیشتر دباره ای بلگه",
        "tooltip-t-upload": "بلم گير كردن فايلا",
        "tooltip-t-specialpages": "سيائه تمؤم بلگيا خاص",
        "tooltip-t-print": "نسقه چاپ بيئنی سی ای بلگه",
        "tooltip-diff": "آلشتیا نه که شما د ای متن راس کردیته نشو بیئه",
        "tooltip-compareselectedversions": "فرخیا مینجا دو تا د دو بار دیئن ای بلگه نه بوینیت",
        "tooltip-watch": "ای بلگه نه د سیل برگتو اضاف بکید",
+       "tooltip-watchlistedit-normal-submit": "ؤرداشتن سرونیا",
        "tooltip-watchlistedit-raw-submit": "وه هنگوم سازی سیل برگ",
+       "tooltip-recreate": "د نو راس کردن بلگه بی یه که و پاکساگری دماتر وه سیل بکیم",
        "tooltip-upload": "شرو د سوار کرد",
        "tooltip-rollback": "\"ورگشتن\" لرستن د حالت اول  سی ای بلگه  که سی  يه كه هومياری  نيايی اصلاح بيه وا يه پورنسن",
        "tooltip-undo": "انجوم نگرتن ای ویرایشت ورگن و همه فرمیا ویرایشت تانه که حالت پیش سیل واکو.یه اجازه میئه سی اضاف کردن یه دلیل د چکسته.",
+       "tooltip-preferences-save": "اولويتيا نه ذخيره بكيد",
        "tooltip-summary": "يه چكسته كؤچك وارد بكيد",
        "interlanguage-link-title": "$1-$2",
        "interlanguage-link-title-nonlang": "$1 – $2",
        "anonymous": "ناشناس {{جمی:$1|کارور|کاروریا}}  {{سیل جا}}",
+       "siteuser": "{{نوم سیلجا}} کارور $1",
        "anonuser": "{{سیل جا}}  کارور ناشناس $1",
+       "lastmodifiedatby": "ای بلگه آخری بار د $1,$2 وه دس $2 آلشت دئه بیه.",
+       "othercontribs": "د اساس کار وا $1.",
        "others": "دیه رون",
        "siteusers": "{{نوم سیل جا}} {{جمی:$2|کارور|کاروریا}} $1",
+       "anonusers": "{{نوم سیل جا}} نادیار {{جمی:$2|کاریار|کاریاریا}} $1",
        "creditspage": "اعتوار بلگه",
+       "nocredits": "دونسمنیا راس کننه یا ای بلگه د دسرس نئ",
+       "spamprotectiontitle": "فیلتر پر و پیم گری د اسپم",
+       "spamprotectionmatch": "نیسسه هاری چی ای یه که فیلتر اسپم ایما نه ونه د کار: $1",
+       "spambot_username": "اسپم پاک کن ویکی وارسگر",
+       "spam_reverting": "واگردونی وه آخری نسقه ای که هوم پیوندی وه $1 ناره.",
+       "spam_blanking": "همه وانئریایی که مینونه دار هوم پیوند $1 هئن، دارن حالی بوئن",
+       "spam_deleting": "همه وانئریایی که مینونه دار هوم پیوند $1 هئن، دارن پاکساگری بوئن",
+       "simpleantispam-label": "وارسی ضد اسپم.\nای \"جاگه\" نه پر نکیت!",
        "pageinfo-title": "دونسمنیا سی \"$1\"",
+       "pageinfo-not-current": "د بدبختی،نبوئه که ای دونسمنیا نه سی وانئریا دماتری نهااماییه بکیت.",
        "pageinfo-header-basic": "دونسمنیا پایه",
        "pageinfo-header-edits": "ویرایشت ویرگار",
        "pageinfo-header-restrictions": "پر و پیم کردن بلگه",
        "pageinfo-header-properties": "چیا بلگه",
+       "pageinfo-display-title": "نشو دئن سرون",
+       "pageinfo-default-sort": "کلیت سرجا یک کن پیش فرض",
        "pageinfo-length": "انازه بلگه(وه بایت)",
        "pageinfo-article-id": "نوم دیار کن بلگه",
        "pageinfo-language": "بلگه مینونه زون",
        "pageinfo-content-model": "شلگ مینونه بلگه",
+       "pageinfo-robot-policy": "نومگه کاری وا رباتیا",
        "pageinfo-robot-index": "صلادار",
        "pageinfo-robot-noindex": "بی صلا",
-       "pageinfo-views": "شماره دیئن یا",
        "pageinfo-watchers": "شماره سیل کننه بلگه یا",
+       "pageinfo-few-watchers": "کمتر د $1 {{PLURAL:$1|سیل کننه|سیل کننه یا}}",
        "pageinfo-redirects-name": "شماره واگردونیا ای بلگه",
        "pageinfo-redirects-value": "$1",
+       "pageinfo-subpages-name": "انازه زیربلگه یا ای بلگه",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|واگردونی|واگردونیا}}; $3 {{PLURAL:$3|بی واگردونی|بی واگردونیا}})",
        "pageinfo-firstuser": "بلگه راس کن",
        "pageinfo-firsttime": "گات دروس بیین بلگه",
        "pageinfo-lastuser": "آخری ویرایشتگر",
        "pageinfo-lasttime": "گات آخری ویرایشت",
        "pageinfo-edits": "شماره همه ویرایشتیا",
+       "pageinfo-authors": "شماره کلی نویسنه یا یکونه",
+       "pageinfo-recent-edits": "شماره ویرایشتیا ایسنی (د $1 دماتر)",
+       "pageinfo-recent-authors": "شماره کلی نویسنه یا یکونه",
+       "pageinfo-magic-words": "جادویی{{PLURAL:$1|کلیمه|کلیمه یا}} ($1)",
+       "pageinfo-hidden-categories": "$1{{جمی:$1|دسه|دسه يا}} قام بیه",
+       "pageinfo-templates": "{{PLURAL:$1|چوئه|چوئه یا}} وه کار گرته بیه($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|بلگه|بلگه یا}} وه کار گرته بیه د ($1)",
        "pageinfo-toolboxlink": "دونسمنیا بلگه",
        "pageinfo-redirectsto": "واگردونی سی",
        "pageinfo-redirectsto-info": "دونسمنیا",
        "pageinfo-category-pages": "شماره بلگيا",
        "pageinfo-category-subcats": "شماره زیر دسه یا",
        "pageinfo-category-files": "شماره جانیایا",
+       "markaspatrolleddiff": "نشو دار کردن چی سردیاری بیه",
+       "markaspatrolledtext": "ای بلگه نه چی بلگه ای که سردیاری کرده با نشودار کو",
+       "markedaspatrolled": "نشو دار کردن چی سردیاری بیه",
+       "rcpatroldisabled": "سردیاری کردن سی آلشتیا ایسنی ناکنشتگر بیه",
+       "rcpatroldisabledtext": "خصوصیت سردیاری کردن د ری آلشتیا ایسنی تازه ای یا ناکشتگر بیه.",
+       "markedaspatrollederror": "نبوئه چی یه گل سردیاری کرده نشودار با",
+       "markedaspatrollederrortext": "شما واس سی نشودار کردن یه گل وانئری چی سردیاری کرده ونه تیار بکیت.",
+       "markedaspatrollederror-noautopatrol": "شما صلا یه نه که آلشتیا خوتونه چی یه که سردیاری کرده بان ناریت.",
+       "markedaspatrollednotify": "آلشتیایی که مال $1 چی یه گل چی سردیاری کرده نشودار بینه.",
+       "markedaspatrollederrornotify": "نشودار کردن چی نشودار بیه شکست حرده",
        "patrol-log-page": "پهرستنومه گشتن",
+       "patrol-log-header": "یه پهرستنومه وانئریا سردیاری کرده هئ.",
+       "log-show-hide-patrol": "$1 پهرستنومه سردیاری کردن",
+       "deletedrevision": "وانئری دماتری پاکسابیه د $1",
        "filedeleteerror-short": "خطا پاک نبیئن جانیا:$1",
+       "filedeleteerror-long": "د گات پاکسا کردن جانیا یه گل خطا پیش اوما:\n\n\n$1",
+       "filedelete-missing": "نبوئه جانیا \"$1\" نه پاکسا بکیت سی یه که وه وجود ناره.",
+       "filedelete-old-unregistered": "وانئری جانیا تیارکرده \"$1\" د رسینه جا وجود ناره.",
+       "filedelete-current-unregistered": "جانیا تیارکرده \"$1\" د رسینه جا نئیش.",
+       "filedelete-archive-read-only": "نشونگه مال دیارکردن ($1) د لا سرور قاول نیسنن نئ.",
        "previousdiff": "← ويرايشت كۈهنه تر",
        "nextdiff": "ويرايشت تازه تر",
+       "imagemaxsize": "انازه عسگ:<br /><em>(سی شرح جانیا بلگه یا)</em>",
+       "thumbsize": "انازه بن کلکی:",
        "widthheight": "$1 × $2",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|بلگه|بلگه یا}}",
        "file-info": "انازه جانیا: $1, MIME type: $2",
        "file-info-size-pages": "$1 × $2 pixels, انازه جانیا: $3, MIME type: $4, $5 {{PLURAL:$5|بلگه|بلگه یا}}",
        "file-nohires": "عسك ون بالاتري دش ني",
        "svg-long-desc": "اس وی جی فايل.نومنا $1 $2 پيكسل",
+       "svg-long-desc-animated": "جانیا جمشدار اس وی جی .نومنا $1 × $2 پيكسل،انازه جانیا:$3",
+       "svg-long-error": "جانیا اس وی جی نامعتور:$1",
        "show-big-image": "فایل اصلی",
+       "show-big-image-preview": "انازه ای پیش سیل:$1.",
+       "show-big-image-other": "هنی{{PLURAL:$2|گپ نما کردن|گپ نما کردنیا}}: $1.",
        "show-big-image-size": "$1 × $2 pixels",
        "file-info-gif-looped": "حلقه دار",
        "file-info-gif-frames": "$1 {{PLURAL:$1|فریم|فریمیا}}",
        "file-info-png-repeat": "$1 بازی کرده{{جمی:$1|وخت|وختیا}}",
        "file-info-png-frames": "$1 {{PLURAL:$1|فریم|فریمیا}}",
        "newimages": "عسگدونی جانیایا تازه",
+       "imagelisttext": "د هار نومگه <strong>$1</strong> {{PLURAL:$1|جانیا|جانیایا}} اماییه جا بیه$2.",
        "newimages-summary": "ای بلگه یا ویجه همه جانیایا سوار بیه نه نشو می ئین.",
        "newimages-legend": "فیلتر",
        "newimages-label": "نوم جانیا(یا بشقی د وه):",
+       "newimages-showbots": "سوارکردیا نه وا بوتیا نشو بیه",
        "noimages": "هیچی سی دیئن نئ",
        "ilsubmit": "پی جوری",
        "bydate": "وا گات",
        "minutes-ago": "$1 {{PLURAL:$1|دیقه|دیقه یا}} دماتر",
        "seconds-ago": "$1 {{PLURAL:$1|ثانیه|ثانیه یا}} دماتر",
        "monday-at": "دوشمه د $1",
+       "tuesday-at": "سه شمه د $1",
+       "wednesday-at": "چارشمه د $1",
+       "thursday-at": "پن شمه د $1",
+       "friday-at": "جمه د $1",
+       "saturday-at": "شمه د $1",
+       "sunday-at": "یه شمه د $1",
+       "yesterday-at": "دیرو د $1",
        "bad_image_list": "دونسمنديانه وه ای شلگ وارد بكيت:\n\nفقط سرخط يایی که وا * شرو بوئن د وير گرته بوئن. اولی چسب ون مئن هر سرخط، باید چسب ونی وه یک عسگ گن با.\nچسب ونيا نيایی د همو سرخط، وه عنوان چيا استثنادار د وير گرته بوئن",
        "metadata": "داديا  فره گپ",
        "metadata-help": "ای فایل شومل دونسمنیا هنی یه.شایت د دیربین رقم ون یا اسکنری که سی راس کردنشو استفاده بیه،وه ایچه اضاف بیه",
+       "metadata-expand": "نشو دئن جزییات دمادیسگری",
+       "metadata-collapse": "قام کردن جزییات دمادیسگری",
        "metadata-fields": "رشته یا گپ دونسمنیا که د ای پیغوم نوم ون بینه شومل بلگه عسگ ن که وختی که جدول گپ دونسمنیا وا بوئه نشون دئیه بوئن.\nچی یا هنی سی یه که پیش فرضن قام بوئن.\n*راست کو\n*مدل\n*دم وخت اصل\n*وخت آشگار\n*اف ان شماره\n*ایزو نرخ من سرعت\n*فوکالنس\n*هنرمن\n*کپی رایت\n*حالت جی پی اس \n*جی پی اس گپ حالت\n*جی پی اس همه حالت",
        "metadata-langitem": "<strong>$2:</strong> $1",
        "metadata-langitem-default": "$1",
        "exif-imagewidth": "پئنا",
        "exif-imagelength": "بلنگی",
+       "exif-bitspersample": "نقطه یا سی هر اندوم",
+       "exif-compression": "شیوات جم و جور کردن",
+       "exif-photometricinterpretation": "ترکیو پیکسل",
+       "exif-orientation": "سرچشمه",
+       "exif-samplesperpixel": "شماره اندومیا",
        "exif-planarconfiguration": "سرجایک کردن رسینه",
+       "exif-ycbcrsubsampling": "نسوت زیرنمونه Y وه C",
+       "exif-ycbcrpositioning": "جاگری کردن Y و C",
+       "exif-xresolution": "گپ نما کردن د آسو",
+       "exif-yresolution": "گپ نما کردن د وارو",
+       "exif-stripoffsets": "جاگه رسینه یا عسگ",
+       "exif-rowsperstrip": "انازه ردیفیا سی هر نوار",
+       "exif-stripbytecounts": "نقطه یا سی هر نوار جمع و جور بیه",
+       "exif-jpeginterchangeformat": "جا وه جایی نسوت وه JPEG SOI",
+       "exif-jpeginterchangeformatlength": "بایت رسینه JPEG",
+       "exif-whitepoint": "رئن دار بین جاگه اسبئ",
+       "exif-primarychromaticities": "رنگ گرتن چیا مهمتر",
+       "exif-ycbcrcoefficients": "ضریبا ماتریس جا وه جایی جاگه رئنی",
+       "exif-referenceblackwhite": "جفت انازه سرچشمه سیا و اسبئ",
        "exif-datetime": "آلشت دئن وخت و دمون جانیا",
+       "exif-imagedescription": "نوم عسگ",
        "exif-make": "سازنه دیربین",
+       "exif-model": "مدل دیربین",
+       "exif-software": "نرم افزار به کار گرتنی",
        "exif-artist": "نیسنه",
+       "exif-copyright": "حق تکثیر دار",
+       "exif-exifversion": "نسقه Exif",
+       "exif-flashpixversion": "نسقه حامین داری Flashpix",
        "exif-colorspace": "رئن جا",
+       "exif-componentsconfiguration": "مئنی هر اندوم",
+       "exif-compressedbitsperpixel": "شکل جمع و جیل کردن عسگ",
        "exif-pixelydimension": "پئنا عسگ",
        "exif-pixelxdimension": "درازا عسگ",
        "exif-usercomment": "ویر و باوریا کارور",
        "exif-relatedsoundfile": "جانیا دنگ دار مرتوط",
        "exif-datetimeoriginal": "دمون و وخت راس بیئن دونسمنیا",
+       "exif-datetimedigitized": "گات و وخت دیجیتالی کردن",
+       "exif-subsectime": "کم کردن ثانیه گات و وخت",
+       "exif-subsectimeoriginal": "کم کردن ثانیه گات اصلی",
+       "exif-subsectimedigitized": "کم کردن ثانیه گات دیجیتالی",
+       "exif-exposuretime": "گات نیر دئن",
+       "exif-exposuretime-format": "$1 ثانیه ($2)",
+       "exif-fnumber": "ضریب اف",
+       "exif-exposureprogram": "برنامه نیر دئن",
+       "exif-spectralsensitivity": "حساسیت طیفی",
+       "exif-isospeedratings": "گرینج گری سرعت سی ایزو",
+       "exif-shutterspeedvalue": "سرعت اپکس شاتر",
+       "exif-aperturevalue": "انازه اپکس دیافراگم",
+       "exif-brightnessvalue": "انازه برچ زئن اپکس",
+       "exif-exposurebiasvalue": "خطا نیر دئن اپکس",
+       "exif-maxaperturevalue": "بیشرونه د یک رئتن زمین",
+       "exif-subjectdistance": "فاصله سوجه",
+       "exif-meteringmode": "شکل سنجشت نیر",
+       "exif-lightsource": "سرچشمه نور",
        "exif-flash": "فلش",
+       "exif-focallength": "انازه کانونی عدسی",
+       "exif-subjectarea": "انازه اندومواره",
        "exif-flashenergy": "آز فلش",
+       "exif-focalplanexresolution": "گپ نما کردن X د بلگه کانونی",
+       "exif-focalplaneyresolution": "گپ نما کردن Y د بلگه کانونی",
+       "exif-focalplaneresolutionunit": "واحد",
+       "exif-subjectlocation": "جاگه موضوع",
+       "exif-exposureindex": "نشودیارکن نیردئن",
+       "exif-sensingmethod": "روشت حسگری کردن",
        "exif-filesource": "سرچشمه جانیا",
+       "exif-scenetype": "نوع حسگری کردن",
+       "exif-exposuremode": "شکل نیر دئن",
+       "exif-whitebalance": "موازنه نیر اسبئ",
+       "exif-digitalzoomratio": "نسوت گپ کردن دیجیتالی",
+       "exif-focallengthin35mmfilm": "انازه کانونی سی فیلم 35 میلیمتری",
+       "exif-scenecapturetype": "نوع ضفط کردن صئنه",
+       "exif-gaincontrol": "کنترل کردن صئنه",
+       "exif-contrast": "کنتراست",
+       "exif-saturation": "سیر بیین رئن",
+       "exif-sharpness": "گرینج برچ زئن",
+       "exif-devicesettingdescription": "شرح میزوکاری اوزار",
+       "exif-subjectdistancerange": "محدوده دیر د دس بیین سوجه",
+       "exif-imageuniqueid": "نوم دیار کن یکونه عسگ",
+       "exif-gpsversionid": "نسقه سردیس جی پی اس",
+       "exif-gpslatituderef": "پئنا ولاتشناسی شمالی و هارگه",
+       "exif-gpslatitude": "پئنا ولاتشناسی",
+       "exif-gpslongituderef": "درازا ولاتشناسی افتوزنون و افتونشین",
+       "exif-gpslongitude": "درازا ولاتشناسی",
+       "exif-gpsaltituderef": "جاگه سرچشمه بلنگی",
+       "exif-gpsaltitude": "جاگه بلنگی",
        "exif-gpstimestamp": "وخت جی پی اس (ساعت اتمی)",
+       "exif-gpssatellites": "ماواره یا وه کار گرته بیه سی انازه گری",
+       "exif-gpsstatus": "حال و بال گیرنه",
+       "exif-gpsmeasuremode": "شکل انازه گری",
+       "exif-gpsdop": "دقیق بیین انازه گری",
+       "exif-gpsspeedref": "واحد سرعت",
+       "exif-gpsspeed": "سرعت گیرنه جی پی اس",
+       "exif-gpstrackref": "سرچشمه سی لا جمشت",
+       "exif-gpstrack": "لا جمشت",
+       "exif-gpsimgdirectionref": "سرچشمه سی لا جمشت",
+       "exif-gpsimgdirection": "لا عسگ",
+       "exif-gpsmapdatum": "دونسمنیا وارسگری وه کار گرته بیه سی جئودزیک",
+       "exif-gpsdestlatituderef": "سرچشمه سی پئنا ولاتشناسی مقصد",
+       "exif-gpsdestlatitude": "پئنا ولاتشناسی مقصد",
+       "exif-gpsdestlongituderef": "سرچشمه سی پئنا ولاتشناسی مقصد",
+       "exif-gpsdestlongitude": "پئنا ولاتشناسی مقصد",
+       "exif-gpsdestbearingref": "سرچشمه سی لا مقصد",
+       "exif-gpsdestbearing": "لا مقصد",
+       "exif-gpsdestdistanceref": "سرچشمه سی دیری مقصد",
+       "exif-gpsdestdistance": "دیری د مقصد",
+       "exif-gpsprocessingmethod": "نوم روشت پردازشت جی پی اس",
+       "exif-gpsareainformation": "نوم راساگه جی پی اس",
        "exif-gpsdatestamp": "گات جی پی اس",
+       "exif-gpsdifferential": "راس کردن کم د جی پی اس",
        "exif-coordinate-format": "$1° $2′ $3″ $4",
        "exif-jpegfilecomment": "ویر و باور فایل پی ان جی",
        "exif-keywords": "کلیمه یا کلیتی",
+       "exif-worldregioncreated": "راساگه ای د دنیا که عسگ د اوچه گرته بیه",
+       "exif-countrycreated": "ولاتی که عسگ دش گرته بیه",
        "exif-countrycodecreated": "رازینه سی ولاتی که عسگ د وه گرته بیه",
+       "exif-provinceorstatecreated": "آستونی که عسگ دش گرته بیه",
        "exif-citycreated": "شهری که عسگ دش گرته بیه",
+       "exif-sublocationcreated": "جاگه ای د شهر که عسگ د وه گرته بیه",
+       "exif-worldregiondest": "راساگه نشو دئه بیه د دنیا",
+       "exif-countrydest": "ولات نشو دئه بیه",
        "exif-countrycodedest": "رازینه سی ولات نمائشت دئه بیه",
+       "exif-provinceorstatedest": "آستون یا ولاتچه نشو دئه",
        "exif-citydest": "شهر دیار بیه",
+       "exif-sublocationdest": "جاگه ای د شهر که نشو دئه بیه",
+       "exif-objectname": "نوم کؤچک",
+       "exif-specialinstructions": "انجوم روشتیا ویجه",
+       "exif-headline": "سربلگه",
+       "exif-credit": "صاحاو/اماییه کار",
        "exif-source": "سرچشمه",
+       "exif-urgency": "فوریت",
        "exif-fixtureidentifier": "نوم ثاوت",
        "exif-writer": "نیسنه",
        "exif-languagecode": "زون",
        "exif-datetimeexpires": "وا نها دش استفاده نبوئه",
        "exif-datetimereleased": "ول بیه د",
        "exif-identifier": "نوم دیارکن",
+       "exif-lens": "لنز وه کار رتنی",
+       "exif-serialnumber": "نوم شماره دیربین",
+       "exif-cameraownername": "مالک دیربین",
        "exif-label": "ری دیار",
+       "exif-nickname": "نوم نامرتوط سی عسگ",
+       "exif-rating": "امتیاز(د 5)",
+       "exif-copyrighted": "حال و بال کپی رایت",
+       "exif-copyrightowner": "مالک کپی رایت",
+       "exif-usageterms": "کلیمه یا وه کار گرتن",
        "exif-pngfilecomment": "ویر و باور فایل جی پی ان جی",
+       "exif-disclaimer": "کذو نومه",
        "exif-giffilecomment": "ویر و باور فایل جی آی اف",
+       "exif-intellectualgenre": "نوع مورد",
        "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-unknowndate": "گات نادیار",
        "exif-orientation-1": "عادی",
        "exif-componentsconfiguration-0": "نی یش",
        "exif-exposureprogram-1": "دسی",
+       "exif-subjectdistance-value": "$1 متر",
        "exif-meteringmode-0": "نادیار",
        "exif-meteringmode-1": "میانگین",
        "exif-meteringmode-3": "نقطه جا",
+       "exif-meteringmode-4": "چن جاگه ای",
+       "exif-meteringmode-5": "الگو",
+       "exif-meteringmode-6": "جزئی",
        "exif-meteringmode-255": "هنی",
        "exif-lightsource-0": "نادیار",
        "exif-lightsource-1": "روشنایی روز",
        "exif-lightsource-2": "فلورسنت",
        "exif-lightsource-4": "فلش",
+       "exif-lightsource-9": "هوا خو",
+       "exif-lightsource-10": "هوا اوری",
+       "exif-lightsource-11": "سایه",
+       "exif-flash-mode-3": "مد خودانجوم",
        "exif-focalplaneresolutionunit-2": "ائنج",
+       "exif-customrendered-0": "پردازشت خو",
+       "exif-customrendered-1": "پردازشت همیشه ای",
+       "exif-scenecapturetype-0": "استاندارد",
+       "exif-scenecapturetype-2": "نیمری کشین",
        "exif-scenecapturetype-3": "چی شو",
        "exif-gaincontrol-0": "هیش کوم",
        "exif-contrast-0": "عادی",
        "exif-sharpness-2": "سفت",
        "exif-subjectdistancerange-0": "نادیار",
        "exif-subjectdistancerange-1": "گپ",
+       "exif-subjectdistancerange-2": "نما بسته",
+       "exif-subjectdistancerange-3": "نما د دیر",
        "exif-gpsaltitude-above-sealevel": "$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا",
        "exif-gpsaltitude-below-sealevel": "$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا",
+       "exif-gpsspeed-k": "کلومتر سی هر ساعت",
+       "exif-gpsspeed-m": "مایل سی هر ساعت",
+       "exif-gpsdestdistance-k": "کلومتر",
        "exif-gpsdestdistance-m": "مایل",
        "exif-gpsdop-good": "خو ($1)",
+       "exif-gpsdop-fair": "د ری انصاف ($1)",
+       "exif-dc-contributor": "هومیارا",
+       "exif-dc-publisher": "درتیجن",
+       "exif-dc-relation": "وارسگر مرتوط",
+       "exif-dc-rights": "حقوق",
+       "exif-dc-source": "سرچشمه وارسگر",
        "exif-dc-type": "نوع وارسگر",
        "exif-rating-rejected": "رد بیه",
+       "exif-isospeedratings-overflow": "گپتر د 65535",
        "exif-iimcategory-ace": "هنریا، رهزیشت و زیستگه",
+       "exif-iimcategory-clj": "جرم و قانون",
+       "exif-iimcategory-fin": "اموری و کسم کار",
        "exif-iimcategory-edu": "آموختاری",
        "exif-iimcategory-evn": "زئشت گه",
+       "exif-iimcategory-hth": "تن آزایی",
        "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-pol": "سیاستا",
+       "exif-iimcategory-rel": "دین و ائتقات",
+       "exif-iimcategory-sci": "دونسمنی و سازیاری",
+       "exif-iimcategory-soi": "جریانیا اشتمائی",
+       "exif-iimcategory-spo": "ورزشتا",
+       "exif-iimcategory-war": "جئن، تضاد و لیزشیوسن",
+       "exif-iimcategory-wea": "هوا",
+       "exif-urgency-normal": "خو($1)",
+       "exif-urgency-low": "هار ($1)",
+       "exif-urgency-high": "بلنگ ($1)",
        "namespacesall": "همه شو",
        "monthsall": "همه",
+       "confirmemail": "پشت راس کردن تیرنشون انجومانامه",
        "confirmemail_send": "کل کردن رازینه پشت راس کاری",
+       "invalidateemail": "انجومشیو کردن پشت راس کردن انجومانامه",
+       "scarytranscludetoolong": "[یو آر ال فره گپه]",
        "recreate": "د نو راس کردن",
        "confirm_purge_button": "خوئه",
        "confirm-watch-button": "خوئه",
        "imgmultipageprev": "بلگه دمايی",
        "imgmultipagenext": "بلگه نهایی",
        "imgmultigo": "رؤ!",
+       "imgmultigoto": "رو د بلگه $1",
        "img-lang-opt": "$2 ($1)",
        "img-lang-default": "(زون پیش زمینه)",
        "img-lang-go": "رو",
+       "ascending_abbrev": "ری وه وارو",
+       "descending_abbrev": "ری وه هاری",
        "table_pager_next": "بلگه نهایی",
        "table_pager_prev": "بلگه دمايی",
        "table_pager_first": "سرآسونه",
        "table_pager_last": "بلگه آخری",
+       "table_pager_limit_label": "آیتم سی هر بلگه:",
        "table_pager_limit_submit": "رو",
+       "table_pager_empty": "هیچ نتیجه ای نئ",
+       "autosumm-blank": "بلگه حالی",
        "autosumm-replace": "مینونه وا \"َ$1\" جاگزین بی",
        "autoredircomment": "بلگه واگردونی بیه سی[[$1]]",
+       "autosumm-new": "راست کردن بلگه وه دس \"$1\"",
+       "autosumm-newblank": "بلگه حالی دروس بیه",
        "watchlistedit-normal-title": "ویرایشت سیل برگ",
+       "watchlistedit-normal-legend": "ؤرداشتن سرونیا د سیل برگ",
+       "watchlistedit-normal-submit": "ؤرداشتن سرونیا",
+       "watchlistedit-raw-title": "سیل برگ نه ردیفی ویرایشت کو",
+       "watchlistedit-raw-legend": "سیل برگ نه ردیفی ویرایشت کو",
+       "watchlistedit-raw-titles": "داسون:",
+       "watchlistedit-raw-submit": "وه هنگوم سازی سیل برگ",
+       "watchlistedit-raw-done": "سیل برگتون وه هنگوم سازی بیه.",
+       "watchlistedit-clear-title": "سیل برگ دروس بیه",
+       "watchlistedit-clear-legend": "پاک کردن سیل برگ",
+       "watchlistedit-clear-titles": "داسون:",
+       "watchlistedit-clear-done": "سیل برگتون وه پاک بیه.",
        "watchlisttools-clear": "پاک کردن سیل برگ",
        "watchlisttools-view": "آلشتیا مرتوط نه بوینیت",
        "watchlisttools-edit": "سیل برگ بوینیتو و ویرایشت بکید",
        "version-variables": "آلشت ونا",
        "version-antispam": "نهاگرتن هرزنومه",
        "version-other": "هنی",
+       "version-hook-name": "نوم قلاو",
+       "version-no-ext-name": "[بی نوم]",
        "version-ext-license": "ليسانس",
        "version-skin-colheader-name": "پوسه",
        "version-ext-colheader-version": "نسقه",
        "version-ext-colheader-license": "ليسانس",
        "version-ext-colheader-description": "شرح",
        "version-ext-colheader-credits": "نیسنه یا",
+       "version-license-title": "لیسانس سی $1",
        "version-poweredby-others": "دیه رون",
+       "version-software-product": "نتجه",
        "version-software-version": "نسقه",
        "version-entrypoints-header-url": "يو آر ال",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Article path]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Script path]",
        "redirect": "واگردونی وا جانیا،بلگه یا وانیئری نوم دیارکو",
        "redirect-submit": "رو",
+       "redirect-lookup": "پی جوری:",
        "redirect-value": "ارزایشت:",
        "redirect-user": "نوم دياركن کاریار:",
        "redirect-page": "نوم دیار کن بلگه",
+       "redirect-revision": "وانئری بلگه",
        "redirect-file": "نوم جانیا",
+       "redirect-not-exists": "انازه که پیدا نبی",
        "fileduplicatesearch-filename": "نوم جانیا:",
        "fileduplicatesearch-submit": "پی جوری",
        "fileduplicatesearch-info": "$1 × $2 pixel<br />انازه جانیا: $3<br />MIME type: $4",
        "specialpages": "بلگيا ويجه",
+       "specialpages-group-other": "بلگه یا ویجه هنی",
+       "specialpages-group-login": " اومائن د سيستم/راس كردن حساو",
        "specialpages-group-changes": "آلشتیا تازه و پهرستنومه یا",
        "specialpages-group-media": "گزارشتیا رسانه و سوارکردیا",
        "specialpages-group-users": "کاروریا و حقوق",
        "specialpages-group-pages": "نوم گه بلگه یا",
+       "specialpages-group-pagetools": "اوزاریا بلگه",
        "specialpages-group-wiki": "رسینه و اوزاریا",
        "specialpages-group-redirects": "بلگه ویجه واگردونی بیه",
+       "specialpages-group-spam": "اوزاریا اسپم",
        "blankpage": "بلگه حالی",
        "external_image_whitelist": "یه خط نه ول بکید چی وه<pre>",
+       "tags": "سردیسیا آلشت دئن خو",
        "tag-filter": "فيلتر [[Special:Tags|Tag]]:",
        "tag-filter-submit": "فيلتر",
        "tags-title": "سردیسیا",
        "htmlform-selectorother-other": "هنی",
        "htmlform-no": "نه",
        "htmlform-yes": "هری",
+       "htmlform-chosen-placeholder": "یه گل گزینه انتخاو بکیت",
        "htmlform-cloner-create": "هنی اضاف بکیت",
        "htmlform-cloner-delete": "ؤرداشتن",
        "revdelete-content-hid": "مینونه قام بیه",
        "revdelete-content-unhid": "مینونه قام نبیه",
        "revdelete-uname-unhid": "نوم کاروری قام نبیه",
        "rightsnone": "(هيش كوم)",
+       "revdelete-summary": "چکسه ویرایشت",
        "feedback-subject": "سرون:",
        "feedback-message": "پيغوم:",
        "feedback-cancel": "انجوم شیوسن",
        "feedback-submit": "کل کردن نهاهوال حون",
        "feedback-close": "انجوم بی",
+       "feedback-bugnew": "مه وارسیش کردمه. یه گل سیسرک تازه گزارشت بی",
        "searchsuggest-search": "پی جوری",
+       "searchsuggest-containing": "د حال و بار مینونه دار...",
        "api-error-badaccess-groups": "شما سی سوار کرد جانیایا د ای ویکی اجازه ناریت.",
        "api-error-copyuploaddisabled": "سوار کردن وا یو آر ال دی ای سرور غیرفعال بیه.",
        "api-error-filename-tooshort": "نوم جانیا فره کؤچکه.",
        "limitreport-expansiondepth-value": "$1/$2",
        "limitreport-expensivefunctioncount-value": "$1/$2",
        "expand_templates_output": "نتیجه",
+       "expand_templates_xml_output": "درده ایکس ام ال",
        "expand_templates_ok": "خوئه",
        "expand_templates_remove_comments": "جا وه جا بیئن ویر و باوریا",
        "expand_templates_preview": "پيش سيل",
        "default-skin-not-found-row-disabled": "* <رازینه>$1</رازینه> / $2 ('''ناکنشتگر بیه''')",
        "mediastatistics-table-count": "شماره جانیایا",
        "mediastatistics-header-unknown": "نادیار",
+       "mediastatistics-header-bitmap": "عسگیا بیت مپ",
        "mediastatistics-header-audio": "دنگ",
        "mediastatistics-header-video": "عسگ و فیلم",
-       "mediastatistics-header-text": "نیسسه دار"
+       "mediastatistics-header-office": "نوشتگه",
+       "mediastatistics-header-text": "نیسسه دار",
+       "json-error-syntax": "خطا دستوری"
 }
index bfd8856..d9758a0 100644 (file)
        "print": "Spausdinti",
        "view": "Žiūrėti",
        "view-foreign": "Rodyti $1",
-       "edit": "Redaguoti",
+       "edit": "Keisti",
        "edit-local": "Redaguoti vietos aprašymą",
        "create": "Sukurti",
        "create-local": "Pridėti vietos aprašymą",
        "otherlanguages": "Kitomis kalbomis",
        "redirectedfrom": "(Nukreipta iš $1)",
        "redirectpagesub": "Nukreipimo puslapis",
+       "redirectto": "Nukreipti į:",
        "lastmodifiedat": "Šis puslapis paskutinį kartą keistas $1 $2.",
        "viewcount": "Šis puslapis buvo atvertas $1 {{PLURAL:$1|kartą|kartus|kartų}}.",
        "protectedpage": "Užrakintas puslapis",
        "newmessageslinkplural": "{{PLURAL:$1|nauja žinutė|999=naujos žinutės}}",
        "newmessagesdifflinkplural": "paskutinis {{PLURAL:$1|pakeitimas|999=pakeitimai}}",
        "youhavenewmessagesmulti": "Turite naujų žinučių $1",
-       "editsection": "redaguoti",
+       "editsection": "keisti",
        "editold": "taisyti",
        "viewsourceold": "žiūrėti šaltinį",
        "editlink": "keisti",
        "nstab-media": "Media puslapis",
        "nstab-special": "Specialusis puslapis",
        "nstab-project": "Projekto puslapis",
-       "nstab-image": "Failas",
+       "nstab-image": "Rinkmena",
        "nstab-mediawiki": "Pranešimas",
        "nstab-template": "Šablonas",
        "nstab-help": "Pagalbos puslapis",
        "nowiki_sample": "Čia įterpkite neformuotą tekstą",
        "nowiki_tip": "Ignoruoti wiki formatą",
        "image_sample": "Pavyzdys.jpg",
-       "image_tip": "Įdėti failą",
+       "image_tip": "Įterpta rinkmena",
        "media_sample": "Pavyzdys.ogg",
-       "media_tip": "Nuoroda į failą",
+       "media_tip": "Nuoroda į rinkmeną",
        "sig_tip": "Jūsų parašas bei laikas",
        "hr_tip": "Horizontali linija (naudokite taupiai)",
-       "summary": "Komentaras:",
+       "summary": "Paaiškinimas:",
        "subject": "Tema/antraštė:",
        "minoredit": "Tai smulkus pataisymas",
        "watchthis": "Stebėti šį puslapį",
        "editing": "Taisomas $1",
        "creating": "Kuriama $1",
        "editingsection": "Taisomas $1 (skyrelis)",
-       "editingcomment": "Taisomas $1 (komentaras)",
+       "editingcomment": "Taisomas $1 (naujas skyrius)",
        "editconflict": "Išpręskite konfliktą: $1",
        "explainconflict": "Kažkas kitas jau pakeitė puslapį nuo tada, kai jūs pradėjote jį redaguoti.\nViršutiniame tekstiniame lauke pateikta šiuo metu esanti puslapio versija.\nJūsų keitimai pateikti žemiau esančiame lauke.\nJums reikia sujungti jūsų pakeitimus su esančia versija.\nKai paspausite „{{int:savearticle}}“, bus įrašytas '''tik''' tekstas viršutiniame tekstiniame lauke.",
        "yourtext": "Jūsų tekstas",
        "edit-gone-missing": "Negalima atnaujinti puslapio.\nGreičiausiai jis yra ištrintas.",
        "edit-conflict": "Redagavimo konfliktas.",
        "edit-no-change": "Jūsų keitimas buvo ignoruotas kadangi nebuvo atlikta jokių teksto pakeitimų.",
+       "postedit-confirmation-created": "Puslapis sukurtas.",
        "postedit-confirmation-saved": "Jūsų pakeitimas išsaugotas.",
        "edit-already-exists": "Negalima sukurti naujo puslapio.\nJis jau egzistuoja.",
        "defaultmessagetext": "Numatytasis pranešimo tekstas",
        "mergehistory-same-destination": "Šaltinio ir tikslo puslapiai negali būti vienodi",
        "mergehistory-reason": "Priežastis:",
        "mergelog": "Sujungimų sąrašas",
-       "pagemerge-logentry": "sujungė [[$1]] su [[$2]] (versijos iki $3)",
        "revertmerge": "Atskirti",
        "mergelogpagetext": "Žemiau yra paskiausių vieno su kitu puslapių sujungimų sąrašas.",
        "history-title": "„$1“ versijų istorija",
        "searchrelated": "susiję",
        "searchall": "visi",
        "showingresults": "Žemiau rodoma iki '''$1''' {{PLURAL:$1|rezultato|rezultatų|rezultatų}} pradedant #'''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Davinys <strong>$1</strong> iš <strong>$3</strong>|Daviniai <strong>$1 - $2</strong> iš <strong>$3</strong>}}",
        "search-nonefound": "Nėra rezultatų, atitinkančių užklausą.",
        "powersearch-legend": "Išplėstinė paieška",
        "powersearch-ns": "Ieškoti vardų srityse:",
        "powersearch-togglelabel": "Pažymėti:",
        "powersearch-toggleall": "Viską",
        "powersearch-togglenone": "Nieko",
+       "powersearch-remember": "Atsiminti pasirinkimą būsimoms paieškoms",
        "search-external": "Išorinė paieška",
        "searchdisabled": "Projekto {{SITENAME}} paieška yra uždrausta. Galite pamėginti ieškoti Google paieškos sistemoje. Paieškos sistemoje projekto {{SITENAME}} duomenys gali būti pasenę.",
        "preferences": "Nustatymai",
        "prefs-displayrc": "Rodymo nustatymai",
        "prefs-displaywatchlist": "Rodymo nuostatos",
        "prefs-diffs": "Skirtumai",
+       "prefs-help-prefershttps": "Šis nustatymas suveiks kitą kartą prisijungiant.",
        "email-address-validity-valid": "Panašu, kad E-pašto adresas yra teisingas",
        "email-address-validity-invalid": "Įveskite korektišką e-pašto adresą",
        "userrights": "Naudotojų teisių valdymas",
        "right-unblockself": "Atblokuoti pačius",
        "right-protect": "Pakeisti apsaugos lygius ir redaguoti apsaugotus puslapius",
        "right-editprotected": "Redaguoti apsaugotus puslapius (be pakopinės apsaugos)",
-       "right-editinterface": "Redaguoti naudotojo aplinką",
+       "right-editinterface": "Keisti naudotojo aplinką",
        "right-editusercssjs": "Redaguoti kitų naudotojų CSS ir JS failus",
        "right-editusercss": "Redaguoti kitų naudotojų CSS failus",
        "right-edituserjs": "Redaguoti kitų naudotojų JS failus",
        "rightslog": "Naudotojų teisių pakeitimai",
        "rightslogtext": "Pateikiamas naudotojų teisių pakeitimų sąrašas.",
        "action-read": "skaityti šį puslapį",
-       "action-edit": "redaguoti šį puslapį",
+       "action-edit": "keisti šį puslapį",
        "action-createpage": "kurti puslapius",
        "action-createtalk": "kurti aptarimų puslapius",
        "action-createaccount": "kurti šią naudotojo paskyrą",
        "action-move-subpages": "pervadinti šį puslapį ir jo subpuslapius",
        "action-move-rootuserpages": "perkelti pagrindinius naudotojų puslapius",
        "action-movefile": "perkelti šį failą",
-       "action-upload": "įkelti šį failą",
+       "action-upload": "įkelti šią rinkmeną",
        "action-reupload": "perrašyti šį esamą failą",
        "action-reupload-shared": "perrašyti šį failą bendrojoje saugykloje",
-       "action-upload_by_url": "įkelti šį failą iš URL adreso",
+       "action-upload_by_url": "įkelti šią rinkmeną iš URL adreso",
        "action-writeapi": "naudotis rašymo API",
        "action-delete": "ištrinti šį puslapį",
        "action-deleterevision": "ištrinti šią reviziją",
        "recentchanges-label-bot": "Šį keitimą atliko automatinė programa",
        "recentchanges-label-unpatrolled": "Šis keitimas dar nebuvo patikrintas",
        "recentchanges-label-plusminus": "Šiuo baitų skaičiumi pakeista puslapio apimtis",
+       "recentchanges-legend-heading": "'''Paaiškinimai:'''",
        "recentchanges-legend-newpage": "$1 - naujas puslapis",
        "rcnotefrom": "Žemiau yra pakeitimai pradedant <strong>$2</strong> (rodoma iki <strong>$1</strong> pakeitimų).",
        "rclistfrom": "Rodyti naujus pakeitimus pradedant $3 $2",
        "recentchangeslinked-summary": "Tai paskutinių keitimų, atliktų puslapiuose, į kuriuos yra nuoroda iš nurodyto puslapio (arba į nurodytos kategorijos narius), sąrašas.\nPuslapiai iš jūsų [[Special:Watchlist|stebimųjų sąrašo]] yra '''paryškinti'''.",
        "recentchangeslinked-page": "Puslapio pavadinimas:",
        "recentchangeslinked-to": "Rodyti su duotuoju puslapiu susijusių puslapių pakeitimus",
-       "upload": "Įkelti failą",
-       "uploadbtn": "Įkelti failą",
+       "upload": "Įkelti rinkmeną",
+       "uploadbtn": "Įkelti rinkmeną",
        "reuploaddesc": "Atšaukti įkėlimą ir grįžti į įkėlimo formą.",
        "upload-tryagain": "Siųsti pakeistą failo aprašymą",
        "uploadnologin": "Neprisijungęs",
        "uploaderror": "Įkėlimo klaida",
        "upload-recreate-warning": "'''Dėmėsio: Failas šiuo pavadinimu buvo ištrintas arba pervadintas.'''\n\nJūsų patogumui pateiktas įrašas apie šio puslapio trynimą ar pervadinimą:",
        "uploadtext": "Kad įkeltumėte failą, naudokitės žemiau pateikta forma.\nNorėdami peržiūrėti ar ieškoti anksčiau įkeltų paveikslėlių, eikite į [[Special:FileList|įkeltų failų sąrašą]], įkėlimai yra registruojami [[Special:Log/upload|įkėlimų sąraše]], trynimai — [[Special:Log/delete|trynimų sąraše]].\n\nNorėdami panaudoti įkeltą failą puslapyje, naudokite tokias nuorodas:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.jpg]]</nowiki></code>''' norėdami naudoti pilną failo versiją\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.png|200px|thumb|left|alternatyvusis tekstas]]</nowiki></code>''' norėdami naudoti 200 pikselių pločio paveikslėlį rėmelyje puslapio kairėje; „alternatyvus tekstas“ bus naudojamas paveikslėlio aprašymui.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Failas.ogg]]</nowiki></code>''' tiesioginei nuorodai į failą.",
-       "upload-permitted": "Leidžiami failų tipai: $1.",
+       "upload-permitted": "Leidžiami rinkmenų tipai: $1.",
        "upload-preferred": "Pageidautini failų tipai: $1.",
        "upload-prohibited": "Uždrausti failų tipai: $1.",
        "uploadlogpage": "Įkėlimų sąrašas",
        "uploadlogpagetext": "Žemiau pateikiamas paskutinių failų įkėlimų sąrašas.\nTaip pat galite peržvelgti [[Special:NewFiles|naujausių failų galeriją]].",
        "filename": "Failo vardas",
        "filedesc": "Aprašymas",
-       "fileuploadsummary": "Komentaras:",
+       "fileuploadsummary": "Aprašymas:",
        "filereuploadsummary": "Failo pakeitimai:",
        "filestatus": "Autorystės teisės:",
        "filesource": "Šaltinis:",
        "largefileserver": "Šis failas yra didesnis nei serveris yra sukonfigūruotas leisti.",
        "emptyfile": "Panašu, kad failas, kurį įkėlėte yra tuščias. Tai gali būti dėl klaidos failo pavadinime. Pasitikrinkite ar tikrai norite įkelti šitą failą.",
        "windows-nonascii-filename": "Ši viki neleidžia naudoti failų vardų su specialiais simboliais.",
-       "fileexists": "Failas tuo pačiu vardu jau egzistuoja, prašome pažiūrėti <strong>[[:$1]]</strong>, jei nesate tikras, ar norite perrašyti šį failą.\n[[$1|thumb]]",
+       "fileexists": "Rinkmena tokiu pačiu pavadinimu jau esti, prašome pažiūrėti <strong>[[:$1]]</strong>, jei nesate tikras, ar norite perrašyti šią rinkmeną.\n[[$1|thumb]]",
        "filepageexists": "Šio failo aprašymo puslapis jau buvo sukurtas <strong>[[:$1]]</strong>, bet šiuo metu nėra jokio failo šiuo pavadinimu.\nJūsų įvestas komentaras neatsiras aprašymo puslapyje.\nJei norite, kad jūsų komentaras ten atsirastų, jums reikia jį pakeisti pačiam.\n[[$1|thumb]]",
        "fileexists-extension": "Failas su panašiu pavadinimu jau yra: [[$2|thumb]]\n* Įkeliamo failo pavadinimas: <strong>[[:$1]]</strong>\n* Jau esančio failo pavadinimas: <strong>[[:$2]]</strong>\nPrašome pasirinkti kitą vardą.",
-       "fileexists-thumbnail-yes": "Failas turbūt yra sumažinto dydžio failas ''(miniatiūra)''. [[$1|thumb]]\nPrašome peržiūrėti failą <strong>[[:$1]]</strong>.\nJeigu tai yra toks pats pradinio dydžio paveikslėlis, tai įkelti papildomos miniatūros nereikia.",
+       "fileexists-thumbnail-yes": "Rinkmena turbūt yra sumažinto dydžio ''(miniatiūra)''. [[$1|thumb]]\nPrašome peržiūrėti rinkmeną <strong>[[:$1]]</strong>.\nJeigu tai yra toks pats pradinio dydžio paveikslėlis, tai įkelti papildomos miniatūros nereikia.",
        "file-thumbnail-no": "Failo pavadinimas prasideda  <strong>$1</strong>.\nAtrodo, kad yra sumažinto dydžio paveikslėlis ''(miniatiūra)''.\nJei jūs turite šį paveisklėlį pilna raiška, įkelkite šitą, priešingu atveju prašome pakeisti failo pavadinimą.",
        "fileexists-forbidden": "Failas tokiu pačiu vardu jau egzistuoja ir negali būti perrašytas;\nprašome eiti atgal ir įkelti šį failą kitu vardu. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Failas tokiu vardu jau egzistuoja bendrojoje failų saugykloje;\nJei visvien norite įkelti savo failą, prašome eiti atgal ir įkelti šį failą kitu vardu. [[File:$1|thumb|center|$1]]",
        "file-deleted-duplicate": "Failas, identiškas šiam failui ([[:$1]]), seniau buvo ištrintas. Prieš įkeldami jį vėl patikrinkite šio failo ištrynimo istoriją.",
        "uploadwarning": "Dėmesio",
        "uploadwarning-text": "Prašome pakeisti failo aprašymą ir bandykite dar kartą.",
-       "savefile": "Išsaugoti failą",
+       "savefile": "Išsaugoti rinkmeną",
        "uploaddisabled": "Įkėlimai uždrausti",
        "copyuploaddisabled": "Įkėlimas pagal URL išjungtas.",
        "uploaddisabledtext": "Failų įkėlimai yra uždrausti.",
        "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.\nĮkelti Java failus neleidžiama, nes jie gali padėti apeiti saugumo apribojimus.",
-       "upload-source": "Failo šaltinis",
-       "sourcefilename": "Įkeliamas failas:",
+       "uploadjava": "Ši rinkmena tai ZIP rinkmena, kurioje yra Java .class rinkmena.\nĮkelti Java rinkmenų neleidžiama, nes jos gali padėti apeiti saugumo apribojimus.",
+       "upload-source": "Pradinė rinkmena",
+       "sourcefilename": "Įkeliama rinkmena:",
        "sourceurl": "Šaltinio adresas:",
        "destfilename": "Norimas failo vardas:",
-       "upload-maxfilesize": "Didžiausias failo dydis: $1",
-       "upload-description": "Failo aprašymas",
+       "upload-maxfilesize": "Didžiausias rinkmenos dydis: $1",
+       "upload-description": "Rinkmenos aprašymas",
        "upload-options": "Įkėlimo nustatymai",
-       "watchthisupload": "Stebėti šį failą",
+       "watchthisupload": "Stebėti šią rinkmeną",
        "filewasdeleted": "Failas šiuo vardu anksčiau buvo įkeltas, o paskui ištrintas. Jums reikėtų patikrinti $1 prieš bandant įkelti jį vėl.",
        "filename-bad-prefix": "Jūsų įkeliamas failas prasideda su '''„$1“''', bet tai yra neapibūdinantis pavadinimas, dažniausiai priskirtas skaitmeninių kamerų. Prašome suteikti labiau apibūdinantį pavadinimą savo failui.",
        "upload-success-subj": "Įkelta sėkmingai",
        "nolicense": "Nepasirinkta",
        "license-nopreview": "(Peržiūra negalima)",
        "upload_source_url": " (tikras, viešai prieinamas URL)",
-       "upload_source_file": " (failas jūsų kompiuteryje)",
+       "upload_source_file": "(pasirinkta rinkmena jūsų kompiuteryje)",
        "listfiles-summary": "Šiame specialiame puslapyje rodomi visi įkelti failai.\nKai sąrašas susiaurinamas pagal naudotoją, rodomi tik tie failai, kurių naujausią versiją jis yra įkėlęs.",
        "listfiles_search_for": "Ieškoti failo pavadinimo:",
        "imgfile": "failas",
        "listfiles-latestversion": "Dabartinė versija",
        "listfiles-latestversion-yes": "Taip",
        "listfiles-latestversion-no": "Ne",
-       "file-anchor-link": "Failas",
+       "file-anchor-link": "Rinkmena",
        "filehist": "Paveikslėlio istorija",
        "filehist-help": "Paspauskite ant datos/laiko, kad pamatytumėte failą tokį, koks jis buvo tuo metu.",
        "filehist-deleteall": "trinti visus",
        "filehist-nothumb": "Nėra miniatiūros",
        "filehist-user": "Naudotojas",
        "filehist-dimensions": "Matmenys",
-       "filehist-filesize": "Failo dydis",
-       "filehist-comment": "Komentaras",
-       "imagelinks": "Failų panaudojimas",
+       "filehist-filesize": "Rinkmenos dydis",
+       "filehist-comment": "Paaiškinimas",
+       "imagelinks": "Rinkmenos naudojimas",
        "linkstoimage": "{{PLURAL:$1|Šis puslapis|Šie puslapiai}} nurodo į šį failą:",
        "linkstoimage-more": "Daugiau nei $1 {{PLURAL:$1|puslapis|puslapiai|puslapių}} rodo į šį failą.\nŠis sąrašas rodo tik {{PLURAL:$1|puslapio|pirmų $1 puslapių}} nuorodas į šį failą.\nYra pasiekiamas ir [[Special:WhatLinksHere/$2|visas sąrašas]].",
-       "nolinkstoimage": "Į failą nenurodo joks puslapis.",
+       "nolinkstoimage": "Į rinkmeną nenurodo joks puslapis.",
        "morelinkstoimage": "Žiūrėti [[Special:WhatLinksHere/$1|daugiau nuorodų]] į šį failą.",
        "linkstoimage-redirect": "$1 (failo peradresavimas) $2",
        "duplicatesoffile": "Šis failas turi {{PLURAL:$1|$1 dublikatą|$1 dublikatus|$1 dublikatų}} ([[Special:FileDuplicateSearch/$2|daugiau informacijos]]):",
-       "sharedupload": "Šis failas yra iš $1 ir gali būti naudojamas kituose projektuose.",
+       "sharedupload": "Ši rinkmena yra iš $1 ir gali būti naudojama kitose wiki svetainėse.",
        "sharedupload-desc-there": "Šis failas yra iš $1 ir gali būti naudojamas kituose projektuose.\nNorėdami sužinoti daugiau, žiūrėkite [$2 failo aprašymą].",
        "sharedupload-desc-here": "Šis failas yra iš $1 ir gali būti naudojamas kituose projektuose.\nInformacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.",
        "filepage-nofile": "Joks failas su duotu pavadinimu neegzistuoja.",
        "filepage-nofile-link": "Joks failas su duotu pavadinimu neegzistuoja, bet vis dar galite [$1 jį įkelti].",
-       "uploadnewversion-linktext": "Įkelti naują failo versiją",
+       "uploadnewversion-linktext": "Įkelti naują šios rinkmenos atmainą",
        "shared-repo-from": "iš $1",
        "shared-repo": "bendrosios failų saugyklos",
        "shared-repo-name-wikimediacommons": "Vikiteka",
        "filerevert-success": "<span class=\"plainlinks\">'''[[Media:$1|$1]]''' buvo sugrąžintas į versiją $4 ($2, $3).</span>",
        "filerevert-badversion": "Nėra jokių ankstesnių vietinių šio failo versijų su pateiktu laiku.",
        "filedelete": "Trinti $1",
-       "filedelete-legend": "Trinti failą",
+       "filedelete-legend": "Trinti rinkmeną",
        "filedelete-intro": "Jūs ketinate ištrinti failą '''[[Media:$1|$1]]''' su visa istorija.",
        "filedelete-intro-old": "<span class=\"plainlinks\">Jūs trinate '''[[Media:$1|$1]]''' [$4 $3, $2] versiją.</span>",
        "filedelete-comment": "Priežastis:",
        "statistics": "Statistika",
        "statistics-header-pages": "Puslapių statistika",
        "statistics-header-edits": "Redagavimų statistika",
-       "statistics-header-views": "Peržiūrų statistika",
        "statistics-header-users": "Naudotojų statistika",
        "statistics-header-hooks": "Kita statistika",
        "statistics-articles": "Turinio puslapiai",
        "statistics-files": "Įkelti failai",
        "statistics-edits": "Puslapių redagavimų skaičius nuo {{SITENAME}} sukūrimo",
        "statistics-edits-average": "Vidutinis puslapio keitimų skaičius",
-       "statistics-views-total": "Iš viso peržiūrų",
-       "statistics-views-total-desc": "Neegzistuojančių ir specialiųjų puslapių parodymai neįtraukti",
-       "statistics-views-peredit": "Peržiūrų skaičius puslapio versijai",
        "statistics-users": "Registruotų [[Special:ListUsers|naudotojų]]",
        "statistics-users-active": "Aktyvių naudotojų",
        "statistics-users-active-desc": "Naudotojai, kurie per {{PLURAL:$1|paskutinę dieną|paskutines $1 dienų}} padarė keitimų",
-       "statistics-mostpopular": "Daugiausiai rodyti puslapiai",
        "pageswithprop": "Puslapiai su puslapio atributais",
        "pageswithprop-legend": "Puslapiai su puslapio atributais",
        "pageswithprop-text": "Šiame puslapyje pateikiami puslapiai, kurie ypač naudoja puslapio atributus.",
        "uncategorizedtemplates": "Šablonai, nepriskirti jokiai kategorijai",
        "unusedcategories": "Nenaudojamos kategorijos",
        "unusedimages": "Nenaudojami failai",
-       "popularpages": "Populiarūs puslapiai",
        "wantedcategories": "Geidžiamiausios kategorijos",
        "wantedpages": "Geidžiamiausi puslapiai",
        "wantedpages-badtitle": "Neleistinas pavadinimas rezultatų rinkinyje: $1",
        "wlheader-enotif": "El. pašto pranešimai yra įjungti.",
        "wlheader-showupdated": "Puslapiai pakeisti nuo tada, kai paskutinį kartą apsilankėte juose, yra pažymėti '''pastorintai'''",
        "wlnote": "{{PLURAL:$1|Rodomas '''$1''' paskutinis pakeitimas, atliktas|Rodomi '''$1''' paskutiniai pakeitimai, atlikti|Rodoma '''$1''' paskutinių pakeitimų, atliktų}} per '''$2''' {{PLURAL:$2|paskutinę valandą|paskutines valandas|paskutinių valandų}}, nuo $3 $4.",
-       "wlshowlast": "Rodyti paskutinių $1 valandų, $2 dienų ar  pakeitimus",
+       "wlshowlast": "Rodyti paskutinių $1 valandų, $2 dienų",
        "watchlist-options": "Stebimųjų sąrašo parinktys",
        "watching": "Įtraukiama į stebimųjų sąrašą...",
        "unwatching": "Šalinama iš stebimųjų sąrašo...",
        "rollbackfailed": "Atmetimas nepavyko",
        "cantrollback": "Negalima atmesti redagavimo; paskutinis keitęs naudotojas yra šio puslapio autorius.",
        "alreadyrolled": "Nepavyko atmesti paskutinio [[User:$2|$2]] ([[User talk:$2|Aptarimas]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) daryto puslapio [[:$1]] keitimo;\nkažkas jau pakeitė puslapį arba suspėjo pirmas atmesti keitimą.\n\nPaskutimas keitimas darytas naudotojo [[User:$3|$3]] ([[User talk:$3|Aptarimas]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
-       "editcomment": "Redagavimo komentaras: „''$1''“.",
+       "editcomment": "Pateiktas toks keitimo paaiškinimas: „''$1''“.",
        "revertpage": "Atmestas [[Special:Contributions/$2|$2]] ([[User talk:$2|Aptarimas]]) pakeitimas; sugrąžinta [[User:$1|$1]] versija",
        "revertpage-nouser": "Atversti pakeitimai paslėpto vartotojo, grąžino prieš tai buvusią versiją {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Atmesti $1 pakeitimai;\ngrąžinta prieš tai buvusi $2 versija.",
        "undelete-cleanup-error": "Klaida trinant nenaudotą archyvo failą „$1“.",
        "undelete-missing-filearchive": "Nepavyksta atkurti failo archyvo ID $1, nes jo nėra duomenų bazėje. Jis gali būti jau atkurtas.",
        "undelete-error": "Klaida panaikinant puslapį",
-       "undelete-error-short": "Klaida atkuriant failą: $1",
+       "undelete-error-short": "Klaida atkuriant rinkmeną: $1",
        "undelete-error-long": "Įvyko klaidų atkuriant failą:\n\n$1",
        "undelete-show-file-confirm": "Ar tikrai norite peržiūrėti ištrintą failo „<nowiki>$1</nowiki>“ $2 $3 versiją?",
        "undelete-show-file-submit": "Taip",
        "namespace_association": "Susijusi vardų sritis",
        "tooltip-namespace_association": "Įjunkite šią parinktį, kad taip pat įtrauktumėte aptarimų arba temos sritį, susijusią su pasirinkta sritimi",
        "blanknamespace": "(Pagrindinė)",
-       "contributions": "{{GENDER:$1|Naudotojo}} įndėlis",
+       "contributions": "{{GENDER:$1|Naudotojo}} indėlis",
        "contributions-title": "{{GENDER:$1|Naudotojo|Naudotojos}} $1 indėlis",
        "mycontris": "Įnašai",
        "contribsub2": "Dėl {{GENDER:$3|$1}} ($2)",
        "sp-contributions-search": "Ieškoti įnašo",
        "sp-contributions-username": "IP adresas arba naudotojo vardas:",
        "sp-contributions-toponly": "Rodyti tik paskutinius keitimus",
+       "sp-contributions-newonly": "Rodyti tik tuos keitimus, kuriais sukurti nauji straipsniai",
        "sp-contributions-submit": "Ieškoti",
        "whatlinkshere": "Susiję puslapiai",
        "whatlinkshere-title": "Puslapiai, kurie nurodo į „$1“",
        "move-leave-redirect": "Pervadinant palikti nukreipimą",
        "protectedpagemovewarning": "'''Dėmesio:''' Šis puslapis buvo užrakintas, kad tik naudotojai su administratoriaus teisėmis galėtų jį pervadinti.\nNaujausias įrašas žurnale yra pateiktas žemiau:",
        "semiprotectedpagemovewarning": "'''Pastaba''': Šis puslapis buvo užrakintas, kad tik registruoti naudotojai galėtų jį redaguoti.\nNaujausias įrašas žurnale yra pateiktas žemiau:",
-       "move-over-sharedrepo": "== Failas jau yra ==\n[[:$1]] egzistuoja bendrojoje saugykloje. Perkėlus failą į šį pavadinimą, jis pakeis bendrąjį failą.",
+       "move-over-sharedrepo": "== Rinkmena jau yra ==\n[[:$1]] esti bendrojoje saugykloje. Įkėlus rinkmeną šiuo pavadinimu, ji pakeis bendrąją rinkmeną.",
        "file-exists-sharedrepo": "Pasirinktas failo pavadinimas jau yra naudojamas bendrojoje saugykloje.\nPrašome pasirinkti kitą pavadinimą.",
        "export": "Eksportuoti puslapius",
        "exporttext": "Galite eksportuoti vieno puslapio tekstą ir istoriją ar kelių puslapių vienu metu tame pačiame XML atsakyme.\nŠie puslapiai galės būti importuojami į kitą projektą, veikiantį MediaWiki pagrindu, per [[Special:Import|importo puslapį]].\n\nNorėdami eksportuoti puslapius, įveskite pavadinimus žemiau esančiame tekstiniame lauke po vieną pavadinimą eilutėje, taip pat pasirinkite ar norite eksportuoti ir istoriją ar tik dabartinę versiją su paskutinio redagavimo informacija.\n\nPastaruoju atveju, jūs taip pat galite naudoti nuorodą, pvz. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] puslapiui „[[{{MediaWiki:Mainpage}}]]“.",
        "allmessagestext": "Čia pateikiamas sisteminių pranešimų sąrašas, esančių MediaWiki vardų srityje.\nAplankykite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation „MediaWiki“ lokaliziciją] ir [//translatewiki.net „translatewiki.net“], jei norite prisidėti prie bendrojo „MediaWiki“ lokalizavimo.",
        "allmessagesnotsupportedDB": "Šis puslapis nepalaikomas, nes nuostata '''$wgUseDatabaseMessages''' yra išjungtas.",
        "allmessages-filter-legend": "Filtras",
-       "allmessages-filter": "Filtruoti pagal būseną:",
+       "allmessages-filter": "Perkošti pagal būseną:",
        "allmessages-filter-unmodified": "Nepakeisti",
        "allmessages-filter-all": "Visi",
        "allmessages-filter-modified": "Pakeisti",
-       "allmessages-prefix": "Filtruoti pagal pradžią:",
+       "allmessages-prefix": "Perkošti pagal pradžią:",
        "allmessages-language": "Kalba:",
        "allmessages-filter-submit": "Rodyti",
        "thumbnail-more": "Padidinti",
        "import-interwiki-namespace": "Paskirties vardų sritis:",
        "import-interwiki-rootpage": "Paskirties namų puslapis (pasirinktinai):",
        "import-upload-filename": "Failo pavadinimas:",
-       "import-comment": "Komentaras:",
+       "import-comment": "Paaiškinimas:",
        "importtext": "Prašome eksportuoti iš projekto-šaltinio failo, naudojant [[Special:Export|eksportavimo pagalbininką.]]\nIšsaugokite jį savo kompiuteryje ir įkelkite jį čia.",
        "importstart": "Imporuojami puslapiai...",
        "import-revision-count": "$1 {{PLURAL:$1|versija|versijos|versijų}}",
        "pageinfo-robot-policy": "Paieškos variklio būsena",
        "pageinfo-robot-index": "Leidžiama",
        "pageinfo-robot-noindex": "Neleidžiama",
-       "pageinfo-views": "Peržiūrų skaičius",
        "pageinfo-watchers": "Puslapio stebėtojų skaičius",
        "pageinfo-redirects-name": "Nukreipimai į šį puslapį",
        "pageinfo-subpages-name": "Šio puslapio papuslapiai",
        "patrol-log-header": "Tai patvirtintų versijų sąrašas.",
        "log-show-hide-patrol": "$1 patvirtinimų sąrašą",
        "deletedrevision": "Ištrinta sena versija $1",
-       "filedeleteerror-short": "Klaida trinant failą: $1",
+       "filedeleteerror-short": "Klaida trinant rinkmeną: $1",
        "filedeleteerror-long": "Įvyko klaidų trinant failą:\n\n$1",
        "filedelete-missing": "Failas „$1“ negali būti ištrintas, nes jo nėra.",
        "filedelete-old-unregistered": "Nurodytos failo versijos „$1“ nėra duomenų bazėje.",
        "imagemaxsize": "Riboti paveikslėlių dydį:<br />''(failų aprašymo puslapiuose)''",
        "thumbsize": "Sumažintų paveikslėlių dydis:",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|puslapis|puslapiai|puslapių}}",
-       "file-info": "failo dydis: $1, MIME tipas: $2",
+       "file-info": "rinkmenos dydis: $1, MIME tipas: $2",
        "file-info-size": "$1 × $2 taškų, failo dydis: $3, MIME tipas: $4",
-       "file-info-size-pages": "$1 × $2 taškų, failo dydis: $3, MIME tipas: $4, $5 {{PLURAL:$5|page|pages}}",
+       "file-info-size-pages": "$1 × $2 taškų, rinkmenos dydis: $3, MIME tipas: $4, $5 {{PLURAL:$5|puslapis|puslapiai|puslapių}}",
        "file-nohires": "Geresnė raiška negalima.",
        "svg-long-desc": "SVG failas, formaliai $1 × $2 taškų, failo dydis: $3",
        "svg-long-desc-animated": "Animuotas SVG failas, formaliai $1 × $2 pikselių, failo dydis: $3",
        "svg-long-error": "Neleistinas SVG failas: $1",
-       "show-big-image": "Originalus failas",
-       "show-big-image-preview": "Sumažintos iliustracijos dydis: $1 .",
+       "show-big-image": "Pradinė rinkmena",
+       "show-big-image-preview": "Šios peržiūros dydis: $1 .",
        "show-big-image-other": "{{PLURAL:$2|Kita rezoliucija|Kitos $2 rezoliucijos|Kitų $2 rezoliucijų}}: $1 .",
        "show-big-image-size": "$1 × $2 taškų",
        "file-info-gif-looped": "ciklinis",
        "exif-pngfilecomment": "JPEG failo komentaras",
        "exif-disclaimer": "Atsakomybės apribojimas",
        "exif-contentwarning": "Turinio įspėjimas",
-       "exif-giffilecomment": "GIF failo komentaras",
+       "exif-giffilecomment": "GIF rinkmenos paaiškinimas",
        "exif-intellectualgenre": "Elemento tipas",
        "exif-subjectnewscode": "Objektas kodas",
        "exif-scenecode": "IPTC scenos kodas",
        "watchlistedit-raw-done": "Jūsų stebimųjų sąrašas buvo atnaujintas.",
        "watchlistedit-raw-added": "$1 {{PLURAL:$1|puslapis buvo pridėtas|puslapiai buvo pridėti|puslapių buvo pridėta}}:",
        "watchlistedit-raw-removed": "$1 {{PLURAL:$1|puslapis buvo pašalintas|puslapiai buvo pašalinti|puslapių buvo pašalinta}}:",
+       "watchlisttools-clear": "Išvalyti stebimųjų sąrašą",
        "watchlisttools-view": "Rodyti susijusius keitimus",
        "watchlisttools-edit": "Rodyti ir redaguoti stebimųjų sąrašą",
        "watchlisttools-raw": "Redaguoti grynąjį sąrašą",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|pakeista}} narystė grupėje $3",
        "logentry-rights-autopromote": "$1 buvo automatiškai {{GENDER:$2|pervestas}} iš $4 į $5",
        "rightsnone": "(jokių)",
-       "revdelete-summary": "keitimo komentaras",
+       "revdelete-summary": "keitimo paaiškinimas",
        "feedback-bugornote": "Jei jūs esate pasirengę aprašyti techninę problemą išsamiau, [$1 praneškite apie programinę klaidą].\nKitu atveju, galite naudotis žemiau esančia paprastesne forma. Jūsų komentaras bus įtrauktas į puslapį „[$3 $2]“, kartu su jūsų naudotojo vardu ir jūsų naudojama naršykle.",
        "feedback-subject": "Tema:",
        "feedback-message": "Pranešimas:",
index c7c9ba3..88cae64 100644 (file)
        "statistics": "Lepsena",
        "statistics-header-pages": "Phêk lepsena",
        "statistics-header-edits": "Siamṭhatphung lepsena",
-       "statistics-header-views": "Tlawhna lepsèna",
        "statistics-header-users": "Hmangtute chanchin kimchang",
        "statistics-header-hooks": "Chanchin dang",
        "statistics-articles": "Thuziakna phêkte",
        "statistics-files": "Taksa hlankaite",
        "statistics-edits": "{{SITENAME}} din achina phêk khawih danglam zât",
        "statistics-edits-average": "Phêk khat zëla siamṭhat zât chawhrual",
-       "statistics-views-total": "Tlawh zât",
-       "statistics-views-total-desc": "Phêk awm lo leh phêk vohbîkte tlawhna chu chhiar tel a ni lo",
-       "statistics-views-peredit": "Siamṭhat pakhat zël tlawh zât",
        "statistics-users": "[[Special:ListUsers|Hmangtu]] inziaklût zât",
        "statistics-users-active": "Hmangtu aktif zât",
        "statistics-users-active-desc": "Ni {{PLURAL:$1|khat|$1}} kaltâ chhunga thiltih nei hmangtuho",
-       "statistics-mostpopular": "Phêk thlir zin deuh deuhte",
        "doubleredirects": "Hruailuhna phír",
        "double-redirect-fixed-move": "[[$1]] sawn a ni ta.\n[[$2]] lama hruailuhna siam nghâl a ni.",
        "double-redirect-fixed-maintenance": "[[$1]] aṭanga [[$2]] hruailuhna phír chinfel.",
        "uncategorizedtemplates": "Páwl nei lo siamsâte",
        "unusedcategories": "Páwl hman lohte",
        "unusedimages": "Taksa hman hlawh lote",
-       "popularpages": "Phêk lärte",
        "wantedcategories": "Páwl mamawhte",
        "wantedpages": "Phêk mamawhte",
        "wantedpages-badtitle": "Phêk hming dik lo: $1",
        "spamprotectiontitle": "Thuthawn lawi lo danna",
        "pageinfo-title": "\"$1\" chungchanga hriattirna",
        "pageinfo-header-edits": "Siamţhatnate",
-       "pageinfo-views": "Thlir/en tawh zât",
        "pageinfo-watchers": "Thlirtu zât",
        "pageinfo-edits": "Siamţhat zât",
        "pageinfo-authors": "Ziaktu hrang zât",
index 4e2c885..c028e24 100644 (file)
        "otherlanguages": "Citās valodās",
        "redirectedfrom": "(Pāradresēts no $1)",
        "redirectpagesub": "Pāradresācijas lapa",
+       "redirectto": "Pāradresēt uz:",
        "lastmodifiedat": "Šajā lapā pēdējās izmaiņas izdarītas $2, $1.",
        "viewcount": "Šī lapa ir tikusi apskatīta $1 {{PLURAL:$1|reizi|reizes}}.",
        "protectedpage": "Aizsargāta lapa",
        "hidetoc": "paslēpt",
        "collapsible-collapse": "paslēpt",
        "collapsible-expand": "rādīt",
+       "confirmable-confirm": "Vai esi {{GENDER:$1|pārliecināts|pārliecināta}}?",
        "confirmable-yes": "Jā",
        "confirmable-no": "Nē",
        "thisisdeleted": "Apskatīt vai atjaunot $1?",
        "hr_tip": "Horizontāla līnija (neizmanto lieki)",
        "summary": "Kopsavilkums:",
        "subject": "Tēma/virsraksts:",
-       "minoredit": "maznozīmīgs labojums",
+       "minoredit": "Maznozīmīgs labojums",
        "watchthis": "Uzraudzīt šo lapu",
        "savearticle": "Saglabāt lapu",
        "preview": "Pirmskats",
        "session_fail_preview_html": "'''Neizdevās apstrādāt tavas izmaiņas, jo tika pazaudēti sesijas dati.'''\n\n''Tā, kā {{grammar:ģenitīvs|{{SITENAME}}}} darbojas neapstrādāts HTML, pirmskats ir paslēpts, lai aizsargātos no JavaScripta  uzbrukumiem.''\n\n'''Ja šis bija parasts rediģēšanas mēģinājums, mēģini vēlreiz.\nJa tas joprojām nedarbojas, mēģini [[Special:UserLogout|izlogoties ārā]] un ielogoties no jauna.'''",
        "editing": "Labot $1",
        "creating": "Izveido lapu $1",
-       "editingsection": "Labot $1 (sadaļa)",
+       "editingsection": "Labot lapas \"$1\" sadaļu",
        "editingcomment": "Labot $1 (jauna sadaļa)",
        "editconflict": "Izmaiņu konflikts: $1",
        "explainconflict": "Kāds cits ir izmainījis šo lapu pēc tam, kad tu sāki to mainīt.\nAugšējā teksta logā ir lapas teksts tā pašreizējā versijā.\nTevis veiktās izmaiņas ir redzamas apakšējā teksta logā.\nLai saglabātu savas izmaiņas, tev ir jāapvieno savs teksts ar saglabāto pašreizējo variantu.\nKad spiedīsi pogu \"{{int:savearticle}}\", tiks saglabāts '''tikai''' teksts, kas ir augšējā teksta logā.",
        "mergehistory-same-destination": "Avota un mērķa lapas nevar būt tās pašas",
        "mergehistory-reason": "Iemesls:",
        "mergelog": "Apvienošanas reģistrs",
-       "pagemerge-logentry": "apvienots [[$1]] ar [[$2]] (versijas līdz $3)",
        "revertmerge": "Atsaukt apvienošanu",
        "history-title": "\"$1\" versiju hronoloģija",
        "difference-title": "Atšķirības starp \"$1\" versijām",
        "recentchanges-noresult": "Norādītajā periodā šiem kritērijiem neatbilst neviena izmaiņa.",
        "recentchanges-feed-description": "Sekojiet līdzi jaunākajām izmaiņām vikijā izmantojot šo barotni.",
        "recentchanges-label-newpage": "Šī ir jaunizveidota lapa",
-       "recentchanges-label-minor": "Šī ir maznozīmīga izmaiņa",
-       "recentchanges-label-bot": "Šī ir bota veikta izmaiņa",
+       "recentchanges-label-minor": "Šis ir maznozīmīgs labojums",
+       "recentchanges-label-bot": "Šis ir bota veikts labojums",
        "recentchanges-label-unpatrolled": "Šis labojums vēl nav pārbaudīts",
        "recentchanges-label-plusminus": "Par tik baitiem tika izmainīts lapas izmērs",
        "recentchanges-legend-heading": "'''Apzīmējumi:'''",
        "rcnotefrom": "Šobrīd redzamas izmaiņas kopš '''$2''' (parādītas ne vairāk par '''$1''').",
        "rclistfrom": "Parādīt jaunas izmaiņas kopš $3 $2",
        "rcshowhideminor": "$1 maznozīmīgos",
+       "rcshowhideminor-show": "Rādīt",
+       "rcshowhideminor-hide": "Slēpt",
        "rcshowhidebots": "$1 botus",
+       "rcshowhidebots-show": "Rādīt",
+       "rcshowhidebots-hide": "Slēpt",
        "rcshowhideliu": "$1 reģistrētos lietotājus",
+       "rcshowhideliu-show": "Rādīt",
+       "rcshowhideliu-hide": "Slēpt",
        "rcshowhideanons": "$1 anonīmos",
+       "rcshowhideanons-show": "Rādīt",
+       "rcshowhideanons-hide": "Slēpt",
        "rcshowhidepatr": "$1 pārbaudītos labojumus",
+       "rcshowhidepatr-show": "Rādīt",
+       "rcshowhidepatr-hide": "Slēpt",
        "rcshowhidemine": "$1 manus",
+       "rcshowhidemine-show": "Rādīt",
+       "rcshowhidemine-hide": "Slēpt",
        "rclinks": "Parādīt pēdējās $1 izmaiņas pēdējās $2 dienās.<br />$3",
        "diff": "izmaiņas",
        "hist": "hronoloģija",
        "number_of_watching_users_pageview": "[šo lapu uzrauga $1 {{PLURAL:$1|lietotājs|lietotāji}}]",
        "rc_categories": "Ierobežot uz kategorijām (atdalīt ar \"|\")",
        "rc_categories_any": "Jebkas",
+       "rc-change-size-new": "$1 {{PLURAL:$1|baits|baiti}} pēc izmaiņām",
        "newsectionsummary": "/* $1 */ jauna sadaļa",
        "rc-enhanced-expand": "Skatīt detaļas",
        "rc-enhanced-hide": "Paslēpt detaļas",
        "reuploaddesc": "Atcelt augšupielādi un atgriezties pie augšupielādes veidnes.",
        "upload-tryagain": "Iesniegt izmainīto faila aprakstu",
        "uploadnologin": "Neesi iegājis",
-       "uploadnologintext": "Tev jābūt [[Special:UserLogin|iegājušam]], lai augšuplādētu failus.",
+       "uploadnologintext": "Lūdzu, $1, lai augšupielādētu failus.",
        "upload_directory_missing": "Augšupielādes direktorijs ($1) ir pazudis, un to tīmekļa serveris nevar izveidot.",
        "upload_directory_read_only": "Augšupielādes direktoriju ($1) tīmekļa serveris nevar labot.",
        "uploaderror": "Augšupielādes kļūda",
        "randompage": "Nejauša lapa",
        "randomincategory": "Nejauša lapa kategorijā",
        "randomincategory-invalidcategory": "\"$1\" nav derīgs kategorijas nosaukums.",
+       "randomincategory-category": "Kategorija:",
+       "randomincategory-legend": "Nejauša lapa kategorijā",
        "randomredirect": "Nejauša pāradresācijas lapa",
        "statistics": "Statistika",
        "statistics-header-pages": "Lapu statistika",
        "statistics-header-edits": "Izmaiņu statistika",
-       "statistics-header-views": "Apskatīt statistiku",
        "statistics-header-users": "Statistika par lietotājiem",
        "statistics-header-hooks": "Cita statistika",
        "statistics-articles": "Satura lapas",
        "statistics-files": "Augšuplādētie faili",
        "statistics-edits": "Lapu izmaiņas kopš {{grammar:ģenitīvs{{SITENAME}}}} izveidošanas",
        "statistics-edits-average": "Vidējais izmaiņu skaits uz lapu",
-       "statistics-views-total": "Skatījumi kopā",
-       "statistics-views-peredit": "Skatījumu skaits uz labojumu",
        "statistics-users": "Reģistrēti lietotāji",
        "statistics-users-active": "Aktīvi lietotāji",
        "statistics-users-active-desc": "Lietotāji, kas ir veikuši jebkādu darbību {{PLURAL:$1|iepriekšējā dienā|iepriekšējās $1 dienās}}",
-       "statistics-mostpopular": "Visvairāk skatītās lapas",
        "pageswithprop-prop": "Īpašības nosaukums:",
        "pageswithprop-submit": "Aiziet",
        "doubleredirects": "Divkāršas pāradresācijas lapas",
        "uncategorizedtemplates": "Nekategorizētās veidnes",
        "unusedcategories": "Neizmantotas kategorijas",
        "unusedimages": "Neizmantoti attēli",
-       "popularpages": "Populārākās lapas",
        "wantedcategories": "Sarkanas kategorijas",
        "wantedpages": "Pieprasītās lapas",
        "wantedfiles": "Vajadzīgie faili",
        "pageinfo-length": "Lapas garums (baitos)",
        "pageinfo-article-id": "Lapas ID",
        "pageinfo-language": "Lappuses satura valoda",
-       "pageinfo-views": "Skatījumu skaits",
        "pageinfo-watchers": "Lapas uzraudzītāju skaits",
        "pageinfo-redirects-name": "Pāradresāciju skaits uz šo lapu",
        "pageinfo-subpages-name": "Šīs lapas apakšlapas",
index 88eb9b9..589613f 100644 (file)
        "mergehistory-same-destination": "源頁和到頁無同也",
        "mergehistory-reason": "因:",
        "mergelog": "誌併",
-       "pagemerge-logentry": "併咗[[$1]]至[[$2]] (訂至$3)",
        "revertmerge": "悔併",
        "mergelogpagetext": "下乃近頁之誌併至二頁之表也。",
        "history-title": "$1之誌",
        "recentchanges": "近易",
        "recentchanges-legend": "近易項",
        "recentchanges-summary": "共筆揮新,悉列於此。",
+       "recentchanges-noresult": "無易。",
        "recentchanges-feed-description": "跟wiki源之近易。",
        "recentchanges-label-newpage": "此纂開新頁",
        "recentchanges-label-minor": "此乃細纂",
        "statistics": "彙統",
        "statistics-header-pages": "頁彙統",
        "statistics-header-edits": "纂彙統",
-       "statistics-header-views": "閱彙統",
        "statistics-header-users": "有簿彙統",
        "statistics-header-hooks": "他彙統",
        "statistics-articles": "容頁",
        "statistics-files": "已貢",
        "statistics-edits": "自{{SITENAME}}設之頁纂數",
        "statistics-edits-average": "每頁均纂數",
-       "statistics-views-total": "閱總",
-       "statistics-views-total-desc": "不包無存之頁與奇頁之閱數",
-       "statistics-views-peredit": "每纂閱數",
        "statistics-users": "註[[Special:ListUsers|簿]]",
        "statistics-users-active": "活簿",
        "statistics-users-active-desc": "早$1日前更動之簿",
-       "statistics-mostpopular": "燴炙",
        "pageswithprop-submit": "往",
        "doubleredirects": "窮渡",
        "doubleredirectstext": "頁下窮渡,迭列以示。首尾宿合,宜正渡之。\n<del>劃</del>已解之。",
        "uncategorizedtemplates": "待蘸",
        "unusedcategories": "樞鏽",
        "unusedimages": "色褪",
-       "popularpages": "膾炙",
        "wantedcategories": "求門",
        "wantedpages": "徵頁",
        "wantedpages-badtitle": "結組無題: $1",
        "querypage-disabled": "此奇頁基以效,故停之。",
        "booksources": "書海",
        "booksources-search-legend": "舀書海",
+       "booksources-search": "尋",
        "booksources-text": "有賈售新舊書,或有助焉。茲列如下:",
        "booksources-invalid-isbn": "供之ISBN無確,查始複之誤。",
        "specialloguserlabel": "簿:",
        "wlheader-enotif": "*准報信。",
        "wlheader-showupdated": "*易者'''粗體'''。",
        "wlnote": "近<b>$2</b>時有$1者易。",
-       "wlshowlast": "見近$1時、$2天、時易",
+       "wlshowlast": "見近$1時、$2天易",
        "watchlist-options": "哨項",
        "watching": "出陣…",
        "unwatching": "收兵…",
        "allmessages-prefix": "以前綴濾:",
        "allmessages-language": "言:",
        "allmessages-filter-submit": "始",
+       "allmessages-filter-translate": "譯",
        "thumbnail-more": "展",
        "filemissing": "喪檔",
        "thumbnail_error": "縮圖$1有誤",
        "intentionallyblankpage": "此頁為白也,試速之用",
        "external_image_whitelist": " #同留<pre>\n#下(中之//)乃正表式\n#乃外(連)圖配之\n#配乃成像,非配則成連\n#有 # 之為注\n#無為大小之異也\n\n#入正表式。同留</pre>",
        "tag-filter": "[[Special:Tags|標]] 之濾:",
+       "tags-title": "標",
        "tags-tag": "標名",
+       "tags-active-yes": "是",
+       "tags-active-no": "否",
        "tags-edit": "纂",
        "comparepages": "較頁",
        "compare-page1": "頁一",
        "revdelete-unrestricted": "除限自有秩",
        "rightsnone": "(凡)",
        "revdelete-summary": "摘",
-       "searchsuggest-search": "尋"
+       "searchsuggest-search": "尋",
+       "pagelang-language": "語",
+       "mediastatistics-header-unknown": "未知",
+       "mediastatistics-header-video": "映像",
+       "json-error-syntax": "語法有誤"
 }
index bbae542..e5ab3e2 100644 (file)
        "pager-older-n": "{{PLURAL:$1|çkva mcveşi 1|çkva mcveşi $1}}",
        "booksources": "Odude svarape",
        "booksources-search-legend": "Svaraş odudepe mgori",
-       "booksources-go": "İgzali",
        "log": "Kʼayitʼepe",
        "allpages": "Mteli butʼkʼape",
        "prevpage": "İptineri butʼkʼa ($1)",
        "watchthispage": "Butʼkʼa gatxozi",
        "unwatch": "Gotxozu naşkʼvi",
        "watchlist-details": "{{PLURAL:$1|$1 butʼkʼa|$1 butʼkʼa}}, skani gotxozu listʼes ren, ama oğarğaluşi butʼkʼapes va ren",
-       "wlshowlast": "Çodinaşi $1 saatʼi $2 ndğa ko3ʼiri $3",
+       "wlshowlast": "Çodinaşi $1 saatʼi $2 ndğa ko3ʼiri",
        "watchlist-options": "Gotxozu listʼeşi tercihepe",
        "watching": "i3ʼkʼedinen...",
        "unwatching": "var i3ʼkʼedinen...",
        "metadata-expand": "Detayepe ko3ʼiri",
        "metadata-collapse": "Detayepe doşinaxi",
        "metadata-fields": "Am butʼkʼas na ilistʼelinen EXIF metadataş burmepe, resimi ozʼiramuşi butʼkʼapes metadata tʼablo na ğuru oras ixmarinen. Majuranepeti maartani oqʼopinot işinaxasen.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "mteli",
        "namespacesall": "mteli",
        "monthsall": "mteli",
        "watchlisttools-view": "Am tema kʼala alakʼali na renan oktirobape ko3ʼiri",
index d955332..923a446 100644 (file)
@@ -18,7 +18,8 @@
                        "Umeshberma",
                        "Vinitutpal",
                        "아라",
-                       "बिप्लब आनन्द"
+                       "बिप्लब आनन्द",
+                       "सरोज कुमार ढकाल"
                ]
        },
        "tog-underline": "लिंककेँ रेखांकित करू:",
        "otherlanguages": "दोसर भाषामे",
        "redirectedfrom": "(एतयसँ बहटारल $1)",
        "redirectpagesub": "पन्नाकेँ पठाउ",
+       "redirectto": "मे पुनर्निर्देश:",
        "lastmodifiedat": "ई पन्ना अंतिम बेर संवर्धित भेल $1, केँ  $2 बजे।",
        "viewcount": "ई पन्ना देखल गेल {{PLURAL:$1|एक बेर|$1 एतेक बेर}}",
        "protectedpage": "संरक्षित पन्ना",
        "mergehistory-same-destination": "स्रोत आ लक्ष्य पन्ना सभ एक्के नै भऽ सकैए",
        "mergehistory-reason": "कारण:",
        "mergelog": "मिज्झरबला वृत्तलेख",
-       "pagemerge-logentry": "मिज्झर केलौं [[$1]]केँ [[$2]] मे (संशोधन $3 धरि)",
        "revertmerge": "नै मिज्झर",
        "mergelogpagetext": "नीचाँ एक पन्ना इतिहासक दोसरमे अद्यतन मिश्रणक सूची अछि।",
        "history-title": "\"$1\" क संशोधन इतिहास",
        "unusedtemplateswlh": "दोसर लागि सभ",
        "randompage": "अव्यवस्थित पृष्ठ",
        "randompage-nopages": "ऐमे दोसर पन्ना नै अछि {{PLURAL:$2|namespace|namespaces}}: $1 ।",
+       "randomincategory-category": "श्रेणी:",
        "randomredirect": "मिज्झर बदलेनबला लागि",
        "randomredirect-nopages": "नामस्थान \"$1\" मे कोनो बदलेनबला लागि नै अछि।",
        "statistics": "सांख्यिकी",
        "statistics-header-pages": "पन्नाक सांख्यिकी",
        "statistics-header-edits": "सांख्यिकीक सम्पादन करू",
-       "statistics-header-views": "सांख्यिकी देखू",
        "statistics-header-users": "प्रयोक्ता सांख्यिकी",
        "statistics-header-hooks": "दोसर सांख्यिकी",
        "statistics-articles": "अनुक्रम पन्ना सभ",
        "statistics-files": "उपारोपित संचिका सभ",
        "statistics-edits": "{{अन्तर्जाल}} अएबासँ लऽ कऽ भेल पन्ना सम्पादन सभ।",
        "statistics-edits-average": "प्रति पन्ना औसत सम्पादन",
-       "statistics-views-total": "दृश्य आइ धरि",
-       "statistics-views-total-desc": "अस्तित्वहीन पन्ना आ विशेष पन्नाक दृश्य सम्मिलित नै अछि",
-       "statistics-views-peredit": "प्रति सम्पादन देखल गेल",
        "statistics-users": "[[Special:ListUsers|users]] छथि",
        "statistics-users-active": "सक्रिय प्रयोक्ता",
        "statistics-users-active-desc": "प्रयोक्ता जे अन्तिम {{PLURAL:$1|दिन|$1 दिन}} मे कोनो काज केने छथि",
-       "statistics-mostpopular": "सभसँ बेसी देखल गेल पन्ना",
        "doubleredirects": "द्वितीयक लागिबला बदलेन",
        "doubleredirectstext": "ई पन्ना ओइ पन्ना सभक संकलन छी जे बदलेन करैए दोसर बदलेनबला पन्नासँ।\nप्रत्येक पाँती पहिल आ दोसर बदलेनक लागि रखने अछि आ संगे दोसर बदलेनक लक्ष्य सेहो, जे वास्तवमे \"वास्तव\" लक्ष्य पन्ना अछि, जकरापर पहिल बदलेनकेँ जेबाक चाही। \n <del>Crossed out</del> प्रविष्टिक हल भेटल अछि।",
        "double-redirect-fixed-move": "[[$1]] घसकाएल गेल।\nई आब [[$2]] दिस जा रहल अछि।",
        "uncategorizedtemplates": "अवर्गीकृत नमूना सभ",
        "unusedcategories": "नै प्रयोग कएल संवर्ग सभ",
        "unusedimages": "बिना प्रयोगक संचिका सभ",
-       "popularpages": "लोकप्रिय पन्ना सभ",
        "wantedcategories": "आवश्यक संवर्ग सभ",
        "wantedpages": "आवश्यक पन्ना सभ",
        "wantedpages-badtitle": "परिणाम सूचीमे अमान्य शीर्षक:$1",
        "pager-older-n": "{{PLURAL:$1|साबिक 1|साबिक $1}}",
        "suppress": "नजरिपर नै आएल",
        "querypage-disabled": "ई विशिष्ट पन्ना कार्य दक्षता लेल अशक्त कएल गेल अछि।",
+       "apihelp": "API मद्दत",
        "booksources": "किताबक सन्दर्भ सभ",
        "booksources-search-legend": "किताबक सन्दर्भक लेल ताकू",
        "booksources-isbn": "आइ.एस.बी.एन.:",
+       "booksources-search": "ताकू",
        "booksources-text": "नीचाँ दोसर जालस्थलसँ लागि सभक सूची अछि जे नव आ प्रयोग कएल किताब बेचैए, आ ई पोथी सभक विषयमे ओहो सूचना दऽ सकैए जे अहाँ ताकि रहल छी:",
        "booksources-invalid-isbn": "देल आइ.एस.बी.एन. संख्या मान्य नै बुझाइत अछि; कृपा कऽ मूल स्रोतसँ द्वितीयक बनेबा काल भेल भ्रमकेँ जाँचू।",
        "specialloguserlabel": "कर्ता:",
        "alllogstext": "{{अन्तर्जाल}} क सभटा उपलब्ध वृत्तलेखक संयुक्त दृश्य।\nअहाँ दृश्यकेँ संकीर्ण करबा लेल वृत्तलेखक एकटा प्रकार चुनि सकै छी, प्रयोक्तानाम (ब्रह्मक्षर-लघ्वक्षर विचारणीय), वा प्रभावित पन्ना (एतौ ब्रह्मक्षर-लघ्वक्षर विचारणीय)।",
        "logempty": "वृत्तलेखमे कोनो मेल खाइबला बौस्तु नै।",
        "log-title-wildcard": "खोज शीर्षक सभ ऐ पाठसँ प्रारम्भ",
+       "showhideselectedlogentries": "देखाउ/ नुकाउ चयनित लग सभ",
        "allpages": "सभ पन्ना",
        "nextpage": "अगिला पन्ना ($1)",
        "prevpage": "पहिलुका पन्ना ($1)",
        "allpagesprefix": "उपसर्गक संग दृश्य पन्ना सभ:",
        "allpagesbadtitle": "देल पन्नाक शीर्षक गलत, गलत सम्बन्धित अन्तर-भाषा अन्तर विकी शीर्षक छी। ई एक वा बेशी कलाकार युक्त भऽ सकैए जे शीर्षकमे प्रयुक्त नै कएल जा सकैए।",
        "allpages-bad-ns": "{{जालस्थल}} मे \"$1\" नामगाम नै अछि।",
+       "allpages-hide-redirects": "पुनर्निर्देश नुकाऊँ",
        "cachedspecial-refresh-now": "लब्का देखु",
        "categories": "संवर्ग सभ",
        "categoriespagetext": "ई {{PLURAL:$1|संवर्गमे अछि|संवर्ग सभमे अछि}} पन्ना वा मीडिया।\n[[Special:UnusedCategories|Unused categories]] एतए देखाएल नै अछि।\nईहो देखू [[Special:WantedCategories|wanted categories]]।",
        "listgrouprights-namespaceprotection-namespace": "नामस्थान :",
        "listgrouprights-namespaceprotection-restrictedto": "सांच(सभ) के संपादन करए लेल",
        "trackingcategories": "श्रेणीके ट्रयाक करु",
+       "trackingcategories-msg": "श्रेणीके ट्रयाक करु",
+       "trackingcategories-name": "सन्देश नाम",
        "mailnologin": "कोनो पठेबाक पता नै",
        "mailnologintext": "अहाँ [[Special:UserLogin|सम्प्रवेशित]] हेबाक चाही आ अहाँक विकल्प [[Special:Preferences|preferences]]  मे एकटा मान्य ई-पत्र संकेत दोसर प्रयोक्ताकेँ पठेबा लेल हेबाक चाही।",
        "emailuser": "ऐ प्रयोक्ताकेँ ई-पत्र पठाउ",
        "file-exists-sharedrepo": "साझी बखारीमे ऐ नामसँ पहिनहियेसँ एकटा संचिका अछि।\nकृपा कऽ दोसर नाम चुनू।",
        "export": "पन्ना सभकेँ पठाउ",
        "exporttext": "अहाँ पाठ आ कोनो पन्ना/ वा पन्ना-सभक सम्पादन इतिहासकेँ दोसर ठाम कोनो एक्स.एम.एल. संचिकामे लपेट कऽ पठा सकै छी।\nई कोनो दोसर विकीमे मीडियाविकीक प्रयोग कऽ [[Special:Import|import page]] द्वारा आयात कएल जा सकैए।\n\nपन्ना सभक निर्यात लेल, नीचाँक पाठ बक्शामे शीर्षक सभ भरू, प्रति पाँती एक शीर्षक, आ चुनू जे अहाँ अखुनका आ पहिलुका सभटा संशोधन राखऽ चाहै छी, पन्ना इतिहास पाँतीक संग, आकि अखुनका संशोधन पछिला सम्पादनक सूचनाक संग।\n\nबादबला स्थितिमे अहाँ एकटा लागिक प्रयोग कऽ सकै छी, जेना \"[[{{MediaWiki:Mainpage}}]]\" पन्ना लेल [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
+       "exportall": "पन्ना सभकेँ निर्यात करू",
        "exportcuronly": "अखुनका संशोधन मात्र लिअ, पूरा इतिहास नै।",
        "exportnohistory": "----\n'''सूचना:''' परिणाम कुशलताकेँ देखैत पन्नाक सम्पूर्ण इतिहासक निर्यात अशक्त कएल गेल अछि।",
        "exportlistauthors": "सभ पन्नाक सम्पूर्ण योगदानकर्ताक सूची जोड़ू",
        "allmessages-prefix": "उपसर्गक आधारपर छाँटू:",
        "allmessages-language": "भाषा:",
        "allmessages-filter-submit": "चलू",
+       "allmessages-filter-translate": "अनुवाद कर",
        "thumbnail-more": "पैघ",
        "filemissing": "संचिका हेराएल",
        "thumbnail_error": "लघुचित्र निर्माण कालमे भ्रम:$1",
        "import": "पन्ना सभकेँ आनू",
        "importinterwiki": "ट्रान्सविकी आनू",
        "import-interwiki-text": "एकटा विकी आ पन्ना शीर्षक अनबाले चुनू।\nसंशोधन तिथि आ सम्पादकक नाम सुरक्षित रहत।\nसभटा ट्रान्सविकी आयात क्रिया सम्प्रवेशित अछि [[Special:Log/import|import log]] पर।",
+       "import-interwiki-sourcewiki": "मूल विकि:",
+       "import-interwiki-sourcepage": "मूल पन्ना:",
        "import-interwiki-history": "अए पन्नाक सभटा इतिहास संशोधनक द्वितीयक बनाउ",
        "import-interwiki-templates": "सभटा नमूना शामिल करू",
        "import-interwiki-submit": "आनू",
        "tooltip-diff": "देखाऊ जे परिवर्त्तन अहाँ एहि लेखमे कएलहुँ।",
        "tooltip-compareselectedversions": "ऐ पन्नाक दू टा चयन कएल संशोधनक बीचक अन्तर देखू",
        "tooltip-watch": "ऐ पन्नाकेँ अपन साकांक्ष सूचीमे जोड़ू",
+       "tooltip-watchlistedit-normal-submit": "शीर्षक सभकेँ हटाउ",
+       "tooltip-watchlistedit-raw-submit": "साकांक्षसूची अद्यतन करू",
        "tooltip-recreate": "पन्ना फेरसँ बनाउ तखनो जँ ई मेटा देल गेल हुअए",
        "tooltip-upload": "उपारोपण करू",
        "tooltip-rollback": "\"प्रत्यावर्तन\" ऐ पन्नाक अन्तिम योगदा करैबलाक सम्पादन (सम्पादन सभ) केँ एक क्लिकमे पुरान जगहपर लऽ जाउ",
        "spam_reverting": "अन्तिम संशोधन लग घुरल जइमे $1 लागि नै अछि",
        "spam_blanking": "सभटा संशोधन $1 लागिसँ युक्त अि, खतम कऽ रहल छी",
        "pageinfo-title": "\"$1\"पृष्ठक लेल नब गप",
+       "pageinfo-header-basic": "न्यूनतम जानकारी",
        "pageinfo-header-edits": "संपादन",
        "pageinfo-header-restrictions": "पन्ना संरक्षण",
-       "pageinfo-views": "देखहि बला के संख्या",
+       "pageinfo-header-properties": "पन्ना जानकारी",
+       "pageinfo-display-title": "प्रदर्शन शिर्षक",
+       "pageinfo-robot-index": "मान्य",
+       "pageinfo-robot-noindex": "अमान्य",
        "pageinfo-watchers": "जानकारक संख्या",
+       "pageinfo-firstuser": "पन्ना सर्जक",
+       "pageinfo-lastuser": "अन्तिम सम्पादक",
        "pageinfo-edits": "सम्पादनक संख्या",
        "pageinfo-authors": "भिन्न लेखक संख्या",
+       "pageinfo-redirectsto": "मे पुनर्निर्देश:",
+       "pageinfo-redirectsto-info": "जानकारी",
+       "pageinfo-contentpage-yes": "हँ",
+       "pageinfo-protect-cascading-yes": "हँ",
        "markaspatrolleddiff": "देखि लेल गेल, एहन चिन्ह लगाऊ",
        "markaspatrolledtext": "देखि लेल गेल, एहन चिन्ह लगाऊ",
        "markedaspatrolled": "देखि लेल गेल, एहन चिन्ह लगाऊ",
index 50a0650..f7cf1c6 100644 (file)
        "mergehistory-same-destination": "Jeneng kaca sumber lan tujuan ora kena padha",
        "mergehistory-reason": "Alesan:",
        "mergelog": "Gabung log",
-       "pagemerge-logentry": "nggabungna [[$1]] maring [[$2]] (révisi nganti tekan $3)",
        "revertmerge": "Batalna panggabungan",
        "mergelogpagetext": "Nang ngisor kiye isine daftar panggabungan sajarah kaca maring kaca liyane.",
        "history-title": "Riwayat revisi sekang \"$1\"",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik kaca",
        "statistics-header-edits": "Statistik panyuntingan",
-       "statistics-header-views": "Statistik tampilan",
        "statistics-header-users": "Statistik panganggo",
        "statistics-header-hooks": "Statistik liyane",
        "statistics-articles": "Kaca-kaca isi",
        "statistics-files": "Berkas sing diunggahna",
        "statistics-edits": "Jumlah suntingan wiwit {{SITENAME}} dimolai",
        "statistics-edits-average": "Rata-rata suntingan saben kaca",
-       "statistics-views-total": "Jumlah penampilan kaca",
-       "statistics-views-total-desc": "Tampilan maring kaca sing ora-ana lan kaca astamiwa ora dilebokna",
-       "statistics-views-peredit": "Jumlah tampilan saben suntingan",
        "statistics-users": "Jumlah [[Special:ListUsers|panganggo sing kedaftar]]",
        "statistics-users-active": "Jumlah panganggo aktif",
        "statistics-users-active-desc": "Panganggo sing nglakokna aktivitas nang {{PLURAL:$1|dina|$1 dina}} pungkasan",
-       "statistics-mostpopular": "Kaca sing paling akèh dideleng",
        "doubleredirects": "Pangalihan dobel",
        "doubleredirectstext": "Kaca kiye muat daftar kaca sing dialihna maring kaca pangalihan liyane.\nSaben barise nduwe pranala maring pangalihan pertama lan kepindho, lan tujuan sekang pengalihan kepindho sing biasane kuwe kaca tujuan sing \"sebenere\", sing kudune dadi tujuane kaca pangalihan pertama.\n Tembung sing <del>dicorèk</del> artine kuwe wis rampung didandani.",
        "double-redirect-fixed-move": "[[$1]] uwis dipindahna.\nKiye sekiye dialihna maring [[$2]].",
        "uncategorizedtemplates": "Cithakan sing ora dikategorisasi",
        "unusedcategories": "Kategori sing ora digunakna",
        "unusedimages": "Berkas sing ora digunakna",
-       "popularpages": "Kaca populèr",
        "wantedcategories": "Kategori sing diperlokna",
        "wantedpages": "Kaca sing dipèrlokna",
        "wantedpages-badtitle": "Judhul ora valid nang sèt asil: $1",
index 278f236..3307c93 100644 (file)
        "mergehistory-same-destination": "Сядынгольде ди од лопатненди аш кода улемс фкат",
        "mergehistory-reason": "Туфтал:",
        "mergelog": "Шоворематнень лувома",
-       "pagemerge-logentry": "[[$1]] шоворевсь [[$2]]-ть мархта ($3-ть верзиети самс)",
        "revertmerge": "Валхтомс шоворемать",
        "mergelogpagetext": "Ванк ала сяда мекольдень лопатнень фкя фкянь мархта шоворемаснон историясна.",
        "history-title": "\"$1\"нь полафнематнень историясна",
        "statistics": "Статистик",
        "statistics-header-pages": "Лопань статистик",
        "statistics-header-edits": "Петнемс статистикть",
-       "statistics-header-views": "Няфтемс статистикть",
        "statistics-header-users": "Тиить статистиксь",
        "statistics-articles": "Потма мархта лопатне",
        "statistics-pages": "Лопатне",
        "statistics-files": "Тонкф файлхне",
        "statistics-edits": "Лопань петнемасна {{SITENAME}}ть ушедомста",
        "statistics-edits-average": "Петнемат фкя лопас ётксталувксста",
-       "statistics-views-total": "Ванондомада сембоц",
-       "statistics-views-peredit": "Фкя петнемас ванондомада",
        "statistics-users": "Сёрматфтф [[Special:ListUsers|тиихне]]",
        "statistics-users-active": "Покай тиихне",
        "statistics-users-active-desc": "Тиихне конатне тисть мезеге ётай {{PLURAL:$1|шиня|$1 шиста}}",
-       "statistics-mostpopular": "Сидеста сувсеви лопат",
        "doubleredirects": "Кафонзаф умборондафтфксне",
        "doubleredirectstext": "Тя лопань лувомаса няфтевихть умборондафтфксне сюлмафт иля умборондафтфкснень мархта. Эрь луфксса (строкаса) улихть васенце ди омбоце умборондафтфкснень сюлмафкссна, тяса тага ули омбоце умборондафтфксонь васенце киксонцты сюлмафкссь, тоса ули няфтемась лопань лемонц лангс конань мархта эряволь васенце умборондафтфксть сюлмафтомс.\n<del>Туркс кикс мархта</del> тяшксне латцефольхть.",
        "double-redirect-fixed-move": "[[$1]] шашфтфоль, сон тяни [[$2]]нь умборондафтфксоц",
        "uncategorizedtemplates": "Категориефтома кепотькст",
        "unusedcategories": "Тевс апак нолдак категориет",
        "unusedimages": "Тевс апак нолдак файлхт",
-       "popularpages": "Сидеста сувсеви лопат",
        "wantedcategories": "Вешф категориет",
        "wantedpages": "Вешф лопат",
        "wantedfiles": "Вешеви файлхт",
index e7933ce..35266cb 100644 (file)
        "hidetoc": "afeno",
        "collapsible-collapse": "Vonkinina",
        "collapsible-expand": "Itarina",
+       "confirmable-confirm": "Tena tapa-kevitra amin'izany ianao?",
        "confirmable-yes": "Eny",
        "confirmable-no": "Tsia",
        "thisisdeleted": "Hojerena sa haverina i $1?",
        "createaccount-text": "Nisy olona nanokatra kaonty ho an'ny adiresy imailakao eo amin'ny {{SITENAME}} ($4) mitondra anarana « $2 » miaraka amin'ny tenimiafina « $3 ».<br />\nTokony miditra na manokatra kaonty ianao, ary ovay ny tenimiafinao dien-izao.\n\nAza mijery ity hafatra ity ianao raha voaforona an-tsifetezana ilay kaonty io.",
        "login-throttled": "Betsaka loatra ny andram-pidirana nataonao.\n\nAndraso $1 alohan'ny mamerina.",
        "login-abort-generic": "Tsy nahomby ny fanandramanao niditra",
+       "login-migrated-generic": "Efa nafindra ny kaontinao, ary efa tsy misy eto amin'ity wiki ity intsony ny anaram-pikamnbanao",
        "loginlanguagelabel": "fiteny : $1",
        "suspicious-userlogout": "Ny fangataham-pialanao dia tsy nekena satria ohatry ny nalfan'ny mpizahan-tsehatra simba izy na kasy ny proxy.",
        "createacct-another-realname-tip": "Azo tsy atsofoka ny tena anarana.\nRaha misafidy ny hanome azy ianao, ho ampiasaina amin'ny fanehoana ny anjara asan'ilay mpikambana ilay izy.",
        "preview": "Topi-maso",
        "showpreview": "Asehoy aloha",
        "showdiff": "Asehoy ny fiovana",
+       "blankarticle": "<strong>Tandremo:</strong> Fotsy ny pejy tianao hoforonina.\nRaha manindry an'i \"{{int:savearticle}}\" indray ianao dia hoforonina tsy hisy vontoatiny na inona na innona ilay pejy.",
        "anoneditwarning": "<strong>Fampitandremana :</strong> Tsy niditra tamin'ny kaontinao ianao. Ho hitan'ny vahoaka ny adiresy IP-nao raha manova inona na inona ianao. Raha <strong>[$1 miditra amin'ny kaontinao]</strong> ianao dia ho anisan'ny tombontsoa anananao ny fanaovana ny fiovana amin'ny solonanaranao.",
        "anonpreviewwarning": "''Tsy niditra ianao. Hampitahiry ny adiresy IP anao ao amin'ny tantaram-panovan'ity pejy ity ny fitehirizana ny fanovana.''",
        "missingsummary": "'''Hafatra fampantsiahivana''' : tsy mbola nanome ny ambangovangom-panovanao ianao.\nRaha mbola tsindriano fanindroany eo amin'ny bokotra {{int:savearticle}}, ho voatahiry tsy fanambarana ny fanovanao.",
        "mergehistory-same-destination": "Ny pejy iaviana sy ny pejy tanjona dia tsy mahazo mitovy",
        "mergehistory-reason": "Antony :",
        "mergelog": "Laogim-fampitambarana",
-       "pagemerge-logentry": "voatambatra tamin'ny [[$2]] [[$1]] (fanovàna hatramin'ny $3)",
        "revertmerge": "Saraho",
        "mergelogpagetext": "Ity ny lisitry ny fanambarana ny tantaram-pejy vao haingana",
        "history-title": "Tantaran'ny endrik'i « $1 »",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Diff",
        "prefs-help-prefershttps": "Hihatra amin'ny fidiranao manaraka ity safidy ity.",
+       "prefswarning-warning": "Efa nanova tamin'ny safidinao tsy mbola voatahiry ianao. Raha miala amin'ity pejy ity amin'ny alalan'ny fanindriana an'i \"$1\" ianao dia tsy ho voavao ny safidinao.",
        "email-address-validity-valid": "Adiresy imailaka mameno fepetra",
        "email-address-validity-invalid": "Ilaina ny mametraka adiresy imailaka mameno fepetra",
        "userrights": "Fandrindràna ny fahefahan'ny mpikambana",
        "right-browsearchive": "Mitady pejy voafafa",
        "right-undelete": "Mamerina pejy voafafa",
        "right-suppressrevision": "Mandinika sy mamerina ny version asitrika amin'ny mpikambana rehetra",
+       "right-viewsuppressed": "Fiovana natakona avy amin'ity mpikambana ity",
        "right-suppressionlog": "Mijery ny tao tsy sarababem-bahoaka",
        "right-block": "Manakana ny mpikambana mba tsy hanova",
        "right-blockemail": "Manakana ny mpikambana mba tsy handefa imailaka",
        "right-override-export-depth": "Mamoaka ny pejy miaraka amin'ny zana-pejy hatramin'ny ambaratonga fahadimy",
        "right-sendemail": "Mandefa imailaka any amin'ny mpikambana hafa",
        "right-passwordreset": "Hijery ny imailaka famerenana ny tenimiafina",
-       "newuserlogpage": "Tatitr’asan’ny fanokafana kaontim-pikambana",
+       "newuserlogpage": "Laogim-panokafana kaontim-pikambana",
        "newuserlogpagetext": "Ity pejy ity dia maneho ny tantaran'asan'ny fampidirana mpikambana vaovao.",
        "rightslog": "Laogim-piovan'ny zom-pikambana",
        "rightslogtext": "Ity ny laogim-piovan'ny zom-pikambana",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistikan'ny pejy",
        "statistics-header-edits": "Statistikan'ny fanovana",
-       "statistics-header-views": "Statistikan'ny tsidika",
        "statistics-header-users": "Statistikan'ny mpikambana",
        "statistics-header-hooks": "statistika hafa",
        "statistics-articles": "Lahatsoratra",
        "statistics-files": "Rakitra voaray",
        "statistics-edits": "Isan’ny fanovana hatry ny fisian’i {{SITENAME}}",
        "statistics-edits-average": "Isan'ny fanovana isaky ny pejy",
-       "statistics-views-total": "Tsidika",
-       "statistics-views-peredit": "Tsidika isaky ny fanovana",
        "statistics-users": "[[Special:ListUsers|Mpikambana]] nisoratra anarana",
        "statistics-users-active": "Mpikambana mavitrika",
        "statistics-users-active-desc": "Mpikambana nanao zavatra teto tanatin'ny $1 andro{{PLURAL:}}.",
-       "statistics-mostpopular": "Pejy voatsidika",
        "pageswithprop": "Pejy misy toe-pejy",
        "pageswithprop-legend": "Pejy misy toe-pejy",
        "pageswithprop-text": "Manalisitra ny pejy mampiasa toe-pejy manokana ity",
        "uncategorizedtemplates": "Endrika tsy voasokajy",
        "unusedcategories": "Sokajy tsy miasa",
        "unusedimages": "Rakitra tsy miasa",
-       "popularpages": "Pejy maresaka",
        "wantedcategories": "Vondrona tokony hoforonina",
        "wantedpages": "Pejy tokony hoforonina",
        "wantedpages-badtitle": "Lohateny tsy ekena amin'ny valiny : $1",
        "querypage-disabled": "Tsy ampiasaina ity pejy manokana ity mba hitsitsy ny solosaina",
        "booksources": "boky tsiahy",
        "booksources-search-legend": "hikaroka anatin'ny boky todika",
+       "booksources-search": "Fikarohana",
        "booksources-text": "Ity misy lisitra maneho ny rohy makany amin'ny sehatra mivarotra boky vaovao sy efa vaky ary mety ahitanao fampahalalàna momba ny boky sy soratra notadiavinao :",
        "booksources-invalid-isbn": "Ny ISBN nomena dia mety diso ; marino raha diso ianao teo am-pandikanana ny loharano fotony.",
        "specialloguserlabel": "Mpikambana nanao :",
        "allpagesbadtitle": "Tsy mety ny anaram-pejy : misy tovona iraisam-piteny na interwiki natokana, na misy soratra iray na maro tsy azo ampiasaina anaty anaram-pejy.",
        "allpages-bad-ns": "{{SITENAME}} dia tsy manana anaran-tsehatra mitondra anarana « $1 ».",
        "allpages-hide-redirects": "Haneho ny fihodinana",
+       "cachedspecial-viewing-cached-ttl": "Mijery pejy anaty takona ianao, izay namboarina $1 taona lasa.",
        "cachedspecial-refresh-now": "Hijery ny farany indrindra",
        "categories": "Sokajy",
        "categoriespagetext": "{{PLURAL:$1}}Ampiasain'ny rakitra na pejy ireo sokajy manaraka ireo.\nTsy hiseho eto ny [[Special:UnusedCategories|sokajy tsy miasa]].\nVangio koa ny [[Special:WantedCategories|sokajy ilaina]].",
        "protect-othertime": "Daty hafa :",
        "protect-othertime-op": "daty hafa",
        "protect-existing-expiry": "Datin'ny fanalana ilay sazy : $2 amin'ny $3",
+       "protect-existing-expiry-infinity": "Daty fitsaharana efa misy: tsiefa",
        "protect-otherreason": "Antony hafa miampy :",
        "protect-otherreason-op": "Antony hafa",
        "protect-dropdown": "*Anton'ny fiarovana\n** Misy be mpanimba\n** Misy be mpametraka spam\n** Misy adim-panontana\n** Misy olona maro no mandalo eo",
        "sp-contributions-newbies-sub": "Ao amin'ny kaonty vaovao",
        "sp-contributions-newbies-title": "Fandraisan'anjara ao amin'ny kaonty vaovao",
        "sp-contributions-blocklog": "Laogim-panakanana",
+       "sp-contributions-suppresslog": "Fandraisan'anjara voafafa",
        "sp-contributions-deleted": "fandraisan'anjara voafafa",
        "sp-contributions-uploads": "fampidiram-pejy",
        "sp-contributions-logs": "laogy",
        "sp-contributions-search": "Hikaroka fandraisan'anjara",
        "sp-contributions-username": "Adiresy IP na anaram-pikambana :",
        "sp-contributions-toponly": "Fiovana izay farany ihany no aseho",
+       "sp-contributions-newonly": "Fiovana izay namorom-pejy ihany no aseho",
        "sp-contributions-submit": "Hikaroka",
        "whatlinkshere": "Pejy mirohy eto",
        "whatlinkshere-title": "Pejy mirohy any amin'i « $1 »",
        "autoblockid": "Fanakanana mandeha ho azy #$1",
        "block": "Hanakana ilay mpikambana",
        "unblock": "Hanala ny sakan'ilay mpikambana",
-       "blockip": "Sakano ny mpikambana",
+       "blockip": "Hanakana an'i {{GENDER:$1|mpikambana}}",
        "blockip-legend": "Sakano ny mpikambana",
        "blockiptext": "Ampiasao ity formulaire ity hisakanana ny fahazoan-dàlana hanoratra\nananan'ny adiresy IP iray na solonanarana iray.\nTokony ho antony fisorohana ny fisomparana ihany, ary mifanaraka amin'ny [[{{MediaWiki:Policy-url}}|fepetra]]\nihany no hanaovana ny fisakanana.\nFenoy etsy ambany ny antony manokana (ohatra, mitanisà pejy nosomparana).",
        "ipaddressorusername": "Adiresy IP na solonanarana",
        "import": "Hampidi-pejy",
        "importinterwiki": "fampidirana interwiki",
        "import-interwiki-text": "Safidio wiki loharano iray ary ny lohatenin'ilay pejy ho ampidirina eto.\nHo voatazona ao amin'ny tantara ny datin'ny santiôna sy ny anaran'ny mpandray anjara.\nHo voasoratra ao amin'ny [[Special:Log/import|laogim-pampidirana]] ny tao rehetra mikasika ny fampidirana pejy interwiki",
+       "import-interwiki-sourcewiki": "Wiki niaviana:",
+       "import-interwiki-sourcepage": "Pejy niavana :",
        "import-interwiki-history": "Handika ny santiônan'ny tantaran'ity pejy ity",
        "import-interwiki-templates": "Ataovy ao ny endrika rehetra",
        "import-interwiki-submit": "Hampiditra",
        "pageinfo-robot-policy": "Fanondroana ataon'ny rôbô",
        "pageinfo-robot-index": "Azo atao",
        "pageinfo-robot-noindex": "Tsy azo tondroina",
-       "pageinfo-views": "Isan'ny jery",
        "pageinfo-watchers": "Isan'ny mpandray anjara manaraka",
        "pageinfo-few-watchers": "Mpanaraka latsaky ny $1{{PLURAL:}}",
        "pageinfo-redirects-name": "Fihodinana manketo amin'ity pejy ity",
index 7169946..3f38f59 100644 (file)
        "searchprofile-everything-tooltip": "Чыла лаштык-влакыште кычалаш (каҥашымаш лаштык-влакыштат)",
        "searchprofile-advanced-tooltip": "Искать в заданных пространствах имён",
        "search-result-size": "$1 ({{PLURAL:$2|1=$2 мут|$2 мут}})",
-       "search-result-category-size": "$1 {{PLURAL:$1|вхождение|вхождений|вхождения}} ($2 {{PLURAL:$2|подкатегория|подкатегорий|подкатегории}}, $3 {{PLURAL:$3|файл|файлов|файла}}).",
+       "search-result-category-size": "$1 {{PLURAL:$1|вхождение|вхождения|вхождений}} ($2 {{PLURAL:$2|подкатегория|подкатегории|подкатегорий}}, $3 {{PLURAL:$3|файл|файла|файлов}}).",
        "search-redirect": "($1 вес вере колтымаш)",
        "search-section": "(ужаш $1)",
        "search-suggest": "Але те $1 возынеда ыле",
        "statistics": "Иктешлымаш",
        "statistics-header-pages": "Лаштык коклам иктешлымаш",
        "statistics-header-edits": "Тӧрлатымаш коклам иктешлымаш",
-       "statistics-header-views": "Ончымаш коклам иктешлымаш",
        "statistics-header-users": "Пайдаланыше коклам иктешлымаш",
        "statistics-header-hooks": "Тӱрлӧ коклам иктешлымаш",
        "statistics-articles": "Возымо лаштык-влак",
        "statistics-files": "Пуртымо файл-влак",
        "statistics-edits": "{{SITENAME}} лаштыкым чылажге мыняр гана тӧрлатыме",
        "statistics-edits-average": "Ик лаштыкым покшел тӧрлымӧ чот",
-       "statistics-views-total": "Чылажге ончымо",
-       "statistics-views-peredit": "Ик тӧрлатымашлан ончымо",
        "statistics-users": "Регистрацийым эртыше [[Special:ListUsers|пайдаланыше-влак]]",
        "statistics-users-active": "Чӱчкыдын пайдаланыше-влак",
        "statistics-users-active-desc": "Пытартыш {{PLURAL:$1|1=кечыште|$1 кечыште}} иктаж-мом ыштыше пайдаланыше-влак",
-       "statistics-mostpopular": "Эн чӱчкыдын ончымо лаштык-влак",
        "brokenredirects": "Пудыртымо вес вере колтымаш-влак",
        "brokenredirects-edit": "тӧрлаташ",
        "brokenredirects-delete": "шӧраш",
index 443cd4f..ceb12da 100644 (file)
@@ -1,85 +1,85 @@
 {
-    "@metadata": {
-        "authors": [
-            "Iketsi",
-            "Kiharoa",
-            "Sonia"
-        ]
-    },
-    "sunday": "Rātapu",
-    "monday": "Rāhina",
-    "tuesday": "Rātū",
-    "wednesday": "Rāapa",
-    "thursday": "Rāpare",
-    "friday": "Rāmere",
-    "saturday": "Rāhoroi",
-    "january": "Kohi-tātea",
-    "february": "Hui-tanguru",
-    "march": "Poutū-te-rangi",
-    "april": "Paenga-whāwhā",
-    "may_long": "Haratua",
-    "june": "Pipiri",
-    "july": "Hōngongoi",
-    "august": "Here-turi-kōkā",
-    "september": "Mahuru",
-    "october": "Whiringa-ā-nuku",
-    "november": "Whiringa-ā-rangi",
-    "december": "Hakihea",
-    "cancel": "Whakakore",
-    "mytalk": "Karere mōku",
-    "navigation": "Huarahi",
-    "vector-view-view": "Rīti",
-    "help": "Whakamārama",
-    "search": "Rapua",
-    "go": "Haere",
-    "history": "Kōrero Nehe",
-    "history_short": "Tuhinga/kaituhi",
-    "printableversion": "Tāia",
-    "permalink": "Hononga toitū",
-    "edit": "Whakatika",
-    "delete": "tangohia",
-    "protect": "Whakangungua",
-    "talkpagelinktext": "Kōrerohia",
-    "talk": "Kōrerorero",
-    "toolbox": "Pouaka utauta",
-    "aboutsite": "Mo {{SITENAME}}",
-    "currentevents": "Kōrero",
-    "currentevents-url": "Project:Kōrero",
-    "mainpage": "Hau Kāinga",
-    "mainpage-description": "Hau Kāinga",
-    "portal": "Tomokanga hapori",
-    "portal-url": "Project:Tomokanga hapori",
-    "privacy": "Tikanga tūmataiti",
-    "privacypage": "Project:Tikanga tūmataiti",
-    "toc": "Rārangi kōrero",
-    "showtoc": "whakakite",
-    "hidetoc": "hunaia",
-    "nstab-main": "tuhi pānui",
-    "nstab-template": "papa tauira",
-    "nstab-help": "Āwhina",
-    "nstab-category": "Wāhanga",
-    "userlogout": "Whakarere",
-    "savearticle": "Tiaki",
-    "showdiff": "Tiro rerekētanga",
-    "preferences": "Kōwhiringa",
-    "recentchanges": "Rerekētanga hōu",
-    "hide": "Hunaia",
-    "show": "Whakaaturia",
-    "recentchangeslinked": "Rerekētanga pū tahi",
-    "recentchangeslinked-feed": "Rerekētanga pū tahi",
-    "recentchangeslinked-toolbox": "Rerekētanga pū tahi",
-    "upload": "Tuku atu",
-    "randompage": "Tipihaere",
-    "move": "Nekehia",
-    "allpages": "Ngā whārangi katoa",
-    "allpagessubmit": "Haere",
-    "watchlist": "Rārangi mātaki",
-    "mywatchlist": "Rārangi mātaki",
-    "watch": "Mātaki",
-    "unwatch": "kāti te mātaki",
-    "contributions": "Ngā mahi a tēnei mema",
-    "mycontris": "āku mahi",
-    "whatlinkshere": "Ngā hononga mai",
-    "allmessages": "Pānui pūnaha",
-    "specialpages": "Whārangi motuhake"
+       "@metadata": {
+               "authors": [
+                       "Iketsi",
+                       "Kiharoa",
+                       "Sonia",
+                       "Piwaiwaka"
+               ]
+       },
+       "sunday": "Rātapu",
+       "monday": "Rāhina",
+       "tuesday": "Rātū",
+       "wednesday": "Rāapa",
+       "thursday": "Rāpare",
+       "friday": "Rāmere",
+       "saturday": "Rāhoroi",
+       "january": "Kohi-tātea",
+       "february": "Hui-tanguru",
+       "march": "Poutū-te-rangi",
+       "april": "Paenga-whāwhā",
+       "may_long": "Haratua",
+       "june": "Pipiri",
+       "july": "Hōngongoi",
+       "august": "Here-turi-kōkā",
+       "september": "Mahuru",
+       "october": "Whiringa-ā-nuku",
+       "november": "Whiringa-ā-rangi",
+       "december": "Hakihea",
+       "cancel": "Whakakore",
+       "mytalk": "Karere mōku",
+       "navigation": "Huarahi",
+       "help": "Whakamārama",
+       "search": "Rapua",
+       "go": "Haere",
+       "history": "Kōrero nehe",
+       "history_short": "Tuhinga/kaituhi",
+       "printableversion": "Tāia",
+       "permalink": "Hononga toitū",
+       "edit": "Whakatika",
+       "delete": "tangohia",
+       "protect": "Whakangungua",
+       "talkpagelinktext": "Kōrerohia",
+       "talk": "Kōrerorero",
+       "toolbox": "Pouaka utauta",
+       "aboutsite": "Mo {{SITENAME}}",
+       "currentevents": "Kawepūrongo",
+       "currentevents-url": "Project:Kōrero",
+       "mainpage": "Hau Kāinga",
+       "mainpage-description": "Hau Kāinga",
+       "portal": "Tomokanga hapori",
+       "portal-url": "Project:Tomokanga hapori",
+       "privacy": "Tikanga tūmataiti",
+       "privacypage": "Project:Tikanga tūmataiti",
+       "toc": "Rārangi kōrero",
+       "showtoc": "whakakite",
+       "hidetoc": "hunaia",
+       "nstab-main": "tuhi pānui",
+       "nstab-template": "papa tauira",
+       "nstab-help": "Āwhina",
+       "nstab-category": "Wāhanga",
+       "userlogout": "Whakarere",
+       "savearticle": "Tiaki",
+       "showdiff": "Tiro rerekētanga",
+       "preferences": "Kōwhiringa",
+       "recentchanges": "Huringa hou",
+       "hide": "Hunaia",
+       "show": "Whakaaturia",
+       "recentchangeslinked": "Huringa pūtahi",
+       "recentchangeslinked-feed": "Rerekētanga pū tahi",
+       "recentchangeslinked-toolbox": "Huringa pūtahi - pouaka utauta",
+       "upload": "Tuku atu",
+       "randompage": "Tipihaere",
+       "move": "Nekehia",
+       "allpages": "Ngā whārangi katoa",
+       "allpagessubmit": "Haere",
+       "watchlist": "Rārangi mātaki",
+       "mywatchlist": "Rārangi mātaki",
+       "watch": "Mātaki",
+       "unwatch": "kāti te mātaki",
+       "contributions": "Ngā mahi a tēnei mema",
+       "mycontris": "āku mahi",
+       "whatlinkshere": "Ngā hononga mai",
+       "allmessages": "Pānui pūnaha",
+       "specialpages": "Whārangi motuhake"
 }
index 6f2613d..5811a61 100644 (file)
        "suppressionlog": "Log pambanaman",
        "mergehistory-reason": "Alasan:",
        "mergelog": "Log panggabuangan",
-       "pagemerge-logentry": "manggabuangan [[$1]] ka [[$2]] (revisi sampai $3)",
        "revertmerge": "Batal gabuang",
        "mergelogpagetext": "Di bawah ko daftar panggabuangan riwayaik laman ka laman nan lain.",
        "history-title": "Riwayaik revisi dari \"$1\"",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik laman",
        "statistics-header-edits": "Statistik suntiangan",
-       "statistics-header-views": "Statistik tampilan",
        "statistics-header-users": "Statistik pangguno",
        "statistics-header-hooks": "Statistik lainnyo",
        "statistics-articles": "Laman konten",
        "statistics-files": "Berkas nan lah dimuek",
        "statistics-edits": "Jumlah suntiangan sangkek {{SITENAME}} ko dimulai",
        "statistics-edits-average": "Rato-rato suntiangan per-laman",
-       "statistics-views-total": "Jumlah tampilan laman",
-       "statistics-views-total-desc": "Tampilan ka laman nan indak ado jo laman khusus nan indak ikuik",
-       "statistics-views-peredit": "Tampilan per-suntiangan",
        "statistics-users": "Jumlah [[Special:ListUsers|pangguno tadaftar]]",
        "statistics-users-active": "Pangguno aktip",
        "statistics-users-active-desc": "Pangguno nan aktip dalam {{PLURAL:$1|$1 ari}} tarakhia.",
-       "statistics-mostpopular": "Laman nan paliang banyak ditampilkan",
        "pageswithprop": "Laman jo laman properti",
        "pageswithprop-legend": "Laman jo laman properti",
        "pageswithprop-text": "Laman ko barisi daftar laman nan manggunoan properti laman tatantu.",
        "pageinfo-robot-policy": "Statuih masin pancari",
        "pageinfo-robot-index": "Dapek di indeks",
        "pageinfo-robot-noindex": "Indak dapek di indeks",
-       "pageinfo-views": "Bara kali dibaco",
        "pageinfo-watchers": "Bara urang nan mambaco",
        "pageinfo-few-watchers": "Kurang dari $1 {{PLURAL:$1|pambaco}}",
        "pageinfo-redirects-name": "Pangaliahan ka laman ko",
index bf01d49..a931417 100644 (file)
        "view": "Преглед",
        "view-foreign": "Погл. на $1",
        "edit": "Уреди",
-       "edit-local": "УÑ\80еди Ð»Ð¾ÐºÐ°Ð»ен опис",
+       "edit-local": "УÑ\80еди Ð¼ÐµÑ\81ен опис",
        "create": "Создај",
-       "create-local": "Ð\94одаÑ\98 Ð»Ð¾ÐºÐ°Ð»ен опис",
+       "create-local": "Ð\94одаÑ\98 Ð¼ÐµÑ\81ен опис",
        "editthispage": "Уреди ја страницава",
        "create-this-page": "Создај ја страницава",
        "delete": "Избриши",
        "protectedpagetext": "Оваа страница е заклучена за уредувања и други дејства.",
        "viewsourcetext": "Можете да го погледнете и копирате кодот на оваа страница:",
        "viewyourtext": "Можете да го погледнете и копирате кодот на '''вашите уредувања''' на оваа страница:",
-       "protectedinterface": "Оваа страница содржи текст од посредникот на програмот на ова вики и е превентивно заштитена поради можна злоупотреба.\nЗа да додавате или менувате преводи на сите викија, појдете на [//translatewiki.net/wiki/Main_Page?uselang=mk translatewiki.net] - проектот за локализација на МедијаВики.",
-       "editinginterface": "'''Предупредување:''' Уредувате страница која е дел од корисничкиот посредник на програмот МедијаВики.\nПромените на оваа страница ќе предизвикаат промени во корисничкиот посредник кај другите корисници на ова вики.\nЗа да додадете или измените превод на сите викија, појдете на [//translatewiki.net/wiki/Main_Page?setlang=mk translatewiki.net] - проектот за локализација на МедијаВики.",
+       "protectedinterface": "Оваа страница содржи текст од посредникот на програмот на ова вики и е превентивно заштитена поради можна злоупотреба.\nЗа да додавате или менувате преводи на сите викија, појдете на [//translatewiki.net/wiki/Main_Page?uselang=mk translatewiki.net] — проектот за преведување на МедијаВики.",
+       "editinginterface": "<strong>Предупредување:</strong> Уредувате страница која е дел од корисничкиот посредник на програмот МедијаВики.\nПромените на оваа страница ќе предизвикаат промени во корисничкиот посредник кај другите корисници на ова вики.",
+       "translateinterface": "За да додадете или измените превод на сите викија, појдете на [//translatewiki.net/wiki/Main_Page?setlang=mk translatewiki.net] — проектот за преведување на МедијаВики.",
        "cascadeprotected": "Оваа страница е заштитена од уредувања бидејќи е вклучена во {{PLURAL:$1|следнава страница, којашто е заштитена|следниве страници, коишто се заштитени}} со можноста „каскадна заштита“:\n$2",
        "namespaceprotected": "Немате дозвола за уредување страници во именскиот простор '''$1'''.",
        "customcssprotected": "Немате дозвола да ја менувате оваа страница со CSS бидејќи содржи туѓи лични нагодувања.",
        "content-model-text": "прост текст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Страници што користат дуплирани аргументи во повикувања на шаблони",
+       "duplicate-args-category-desc": "Страницава содржи повикувања на шаблони кои се дупликати на аргументи, како што се <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> или <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Предупредување: Оваа страница користи премногу повикувања на parser функции.\n\nТреба да има помалку од $2 {{PLURAL:$2|повикување|повикувања}} а сега има {{PLURAL:$1|$1 повикување|$1 повикувања}}.",
        "expensive-parserfunction-category": "Страници со премногу повикувања на парсер функции",
        "post-expand-template-inclusion-warning": "'''Предупредување:''' Големината на вклучените шаблони е преголема.\nНекои шаблони нема да бидат вклучени.",
        "mergehistory-same-destination": "Изворната и целната страница треба да се различни",
        "mergehistory-reason": "Причина:",
        "mergelog": "Дневник на спојувања на страници",
-       "pagemerge-logentry": "споено [[$1]] во [[$2]] (преработки до $3)",
        "revertmerge": "Одвојување",
        "mergelogpagetext": "Следи список на скорешни спојувања на истории на страници.",
        "history-title": "$1: Историја на измените",
        "search-result-category-size": "{{PLURAL:$1|1 член|$1 члена}} ({{PLURAL:$2|1 поткатегорија|$2 поткатегории}}, {{PLURAL:$3|1 податотека|$3 податотеки}})",
        "search-redirect": "(пренасочување $1)",
        "search-section": "(пасус $1)",
+       "search-category": "(категорија $1)",
        "search-file-match": "(се совпаѓа со содржината на податотеката)",
        "search-suggest": "Дали мислевте на: $1",
        "search-interwiki-caption": "Збратимени проекти",
        "prefs-help-watchlist-token2": "Ова е тајна шифра за вашиот канализиран список на набљудувања.\nСекој што ја знае ќе може да ја чита, па затоа ви препорачуваме да не ја кажувате никому.\n[[Special:ResetTokens|Стиснете тука ако треба да зададете нова]].",
        "savedprefs": "Вашите нагодувања се зачувани.",
        "timezonelegend": "Часовен појас:",
-       "localtime": "Ð\9bокално време:",
+       "localtime": "Ð\9cеÑ\81но време:",
        "timezoneuseserverdefault": "Од викито ($1)",
        "timezoneuseoffset": "Друго (посочете отстапување)",
        "servertime": "Време на опслужувачот:",
        "gender-female": "Таа уредува викистраници",
        "prefs-help-gender": "Оваа поставка е незадолжителна.\nПрограмот го користи посочениот род за да ве опишува согласно вашиот пол.\nИнформацијата ќе биде јавна.",
        "email": "Е-пошта",
-       "prefs-help-realname": "'''Вистинското име''' е незадолжително.\nДоколку изберете да го внесете, тоа може да се искористи за оддавање на заслуги за Вашата работа.",
+       "prefs-help-realname": "Вистинското име е незадолжително.\nДоколку изберете да го внесете, тоа може да се искористи за оддавање на заслуги за Вашата работа.",
        "prefs-help-email": "Е-поштата е незадолжителна, но ќе ви треба за добивање на нова лозинка ако си ја заборавите постоечката.",
        "prefs-help-email-others": "Можете да изберете другите да ве контактираат преку вашата корисничка страница без да го откриете вашиот идентитет.",
        "prefs-help-email-required": "Е-поштенска адреса е задолжително да се наведе.",
        "prefs-info": "Основни информации",
-       "prefs-i18n": "Ð\98нÑ\82еÑ\80наÑ\86ионализаÑ\86иÑ\98а",
+       "prefs-i18n": "Ð\88азик",
        "prefs-signature": "Потпис",
        "prefs-dateformat": "Формат на датумот",
        "prefs-timeoffset": "Временско отстапување",
        "right-upload": "Подигни податотеки",
        "right-reupload": "Заменување на постоечки податотеки",
        "right-reupload-own": "Преснимување на постоечка податотека подигната од вас",
-       "right-reupload-shared": "Ð\9fÑ\80езапиÑ\81 Ð½Ð° ÐµÐ´Ð½Ð¸ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ð²Ñ\80з Ð´Ñ\80Ñ\83ги Ð½Ð° Ð·Ð°ÐµÐ´Ð½Ð¸Ñ\87коÑ\82о Ð¼Ñ\83лÑ\82имедиÑ\98ално Ñ\81кладиÑ\88Ñ\82е Ð»Ð¾ÐºÐ°Ð»но",
+       "right-reupload-shared": "Ð\9fÑ\80езапиÑ\81 Ð½Ð° ÐµÐ´Ð½Ð¸ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ð²Ñ\80з Ð´Ñ\80Ñ\83ги Ð½Ð° Ð·Ð°ÐµÐ´Ð½Ð¸Ñ\87коÑ\82о Ð¼Ñ\83лÑ\82имедиÑ\98ално Ñ\81кладиÑ\88Ñ\82е Ð¼ÐµÑ\81но",
        "right-upload_by_url": "Подигање на податотека од URL-адреса",
        "right-purge": "Бришење од опслужувачки меѓусклад на страницата без барање потврда за тоа",
        "right-autoconfirmed": "Без ограничувања на стапки за IP-адреса",
        "unwatchedpages": "Ненабљудувани страници",
        "listredirects": "Список на пренасочувања",
        "listduplicatedfiles": "Список на податотеки со дупликати",
-       "listduplicatedfiles-summary": "Ð\9eва Ðµ Ñ\81пиÑ\81ок Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ñ\87иÑ\98а Ð½Ð°Ñ\98нова Ð²ÐµÑ\80зиÑ\98а Ðµ Ð´Ñ\83пликаÑ\82 Ð½Ð° Ð½Ð°Ñ\98нова Ð²ÐµÑ\80зиÑ\98а Ð½Ð° Ð½ÐµÐºÐ¾Ñ\98а Ð´Ñ\80Ñ\83га Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82ека. Ð¡Ðµ Ð·ÐµÐ¼Ð°Ð°Ñ\82 Ð¿Ñ\80едвид Ñ\81амо Ð»Ð¾ÐºÐ°Ð»ни податотеки.",
+       "listduplicatedfiles-summary": "Ð\9eва Ðµ Ñ\81пиÑ\81ок Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ñ\87иÑ\98а Ð½Ð°Ñ\98нова Ð²ÐµÑ\80зиÑ\98а Ðµ Ð´Ñ\83пликаÑ\82 Ð½Ð° Ð½Ð°Ñ\98нова Ð²ÐµÑ\80зиÑ\98а Ð½Ð° Ð½ÐµÐºÐ¾Ñ\98а Ð´Ñ\80Ñ\83га Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82ека. Ð¡Ðµ Ð·ÐµÐ¼Ð°Ð°Ñ\82 Ð¿Ñ\80едвид Ñ\81амо Ð¼ÐµÑ\81ни податотеки.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] има [[$3|{{PLURAL:$2|дупликат|$2 дупликати}}]].",
        "unusedtemplates": "Неискористени шаблони",
        "unusedtemplatestext": "Оваа страница ги прикажува сите страници во именскиот простор {{ns:template}} кои не се вклучени во друга страница.\nНе заборавајте да ги проверите другите врски во шаблоните пред да ги избришете.",
        "statistics": "Статистики",
        "statistics-header-pages": "Статистики за страници",
        "statistics-header-edits": "Статистики на уредувања",
-       "statistics-header-views": "Статистики на посети",
        "statistics-header-users": "Статистики за корисници",
        "statistics-header-hooks": "Други статистики",
        "statistics-articles": "Статии",
        "statistics-files": "Подигнати податотеки",
        "statistics-edits": "Број на уредувања од започнувањето на {{SITENAME}}",
        "statistics-edits-average": "Просечен број на уредувања по страница",
-       "statistics-views-total": "Вкупно посети",
-       "statistics-views-total-desc": "Не се вклучени прегледувања на непостоечки и службени страници",
-       "statistics-views-peredit": "Посети по уредување",
        "statistics-users": "Регистрирани [[Special:ListUsers|корисници]]",
        "statistics-users-active": "Активни корисници",
        "statistics-users-active-desc": "Корисници кои имаат извршено некое дејство {{PLURAL:$1|претходниот ден|во претходните $1 дена}}",
-       "statistics-mostpopular": "Најпосетувани страници",
        "pageswithprop": "Страници со својство",
        "pageswithprop-legend": "Страници со својство",
        "pageswithprop-text": "На страницава се наведени страници што користат дадено својство.",
        "uncategorizedtemplates": "Некатегоризирани преуредувања",
        "unusedcategories": "Неискористени категории",
        "unusedimages": "Неискористени слики",
-       "popularpages": "Популарни страници",
        "wantedcategories": "Потребни категории",
        "wantedpages": "Потребни страници",
        "wantedpages-badtitle": "Невалиден наслов во резултатите: $1",
        "pager-older-n": "{{PLURAL:$1|постара 1|постари $1}}",
        "suppress": "Скривање",
        "querypage-disabled": "Оваа службена страница е оневозможена за да не попречува на делотворноста.",
+       "apihelp": "Помош со прилогот",
+       "apihelp-no-such-module": "Модулот „$1“ не е пронајден.",
        "booksources": "Печатени извори",
        "booksources-search-legend": "Пребарување на извори за книга",
        "booksources-isbn": "ISBN:",
        "listgrouprights-namespaceprotection-header": "Ограничувања за именски простори",
        "listgrouprights-namespaceprotection-namespace": "Именски простор",
        "listgrouprights-namespaceprotection-restrictedto": "Права што им овозможуваат на корисниците да уредуваат",
-       "trackingcategories": "Следачки категории",
-       "trackingcategories-summary": "Ð\9dа Ñ\81Ñ\82Ñ\80аниÑ\86ава Ñ\81е Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸ Ñ\81ледачки категории што автоматски се пополнуваат од програмот на МедијаВики. Нивните називи можат да се сменат со измена на соодветните системски пораки во именскиот простор {{ns:8}}.",
-       "trackingcategories-msg": "Следачка категорија",
+       "trackingcategories": "Следечки категории",
+       "trackingcategories-summary": "Ð\9dа Ñ\81Ñ\82Ñ\80аниÑ\86ава Ñ\81е Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸ Ñ\81ледечки категории што автоматски се пополнуваат од програмот на МедијаВики. Нивните називи можат да се сменат со измена на соодветните системски пораки во именскиот простор {{ns:8}}.",
+       "trackingcategories-msg": "Следечка категорија",
        "trackingcategories-name": "Назив на пораката",
        "trackingcategories-desc": "Критериуми за вклучување",
        "noindex-category-desc": "Роботите не ја индексираат страницава бидејќи го содржи волшебниот збор <code><nowiki>__NOINDEX__</nowiki></code> и се наоѓа во именски простор кајшто е дозволен.",
        "blocklist-params": "Параметри на блокот",
        "blocklist-reason": "Причина",
        "ipblocklist-submit": "Пребарај",
-       "ipblocklist-localblock": "Ð\9bокален блок",
+       "ipblocklist-localblock": "Ð\9cеÑ\81ен блок",
        "ipblocklist-otherblocks": "{{PLURAL:$1|друг блок|други блокови}}",
        "infiniteblock": "бесконечно",
        "expiringblock": "истекува на $1 во $2 ч.",
        "allmessagesname": "Име",
        "allmessagesdefault": "Текст по основно",
        "allmessagescurrent": "Сегашен текст",
-       "allmessagestext": "Ð\9eва Ðµ Ñ\81пиÑ\81ок Ð½Ð° Ñ\81иÑ\81Ñ\82емÑ\81киÑ\82е Ð¿Ð¾Ñ\80аки Ñ\80аÑ\81положиви Ð·Ð° Ð¸Ð¼ÐµÐ½Ñ\81киоÑ\82 Ð¿Ñ\80оÑ\81Ñ\82оÑ\80 â\80\9eÐ\9cедиÑ\98аÐ\92икиâ\80\9c.\nÐ\9eдеÑ\82е Ð½Ð° [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Ð\9bокализаÑ\86иÑ\98а Ð½Ð° Ð\9cедиÑ\98аÐ\92ики] Ð¸ [//translatewiki.net translatewiki.net] Ð°ÐºÐ¾ Ñ\81акаÑ\82е Ð´Ð° Ð¿Ñ\80идонеÑ\81еÑ\82е ÐºÐ¾Ð½ Ð¾Ð¿Ñ\88Ñ\82аÑ\82а Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ\86иÑ\98а на МедијаВики.",
+       "allmessagestext": "Ð\9eва Ðµ Ñ\81пиÑ\81ок Ð½Ð° Ñ\81иÑ\81Ñ\82емÑ\81киÑ\82е Ð¿Ð¾Ñ\80аки Ñ\80аÑ\81положиви Ð·Ð° Ð¸Ð¼ÐµÐ½Ñ\81киоÑ\82 Ð¿Ñ\80оÑ\81Ñ\82оÑ\80 â\80\9eÐ\9cедиÑ\98аÐ\92икиâ\80\9c.\nÐ\9eдеÑ\82е Ð½Ð° [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Ð\9fÑ\80евод Ð½Ð° Ð\9cедиÑ\98аÐ\92ики] Ð¸ [//translatewiki.net translatewiki.net] Ð°ÐºÐ¾ Ñ\81акаÑ\82е Ð´Ð° Ð¿Ñ\80идонеÑ\81еÑ\82е ÐºÐ¾Ð½ Ð¾Ð¿Ñ\88Ñ\82оÑ\82о Ð¿Ñ\80еведÑ\83ваÑ\9aе на МедијаВики.",
        "allmessagesnotsupportedDB": "Оваа страница не може да се користи бидејќи '''$wgUseDatabaseMessages''' е исклучено.",
        "allmessages-filter-legend": "Филтер",
        "allmessages-filter": "Филтрирај по состојба на прилагодувањето:",
        "tooltip-pt-mycontris": "Список на ваши придонеси",
        "tooltip-pt-login": "Ви препорачуваме да се најавите, иако тоа не е задолжително.",
        "tooltip-pt-logout": "Одјавување",
+       "tooltip-pt-createaccount": "Ви препорачуваме да направите сметка и да се најавите, иако тоа не е задолжително",
        "tooltip-ca-talk": "Разговор за страницата",
        "tooltip-ca-edit": "Можете да ја уредите оваа страница. Ве молиме користете го копчето за преглед пред зачувување.",
        "tooltip-ca-addsection": "Започни нов пасус",
        "tooltip-feed-atom": "Atom емитување за оваа страница",
        "tooltip-t-contributions": "Список на придонеси на овој корисник",
        "tooltip-t-emailuser": "Испрати е-пошта на овој корисник",
+       "tooltip-t-info": "Повеќе информаици за страницава",
        "tooltip-t-upload": "Подигни податотеки",
        "tooltip-t-specialpages": "Список на сите службени страници",
        "tooltip-t-print": "Верзија на страницава наменета за печатење",
        "pageinfo-robot-policy": "Индексирање со роботи",
        "pageinfo-robot-index": "Дозволено",
        "pageinfo-robot-noindex": "Недозволено",
-       "pageinfo-views": "Број на посети",
        "pageinfo-watchers": "Број на набљудувачи",
        "pageinfo-few-watchers": "Помалку од $1 {{PLURAL:$1|набљудувач|набљудувачи}}",
        "pageinfo-redirects-name": "Пренасочувања кон страницата",
        "unknown_extension_tag": "Непозната ознака на додатокот „$1“",
        "duplicate-defaultsort": "Предупредување: Основниот клуч за подредување „$2“ го поништува претходниот основен клуч за подредување „$1“.",
        "duplicate-displaytitle": "<strong>Предупредување:</strong> Приказниот наслов „$2“ го заменува претходнито приказен наслов „$1“.",
+       "invalid-indicator-name": "<strong>Грешка:</strong> Атрибутот <code>name</code> што го покажува статусот на страницата не може да биде празен.",
        "version": "Верзија",
        "version-extensions": "Воспоставени додатоци",
        "version-skins": "Воспоставени рува",
        "revdelete-uname-unhid": "корисничкото име е скриено",
        "revdelete-restricted": "применети ограничувања на администратори",
        "revdelete-unrestricted": "отстранети ограничувања за систем оператори",
+       "logentry-merge-merge": "$1 {{GENDER:$2|ја припои}} $3 кон $4 (преработки сè до $5)",
        "logentry-move-move": "$1 {{GENDER:$2|ја премести}} страницата $3 на $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ја премести}} страницата $3 на $4 без да остави пренасочување",
        "logentry-move-move_redir": "$1 {{GENDER:$2|ја премести}} страницата $3 на $4 презапишувајќи врз пренасочување",
        "api-error-stashfailed": "Внатрешна грешка: Опслужувачот не успеа да ја складира привремената податотека.",
        "api-error-publishfailed": "Внатрешна грешка: Опслужувачот не успеа да ја објави привремената податотека.",
        "api-error-stasherror": "Се јави грешка при подигањето на податотеката во складот.",
+       "api-error-stashedfilenotfound": "Не ја најдов наплстената податотека при обидот да ја подигнам од пластот.",
+       "api-error-stashpathinvalid": "Патеката кајшто требаше да се најде складираната податотека е неважечка.",
+       "api-error-stashfilestorage": "Се јави грешка при ставањето на податотеката во складот.",
+       "api-error-stashzerolength": "Опслужувачот не можеше да ја складира податотеката бидејќи има нулта должина.",
+       "api-error-stashnotloggedin": "Мора да се најавени за да зачувувате податотеки во складот на подигнати.",
+       "api-error-stashwrongowner": "Податотеката во складот до која сакате да дојдете не ви припаѓа вам.",
+       "api-error-stashnosuchfilekey": "Клучот на податотеката во складот до кој сакате да дојдете не постои.",
        "api-error-timeout": "Опслужувачот не одговори во очекуваното време.",
        "api-error-unclassified": "Се појави непозната грешка.",
        "api-error-unknown-code": "Непозната грешка: „$1“",
index 7d0fae0..f3cea21 100644 (file)
        "viewsourcetext": "താങ്കൾക്ക് ഈ താളിന്റെ മൂലരൂപം കാണാനും പകർത്താനും സാധിക്കും:",
        "viewyourtext": "താങ്കൾക്ക് ഈ താളിലെ '''താങ്കളുടെ തിരുത്തുകളുടെ''' മൂലരൂപം കാണാനും പകർത്താനും സാധിക്കും:",
        "protectedinterface": "ഈ താൾ ഈ വിക്കിയുടെ സോഫ്റ്റ്‌വെയറിന്റെ സമ്പർക്കമുഖ എഴുത്തുകൾ നൽകുന്നു, അതുകൊണ്ട് ദുരുപയോഗം തടയാൻ ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു. എല്ലാ വിക്കികൾക്കുമായി പരിഭാഷ കൂട്ടിച്ചേർക്കാനോ, പരിഭാഷയിൽ മാറ്റം വരുത്താനോ, ദയവായി മീഡിയവിക്കി പ്രാദേശീകരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുക.",
-       "editinginterface": "'''മുന്നറിയിപ്പ്:''' സോഫ്റ്റ്‌വെയറിൽ സമ്പർക്കമുഖം നിലനിർത്തുന്ന താളാണു താങ്കൾ തിരുത്തുവാൻ പോകുന്നത്.\nഈ താളിൽ താങ്കൾ വരുത്തുന്ന മാറ്റങ്ങൾ ഉപയോക്താക്കൾ വിക്കി കാണുന്ന വിധത്തെ മാറ്റിമറിച്ചേക്കാം.\nമീഡിയവിക്കി സന്ദേശങ്ങളുടെ പരിഭാഷകൾ കൂട്ടിച്ചേർക്കാനും മാറ്റംവരുത്താനും മീഡിയവിക്കി സന്ദേശങ്ങളുടെ പ്രാദേശികവത്കരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുവാൻ താല്പര്യപ്പെടുന്നു.",
+       "editinginterface": "<strong>മുന്നറിയിപ്പ്:<strong> സോഫ്റ്റ്‌വെയറിൽ സമ്പർക്കമുഖം നിലനിർത്തുന്ന താളാണു താങ്കൾ തിരുത്തുവാൻ പോകുന്നത്.\nഈ താളിൽ താങ്കൾ വരുത്തുന്ന മാറ്റങ്ങൾ ഉപയോക്താക്കൾ വിക്കി കാണുന്ന വിധത്തെ മാറ്റിമറിച്ചേക്കാം.",
+       "translateinterface": "എല്ലാ വിക്കികൾക്കും ഉപയോഗിക്കാനാവുംവിധം പരിഭാഷകൾ കൂട്ടിച്ചേർക്കാനും മാറ്റംവരുത്താനും മീഡിയവിക്കി സന്ദേശങ്ങളുടെ പ്രാദേശികവത്കരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുവാൻ താല്പര്യപ്പെടുന്നു.",
        "cascadeprotected": "നിർഝരിത (cascading) സൗകര്യം ഉപയോഗിച്ച് തിരുത്തൽ നടത്തുന്നതിനു സം‌രക്ഷണം ഏർപ്പെടുത്തിയിട്ടുള്ള {{PLURAL:$1|താഴെ കൊടുത്തിട്ടുള്ള താളിന്റെ|താഴെ കൊടുത്തിട്ടുള്ള താളുകളുടെ}} ഭാഗമാണ്‌ ഈ താൾ. അതിനാൽ ഈ താൾ തിരുത്താൻ സാധിക്കില്ല:\n$2",
        "namespaceprotected": "'''$1''' നാമമേഖലയിലുള്ള താളുകൾ തിരുത്താൻ താങ്കൾക്ക് അനുവാദമില്ല.",
        "customcssprotected": "ഈ സി.എസ്.എസ്. താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.",
        "content-model-text": "വെറും എഴുത്ത്",
        "content-model-javascript": "ജാവാസ്ക്രിപ്റ്റ്",
        "content-model-css": "സി.എസ്.എസ്.",
+       "duplicate-args-category": "ഫലകങ്ങൾ വിളിക്കുമ്പോൾ ചരങ്ങൾ ആവർത്തിച്ചുപയോഗിക്കുന്ന താളുകൾ",
+       "duplicate-args-category-desc": "താളിൽ ഫലകങ്ങൾ വിളിക്കുമ്പോൾ ചരങ്ങൾ അതായത് <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> അല്ലെങ്കിൽ <code><nowiki>{{foo|bar|1=baz}}</nowiki></code> എന്ന രീതിയിൽ.",
        "expensive-parserfunction-warning": "'''മുന്നറിയിപ്പ്:''' ഈ താളിൽ വളരെക്കൂടുതൽ പാഴ്സർ ഫങ്ഷനുകൾ വിളിച്ചിരിക്കുന്നു.\n\n{{PLURAL:$2|ഒരു വിളി|$2 വിളികൾ}} മാത്രമുണ്ടാകേണ്ടയിടത്ത്, ഇപ്പോൾ {{PLURAL:$1|ഒരു വിളി|$1 വിളികൾ}} ഉണ്ട്.",
        "expensive-parserfunction-category": "വളരെയധികം ചിലവേറിയ പാഴ്സർ ഫങ്ഷൻ വിളികൾ ഉൾക്കൊള്ളുന്ന താളുകൾ",
        "post-expand-template-inclusion-warning": "'''അറിയിപ്പ്:''' ഫലകം ഉൾപ്പെടുത്താവുന്ന വലിപ്പത്തിലും വളരെ കൂടുതൽ ആയിരിക്കുന്നു.\nചില ഫലകങ്ങൾ ഉൾപ്പെടുത്തുകയില്ല.",
        "mergehistory-same-destination": "സ്രോതസ്സ് - ലക്ഷ്യ താളുകൾക്ക് ഒരേ പേര്‌ ഉണ്ടാകാൻ പാടില്ല",
        "mergehistory-reason": "കാരണം:",
        "mergelog": "താളുകൾ സം‌യോജിപ്പിച്ചതിന്റെ രേഖകൾ",
-       "pagemerge-logentry": "[[$1]] എന്ന താൾ [[$2]] എന്ന താളിലേയ്ക്ക് സംയോജിപ്പിച്ച് കൂട്ടിച്ചേർത്തു ($3 വരെയുള്ള പതിപ്പുകൾ)",
        "revertmerge": "വിയോജിപ്പിക്കുക",
        "mergelogpagetext": "രണ്ടു താളുകളുടെ നാൾവഴികൾ തമ്മിൽ സം‌യോജിപ്പിച്ചതിന്റെ പ്രവർത്തനരേഖകളുടെ ഏറ്റവും പുതിയ പട്ടിക താഴെ കാണാം.",
        "history-title": "\"$1\" എന്ന താളിന്റെ നാൾവഴി",
        "search-result-category-size": "{{PLURAL:$1|ഒരു അംഗം|$1 അംഗങ്ങൾ}} ({{PLURAL:$2|ഒരു ഉപവർഗ്ഗം|$2 ഉപവർഗ്ഗങ്ങൾ}}, {{PLURAL:$3|ഒരു പ്രമാണം|$3 പ്രമാണങ്ങൾ}})",
        "search-redirect": "(തിരിച്ചുവിടൽ താൾ $1)",
        "search-section": "(വിഭാഗം $1)",
+       "search-category": "(വർഗ്ഗം $1)",
        "search-file-match": "(പ്രമാണ ഉള്ളടക്കവുമായി ഒത്തുപോകുന്നുണ്ട്)",
        "search-suggest": "താങ്കൾ ഉദ്ദേശിച്ചത് $1 എന്നാണോ",
        "search-interwiki-caption": "സഹോദര സംരംഭങ്ങൾ",
        "gender-female": "സ്ത്രീ",
        "prefs-help-gender": "ഈ സജ്ജീകരണം നിർബന്ധമല്ല.\nസോഫ്റ്റ്‌വെയർ ഉപയോഗിച്ച് സ്ത്രീകളേയും പുരുഷന്മാരേയും ശരിയായി സംബോധന ചെയ്യാൻ ഉപയോഗിക്കുന്നു.\nഈ വിവരം പരസ്യമായി ലഭ്യമായിരിക്കുന്നതാണ്‌.",
        "email": "ഇമെയിൽ",
-       "prefs-help-realname": "താങ്കളുടെ യഥാർത്ഥ പേര്‌ നൽകണമെന്നു നിർബന്ധമില്ല. എങ്കിലും അങ്ങനെ ചെയ്താൽ താങ്കളുടെ സംഭാവനകൾ ആ പേരിൽ അംഗീകരിക്കപ്പെടും.",
+       "prefs-help-realname": "താങ്കളുടെ യഥാർത്ഥ പേര്‌ നൽകണമെന്നു നിർബന്ധമില്ല.\nഎന്നാൽ അങ്ങനെ ചെയ്താൽ താങ്കളുടെ സംഭാവനകൾ ആ പേരിൽ അംഗീകരിക്കപ്പെടുന്നതാണ്.",
        "prefs-help-email": "ഇമെയിൽ വിലാസം നൽകണമെന്ന് നിർബന്ധമില്ല, പക്ഷേ താങ്കൾ രഹസ്യവാക്ക് മറന്നാൽ പുതിയത് അയച്ചു തരാൻ വിലാസം ആവശ്യമാണ്.",
        "prefs-help-email-others": "താങ്കൾക്കായുള്ള താളിൽ നിന്നോ, താങ്കൾക്കുള്ള സന്ദേശങ്ങളുടെ താളിൽ നിന്നോ മറ്റുപയോക്താക്കൾക്ക് താങ്കളുടെ വ്യക്തിത്വം മനസ്സിലാക്കാതെ തന്നെ താങ്കൾക്ക് സന്ദേശങ്ങളയയ്ക്കാനും ഈ സം‌വിധാനം അവസരം നൽകുന്നു.",
        "prefs-help-email-required": "ഇമെയിൽ വിലാസം ആവശ്യമാണ്‌.",
        "statistics": "സ്ഥിതിവിവരക്കണക്കുകൾ",
        "statistics-header-pages": "താൾ സ്ഥിതിവിവരക്കണക്കുകൾ",
        "statistics-header-edits": "തിരുത്തൽ സ്ഥിതിവിവരക്കണക്കുകൾ",
-       "statistics-header-views": "സന്ദർശനങ്ങളുടെ സ്ഥിതിവിവരക്കണക്കുകൾ",
        "statistics-header-users": "ഉപയോക്താക്കളുടെ സ്ഥിതിവിവരക്കണക്കുകൾ",
        "statistics-header-hooks": "മറ്റു സ്ഥിതിവിവരക്കണക്കുകൾ",
        "statistics-articles": "ലേഖനങ്ങൾ",
        "statistics-files": "അപ്‌ലോഡ് ചെയ്തിട്ടുള്ള പ്രമാണങ്ങൾ",
        "statistics-edits": "{{SITENAME}} സം‌രംഭത്തിന്റെ തുടക്കം മുതലുള്ള തിരുത്തുകൾ",
        "statistics-edits-average": "ഒരു താളിലെ ശരാശരി തിരുത്തുകൾ",
-       "statistics-views-total": "ആകെ സന്ദർശനങ്ങൾ",
-       "statistics-views-total-desc": "നിലവില്ലാത്ത താളുകളിലും പ്രത്യേക താളുകളിലും ഉള്ള എടുത്തുനോക്കലുകൾ ഉൾപ്പെടുത്തിയിട്ടില്ല",
-       "statistics-views-peredit": "ഓരോ തിരുത്തലിലും ഉള്ള എടുത്തുനോട്ടങ്ങൾ",
        "statistics-users": "അംഗത്വമെടുത്തിട്ടുള്ള [[Special:ListUsers|ഉപയോക്താക്കൾ]]",
        "statistics-users-active": "സജീവ ഉപയോക്താക്കൾ",
        "statistics-users-active-desc": "കഴിഞ്ഞ {{PLURAL:$1|ദിവസം|$1 ദിവസങ്ങൾക്കുള്ളിൽ}} പ്രവർത്തിച്ചിട്ടുള്ള ഉപയോക്താക്കൾ",
-       "statistics-mostpopular": "ഏറ്റവുമധികം സന്ദർശിക്കപ്പെട്ട താളുകൾ",
        "pageswithprop": "താളിന്റെ സവിശേഷതകളുള്ള താളുകൾ",
        "pageswithprop-legend": "ഒരു താൾ സവിശേഷതയുള്ള താളുകൾ",
        "pageswithprop-prop": "ഗുണം:",
        "uncategorizedtemplates": "വർഗ്ഗീകരിക്കാത്ത ഫലകങ്ങൾ",
        "unusedcategories": "ഉപയോഗത്തിലില്ലാത്ത വർഗ്ഗങ്ങൾ",
        "unusedimages": "ഉപയോഗിക്കപ്പെടാത്ത പ്രമാണങ്ങൾ",
-       "popularpages": "ജനപ്രിയ താളുകൾ",
        "wantedcategories": "അവശ്യ വർഗ്ഗങ്ങൾ",
        "wantedpages": "അവശ്യ താളുകൾ",
        "wantedpages-badtitle": "ഫലങ്ങളുടെ ഗണത്തിൽ അസാധുവായ തലക്കെട്ട്: $1",
        "pager-older-n": "{{PLURAL:$1|പഴയ 1|പഴയ $1}}",
        "suppress": "മേൽനോട്ടം",
        "querypage-disabled": "പ്രവർത്തനമികവിനെ ബാധിക്കുന്ന കാരണങ്ങളാൽ ഈ പ്രത്യേക താൾ പ്രവർത്തന രഹിതമാക്കിയിരിക്കുന്നു.",
+       "apihelp": "എ.പി.ഐ. സഹായം",
+       "apihelp-no-such-module": "ഘടകം \"$1\" കണ്ടെത്താനായില്ല.",
        "booksources": "പുസ്തക സ്രോതസ്സുകൾ",
        "booksources-search-legend": "പുസ്തകസ്രോതസ്സുകൾക്കായി തിരയുക",
        "booksources-isbn": "ഐ.എസ്.ബി.എൻ.:",
        "import-error-interwiki": "ബാഹ്യ കണ്ണിചേർക്കലിനു (അന്തർവിക്കി) കരുതിവെച്ചിരിക്കുന്ന പേര് ആയതിനാൽ, \"$1\" എന്ന താൾ ഇറക്കുമതി ചെയ്തില്ല.",
        "import-error-special": "താളുകൾ അനുവദിക്കാത്ത പ്രത്യേക നാമമേഖലയിൽ പെടുന്നതായതിനാൽ \"$1\" എന്ന താൾ ഇറക്കുമതി ചെയ്തില്ല.",
        "import-error-invalid": "ഇറക്കുമതി ചെയ്യപ്പെട്ടാൽ പേര് ഈ വിക്കിയിൽ അസാധുവാകുമെന്നതിനാൽ \"$1\" എന്ന താൾ ഇറക്കുമതി ചെയ്തില്ല.",
+       "import-error-bad-location": "ഉള്ളടക്ക മാതൃക $3 ഉപയോഗിക്കുന്ന $2 നാൾപ്പതിപ്പ്, ഈ വിക്കിയിലെ \"$1\" എന്ന താളിൽ ആ മാതൃക പിന്തുണയ്ക്കുന്നില്ലാത്തതിനാൽ ഉപയോഗിക്കാനാവില്ല.",
        "import-options-wrong": "തെറ്റായ {{PLURAL:$2|ഐച്ഛികം|ഐച്ഛികങ്ങൾ}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "നൽകിയ മൂലതാൾ അസാധുവാണ്.",
        "import-rootpage-nosubpage": "മൂലതാളിന്റെ നാമമേഖലയായ \"$1\" ഉപതാളുകൾ അനുവദിക്കുന്നില്ല.",
        "tooltip-pt-mycontris": "താങ്കളുടെ സേവനങ്ങളുടെ പട്ടിക",
        "tooltip-pt-login": "ലോഗിൻ ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു; പക്ഷേ നിർബന്ധമല്ല",
        "tooltip-pt-logout": "ലോഗൗട്ട് ചെയ്യാനുള്ള കണ്ണി",
+       "tooltip-pt-createaccount": "നിർബന്ധമില്ലെങ്കിലും, താങ്കൾ ഒരു അംഗത്വമെടുക്കണമെന്നും പ്രവേശിക്കണമെന്നും താത്പര്യപ്പെടുന്നു",
        "tooltip-ca-talk": "വിവരദായക താളിനെക്കുറിച്ചുള്ള ചർച്ച",
        "tooltip-ca-edit": "താങ്കൾക്ക് ഈ താൾ തിരുത്താവുന്നതാണ്. തിരുത്തിയ താൾ സേവ് ചെയ്യൂന്നതിനു മുൻപ് പ്രിവ്യൂ കാണുക.",
        "tooltip-ca-addsection": "പുതിയ വിഭാഗം തുടങ്ങുക",
        "tooltip-feed-atom": "ഈ താളിന്റെ ആറ്റം ഫീഡ്",
        "tooltip-t-contributions": "ഉപയോക്താവിന്റെ സംഭാവനകളുടെ പട്ടിക കാണുക",
        "tooltip-t-emailuser": "ഈ ഉപയോക്താവിനു ഇമെയിൽ അയക്കുക",
+       "tooltip-t-info": "ഈ താളിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ",
        "tooltip-t-upload": "പ്രമാണങ്ങൾ അപ്‌ലോഡ് ചെയ്യുവാൻ",
        "tooltip-t-specialpages": "പ്രത്യേകതാളുകളുടെ പട്ടിക",
        "tooltip-t-print": "ഈ താളിന്റെ അച്ചടി രൂപം",
        "pageinfo-robot-policy": "റോബോട്ടുകളുടെ സൂചികാവത്കരണം",
        "pageinfo-robot-index": "അനുവദിച്ചിരിക്കുന്നു",
        "pageinfo-robot-noindex": "അനുവദിച്ചിട്ടില്ല",
-       "pageinfo-views": "എടുത്തുനോക്കലുകളുടെ എണ്ണം",
        "pageinfo-watchers": "താൾ ശ്രദ്ധിക്കുന്നവരുടെ എണ്ണം",
        "pageinfo-few-watchers": "{{PLURAL:$1|ശ്രദ്ധിക്കുന്നയാളുടെ|ശ്രദ്ധിക്കുന്നവരുടെ}} എണ്ണം $1 എണ്ണത്തിലും കുറവാണ്",
        "pageinfo-redirects-name": "ഈ താളിലേക്കുള്ള തിരിച്ചുവിടലുകളുടെ എണ്ണം",
        "mediastatistics-header-office": "ആപ്പീസ്",
        "mediastatistics-header-text": "എഴുത്ത്",
        "mediastatistics-header-executable": "എക്സിക്യൂട്ടബിളുകൾ",
-       "mediastatistics-header-archive": "ചുരുക്കിയ ഫയൽതരങ്ങൾ"
+       "mediastatistics-header-archive": "ചുരുക്കിയ ഫയൽതരങ്ങൾ",
+       "json-warn-trailing-comma": "ജെസണിൽ നിന്നും $1 എന്നതിന്റെ പിന്നാലെയുള്ള {{PLURAL:$1|കോമ|കോമകൾ}} നീക്കി",
+       "json-error-unknown": "ജെസണിൽ ഒരു പ്രശ്നമുണ്ടായി. പിഴവ്: $1",
+       "json-error-depth": "സ്റ്റാക്കിന്റെ പരമാവധി ആഴം അധികരിച്ചിരിക്കുന്നു",
+       "json-error-state-mismatch": "അസാധുവായ അല്ലെങ്കിൽ തെറ്റായവിധത്തിലുള്ള ജെസൺ",
+       "json-error-ctrl-char": "കണ്ട്രോൾ കാരക്ടർ പിഴവ്, മിക്കവാറും തെറ്റായി എൻകോഡ് ചെയ്യപ്പെട്ടത്",
+       "json-error-syntax": "എഴുത്തുരീതിയിൽ പിഴവ്",
+       "json-error-utf8": "തെറ്റായരൂപത്തിലുള്ള UTF-8 അക്ഷരങ്ങൾ, മിക്കവാറും തെറ്റായി എൻകോഡ് ചെയ്യപ്പെട്ടവ",
+       "json-error-recursion": "എൻകോഡ് ചെയ്യേണ്ട വിലയിൽ ഒന്നോ അതിലധികമോ പുനരാവർത്തിത സൂചകങ്ങൾ",
+       "json-error-inf-or-nan": "എൻകോഡ് ചെയ്യേണ്ട വിലയിൽ ഒന്നോ അതിലധികമോ NAN അല്ലെങ്കിൽ INF വിലകൾ"
 }
index adf133c..dc2cd22 100644 (file)
        "mergehistory-same-destination": "Эх үүсвэр ба зорих хуудсууд ижил байж болохгүй",
        "mergehistory-reason": "Шалтгаан:",
        "mergelog": "Нэгтгэлийн лог",
-       "pagemerge-logentry": "[[$1]]-г [[$2]] руу нэгтгэлээ ($3 хүртэлх засварууд)",
        "revertmerge": "Нэгтгэлийг буцаах",
        "mergelogpagetext": "Доорх нь нэг хуудасны түүхийг өөр түүхтэй нэгтгэсэн хамгийн сүүлийн нэгтгэлүүд юм.",
        "history-title": "\"$1\"-н хянасан түүх",
        "statistics": "Статистик мэдээлэл",
        "statistics-header-pages": "Хуудасны статистик",
        "statistics-header-edits": "Засварын статистик",
-       "statistics-header-views": "Статистикийг үзэх",
        "statistics-header-users": "Хэрэглэгчийн статистик",
        "statistics-header-hooks": "Өөр статистик",
        "statistics-articles": "Агуулгын хуудас",
        "statistics-files": "Оруулсан файл",
        "statistics-edits": "{{SITENAME}} ашиглаланд орсоноос хойших хуудасны засварын тоо",
        "statistics-edits-average": "Хуудас тутмын дундаж засварын тоо",
-       "statistics-views-total": "Нийт үзсэн тоо",
-       "statistics-views-peredit": "Засвар тутмыг үзсэн тоо",
        "statistics-users": "Бүртгэгдсэн [[Special:ListUsers|хэрэглэгч]]",
        "statistics-users-active": "Байнгын оролцоотой хэрэглэгч",
        "statistics-users-active-desc": "Сүүлийн {{PLURAL:$1|өдөрт|$1 өдөрт}} үйлдэл хийсэн хэрэглэгчид",
-       "statistics-mostpopular": "Хамгийн олон удаа үзсэн хуудсууд",
        "doubleredirects": "Давхар чиглүүлэгчүүд",
        "doubleredirectstext": "Энэ хуудсанд өөр хуудсуудыг давхар заасан хуудсуудыг жагсаасан байна\nМөр тус бүр нь эхний заасан болон түүний дараах заасан хуудсуудыг жагсаан бичсэний сацуу уг хоёр хуудсын эцсийн чиглүүлсэн \"жинхэнэ\" хуудсыг үзүүлсэн байна.",
        "double-redirect-fixed-move": "[[$1]] зөөгдөж, [[$2]] руух чиглүүлэгч боллоо",
        "uncategorizedtemplates": "Ангилагдаагүй загварууд",
        "unusedcategories": "Хоосон анги",
        "unusedimages": "Ашиглагдаагүй файлууд",
-       "popularpages": "Эрэлттэй хуудсууд",
        "wantedcategories": "Хэрэгцээт ангиллууд",
        "wantedpages": "Хэрэгцээтэй хуудсууд",
        "wantedpages-badtitle": "Үр дүнд хүчингүй гарчиг байв: $1",
        "pageinfo-default-sort": "Үндсэн ангилах түлхүүр",
        "pageinfo-length": "Хуудасны урт (байтаар)",
        "pageinfo-article-id": "Хуудасны ID",
-       "pageinfo-views": "Харагдацуудын тоо",
        "pageinfo-watchers": "Хуудас хянагчдын тоо",
        "pageinfo-subpages-name": "Үүний дэд хуудас",
        "pageinfo-firstuser": "Хуудас үүсгэсэн",
index 2b258aa..64e73ff 100644 (file)
@@ -3,9 +3,12 @@
                "authors": [
                        "Comp1089",
                        "Node ue",
-                       "לערי ריינהארט"
+                       "לערי ריינהארט",
+                       "TheChampionMan1234",
+                       "아라"
                ]
        },
+       "tog-hideminor": "Аскунде модификэриле миноре ын щимбэре реченте",
        "sun": "Дум",
        "january": "януарие",
        "february": "фебруарие",
@@ -92,7 +95,7 @@
        "disclaimers": "Деклараций",
        "disclaimerpage": "Project:Декларацие ӂенералэ",
        "edithelp": "Ажутор пентру едитаре",
-       "mainpage": "Прима паӂина",
+       "mainpage": "Паӂина принчипалэ",
        "mainpage-description": "Прима паӂина",
        "privacy": "Политика де интимитате",
        "privacypage": "Project:Политика де интимитате",
        "editlink": "едитязэ",
        "viewsourcelink": "везь сурса",
        "editsectionhint": "Едитязэ секциуня: $1",
-       "toc": "ТаблÑ\8d Ð´Ðµ Ð¼Ð°Ñ\82еÑ\80ий",
+       "toc": "Ð\9aÑ\83пÑ\80инÑ\81",
        "showtoc": "аратэ",
        "hidetoc": "аскунде",
        "site-rss-feed": "$1 Агрегат RSS",
        "search-interwiki-more": "(май мулт)",
        "powersearch-legend": "Кэутаре авансатэ",
        "powersearch-ns": "Кэутаре ын спацииле де нуме:",
-       "powersearch-redir": "Афишазэ редиректэриле",
        "preferences": "Преферинце",
        "mypreferences": "Преферинцеле меле",
        "group-sysop": "Администраторь",
        "recentchanges": "Скимбэрь реченте",
        "recentchanges-legend": "Опциунь скимбэрь реченте",
        "recentchanges-feed-description": "Привеште челе май реченте скимбэрь фолосинд ачест агрегат.",
-       "rclistfrom": "Аратэ модификэриле ынчепынд де ла $1",
+       "rclistfrom": "Аратэ модификэриле ынчепынд де ла $3 $2",
        "rcshowhideminor": "$1 модификэриле миноре",
        "rcshowhidebots": "$1 ботурь",
        "rcshowhideliu": "$1 утилизаторь аутентификаць",
        "recentchangeslinked-page": "Нумеле паӂиний:",
        "recentchangeslinked-to": "Афишазэ скимбэриле ын паӂиниле каре се лягэ де паӂина датэ",
        "upload": "Тримите фишиер",
-       "uploadedimage": "а ынкэркат «[[$1]]»",
        "file-anchor-link": "Фишиер",
        "filehist": "Историкул фишиерулуй",
        "filehist-help": "Апасэ пе '''Дата ши ора''' пентру а ведя версиуня тримисэ атунчь.",
        "pager-newer-n": "{{PLURAL:$1|1 май ноу|$1 май ной}}",
        "pager-older-n": "{{PLURAL:$1|1|$1}} май векь",
        "booksources": "Сурсе де кэрць",
-       "booksources-go": "Ду-те",
        "log": "Журнале",
        "allpages": "Тоате паӂиниле",
-       "alphaindexline": "$1 пынэ ла $2",
        "prevpage": "Паӂина антериоарэ ($1)",
        "allpagesfrom": "Афишазэ паӂиниле порнинд де ла:",
        "allpagesto": "Афишазэ паӂиниле терминынд де ла:",
        "watch": "Привеште",
        "watchthispage": "Привеште ачастэ паӂинэ",
        "unwatch": "Ну май привеште",
-       "wlshowlast": "Аратэ ултимеле $1 оре $2 зиле $3",
+       "wlshowlast": "Аратэ ултимеле $1 оре $2 зиле",
        "watchlist-options": "Опциуниле листей де паӂинь привите",
        "watching": "Привинд...",
        "unwatching": "Ну май привинд...",
        "metadata-help": "Ачест фишиер концине информаций суплиментаре, интродусе пробабил де апаратул фотографик диӂитал сау сканерул каре л-а ӂенерат.\nДакэ фишиерул а фост модификат ынтре тимп, есте посибил ка унеле деталий сэ ну май фие валабиле.",
        "metadata-expand": "Афишазэ деталий суплиментаре",
        "metadata-collapse": "Аскунде деталий суплиментаре",
-       "watchlistall2": "тоате",
        "namespacesall": "тоате",
        "monthsall": "тоате",
        "watchlisttools-view": "Везь скимбэриле релеванте",
index cf8ee1f..e584443 100644 (file)
        "mergehistory-same-destination": "स्रोत व लक्ष्यपाने सारखीच असू शकत नाहीत",
        "mergehistory-reason": "कारण:",
        "mergelog": "नोंदी एकत्र करा",
-       "pagemerge-logentry": "[[$2]]मध्ये[[$1]] समाविष्ट केले ($3पर्यंतची आवर्तने)",
        "revertmerge": "अविलीन करा",
        "mergelogpagetext": "एका पानाचा इतिहास इतर पानात टाकून अगदी अलीकडे एकत्रित केलेली एकत्रिकरणे निम्न्दर्शीत सूचीमध्ये आहेत.",
        "history-title": "\"$1\" चा संपादन इतिहास",
        "statistics": "सांख्यिकी",
        "statistics-header-pages": "पृष्ठ सांख्यिकी",
        "statistics-header-edits": "संपादन सांख्यिकी",
-       "statistics-header-views": "सांख्यिकी पहा",
        "statistics-header-users": "सदस्य सांख्यिकी",
        "statistics-header-hooks": "इतर सांख्यिकी",
        "statistics-articles": "आशय पाने",
        "statistics-files": "अपभारीत संचिका",
        "statistics-edits": "{{SITENAME}} च्या सुरुवातीपासूनची पानांची संपादने",
        "statistics-edits-average": "प्रतिपान सरासरी संपादने",
-       "statistics-views-total": "सर्व दाखवते",
-       "statistics-views-total-desc": "अस्तित्वात नसलेली पाने व विशेष पाने यांची दृष्यता यात अंतर्भूत नाही",
-       "statistics-views-peredit": "प्रति संपादनामागे पाहणे",
        "statistics-users": "नोंदणीकृत [[Special:ListUsers|सदस्य]]",
        "statistics-users-active": "कार्यरत सदस्य",
        "statistics-users-active-desc": "{{PLURAL:$1|शेवटच्या दिवसात|शेवटच्या $1 दिवसांत}} एकतरी संपादन केलेले सदस्य",
-       "statistics-mostpopular": "सर्वाधिक बघितली जाणारी पाने",
        "pageswithprop": "'पृष्ठ गुणधर्म' असणारी पाने",
        "pageswithprop-legend": "पृष्ठ गुणधर्म असणारी पाने",
        "pageswithprop-text": "या पानावर अश्या पानांची यादी आहे जे एक विशिष्ट 'पृष्ठ गुणधर्म'  वापरतात.",
        "uncategorizedtemplates": "अवर्गीकृत साचे",
        "unusedcategories": "न वापरलेले वर्ग",
        "unusedimages": "न वापरलेल्या संचिका",
-       "popularpages": "प्रसिद्ध पाने",
        "wantedcategories": "पाहिजे असलेले वर्ग",
        "wantedpages": "पाहिजे असलेले लेख",
        "wantedpages-badtitle": "परिणामाच्या यादीत अवैध शीर्षक: $1",
        "pageinfo-robot-policy": "यंत्रमानवाद्वारे अनुक्रमन",
        "pageinfo-robot-index": "अनुमती दिली",
        "pageinfo-robot-noindex": "अनुमती दिल्या जात नाही",
-       "pageinfo-views": "अभिप्रायांची संख्या",
        "pageinfo-watchers": "पानावर पहारा देणाऱ्यांची संख्या",
        "pageinfo-few-watchers": "$1 पेक्षा कमी {{PLURAL:$1|पहारेदार}}",
        "pageinfo-redirects-name": "या पानास असलेली  पुनर्निर्देशनांची संख्या",
        "exif-aperturevalue": "रन्ध्र",
        "exif-brightnessvalue": "झळाळी",
        "exif-exposurebiasvalue": "प्रभावन अभिनत (एक्सपोजर बायस)",
-       "exif-maxaperturevalue": "महतà¥\8dतम à¤\9cमिनà¥\80 à¤°à¤¨à¥\8dधà¥\8dर(लà¥\85à¤\82ड ऍपर्चर)",
+       "exif-maxaperturevalue": "महतà¥\8dतम à¤\9cमिनà¥\80 à¤°à¤¨à¥\8dधà¥\8dर(लà¤\81ड ऍपर्चर)",
        "exif-subjectdistance": "गोष्टीपासूनचे अंतर",
        "exif-meteringmode": "मीटरींग मोड",
        "exif-lightsource": "प्रकाश स्रोत",
        "exif-exposureprogram-5": "क्रियेटीव्ह कार्यक्रम(विषयाच्या खोलीस बायस्ड)",
        "exif-exposureprogram-6": "कृती कार्यक्रम(द्रूत आवर्तद्वार(शटर) वेग कडे बायस्ड)",
        "exif-exposureprogram-7": "व्यक्तिचित्र स्थिती(क्लोजप छायाचित्रांकरिता आऊट ऑफ फोकस बॅकग्राऊंड सहीत)",
-       "exif-exposureprogram-8": "लà¥\85à¤\82डसà¥\8dà¤\95à¥\87प à¤¸à¥\8dथितà¥\80 (लà¥\85à¤\82डस्केप छायाचित्रांकरिता बॅकग्राऊंड इन फोकस सहीत)",
+       "exif-exposureprogram-8": "लà¤\81डसà¥\8dà¤\95à¥\87प à¤¸à¥\8dथितà¥\80 (लà¤\81डस्केप छायाचित्रांकरिता बॅकग्राऊंड इन फोकस सहीत)",
        "exif-subjectdistance-value": "$1 मीटर",
        "exif-meteringmode-0": "अज्ञात",
        "exif-meteringmode-1": "सरासरी",
        "version-variables": "चल",
        "version-antispam": "उत्पात प्रतिबंधन",
        "version-other": "इतर",
-       "version-mediahandlers": "मिडिया à¤¹à¥\85à¤\82डलर",
+       "version-mediahandlers": "मिडिया à¤¹à¤\81डलर",
        "version-hooks": "अंकुश",
        "version-parser-extensiontags": "पृथकक विस्तारीत खूणा",
        "version-parser-function-hooks": "पृथकक कार्य अंकुश",
index d78e552..bf16968 100644 (file)
        "pager-older-n": "{{PLURAL:$1|тоштырак|тоштыраквлӓ гӹц|тоштыраквлӓ}} $1",
        "booksources": "Книгӓн кӹлвлӓжӹ (источник)",
        "booksources-search-legend": "Книгӓ гишӓн информацим кӹчӓлмӓш",
-       "booksources-go": "Моаш",
        "log": "Журналвлӓ",
        "allpages": "Цилӓ ӹлӹштӓш",
        "prevpage": "Анзыл ӹлӹштӓш ($1)",
        "watchthispage": "Ти ӹлӹштӓшӹм вӓнгӓш",
        "unwatch": "Вӓнгӓш агыл",
        "watchlist-details": "Тӓмдӓн вӓнгӹмӹ списокыштыда $1 {{PLURAL:$1|ӹлӹштӓш|ӹлӹштӓш|ӹлӹштӓшвлӓ}}, Кӓнгӓшӹмӓш ӹлыштӓшвлӓ гӹц пасна.",
-       "wlshowlast": "Анжыкташ эртӹш  $1 час $2 кечӹвлӓн $3",
+       "wlshowlast": "Анжыкташ эртӹш  $1 час $2 кечӹвлӓн",
        "watchlist-options": "Вӓнгӹмӹ списокын настройкыжы",
        "watching": "Вӓнгӹмӹ списокыш пырташ...",
        "unwatching": "Вӓнгӹмӹ список гӹц карангдаш...",
        "metadata-expand": "Дополнительный информацим анжыкташ",
        "metadata-collapse": "Дополнительный информацим шӹлтӓш",
        "metadata-fields": "Ти списокышты ылшы метадатывлӓн нырыштым изображенин ӹлӹштӓшӹштӹ анжыктымы лиэш, весӹвлӓжӹ шӹлтӹмӹ лит.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "цилӓ",
        "namespacesall": "цилӓ",
        "monthsall": "цилӓ",
        "watchlisttools-view": "Список гӹц нӓлмӹ ӹлӹштӓшӹштӹш вашталтымашвлӓ",
index aad5e9a..e9504f5 100644 (file)
        "viewsourcetext": "Anda boleh melihat dan menyalin sumber bagi laman ini:",
        "viewyourtext": "Anda boleh melihat dan menyalin sumber '''suntingan anda''' kepada laman ini:",
        "protectedinterface": "Laman ini menyediakan teks antara muka bagi perisian ini, akan tetapi dikunci untuk menghalang penyalahgunaan.\nUntuk menambah atau menyunting terjemahan untuk semua wiki, sila gunakan projek penyetempatan MediaWiki, [//translatewiki.net/ translatewiki.net].",
-       "editinginterface": "'''Amaran:''' Anda sedang menyunting laman yang digunakan untuk menghasilkan teks antara muka bagi perisian ini. Sebarang perubahan terhadap laman ini akan menjejaskan rupa antara muka bagi pengguna-pengguna lain di wiki ini.\nUntuk menambah atau menyunting terjemahan untuk semua wiki, sila gunakan projek penyetempatan MediaWiki, [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "<strong>Amaran:</strong> Anda sedang menyunting halaman yang digunakan untuk menyediakan teks antaramuka untuk perisian berkenaan.\nSebarang suntingan ke atas halaman ini akan memberikan kesan kepada penampilan antaramuka pengguna bagi pengguna-pengguna lain wiki ini.",
+       "translateinterface": "Untuk menambah atau menyunting terjemahan untuk kesemua wiki, sila gunakan [//translatewiki.net/ translatewiki.net], iaitu projek penyetempatan MediaWiki.",
        "cascadeprotected": "Laman ini telah dilindungi daripada penyuntingan oleh pengguna selain penyelia, kerana ia termasuk dalam {{PLURAL:$1|laman|laman-laman}} berikut, yang dilindungi dengan secara \"melata\": $2",
        "namespaceprotected": "Anda tidak mempunyai keizinan untuk menyunting laman dalam ruang nama '''$1'''.",
        "customcssprotected": "Anda tidak dibenarkan menyunting laman JavaScript ini kerana ia mengandungi tetapan peribadi pengguna lain.",
        "content-model-text": "teks biasa",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Laman yang menggunakan argumen pendua dalam panggilan templat",
+       "duplicate-args-category-desc": "Laman ini mengandungi panggilan templat yang menggunakan pendua argumen seperti <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> atau <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Amaran: Laman ini mengandungi terlalu banyak panggilan fungsi penghurai yang intensif.\n\nHad panggilan ialah $2, sekarang terdapat $1 panggilan.",
        "expensive-parserfunction-category": "Laman yang mengandungi terlalu banyak panggilan fungsi penghurai yang intensif",
        "post-expand-template-inclusion-warning": "Amaran: Saiz penyertaan templat terlalu besar.\nSesetengah templat tidak akan disertakan.",
        "mergehistory-same-destination": "Laman sasaran tidak boleh sama dengan laman sumber",
        "mergehistory-reason": "Sebab:",
        "mergelog": "Log penggabungan",
-       "pagemerge-logentry": "menggabungkan [[$1]] ke dalam [[$2]] (semakan sehingga $3)",
        "revertmerge": "Pisahkan",
        "mergelogpagetext": "Yang berikut ialah senarai terkini bagi penggabungan sejarah sesebuah laman ke dalam laman yang lain.",
        "history-title": "Sejarah semakan bagi \"$1\"",
        "search-result-category-size": "$1 {{PLURAL:$1|ahli|ahli}} ($2 {{PLURAL:$2|subkategori|subkategori}}, $3 {{PLURAL:$3|fail|fail}})",
        "search-redirect": "(pelencongan $1)",
        "search-section": "(bahagian $1)",
+       "search-category": "(kategori $1)",
        "search-file-match": "(sepadan dengan kandungan fail)",
        "search-suggest": "Maksud anda, $1?",
        "search-interwiki-caption": "Projek-projek lain",
        "gender-female": "Perempuan",
        "prefs-help-gender": "Pilihan: Digunakan oleh perisian ini untuk merujuk jantina anda dengan betul. Maklumat ini akan didedahkan kepada awam.",
        "email": "E-mel",
-       "prefs-help-realname": "Nama sebenar adalah tidak wajib. Jika dinyatakan, ia akan digunakan untuk mengiktiraf karya anda.",
+       "prefs-help-realname": "Nama sebenar adalah tidak wajib.\n\nJika dinyatakan, ia akan digunakan untuk mengiktiraf karya anda.",
        "prefs-help-email": "Alamat e-mail adalah tidak wajib, tapi diperlukan untuk set semula kata laluan jika anda terlupa kata laluan anda.",
        "prefs-help-email-others": "Anda juga boleh memilih untuk membolehkan pengguna lain menghubungi anda melalui e-mel melalui sebuah pautan pada laman pengguna atau perbincangan anda.\nAlamat e-mel anda tidak didedahkan apabila pengguna lain menghubungi anda.",
        "prefs-help-email-required": "Alamat e-mel adalah wajib.",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik halaman",
        "statistics-header-edits": "Statistik suntingan",
-       "statistics-header-views": "Statistik pandangan",
        "statistics-header-users": "Statistik pengguna",
        "statistics-header-hooks": "Statistik lain",
        "statistics-articles": "Laman kandungan",
        "statistics-files": "Fail dimuat naik",
        "statistics-edits": "Suntingan laman sejak {{SITENAME}} dibuka",
        "statistics-edits-average": "Purata suntingan bagi setiap laman",
-       "statistics-views-total": "Jumlah pandangan",
-       "statistics-views-total-desc": "Paparan ke laman-laman yang tidak wujud dan laman-laman khas tidak disertakan",
-       "statistics-views-peredit": "Pandangan setiap suntingan",
        "statistics-users": "[[Special:ListUsers|Pengguna]] berdaftar",
        "statistics-users-active": "Pengguna aktif",
        "statistics-users-active-desc": "Pengguna yang aktif sejak {{PLURAL:$1|semalam|$1 hari lalu}}",
-       "statistics-mostpopular": "Laman dilihat terbanyak",
        "pageswithprop": "Laman dengan sifat laman",
        "pageswithprop-legend": "Laman dengan sifat laman",
        "pageswithprop-text": "Halaman ini menyenaraikan halaman-halaman yang menggunakan sifat halaman yang tertentu.",
        "uncategorizedtemplates": "Templat tanpa kategori",
        "unusedcategories": "Kategori tidak digunakan",
        "unusedimages": "Imej tidak digunakan",
-       "popularpages": "Laman popular",
        "wantedcategories": "Kategori dikehendaki",
        "wantedpages": "Laman dikehendaki",
        "wantedpages-badtitle": "Tajuk tidak sah dalam set keputusan: $1",
        "pager-older-n": "{{PLURAL:$1|$1 sebelumnya}}",
        "suppress": "Kawalan",
        "querypage-disabled": "Laman khas ini dilumpuhkan atas sebab-sebab prestasi.",
+       "apihelp": "Bantuan API",
+       "apihelp-no-such-module": "Modul \"$1\" tidak dijumpai.",
        "booksources": "Sumber buku",
        "booksources-search-legend": "Cari sumber buku",
        "booksources-search": "Cari",
        "wlheader-enotif": "Pemberitahuan melalui e-mel dibolehkan.",
        "wlheader-showupdated": "Laman-laman yang telah diubah sejak kunjungan terakhir anda dipaparkan dalam '''teks tebal'''.",
        "wlnote": "Yang berikut ialah <strong>$1</strong> perubahan terakhir sejak $2 jam yang lalu, sehingga $3, $4.",
-       "wlshowlast": "Tunjukkan $1 jam / $2 hari yang lalu / .",
+       "wlshowlast": "Tunjukkan $2 hari $1 jam yang lalu",
        "watchlist-options": "Pilihan senarai pantau",
        "watching": "Memantau...",
        "unwatching": "Menyahpantau...",
        "tooltip-pt-mycontris": "Senarai sumbangan anda",
        "tooltip-pt-login": "Walaupun tidak wajib, anda digalakkan supaya log masuk.",
        "tooltip-pt-logout": "Log keluar",
+       "tooltip-pt-createaccount": "Anda digalakkan untuk membuka akaun dan log masuk; namun begitu ianya tidak diwajibkan",
        "tooltip-ca-talk": "Perbincangan mengenai laman kandungan",
        "tooltip-ca-edit": "Anda boleh menyunting laman ini. Sila tekan butang 'pralihat' terlebih dahulu sebelum menyimpan.",
        "tooltip-ca-addsection": "Buka bahagian baru",
        "tooltip-feed-atom": "Suapan Atom bagi laman ini",
        "tooltip-t-contributions": "Lihat senarai sumbangan pengguna ini",
        "tooltip-t-emailuser": "Kirim e-mel kepada pengguna ini",
+       "tooltip-t-info": "Maklumat lanjut mengenai laman ini",
        "tooltip-t-upload": "Muat naik imej atau fail media",
        "tooltip-t-specialpages": "Senarai laman khas",
        "tooltip-t-print": "Versi boleh cetak bagi laman ini",
        "pageinfo-robot-policy": "Indeks oleh robot",
        "pageinfo-robot-index": "Dibenarkan",
        "pageinfo-robot-noindex": "Tidak dibenarkan",
-       "pageinfo-views": "Bilangan kunjungan",
        "pageinfo-watchers": "Bilangan pemantau halaman",
        "pageinfo-few-watchers": "Kurang daripada $1 orang pemantau",
        "pageinfo-redirects-name": "Jumlah lencongan ke laman ini",
        "unknown_extension_tag": "Tag penyambung \"$1\" tidak dikenali",
        "duplicate-defaultsort": "'''Amaran''': Kunci susunan asali \"$2\" membatalkan kunci susunan asali \"$1\" yang sebelumnya.",
        "duplicate-displaytitle": "<strong>Amaran:</strong> Tajuk paparan \"$2\" mengatasi tajuk paparan awal \"$1\".",
+       "invalid-indicator-name": "<strong>Ramat:</strong> Atribut <code>name</code> penanda status halaman tidak boleh dibiarkan kosong.",
        "version": "Versi",
        "version-extensions": "Penyambung yang dipasang",
        "version-skins": "Rupa-rupa yang telah dipasangkan",
        "revdelete-uname-unhid": "nama pengguna terdedah",
        "revdelete-restricted": "mengenakan sekatan pada penyelia",
        "revdelete-unrestricted": "menarik sekatan daripada penyelia",
+       "logentry-merge-merge": "$1 telah {{GENDER:$2|menggabungkan}} $3 ke dalam $4 (pindaan sehingga $5)",
        "logentry-move-move": "$1 telah {{GENDER:$2|memindahkan}} laman $3 ke $4",
        "logentry-move-move-noredirect": "$1 telah {{GENDER:$2|memindahkan}} laman $3 ke $4 tanpa meninggalkan lencongan",
        "logentry-move-move_redir": "$1 telah {{GENDER:$2|memindahkan}} laman $3 ke $4 melalui lencongan",
        "api-error-stashfailed": "Ralat dalaman: pelayan tidak dapat menyimpan fail sementara.",
        "api-error-publishfailed": "Ralat dalaman: Pelayan tidak dapat menerbitkan fail sementara.",
        "api-error-stasherror": "Terdapat ralat ketika menyimpan fail yang dimuat naik.",
+       "api-error-stashedfilenotfound": "Fail yang disimpan tidak dijumpai apabila cuba untuk memuat naik dari simpanan.",
+       "api-error-stashpathinvalid": "Laluan di mana fail disimpan sepatutnya didapati tidak sah.",
+       "api-error-stashfilestorage": "Terdapat ralat semasa menyimpan fail dalam simpanan.",
+       "api-error-stashzerolength": "Pelayan tidak dapat menyimpan fail, kerana ia mempunyai panjang sifar.",
        "api-error-timeout": "Pelayan tidak bergerak balas dalam tempoh yang diharapkan.",
        "api-error-unclassified": "Berlakunya ralat yang tidak diketahui",
        "api-error-unknown-code": "Ralat tidak diketahui: \"$1\"",
        "json-warn-trailing-comma": "$1 koma pengekor telah digugurkan dari JSON",
        "json-error-unknown": "Terdapat masalah dengan JSON. Ralat: $1",
        "json-error-depth": "Kedalaman tindakan maksimum telah dicecah",
-       "json-error-syntax": "Ralat sintaks"
+       "json-error-state-mismatch": "JSON tidak sah atau cacat",
+       "json-error-ctrl-char": "Ralat aksara kawalan, mungkin salah dikodkan",
+       "json-error-syntax": "Ralat sintaks",
+       "json-error-utf8": "Aksara UTF-8 cacat, mungkin salah dikodkan",
+       "json-error-recursion": "Sekurang-kurangnya satu rujukan rekursif untuk dikodkan di dalam nilai berkenaan",
+       "json-error-inf-or-nan": "Sekurang-kurangnya satu nilai NAN atau INF untuk dikodkan di dalam nilai berkenaan",
+       "json-error-unsupported-type": "Diberikannya nilai jenis yang tidak boleh dikodkan"
 }
index 83efa6d..6ac9530 100644 (file)
@@ -26,6 +26,7 @@
        "tog-watchdefault": "Żid il-paġni u l-fajls li nimmodifika fil-lista ta' osservazzjoni personali",
        "tog-watchmoves": "Żid il-paġni u fajls li mmexxi fil-lista ta' osservazzjoni tiegħi",
        "tog-watchdeletion": "Żid il-paġni u fajls li nħassar mal-lista ta' osservazzjoni tiegħi",
+       "tog-watchrollback": "Żid il-paġni fejn għamilt treġġigħ lura lejn il-paġna ta' segwimenti tiegħi",
        "tog-minordefault": "Immarka awtomatikament kull modifika bħala waħda minuri",
        "tog-previewontop": "Uri dehra proviżorja tal-paġna fuq il-kaxxa tal-immodifikar",
        "tog-previewonfirst": "Uri dehra proviżorja mal-ewwel modifika",
        "otherlanguages": "F'lingwi oħrajn",
        "redirectedfrom": "(Rindirizzat minn $1)",
        "redirectpagesub": "Paġna ta' rindirizz",
+       "redirectto": "Rindirizza lejn:",
        "lastmodifiedat": "L-aħħar modifika fuq il-paġna: $2, $1.",
        "viewcount": "Din il-paġna ġiet aċċessata {{PLURAL:$1|darba|$1 darba}}.",
        "protectedpage": "Paġna protetta",
        "hidetoc": "aħbi",
        "collapsible-collapse": "Aħbi",
        "collapsible-expand": "Espandi",
+       "confirmable-confirm": "Inti{{GENDER:$1|żgur|żgura}}?",
+       "confirmable-yes": "Iva",
+       "confirmable-no": "Le",
        "thisisdeleted": "Uri jew ġib lura $1?",
        "viewdeleted": "Ara $1?",
        "restorelink": "{{PLURAL:$1|waħda mill-modifiki mħassra|$1 modifiki mħassra}}",
        "no-null-revision": "Ma setghitx tinħoloq reviżjoni nulla ġdida għall-paġna \"$1\"",
        "badtitle": "Titlu ħażin",
        "badtitletext": "It-titlu tal-paġna rikjesta huwa invalidu, vojt, jew ġej minn żball fil-ħolqa bejn siti wiki differenti jew verżjonijiet ta' lingwi differenti tal-istess sit. Jista' wkoll ikollu wieħed jew aktar karattri li ma jistgħux jintużaw għat-titli.",
-       "perfcached": "L-informazzjoni li jmiss huwa kopja ''cache'' u jista' ma jkunx aġġornat. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-       "perfcachedts": "Id-dati segwenti huma estratt ta' kopja cache tad-database. L-aħħar aġġornament: $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+       "perfcached": "L-informazzjoni li jmiss ġejja minn kopja ''cache'' u tista' ma tkunx aġġornata. Massimu ta'  {{PLURAL:$1|riżultat wieħed hu|$1 riżultati huma}} disponibbli fil-\"cache\".",
+       "perfcachedts": "Id-dejta li jmiss ġejja minn kopja \"cache\" u l-aħħar aġġornament kien: $1. Mhux aktar minn {{PLURAL:$4|riżultat wieħed hu|$4 riżultati huma}} disponibbli fil-\"cache\".",
        "querypage-no-updates": "Aġġornamenti għal din il-paġna huma temporalment sospesi. L-Informazzjoni hawnhekk preżentament mhux qiegħed jiġi aġġornat.",
        "viewsource": "Ara s-sors",
        "viewsource-title": "Ara s-sors ta' $1",
        "actionthrottled": "Azzjoni miżmuma",
        "actionthrottledtext": "Bħala miżura għal kontra l-ispam, inti limitat li tagħmel din l-azzjoni għal ħafna drabi f'spazju ta' ħin żgħir, u inti qbiżt dan il-limitu.\nJekk jogħġbok erġa' prova fi ftit minuti oħra.",
-       "protectedpagetext": "Din il-paġna ġiet protetta sabiex twaqqaf kull tip ta' modifika.",
+       "protectedpagetext": "Din il-paġna ġiet protetta sabiex ma ssirx xi modifika jew xi azzjoni oħra.",
        "viewsourcetext": "Tista' tara u tikkopja s-sors ta' din il-paġna:",
        "viewyourtext": "Tista' tara u tikkopja s-sors tal-'''modifiki tiegħek''' fuq din il-paġna:",
-       "protectedinterface": "Din il-paġna għanda element li tagħmel parti mill-interfaċċa tal-utent tas-software, u għaldaqstant ġiet protetta sabiex ma jkunx hemm abbuż.",
-       "editinginterface": "'''Avviż:''' Qiegħed tagħmel modifiki lejn paġna li qiegħda tintuża biex tipprovdi interfaċċa għall-messaġġi tas-software. Kull modifika f'din il-paġna se taffetwa l-apparenza tal-faċċata tal-utenti kollha. Għat-traduzzjonijiet, ikkunsidra l-possibilità li tuża  [//translatewiki.net/wiki/Main_Page?setlang=mt translatewiki.net], il-proġett MediaWiki għal-lokalizzazzjoni.",
+       "protectedinterface": "Din il-paġna tipprovdi test ta' interfaċċa għas-softwer fuq dan il-wiki, u għaldaqstant ġiet protetta sabiex ma jkunx hemm abbuż.\nBiex iżżid jew tibdel traduzzjonijiet għall-wikijiet kollha uża [//translatewiki.net/ translatewiki.net], il-proġett ta' lokalizzazzjoni ta' MediaWiki.",
+       "editinginterface": "'''Avviż:''' Qiegħed timmodifika  paġna li qiegħda tintuża biex tipprovdi test ta' interfaċċa għas-software. Kull modifika f'din il-paġna se taffetwa l-apparenza tal-interfaċċata tal-utenti kollha ta' dan il-wiki.",
+       "translateinterface": "Biex iżżid jew tibdel it-traduzzjonijiet fuq il-wikijiet kollha, jekk jogħġbok uża [//translatewiki.net/ translatewiki.net], il-proġett ta' lokalizzazzjoni tal-MediaWiki.",
        "cascadeprotected": "Din il-paġna ġiet protetta mill-modifiki, minħabba li tinkludi {{PLURAL:$1|paġni, li huwa|paġni, li huma}} protetti bil-preferenza tal-\"kaskata\" mixewla:\n$2",
        "namespaceprotected": "Inti m'għandhekx il-permess li timodifika paġni fin-''namespace'' '''$1''.",
        "customcssprotected": "M'għandekx il-permessi neċessarji sabiex timmodifika din il-paġna tas-CSS, minħabba li għandha tqegħid personali ta' utent ieħor.",
        "customjsprotected": "M'għandekx il-permessi neċessarji sabiex timmodifika din il-paġna tal-JavaScript, minħabba li għandha tqegħid personali ta' utent ieħor.",
+       "mycustomcssprotected": "Ma għandekx permess biex timmodifika din il-paġna CSS.",
        "mycustomjsprotected": "Ma għandekx permess li teditja din il-paġna JavaScript.",
        "myprivateinfoprotected": "Ma għandekx permess li teditja l-informazzjoni privata tiegħek.",
        "mypreferencesprotected": "Ma għandekx permess li teditja l-preferenzi tiegħek.",
        "invalidtitle-knownnamespace": "Titolu validu bin-namespace \"$2\" u t-test\"$3\"",
        "invalidtitle-unknownnamespace": "Titolu validu b'numru tan-namespace mhux magħruf  $1 u t-test \"$2\"",
        "exception-nologin": "Mhux qiegħed fil-kont",
-       "exception-nologin-text": "Jekk jogħġbok [[Special:Userlogin|idħol fil-kont tiegħek]] biex tkun tista' taċċessa din il-paġna jew din l-azzjoni.",
+       "exception-nologin-text": "Jekk jogħġbok idħol fil-kont tiegħek biex tkun tista' taċċessa din il-paġna jew din l-azzjoni.",
        "exception-nologin-text-manual": "Jekk jogħġbok $1 sabiex tkuu tista' taċċessa din il-paġna jew din l-azzjoni.",
        "virus-badscanner": "Problema fil-konfigurazzjoni: antivirus mhux magħruf: ''$1''",
        "virus-scanfailed": "Tfittxija falliet (kodiċi $1)",
        "mergehistory-same-destination": "Il-paġni tas-sors u tad-destinazzjoni ma jistgħux ikunu l-istess",
        "mergehistory-reason": "Raġuni:",
        "mergelog": "Twaħħid",
-       "pagemerge-logentry": "waħħad [[$1]] ma' [[$2]] (reviżjonijiet sa $3)",
        "revertmerge": "Infired",
        "mergelogpagetext": "Hawn taħt hawn lista ta' l-aktar tgħaqqid riċenti ta' paġna waħda ta' storja f'oħra.",
        "history-title": "Kronoloġija tal-modifiki ta' \"$1\"",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistika tal-paġna",
        "statistics-header-edits": "Statistika tal-immodifikar",
-       "statistics-header-views": "Statistika tal-viżwalizzazzjoni",
        "statistics-header-users": "Statistika tal-utent",
        "statistics-header-hooks": "Statistika oħra",
        "statistics-articles": "Paġni ta' kontenut",
        "statistics-files": "Fajls imtellgħa",
        "statistics-edits": "Total ta' modifiki minn mindu {{SITENAME}} bdiet fil-funzjon",
        "statistics-edits-average": "Medja ta' modifiki għal kull paġna",
-       "statistics-views-total": "Total ta' viżti",
-       "statistics-views-total-desc": "Viżti lejn paġni li ma jeżistux u paġna speċjali mhumiex inklużi.",
-       "statistics-views-peredit": "Viżti għal kull modifika",
        "statistics-users": "[[Special:ListUsers|Utenti]] reġistrati",
        "statistics-users-active": "Utenti attivi",
        "statistics-users-active-desc": "Utenti li wettqu azzjoni fl-aħħar {{PLURAL:$1|ġurnata|$1 ġurnata}}",
-       "statistics-mostpopular": "Il-paġni l-aktar miżjura",
        "pageswithprop": "Paġni bi proprjetà ta' paġna",
        "pageswithprop-legend": "Paġni bi proprjetà ta' paġna",
        "pageswithprop-text": "Din il-paġna telenka paġni li jużaw proprjetà ta' paġna partikulari.",
        "uncategorizedtemplates": "Templates mhux ikkategorizzati",
        "unusedcategories": "Kategoriji mhux użati",
        "unusedimages": "Fajls mhux użati",
-       "popularpages": "L-iktar paġni popolari",
        "wantedcategories": "Kategoriji rikjesti",
        "wantedpages": "Paġni rikjesti",
        "wantedpages-badtitle": "Titlu invalidu fil-grupp ta' riżultati: $1",
        "pageinfo-robot-policy": "Stat għall-muturi tat-tfittxija",
        "pageinfo-robot-index": "Indiċjabbli",
        "pageinfo-robot-noindex": "Mhux indiċjabbli",
-       "pageinfo-views": "Numru ta' viżti",
        "pageinfo-watchers": "Numru ta' osservaturi tal-paġna",
        "pageinfo-redirects-name": "Rindirizzi lejn din il-paġna",
        "pageinfo-subpages-name": "Sottopaġni ta' din il-paġna",
        "specialpages-group-other": "Paġni speċjali oħrajn",
        "specialpages-group-login": "Idħol / oħloq kont",
        "specialpages-group-changes": "L-Aħħar modifiki u reġistri",
-       "specialpages-group-media": "Fajls multimedjali - rapporti u tellgħar",
+       "specialpages-group-media": "Fajls multimedjali - tlugħ u rapporti",
        "specialpages-group-users": "Utenti u drittijiet",
        "specialpages-group-highuse": "Paġni użati ħafna",
-       "specialpages-group-pages": "Elenki ta' paġni",
+       "specialpages-group-pages": "Listi ta' paġni",
        "specialpages-group-pagetools": "Għodda tal-paġna",
        "specialpages-group-wiki": "Għodda u informazzjoni fuq il-proġett",
        "specialpages-group-redirects": "Paġni speċjali ta' rindirizz",
index 0fa1cb5..c02ff03 100644 (file)
        "randomredirect": "Ancaminamiento al calhas",
        "statistics": "Statísticas",
        "statistics-pages": "Páiginas",
-       "statistics-views-total": "Total de bejitas",
        "statistics-users-active": "Outelizadores atibos",
        "doubleredirects": "Ancaminamientos duplos",
        "brokenredirects": "Ancaminamientos scachados",
        "uncategorizedtemplates": "Modelos sin catadorie",
        "unusedcategories": "Catadories nun outelizadas",
        "unusedimages": "Fexeiros nun outelizados",
-       "popularpages": "Páiginas populares",
        "wantedcategories": "Catadories pedidas",
        "wantedpages": "Páiginas pedidas",
        "mostlinked": "Páiginas mais lhigadas",
index 685ab87..cfffb37 100644 (file)
        "mergehistory-same-destination": "ရင်းမြစ်နှင့် သတ်မှတ်ထားသော စာမျက်နှာတို့သည် အတူတူ မဖြစ်ရ",
        "mergehistory-reason": "​ကြောင်း​ပြ​ချက် -",
        "mergelog": "ပေါင်းလိုက်သော မှတ်တမ်း",
-       "pagemerge-logentry": "[[$1]] ကို [[$2]] သို့ ပေါင်းပြီး ($3 ရက်နေ့အထိ မူများ)",
        "revertmerge": "ပြန်ခွဲထုတ်ရန်",
        "history-title": "\"$1\" ၏ တည်းဖြတ်မူ ရာဇဝင်များ",
        "difference-multipage": "(စာမျက်နှာများကြားမှ ကွဲပြားချက်များ)",
        "statistics": "စာရင်းအင်း",
        "statistics-header-pages": "စာမျက်နှာစာရင်းအင်း",
        "statistics-header-edits": "တည်းဖြတ်မှုစာရင်းအင်း",
-       "statistics-header-views": "စာရင်းအင်းတို့ကို ကြည့်ရန်",
        "statistics-header-users": "အသုံးပြုသူစာရင်းအင်း",
        "statistics-header-hooks": "အခြားစာရင်းအင်းများ",
        "statistics-articles": "မာတိကာစာမျက်နှာများ",
        "statistics-files": "တင်ထားသောဖိုင်များ",
        "statistics-edits": "{{SITENAME}} စတည်ထောင်ပြီးကတည်းက စာမျက်နှာတည်းဖြတ်မှုပေါင်း",
        "statistics-edits-average": "စာတစ်မျက်နှာလျှင် ပျမ်းမျှတည်းဖြတ်မှုနှုန်း",
-       "statistics-views-total": "စုစုပေါင်းကို ကြည့်ရန်",
-       "statistics-views-peredit": "တစ်မျက်နှာလျှင်တည်းဖြတ်မှုမည်မျှရှိသည်ကို ကြည့်ရန်",
        "statistics-users": "မှတ်ပုံတင်ထားသော [[Special:ListUsers|အသုံးပြုသူများ]]",
        "statistics-users-active": "လက်ရှိလုပ်ကိုင်နေသော အသုံးပြုသူများ",
-       "statistics-mostpopular": "အများဆုံးကြည့်သော စာမျက်နှာများ",
        "doubleredirects": "နှစ်ဆင့်ပြန် ပြန်ညွှန်းများ",
        "double-redirect-fixed-move": "[[$1]] ကို ရွှေ့ပြောင်းပြီးဖြစ်သည်။ ယခုအခါ [[$2]] သို့ ပြန်ညွှန်းထားသည်။",
        "brokenredirects": "ကျိုးပျက်နေသော ပြန်ညွှန်းများ",
        "uncategorizedtemplates": "အမျိုးအစား ခွဲမထားသော တမ်းပလိတ်များ",
        "unusedcategories": "အသုံးပြုမထားသော ကဏ္ဍများ",
        "unusedimages": "အသုံးပြုမထားသော ဖိုင်များ",
-       "popularpages": "လူကြိုက်များသော စာမျက်နှာများ",
        "wantedcategories": "အလိုရှိသော ကဏ္ဍများ",
        "wantedpages": "အလိုရှိသော စာမျက်နှာများ",
        "wantedfiles": "အလိုရှိသော ဖိုင်များ",
index 3cb4da0..a570164 100644 (file)
        "statistics": "Статистикат",
        "statistics-header-pages": "Лопань статистикат",
        "statistics-header-edits": "Статистикань витнеме-петнеме",
-       "statistics-header-views": "Статистикань ваномо",
        "statistics-header-users": "Теицянь статистика",
        "statistics-header-hooks": "Лия статистика",
        "statistics-articles": "Потмо марто лопат",
        "statistics-pages": "Лопат",
        "statistics-files": "Йовкстань файлат",
-       "statistics-views-total": "Ваннома потмотнеде весемезэ",
-       "statistics-views-peredit": "Зяроксть ванозь апак витне апак петне",
        "statistics-users-active": "Чистэ лисийть-совийть",
-       "statistics-mostpopular": "Весемеде сеедьстэ ванозь лопат",
        "doubleredirects": "Кавксть ютавтозь",
        "double-redirect-fixer": "Печтевтемс витнема-петнема пель",
        "brokenredirects": "Сезезь ёнксось",
        "uncategorizedtemplates": "Категориявтомо лопа парцунт",
        "unusedcategories": "Тевс апак нолда категорият",
        "unusedimages": "Тевс апак нолда файлат",
-       "popularpages": "Раське ютксо вечкевикс лопат",
        "wantedcategories": "Вешень категорият",
        "wantedpages": "Вешень лопат",
        "wantedfiles": "Вешезь файлат",
        "pageinfo-header-edits": "Витнемс-петнемс юронзо-путовксонзо",
        "pageinfo-header-properties": "Лопанть уликсчинзэ",
        "pageinfo-display-title": "Коняксонть таргамс лангс",
-       "pageinfo-views": "Зяро ванома потмонзо",
        "pageinfo-subpages-name": "Те лопанть явкслопанзо",
        "pageinfo-edits": "Зяроксть витнезь-петнезь",
        "pageinfo-authors": "Весемезэ зяро авторонзо",
index b93f287..3abe657 100644 (file)
        "changeemail-newemail": "ترنه ایمیل آدرس:",
        "changeemail-none": "(هچّی)",
        "changeemail-submit": "ایمیل ره عوض هاکردن",
-       "changeemail-cancel": "ول هاکردن",
        "bold_sample": "ضخیم",
        "bold_tip": "ضخیم",
        "italic_sample": "کژ",
        "specialpage-empty": "این صفحه دله هچّی دَنی‌یه",
        "unusedcategories": "کـار نـأزو رج‌ئون",
        "unusedimages": "کـار نأزو فایل‌ئون",
-       "popularpages": "خاسگار هدار صفحه‌ئون",
        "wantedpages": "صفحه‌ئونی که خامبی",
        "prefixindex": "تموم صفحه‌ئون پیشوند دار",
        "shortpages": "پچیک صفحه‌ئون",
        "pager-newer-n": "{{PLURAL:$1|أتـا نـه‌ته‌ر|$1 تـا نـه‌ته‌ر}}",
        "pager-older-n": "{{PLURAL:$1|أتـا کـوهـنـه‌ته‌ر|$1 تـا کوهـنـه‌ته‌ر}}",
        "booksources-search-legend": "بگردستن منابع کتاب",
-       "booksources-go": "بـور",
        "booksources-text": "زیر فهرستی از لینکا به وبگاه‌ئون دیگه دره که کتاب‌ئون نو و دست دوم روشنّه و ممکنه اطلاعات ویشتری راجع به کتاب مورد نظر دارِن:",
        "specialloguserlabel": "کارور:",
        "allpages": "همه صفحه‌ئون",
        "exif-orientation-1": "معمولی",
        "exif-orientation-3": "180 درجه چرخ بزوئن",
        "exif-orientation-4": "عمودی په‌شت ئو روبئی",
-       "watchlistall2": "همه",
        "namespacesall": "همه",
        "monthsall": "همه ماه‌ئون",
        "confirmemail_body_changed": "ات نفر، احتمالاً خاد شمِا، از نشونی آی‌پی $1 نشونی پوست ایلکتورونیک حیساب «$2» {{SITENAME}} ره تغییر هدائه.\n\nبرای تایید این که این حیساب واقعاً شمه شه و فعال هکردن دبارهٔ ویژگی پوست ایلکتورونیک {{SITENAME}}، پیوند زیر دله ره شه مرورگر دله وا هکنین:\n\n$3\n\nاگه این حساب شه مه نی‌یه، پیوند زیر ره دنبال هکنین تا تغییر پوست ایلیکتورونیک ره لغو هکنین:\n\n$5\n\nاین تایید یه در $4 منقضی وانه.",
index fedb292..9a0349a 100644 (file)
@@ -1,67 +1,67 @@
 {
-    "@metadata": {
-        "authors": [
-            "Belgian man",
-            "CdaMVvWgS",
-            "Node ue"
-        ]
-    },
-    "sunday": "Tondak",
-    "monday": "Mondak",
-    "tuesday": "Dintak",
-    "wednesday": "Mitwok",
-    "thursday": "Donertak",
-    "friday": "Preidak",
-    "saturday": "Tadurdei",
-    "moredotdotdot": "Iyuw...",
-    "and": "&#32;me",
-    "qbedit": "Kiwiwid",
-    "errorpagetitle": "Dairinaiya",
-    "help": "Ipuok",
-    "search": "Kanani",
-    "go": "Nuwa ko!",
-    "history_short": "Ekadaedaenigawae",
-    "edit": "Kiwiwid",
-    "delete": "Iyababa",
-    "unprotect": "Eab oberei",
-    "toolbox": "Dabadi n bwait makur",
-    "currentevents": "Imwin",
-    "currentevents-url": "Project:Imwin",
-    "edithelp": "Oomo/edar Ipuok",
-    "mainpage": "Bwiema peij",
-    "mainpage-description": "Bwiema peij",
-    "editsection": "Kiwiwid",
-    "showtoc": "oduwen",
-    "hidetoc": "ewewin",
-    "nstab-help": "Ipuok",
-    "error": "Dairinaiya",
-    "login": "Metu",
-    "logout": "Meta",
-    "userlogout": "Meta",
-    "bold_sample": "Eõ mangiyungiy",
-    "bold_tip": "Eõ mangiyungiy",
-    "image_sample": "Ekar.jpg",
-    "savearticle": "Otsimor",
-    "newarticle": "(Etsimeduw)",
-    "editing": "Oomo/edar $1",
-    "editingsection": "Oomo/edar $1 (itubwang)",
-    "prefs-skin": "Witsin",
-    "searchresultshead": "Anani ko",
-    "yourlanguage": "Edorer",
-    "recentchanges": "Iwiwidit tsimeduw",
-    "hist": "eka",
-    "hide": "witsit imin gogoro",
-    "show": "oduwen",
-    "randompage": "Tamo peij",
-    "move": "Memori",
-    "allpagessubmit": "nuwa ko",
-    "emailuser": "Emaileiy amune",
-    "emailfrom": "Atsiu",
-    "emailto": "Animwen",
-    "emailsend": "Oiyon",
-    "watch": "Aea",
-    "unwatch": "Eab krak",
-    "confirm": "Oebwigaga",
-    "contributions": "Mana engame totow inne",
-    "ilsubmit": "Anani ko"
+       "@metadata": {
+               "authors": [
+                       "Belgian man",
+                       "CdaMVvWgS",
+                       "Node ue"
+               ]
+       },
+       "sunday": "Tondak",
+       "monday": "Mondak",
+       "tuesday": "Dintak",
+       "wednesday": "Mitwok",
+       "thursday": "Donertak",
+       "friday": "Preidak",
+       "saturday": "Tadurdei",
+       "moredotdotdot": "Iyuw...",
+       "and": "&#32;me",
+       "qbedit": "Kiwiwid",
+       "errorpagetitle": "Dairinaiya",
+       "help": "Ipuok",
+       "search": "Kanani",
+       "go": "Nuwa ko!",
+       "history_short": "Ekadaedaenigawae",
+       "edit": "Kiwiwid",
+       "delete": "Iyababa",
+       "unprotect": "Eab oberei",
+       "toolbox": "Dabadi n bwait makur",
+       "currentevents": "Imwin",
+       "currentevents-url": "Project:Imwin",
+       "edithelp": "Oomo/edar Ipuok",
+       "mainpage": "Bwiema peij",
+       "mainpage-description": "Bwiema peij",
+       "editsection": "Kiwiwid",
+       "showtoc": "oduwen",
+       "hidetoc": "ewewin",
+       "nstab-help": "Ipuok",
+       "error": "Dairinaiya",
+       "login": "Metu",
+       "logout": "Meta",
+       "userlogout": "Meta",
+       "bold_sample": "Eõ mangiyungiy",
+       "bold_tip": "Eõ mangiyungiy",
+       "image_sample": "Ekar.jpg",
+       "savearticle": "Otsimor",
+       "newarticle": "(Etsimeduw)",
+       "editing": "Oomo/edar $1",
+       "editingsection": "Oomo/edar $1 (itubwang)",
+       "prefs-skin": "Witsin",
+       "searchresultshead": "Anani ko",
+       "yourlanguage": "Edorer",
+       "recentchanges": "Iwiwidit tsimeduw",
+       "hist": "eka",
+       "hide": "witsit imin gogoro",
+       "show": "oduwen",
+       "randompage": "Tamo peij",
+       "move": "Memori",
+       "allpagessubmit": "nuwa ko",
+       "emailuser": "Emaileiy amune",
+       "emailfrom": "Atsiu",
+       "emailto": "Animwen",
+       "emailsend": "Oiyon",
+       "watch": "Aea",
+       "unwatch": "Eab krak",
+       "confirm": "Oebwigaga",
+       "contributions": "Mana engame totow inne",
+       "ilsubmit": "Anani ko"
 }
index f94de72..cbe2198 100644 (file)
        "statistics": "Tlapōhualiztli",
        "statistics-header-pages": "Zāzaniltin tlapōhualli",
        "statistics-header-edits": "Tlapatlaliztli tlapōhualli",
-       "statistics-header-views": "Tlahpololiztli tlapōhualli",
        "statistics-header-users": "Tlatequitiltilīlli ītlapōhualiz",
        "statistics-articles": "Tlapiyaliztli zāzanilli",
        "statistics-pages": "Zāzaniltin",
        "statistics-pages-desc": "Mochīntīn zāzaniltin huiquipan, mopiyah tēixnāmiquiliztli, tlacuepaliztli, etz.",
        "statistics-files": "Tlahcuilōlli ōmoquetz",
-       "statistics-views-peredit": "Tlahpololiztli ic tlapatlaliztli",
        "doubleredirects": "Ōntetl tlacuepaliztli",
        "brokenredirects": "Tzomoc tlacuepaliztli",
        "brokenredirects-edit": "ticpatlāz",
        "uncategorizedtemplates": "Nemachiòmë âmò tlatlaìxmatkàtlàlìltìn",
        "unusedcategories": "Tlaìxmatkàtlàlilòmë tlèn âmò mokìntekìuhtia",
        "unusedimages": "Ìxiptìn tlèn âmò mokìntekìuhtia",
-       "popularpages": "Màsèwàltlaìxtlapaltìn",
        "wantedcategories": "Ìtech kineki tlaìxmatkàtlàlilòtl",
        "wantedpages": "Zāzaniltin moēlēhuiah",
        "wantedfiles": "Ìpan moneki èwaltìn",
index e1b6b58..d5ea8f7 100644 (file)
        "otherlanguages": "Kî-thaⁿ ê gí-giân",
        "redirectedfrom": "(Tùi $1 choán--lâi)",
        "redirectpagesub": "Choán-ia̍h",
+       "redirectto": "跳去:",
        "lastmodifiedat": "Chit ia̍h tī $1,  $2 ū kái--koè",
        "viewcount": "Chit ia̍h kàu taⁿ, hō͘ lâng khoàⁿ $1 pái.",
        "protectedpage": "Siū pó-hō͘ ê ia̍h",
        "hidetoc": "siu",
        "collapsible-collapse": "Siu",
        "collapsible-expand": "Khui",
+       "confirmable-confirm": "{{GENDER:$1|你}}敢確定唅?",
+       "confirmable-yes": "著啦",
+       "confirmable-no": "無啦!毋是!",
        "thisisdeleted": "Khoàⁿ a̍h-sī kiù $1?",
        "viewdeleted": "Beh khoàⁿ $1?",
        "restorelink": "{{PLURAL:$1|chi̍t ê thâi-tiàu ê pian-chi̍p|$1 thâi-tiàu ê pian-chi̍p}}",
        "viewyourtext": "你會使看<strong>你改的</strong>原始碼,並且khop去這頁:",
        "protectedinterface": "Chit ia̍h thê-kiong nńg-thé kài-bīn ēng ê bûn-jī. Ūi beh ī-hông lâng chau-that, só͘-í ū siū tio̍h pó-hō͘. Nā beh kái hoan-e̍k, chhiaⁿ khì Ûi-ki Mûi-thé chāi-tē-hoà sū-kang [//translatewiki.net/ translatewiki.net] hiâ.",
        "editinginterface": "'''Sè-jī:''' Lí tng teh siu-kái 1 bīn thê-kiong nńg-thé kài-bīn bûn-jī ê ia̍h. Jīn-hô kái-piàn to ē éng-hióng tio̍h kî-thaⁿ iōng-chiá ê sú-iōng kài-bīn. Nā beh kái hoan-e̍k, chhiaⁿ khì Ûi-ki Mûi-thé chāi-tē-hoà sū-kang [//translatewiki.net/ translatewiki.net] hiâ.",
+       "translateinterface": "欲改抑是加維基的翻譯,請去維基媒體的在地化專案:[//translatewiki.net/ 翻譯維基網]。",
        "cascadeprotected": "Chit-ê ia̍h í-keng hông pó-hō͘ bē kái tit. In-ūi i tī ē-bīn {{PLURAL:$1|ê|ê}} liân-só pó-hō͘ lāi-té:\n$2",
        "namespaceprotected": "Lí bô khoân-lī kái '''$1'''  miâ-khong-kan ê ia̍h",
        "customcssprotected": "你無受權去改這个 CSS頁,因為這个頁有包括別个用者的個人設定。",
        "ns-specialprotected": "特殊頁袂得改。",
        "titleprotected": "這个標題已經予[[User:$1|$1]]保護起來,袂得提來用。\n原因是 \"<em>$2</em>。",
        "filereadonlyerror": "因為檔案庫這馬只會使看,所以袂得改 \"$1\"這个檔案。\n鎖檔案庫的管理員講是因為:\"$3\"。",
+       "invalidtitle-knownnamespace": "佇名空間 \"$2\"佮文字\"$3\"的標題袂使得。",
+       "invalidtitle-unknownnamespace": "名空間編號 $1(毋知名)的\"$2\"文字標題袂使用。",
        "exception-nologin": "Bô teng-ji̍p",
-       "exception-nologin-text": "請先[[Special:Userlogin|登入]]了才有法度看這頁抑對這頁做動作。",
+       "exception-nologin-text": "請先登入,才有法度看這頁抑對這頁做動作。",
        "exception-nologin-text-manual": "請先$1,才有法度看這頁抑對這頁做動作。",
        "virus-badscanner": "設定毋著:你的病毒掃描程式阮毋知:<em>$1</em>",
        "virus-scanfailed": "掃病毒無成功(代碼$1)",
        "createaccountmail": "Iōng chi̍t-ê lîm-sî loān-sò͘ sán-seng ê bi̍t-bé , kià khì goá chí-tēng ê tiān-chú-phoe tē-chí.",
        "createacct-realname": "真正的名",
        "createaccountreason": "Lí-iû:",
+       "createacct-reason": "理由:",
        "createacct-reason-ph": "為啥物你欲開一另外一个口座?",
        "createacct-captcha": "安全檢驗",
        "createacct-imgcaptcha-ph": "共下跤你看著的字拍入來",
        "createaccounterror": "Bô hoat-tō͘ khui kháu-chō: $1",
        "nocookiesnew": "你的用者口座已經開好矣,毋過你猶未登入,{{SITENAME}}有用Cookies做記錄登入的用者,你無允准用Cookies,請先共阻擋提掉,才閣用你的用者名稱佮密碼登入。",
        "nocookieslogin": "{{SITENAME}}有用cookies做記錄用者,毋過你無允準用cookies,等你改做會當了後,才閣試。",
+       "nocookiesfornew": "因為不明的原因,阮無法度建立用者的口座。\n請先確定你的cookie會使用,閣重進入這頁,閣試一擺。",
+       "noname": "你提供的用者名稱袂使用。",
        "loginsuccesstitle": "Teng-ji̍p sêng-kong",
        "loginsuccess": "Lí hiān-chhú-sî í-keng teng-ji̍p {{SITENAME}} chò \"$1\".",
        "nosuchuser": "Chia bô iōng-chiá hō-chò \"$1\".\nIiōng-chiá hō-chò ū hun toā-jī sè-jī.\nChhiáⁿ kiám-cha lí ê phèng-im, a̍h-sī  [[Special:UserLogin/signup|khui sin iōng-chiá ê kháu-chō.]]",
        "nosuchusershort": "Bô \"$1\" chit ê iōng-chiá miâ.\nTùi khoàⁿ-māi,  lí phah--ê.",
        "nouserspecified": "Lí ài chí-tēng chi̍t ê iōng-chiá miâ.",
+       "login-userblocked": "這個用者已經予人封鎖,袂使登入。",
        "wrongpassword": "Lí su-ji̍p ê bi̍t-bé ū têng-tâⁿ. Chhiáⁿ têng chhì.",
        "wrongpasswordempty": "Bi̍t-bé keh-á khang-khang. Chhiáⁿ têng chhì.",
+       "passwordtooshort": "密碼上少愛{{PLURAL:$1|1字|$1字}}",
+       "password-name-match": "你的密碼愛佮你的用者名稱無仝。",
+       "password-login-forbidden": "這个用者名稱佮密碼已經禁止用。",
        "mailmypassword": "Têng siat bi̍t-bé",
        "passwordremindertitle": "{{SITENAME}} the-chheN li e bit-be",
        "noemail": "Kì-lo̍k bô iōng-chiá \"$1\" ê e-mail chū-chí.",
        "uncategorizedtemplates": "Bô lūi-pia̍t ê pang-bô͘",
        "unusedcategories": "Bô iōng ê lūi-pia̍t",
        "unusedimages": "Bô iōng ê iáⁿ-siōng",
-       "popularpages": "Sî-kiâⁿ ê ia̍h",
        "wantedcategories": "wantedcategories",
        "wantedpages": "Beh ti̍h ê ia̍h",
        "mostlinked": "Siōng chia̍p liân-kiat ê ia̍h",
index c6f9ebf..7f81062 100644 (file)
@@ -9,7 +9,8 @@
                        "PiRSquared17",
                        "SabineCretella",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Candalua"
                ]
        },
        "tog-underline": "Sottolinia 'e jonte:",
@@ -28,7 +29,7 @@
        "tog-watchdeletion": "Azzecca 'e paggene e li files scancellate a l'elenco 'e cuntrollo",
        "tog-watchrollback": "Azzecca 'e paggene addò aggio fatto nu rollback a l'elenco 'e cuntrollo",
        "tog-minordefault": "Indica ogne cagnamento comme piccerillo (predefinito)",
-       "tog-previewontop": "Vide previsióne primma d&#39;'a casella 'e modifica",
+       "tog-previewontop": "Vide previsióne primma d'a casella 'e modifica",
        "tog-previewonfirst": "Vide previsióne 'a primma vota",
        "tog-enotifwatchlistpages": "Famme na mmasciata mail quanno na paggena o nu file dint'a l'elenco 'e cuntrollo se fosse cagnàta",
        "tog-enotifusertalkpages": "Famme na masciata mail quanno 'a paggena 'e cchiacchiera mmia se fosse cagnàta",
        "tog-fancysig": "Piglia 'a firma comme fosse nu wikitesto (senza fà link automatico)",
        "tog-uselivepreview": "Abilita 'o \"Live preview\" (sperimentale)",
        "tog-forceeditsummary": "Chiere a mme quanno se sta azzeccanno nu campo oggetto abbacante",
-       "tog-watchlisthideown": "Annascunne 'e cagnamiente d&#39;'a lista 'e cuntrollo mia",
-       "tog-watchlisthidebots": "Annasconne 'e cagnamiènte d&#39;'e bot ncopp'a l'elenco 'e cuntrollo",
-       "tog-watchlisthideminor": "Annascunne 'e cagnamiente piccerille d&#39;'a lista 'e cuntrollo mia",
+       "tog-watchlisthideown": "Annascunne 'e cagnamiente d'a lista 'e cuntrollo mia",
+       "tog-watchlisthidebots": "Annasconne 'e cagnamiènte d'e bot ncopp'a l'elenco 'e cuntrollo",
+       "tog-watchlisthideminor": "Annascunne 'e cagnamiente piccerille d'a lista 'e cuntrollo mia",
        "tog-watchlisthideliu": "Annascunne 'e cagnamiénte 'e l'utente riggistrate 'a l'elenco 'e cuntrollo",
        "tog-watchlisthideanons": "Annascunne 'e cagnamiente fatte d'anonime 'a l'elenco 'e cuntrollo",
        "tog-watchlisthidepatrolled": "Annascunne 'e modifiche cuntrullate 'a l'elenco 'e cuntrollo",
-       "tog-ccmeonemails": "Famme na masciata pùre c&#39;'a copia 'e le mail mannate a l'ati utente",
+       "tog-ccmeonemails": "Famme na masciata pùre c'a copia 'e le mail mannate a l'ati utente",
        "tog-diffonly": "Nun me fà vedé cuntenute aropp'o cunfronto nfra verziune",
        "tog-showhiddencats": "Fa' vedé 'e categurie annascunnute",
        "tog-norollbackdiff": "Nun fà vedé 'o cunfronto nfra verziune quanno se fà nu rollback",
        "unexpected": "Valore imprevisto: \"$1\"=\"$2\".",
        "formerror": "Sbàglio: nun se può mannà 'o modulo",
        "badarticleerror": "Chest'azione nun se può fà int'a sta paggena.",
-       "cannotdelete": "Nun è possibbele scassà 'a paggena o 'a fiura $1 addamannata. Putria éssere stato già scancellato.",
+       "cannotdelete": "Nun è pussibbele scassà 'a paggena o 'a fiura $1 addamannata. Putria éssere stato già scancellato.",
        "cannotdelete-title": "Nun se può scancellà 'a paggena \"$1\"",
        "delete-hook-aborted": "'O scancellamiento è stato annullato 'a 'o «hook».\nNun dette spiegazione nisciuna.",
        "no-null-revision": "Nun se può crià na nnova revisione nulla p' 'a paggena \"$1\"",
        "viewsourcetext": "Putisse vedé e copià 'o codece surgiva 'e sta paggena:",
        "viewyourtext": "Putisse vedé e copià 'o codice surgiva d' 'e <strong>cagnamiénte tuoje</strong> a sta paggena:",
        "protectedinterface": "Sta paggena nce appruviggióna 'e n'interfaccia testo p' 'o software dint'a sta wiki, e s'è prutetta pe' nce scanzà 'e cocch'abbuso.\nSi se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [//translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
-       "editinginterface": "'''Attenziò:''' 'O testo 'e sta paggena ffà parte 'e ll'interfaccia utente d' 'o sito.\nTutt' 'e cagnamiénte fatte a sta paggena cumpareno dint' 'e mmasciate 'e ll'interfaccia veduta 'a tutte ll'utente dint'a sta wiki.\nSi se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [//translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
+       "editinginterface": "<strong>Attenziò:</strong>  'O testo 'e sta paggena ffà parte 'e ll'interfaccia utente d' 'o sito.\nTutt' 'e cagnamiénte fatte a sta paggena cumpareno dint' 'e mmasciate 'e ll'interfaccia veduta 'a tutte ll'utente dint'a sta wiki.",
+       "translateinterface": "Si se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [//translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
        "cascadeprotected": "Sta paggena è stata prutetta 'a 'o cangamento pecché sta dint'a {{PLURAL:$1|sta paggena, che è prutetta|sti paggene, che songo prutette}} quann' 'a l'ozione \"ricurziva\" è attiva:\n$2",
        "namespaceprotected": "Nun avite permesso a cagnà 'e paggene dint'a stu namespace '''$1'''.",
        "customcssprotected": "Nun v'è permesso 'a cagnà sta paggena CSS, pecché cuntene 'e mpustaziune perzunale 'e n'at'utente.",
        "content-model-text": "testo nurmale",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Paggene c'ausano argomiente dupprecate dint' 'e chiammate a 'e mudelle",
+       "duplicate-args-category-desc": "'A paggena tene chiammate a mudelle c'ausassero argomiente dupprecate, comme p'esempio <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Attenziò:''' Sta paggena cuntene troppe chiammate a 'e funzione parser.\n\nN'avesse 'a tené meno 'e $2, p' 'o mumento ce ne {{PLURAL:$1|stà $1|stanno $1}}.",
        "expensive-parserfunction-category": "Paggene cu troppe chiammate a 'e funzione parser",
        "post-expand-template-inclusion-warning": "'''Attenzione:''' 'a diminsiona d' 'e template ionte ccà è troppo grossa.\nCocche template se lassarrà fore.",
        "revdelete-selected-text": "{{PLURAL:$1|Verziona scigliuta|Verziune scigliute}} 'e [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Verzione scigliuta|Verziune scigliute}} d' 'o file 'e [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Fatto scigliuto d' 'o riggistro|Fatte scigliute d' 'o riggistro}}:",
-       "revdelete-text-text": "'E verziune scancellate cumpareno ancora dint' 'a cronologgia d' 'a paggena, ma na parte d' 'o cuntenuto lloro nun sarrà disponibbele a 'o pubbreco.",
-       "revdelete-text-file": "'E verziune 'e file scancellate cumpareno ancora dint' 'a cronologgia d' 'o file, ma parte d' 'o cuntenuto lloro nun sarrà disponibbele a 'o pubbreco.",
-       "logdelete-text": "'E fatte 'e riggistro scancellate cumpareno ancora dint' 'a cronologgia 'e riggistro, ma na parte d' 'o cuntenuto lloro nun sarrà disponibbele a 'o pubbreco.",
+       "revdelete-text-text": "'E verziune scancellate cumpareno ancora dint' 'a cronologgia d' 'a paggena, ma na parte d' 'o cuntenuto lloro nun sarrà a disposizione a 'o pubbreco.",
+       "revdelete-text-file": "'E verziune 'e file scancellate cumpareno ancora dint' 'a cronologgia d' 'o file, ma parte d' 'o cuntenuto lloro nun sarrà a disposizione a 'o pubbreco.",
+       "logdelete-text": "'E fatte 'e riggistro scancellate cumpareno ancora dint' 'a cronologgia 'e riggistro, ma na parte d' 'o cuntenuto lloro nun sarrà a disposizione a 'o pubbreco.",
        "revdelete-text-others": "Ll'at'ammenistrature puterranno ancora trasì e arrepiglià 'e cuntenute annascunnute, si nun so' state mpustate cchiù restrizziune.",
        "revdelete-confirm": "Pe' piacere cunfermate ca overo vulite ffà chesto, ca cunuscete 'e cunseguenze, e ca state facenno chesto rispettanno 'e [[{{MediaWiki:Policy-url}}|linee guida]].",
        "revdelete-suppress-text": "Sti luvamiente hana essere fatte '''unicamente''' dint' 'e situaziune ccà abbascio:\n* nfurmaziune potenzialmente diffamatorie\n* date perzunale inopportune\n*: ''indirizze, nummeri 'e telefono, codece fiscale, ecc.''",
        "revdelete-hide-user": "Nomme o indirizzo IP 'e ll'autore",
        "revdelete-hide-restricted": "Annascunne 'e nfurmaziune 'nnecate pure a l'ammenistrature",
        "revdelete-radio-same": "(nun cagnà)",
-       "revdelete-radio-set": "Nasconde",
+       "revdelete-radio-set": "Annascunnuto",
        "revdelete-radio-unset": "Faje vedé",
        "revdelete-suppress": "Annascunne 'e nfurmaziune pure a l'ammenistrature",
        "revdelete-unsuppress": "Scancella 'e limmete ncopp' 'e verziune arripigliate",
        "mergehistory-same-destination": "'E paggene d'origgine e destinazione nun ponno essere eguale",
        "mergehistory-reason": "Mutivo:",
        "mergelog": "Riggistro d'aunione",
-       "pagemerge-logentry": "song'aunite [[$1]] int'a [[$2]] (verziune nfin'a $3)",
        "revertmerge": "Annulla aunione",
        "mergelogpagetext": "Ccà abbascio ce sta na lista cu ll'urdeme aunione int'a cronologgia d' 'e ddoje paggene.",
        "history-title": "$1: cronologgia d' 'e cagnamiente",
        "search-result-category-size": "{{PLURAL:$1|1 utente|$1 utente}} ({{PLURAL:$2|1 sottocategurìa|$2 sottocategurìe}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(sezzione $1)",
+       "search-category": "(categurìa $1)",
        "search-file-match": "(currispunnenza dint' 'e cuntenute d' 'o file)",
        "search-suggest": "Prova chisto: $1",
        "search-interwiki-caption": "Prugiette frate",
        "gender-female": "È riggistrata ncopp' 'a {{SITENAME}}",
        "prefs-help-gender": "Mpizzà sta preferenza è ozzionale.\n'O software aúsa stu valore pe' se vutà a vuje e v'anummenà a l'ati utente ausanno 'o gennere grammatecale buono.\nCheste nfurmaziune sarranno pubbreche.",
        "email": "E-mail",
-       "prefs-help-realname": "'O nomme overo vuosto è ozzionale.\nSi sciglite 'e nzertà 'o nomme overo, chesto s'ausarrà pe' dà l'utente l'attribuzione d' 'a fatica fatta.",
+       "prefs-help-realname": "'O nomme overo vuosto è opzionale.\nSi 'o scrivete, se putesse ausà pe' ve dà l'attribuzione d' 'a fatica fatta.",
        "prefs-help-email": "L'e-mail vuosto è ozzionale, ma permettesse 'e ricevere 'a password propria quanno v' 'a scurdate.",
        "prefs-help-email-others": "Putite pure scegliere 'e lassà che l'at'utente ve mannassero mmasciate via e-mail cu nu cullegamiento â paggena d'utente o chiacchiera.\nLl'indirizzo e-mail vuosto nun è scummigliato quanno l'at'utente ve cuntattano.",
        "prefs-help-email-required": "L'indirizzo e-mail è obbligatorio.",
        "rcshowhidepatr": "$1 cagnamiente cuntrullate",
        "rcshowhidepatr-show": "Faje vedé",
        "rcshowhidepatr-hide": "Annascunne",
-       "rcshowhidemine": "$1 'e ffatiche mmee",
+       "rcshowhidemine": "$1 'e ffatiche mieie",
        "rcshowhidemine-show": "Faje vedé",
        "rcshowhidemine-hide": "Annascunne",
        "rclinks": "Faje vedé ll'urdeme $1 cagnamiente dint' ll'urdeme $2 juorne<br />$3",
        "filewasdeleted": "Nu file ca se chiamave cumm'a chillo c'avete primma carrecato e pò è stato scancellato.\nVedite 'e cuntrullà 'o $1 apprimma ca cuntinuate c' 'a carreca.",
        "filename-bad-prefix": "'O nomme d' 'o file ca state a carrecà accummencia pe' ''\"$1\"''', ca nurmalmente è 'o nomme c'assegnasse na machina fotografeca automatecamente ed è nu nomme nun descrittivo.\nPe' piacere scigliete n'atu nomme ca fosse cchiù descrittivo.",
        "upload-success-subj": "Carreca ngarrata",
-       "upload-success-msg": "'A carreca tuja d' 'o [$2] è asciuta bona. Mò è disponibbele ccà: [[:{{ns:file}}:$1]]",
+       "upload-success-msg": "'A carreca tuja d' 'o [$2] è asciuta bona. Mò è a disposizione ccà: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "Probblema c' 'a carreca",
        "upload-failure-msg": "Ce steva nu probblema c' 'a carreca 'a [$2]:\n\n$1",
        "upload-warning-subj": "Avviso 'e carreca",
        "license-header": "Licenza",
        "nolicense": "Nisciuna licienza scigliuta",
        "licenses-edit": "Càgna opzziune 'e licenza",
-       "license-nopreview": "(Anteprimma nun disponibbele)",
+       "license-nopreview": "('Anteprimma nun se trova a disposizione)",
        "upload_source_url": "(nu file 'a n'URL valido e accessibbele pubblecamente)",
        "upload_source_file": "(nu file d' 'o computer 'o tuojo)",
        "listfiles-delete": "scancèlla",
        "filehist-comment": "Commento",
        "imagelinks": "Jonte ê ffiure",
        "linkstoimage": "{{PLURAL:$1|Sta paggena cullega|$1 'e sti paggene cullegano}} a stu file:",
-       "linkstoimage-more": "Cchiù 'e $1 {{PLURAL:$1|paggene cullegano|paggene cullegano}} a stu file.<br />\nL'alenco ccà abbascio fà vedé {{PLURAL:$1|'a primma paggena ca cullega|'e primme $1 paggene ca cullegano}} sulamente a stu file.<br />\nNa [[Special:WhatLinksHere/$2|lista completa]] è disponibbele.",
+       "linkstoimage-more": "Cchiù 'e $1 {{PLURAL:$1|paggene cullegano|paggene cullegano}} a stu file.<br />\nL'alenco ccà abbascio fà vedé {{PLURAL:$1|'a primma paggena ca cullega|'e primme $1 paggene ca cullegano}} sulamente a stu file.<br />\nNa [[Special:WhatLinksHere/$2|lista completa]] è a disposizione.",
        "nolinkstoimage": "Nisciuna paggena cullega a stu file.",
        "morelinkstoimage": "Vide [[Special:WhatLinksHere/$1|cchiù cullegamiente]] a stu file.",
        "linkstoimage-redirect": "$1 (redirezionamiente d' 'o file) $2",
        "statistics": "Statistiche",
        "statistics-header-pages": "Statistiche d' 'e paggene",
        "statistics-header-edits": "Cagna 'e statistiche",
-       "statistics-header-views": "Vide 'e statistiche",
        "statistics-header-users": "Statistiche 'e l'utente",
        "statistics-header-hooks": "Ati statistiche",
        "statistics-articles": "Paggene 'e cuntenute",
        "statistics-files": "File carrecate",
        "statistics-edits": "Cagnamiente d' 'e paggene 'a che {{SITENAME}} s'è accumminciata",
        "statistics-edits-average": "Cagnamiente medie pe' paggena",
-       "statistics-views-total": "Visite 'n totale",
-       "statistics-views-total-desc": "'E vviste a paggene ca nun esisteno e paggene speciale nun cuntano",
-       "statistics-views-peredit": "Visite pe' cagnamiento",
        "statistics-users": "[[Special:ListUsers|Utente riggistrate]]",
        "statistics-users-active": "Utente attive",
        "statistics-users-active-desc": "Utente c'hanno fatto coccosa dint' 'a {{PLURAL:$1|l'urdemo juorno|l'urdeme $1 juorne}}",
-       "statistics-mostpopular": "Pàggene cchiù visitate",
        "pageswithprop": "Paggene cu na prupietà 'e paggena",
        "pageswithprop-legend": "Paggene cu na prupietà 'e paggena",
        "pageswithprop-text": "Sta paggena alenca 'e paggene c'ausano na prupietà particolare 'e paggena.",
        "uncategorizedtemplates": "Template senza categurìa",
        "unusedcategories": "Categurìe ca nun s'ausano",
        "unusedimages": "File ca nun s'ausano",
-       "popularpages": "Paggene cchiù 'speziunate",
        "wantedcategories": "Categurìe addimannate",
        "wantedpages": "Paggene cchiù addemannate",
        "wantedpages-badtitle": "Titolo invalido mmiez' 'o nzieme 'e risultate: $1",
        "pager-older-n": "{{PLURAL:$1|1 cchiù viecchio|$1 cchiù viecchie}}",
        "suppress": "Supervisione",
        "querypage-disabled": "Sta paggena speciale è stutata pe' mutive 'e prestaziune.",
+       "apihelp": "Ajuto cu l'API",
+       "apihelp-no-such-module": "'O modulo \"$1\" nun se trova.",
        "booksources": "Funte libbrarie",
        "booksources-search-legend": "Ascìa 'e fonte ncopp' 'e libbre",
        "booksources-search": "Ascìa",
        "speciallogtitlelabel": "Destinazione (titolo o utente):",
        "log": "Logs",
        "all-logs-page": "Tutte l'archivie pubbleche",
-       "alllogstext": "Visualizzazione mmescata 'e tutte 'e riggistre disponibbele ncopp'a {{SITENAME}}.\nPutite restringere 'a vista a sicondo 'o tipo 'e riggistro, 'o nomme utente (sensibbele a 'e maiuscole), o 'e paggene coinvolte (pure chiste songo sensibbele a 'e maiuscole).",
+       "alllogstext": "Visualizzazione mmescata 'e tutte 'e riggistre a disposizione ncopp'a {{SITENAME}}.\nPutite restringere 'a vista a sicondo 'o tipo 'e riggistro, 'o nomme utente (sensibbele a 'e maiuscole), o 'e paggene coinvolte (pure chiste songo sensibbele a 'e maiuscole).",
        "logempty": "Nun ce sta n'elemento dint' 'o riggistro azzeccato â ricerca.",
        "log-title-wildcard": "Ascìa titole c'accummencieno cu stu testo",
        "showhideselectedlogentries": "Cagna visibbelità d' 'e riggistre scigliute",
        "protect-expiring-local": "ammatura 'o $1",
        "protect-expiry-indefinite": "indefinite",
        "protect-cascade": "Prutegge paggene appennute dint'a sta paggena (spanne 'a prutezione a tutt' 'e paggene appennute ccà).",
-       "protect-cantedit": "Nun è possibbele cagnà 'e livelle e prutezione 'e sta paggena, pecchè nun tenite deritto o permesse pe' ne fà 'o cagnamiento.",
+       "protect-cantedit": "Nun è pussibbele cagnà 'e livelle e prutezione 'e sta paggena, pecchè nun tenite deritto o permesse pe' ne fà 'o cagnamiento.",
        "protect-othertime": "N'ata durata:",
        "protect-othertime-op": "ati durate",
        "protect-existing-expiry": "'O tiempo d'ammaturamiento esistente: $3, $2",
        "undeleterevisions": "$1 {{PLURAL:$1|verzione|verziune}} archiviate",
        "undeletehistory": "Si arrepiglie 'a paggena, tutte 'e verziune sarrann'arrepigliate nziem'a chista.\nSi na paggena nova c' 'o stesso nomme è stata criata 'a che s'è fatto 'o scancellamiento, 'e verziune arripigliate cumparerranno comme cchiù viecchie dint' 'a cronologgia.",
        "undeleterevdel": "L'arripiglio nun sarrà affettuato si determina 'o scancellamiento parziale d' 'a verzione 'e mo d' 'a paggena o file.\nInt'a sti case, avite 'e smarcà o annasconnere 'e verziune scancellate cchiù nove.",
-       "undeletehistorynoadmin": "Sta paggena è stata scancellata.\n'O mutivo d' 'o scancellamiento 'o truvate scritto dint' 'a 'o riepilego ccà abbascio, nzieme ch' 'e dettaglie 'e l'utente c'hanno cagnato sta paggena apprimma 'e se fà 'o scancellamiento.\n'O testo 'e mo 'e sti verziune è disponibbele sulamente a l'ammenistrature.",
+       "undeletehistorynoadmin": "Sta paggena è stata scancellata.\n'O mutivo d' 'o scancellamiento 'o truvate scritto dint' 'a 'o riepilego ccà abbascio, nzieme ch' 'e dettaglie 'e l'utente c'hanno cagnato sta paggena apprimma 'e se fà 'o scancellamiento.\n'O testo 'e mo 'e sti verziune è a disposizione sulamente a l'ammenistrature.",
        "undelete-revision": "Verziune scancellata 'a $1 (comme 'e $4, a $5) 'a $3:",
        "undeleterevision-missing": "Verziona invalida o mancante.\nPutisseve avé nu cullegamiento sbagliato o 'a verzione, può darse, ca fosse arrepigliata o scancellata 'e l'archivio.",
        "undelete-nodiff": "Nun s'è truvata nisciuna verzione 'e primma.",
        "tooltip-pt-mycontris": "Elenco dde tuje contributte",
        "tooltip-pt-login": "A reggistrazione è cunsigliata",
        "tooltip-pt-logout": "Jésce (logout)",
+       "tooltip-pt-createaccount": "Pigliateve curaggio e criate n'utente e trasìte; ancora ca chisto nun s'avesse 'a ffà pe' fforza",
        "tooltip-ca-talk": "Vede e discussione rilative a chista paggena",
        "tooltip-ca-edit": "Puo modifica chista paggena. Ppe favore usa 'o pulsante 'e anteprimma primma 'e salva",
        "tooltip-ca-addsection": "Cummincia 'na nova sezzione",
        "tooltip-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 d&#39;'o prugietto, che po' ffa, addò truvà 'e ccose",
+       "tooltip-n-portal": "Descrizione d'o prugietto, che po' ffa, addò truvà 'e ccose",
        "tooltip-n-currentevents": "Ascìa 'e nfurmaziune ncopp' 'e fatte succiesse mò mò",
        "tooltip-n-recentchanges": "Ennece dde urdeme cagnamiénte ddo sito",
        "tooltip-n-randompage": "Na paggena qualsiase",
        "tooltip-feed-atom": "Atom feed pe sta pàggena",
        "tooltip-t-contributions": "Lista dde contributte 'e chisto utente",
        "tooltip-t-emailuser": "Manna 'nu email a chisto utente",
+       "tooltip-t-info": "Cchiù nfurmaziune ncopp'a sta paggena",
        "tooltip-t-upload": "Careca file",
        "tooltip-t-specialpages": "Lista 'e tutte e paggene speciale",
        "tooltip-t-print": "Vversione pe' stampa 'e chista paggena",
        "pageinfo-robot-policy": "Indicizzate 'a 'e robbot",
        "pageinfo-robot-index": "Permesso",
        "pageinfo-robot-noindex": "Nun permesso",
-       "pageinfo-views": "Nummero 'e visite",
        "pageinfo-watchers": "Nummero 'e visite â paggena",
        "pageinfo-few-watchers": "Meno 'e $1 {{PLURAL:$1|visita|visite}}",
        "pageinfo-redirects-name": "Nummero 'e redirect a sta paggena",
        "watchlistedit-raw-titles": "Titule:",
        "watchlistedit-raw-submit": "Agghiurna l'elenco 'e paggene cuntrullate",
        "watchlistedit-raw-done": "L'elenco 'e paggene cuntrullate è stato agghiurnato.",
+       "watchlistedit-raw-added": "{{PLURAL:$1|nu titolo è|$1 titule so'}} stat'azzeccate:",
+       "watchlistedit-raw-removed": "{{PLURAL:$1|nu titolo è stato luvato|$1 titule so' state luvate}}:",
+       "watchlistedit-clear-title": "Elenco 'e cuntrollo pulezzato",
+       "watchlistedit-clear-legend": "Pulezza l'elenco 'e paggene cuntrullate",
+       "watchlistedit-clear-explain": "Tutte sti titule se luvarranno 'a l'elenco 'e paggene cuntrullate vuosto",
+       "watchlistedit-clear-titles": "Titule:",
+       "watchlistedit-clear-submit": "Pulezza l'elenco 'e paggene cuntrullate (Chesto è pe' sempe!)",
+       "watchlistedit-clear-done": "L'elenco 'e paggene cuntrullate vuosto è stat'abbacantato.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|nu titolo è stato luvato|$1 titule so' state luvate}}:",
+       "watchlistedit-too-many": "Ce stanno troppe paggene 'a veré ccà.",
+       "watchlisttools-clear": "Abbacanta l'elenco 'e paggene cuntrullate",
+       "watchlisttools-view": "Vide 'e cagnamiente mpurtante",
+       "watchlisttools-edit": "Vide e cagna l'elenco 'e paggene cuntrullate",
+       "watchlisttools-raw": "Cagna l'elenco 'e paggene cuntrullate ncruro",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|chiacchiere]])",
+       "unknown_extension_tag": "Tag 'e stensione scanusciuto \"$1\"",
+       "duplicate-defaultsort": "<strong>Attenziò:</strong> A chiave d'arricetto \"$2\" se miette ncuollo a nu valore 'e primma \"$1\".",
+       "duplicate-displaytitle": "<strong>Attenziò:</strong> A chiave d'arricetto \"$2\" se scagna p' 'o valore 'e primma \"$1\".",
+       "invalid-indicator-name": "<strong>Errore:</strong> attribbuto <code>name</code> 'e ll'innecature d' 'o stato d' 'a paggena nu può rummanè abbacante.",
+       "version": "Verziona",
+       "version-extensions": "Estenziune installate",
+       "version-skins": "Skin installate",
+       "version-specialpages": "Paggene speciale",
+       "version-parserhooks": "Hook analizzature",
+       "version-variables": "Variabbele",
+       "version-antispam": "Funziune pe' se scanzà 'o spam",
+       "version-other": "Ato",
+       "version-mediahandlers": "Gestore d' 'e cuntenute multimediale",
+       "version-hooks": "Hook",
+       "version-parser-extensiontags": "Tag pe' l'estenziune 'e l'analizzatore",
+       "version-parser-function-hooks": "Funziune hook 'e l'analizzatore",
+       "version-hook-name": "Nomme d' 'o hook",
+       "version-hook-subscribedby": "Sottoscritto 'a",
+       "version-no-ext-name": "[nisciuno nomme]",
+       "version-license": "Licienza MediaWiki",
+       "version-ext-license": "Licienza",
+       "version-ext-colheader-name": "Stenzione",
+       "version-skin-colheader-name": "Aspetto grafeco (skin)",
+       "version-ext-colheader-version": "Verzione",
+       "version-ext-colheader-license": "Licienza",
+       "version-ext-colheader-description": "Descrizzione",
+       "version-ext-colheader-credits": "Auture",
+       "version-license-title": "Licienza pe' $1",
+       "version-license-not-found": "Pe' cheste stenziune nun ce sta nisciuna nfurmazione ndettaglio ncopp' 'a licienza.",
+       "version-credits-title": "Credite pe' $1",
+       "version-credits-not-found": "Pe' cheste stenziune nun ce sta nisciuna nfurmazione ndettaglio ncopp' 'e credite.",
+       "version-poweredby-credits": "Sta wiki funziona pe' bbìa 'e <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
+       "version-poweredby-others": "ati",
+       "version-poweredby-translators": "tradutture 'e translatewiki.net",
+       "version-credits-summary": "Nuje vulessemo tené a mmente 'e perzune ccà abbascio pe' purtà rispetto a 'e cuntribbute 'e lloro ncopp'a [[Special:Version|MediaWiki]].",
+       "version-license-info": "MediaWiki è nu software libbero; vuje 'o putite redestribbuì e/o cagnà sott' 'e termine d' 'a licienza GNU GPL ('a Licienza Pubbreca Generale) comme pubbrecata d' 'a Free Software Foundation; o pure 'a verziona 2 d' 'a Licienza, o pure (comme vulite vuje) 'a n'ata verziona cchiù nnova.\n\nMediaWiki è destribbuita c' 'a speranza d'essere utile, ma SENZA NISCIUNA GARANZIA; senza manco 'a garanzia p' 'a CUMMERCIABBELETÀ O IDONIETÀ PE' NU SCOPO PARTICOLARE. Iate a vedé 'a GNU GPL pe' n'avé cchiù nfurmaziune.\n\nAvísseve 'a ricevere [{{SERVER}}{{SCRIPTPATH}}/COPYING na copia d' 'a Licienza GNU GPL] cu stu prugramma; si nò, scrivete â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html liggite sta paggena ncopp' 'a l'Internet].",
+       "version-software": "Software installato",
+       "version-software-product": "Prodotto",
+       "version-software-version": "Verziona",
+       "version-entrypoints": "Punte 'e trasuta 'e l'URL",
+       "version-entrypoints-header-entrypoint": "Punto 'e trasuta",
+       "version-entrypoints-header-url": "URL",
+       "redirect": "Rediretto 'a nu file, n'utente, na paggena o n'ID 'e na verziona",
+       "redirect-legend": "Rediretto ca spuntasse a nu file o na paggena",
+       "redirect-summary": "Sta pàggena speciale redireziona a nu file (dato 'o nomme d' 'o file), na pàggene (dato n'ID 'e verziona), o 'na pàggene utente (dato n'ID nummereca 'e l'utende). Ause: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
+       "redirect-submit": "Vaje",
+       "redirect-lookup": "Ascìa:",
+       "redirect-value": "Valore:",
+       "redirect-user": "ID utenza",
+       "redirect-page": "ID d' 'a paggena",
+       "redirect-revision": "Sarva revisione",
+       "redirect-file": "Nomme d\"o file",
+       "redirect-not-exists": "Valore nun accucchiato",
+       "fileduplicatesearch": "Ascìa 'e file duprecate",
+       "fileduplicatesearch-summary": "Circa pe' file duprecate cu bbase 'o valore hash.",
+       "fileduplicatesearch-legend": "Circa pe' nu duprecato",
+       "fileduplicatesearch-filename": "Nomme d' 'o file",
+       "fileduplicatesearch-submit": "Truova",
+       "fileduplicatesearch-info": "$1 × $2 pixel, dimenzione d' 'o file: $3<br />tipo MIME: $4",
+       "fileduplicatesearch-result-1": "'O file \"$1\" non ce tene nu duprecato eguale eguale.",
+       "fileduplicatesearch-result-n": "'O file \"$1\" tène {{PLURAL:$2|1 dupricazione|$2 dupricaziune}} eguale eguale.",
+       "fileduplicatesearch-noresults": "Nisciuno file chiamato \"$1\" è stato accucchiato.",
        "specialpages": "Paggene speciale",
+       "specialpages-note-top": "Liggenda",
+       "specialpages-note": "* Paggene speciale normale.\n* <span class=\"mw-specialpagerestricted\">Paggene speciale ch' 'e restriziune.</span>",
+       "specialpages-group-maintenance": "Report 'e manutenzione",
+       "specialpages-group-other": "Ati paggene speciale",
+       "specialpages-group-login": "Tràse o cria n'acciesso novo",
+       "specialpages-group-changes": "Cagnamiente 'e mò mò e riggistre",
+       "specialpages-group-media": "Riepileghe 'e media e carreche",
+       "specialpages-group-users": "Utente e deritte",
+       "specialpages-group-highuse": "Pàggene ausate assaje proprio",
+       "specialpages-group-pages": "Lista d' 'e paggene",
+       "specialpages-group-pagetools": "Strumiente p' 'e paggene",
+       "specialpages-group-wiki": "Data e strumiente",
+       "specialpages-group-redirects": "Redirezionamiente d' 'e paggene speciale",
+       "specialpages-group-spam": "Strumiente p' 'o spam",
+       "blankpage": "Paggene abbacante",
+       "intentionallyblankpage": "Sta paggena s'è lassata abbacante apposta",
+       "external_image_whitelist": "  #Lassate sta linea accussì accussì comme sta<pre>\n#Mettete piezze 'espressione regolare (chilla parta nfra 'e //) sotto\n#Chille s'azzeccano ch' 'e ndirizze URL 'e l'immaggine 'e fore (collegamiente cavere)\n#Chille cu nu cunfronto positivo sarranno mmustate comme immaggene, o pure comme a nu link a l'immaggine ca mmustano\n#Linee c'accumenciano pe' # songo trattate comme commente\n#Chist'è insenzitivo p' 'e maiuscole e minuscole\n\n#Mettete tutt' 'e piezze regex ncopp' 'a stalinea. Lassate sta linea eguale eguale comme 'a verite</pre>",
+       "tags": "Tag 'e cagnamiento valide",
        "tag-filter": "Filtra ppe [[Special:Tags|etichetta]]:",
+       "tag-filter-submit": "Filtra",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "tags-title": "Etichette",
+       "tags-intro": "Sta paggena elenca l'etichette ca 'o software putesse ffà suoccie a nu cagnamiento e 'o significato lloro.",
+       "tags-tag": "Nomme 'e ll'etichetta",
+       "tags-display-header": "Comme cumpàreno ncopp' 'a lista 'e cagnamiente",
+       "tags-description-header": "Descrizione sana d' 'o significato",
+       "tags-active-header": "Attivo?",
+       "tags-hitcount-header": "Cagnamiente etichettate",
+       "tags-active-yes": "Sì",
+       "tags-active-no": "No",
+       "tags-edit": "càgna",
+       "tags-hitcount": "$1 {{PLURAL:$1|cagnamiento|cagnamiente}}",
+       "comparepages": "Miette a cunfronto 'e paggene",
+       "compare-page1": "Paggena 1",
+       "compare-page2": "Paggena 2",
+       "compare-rev1": "Vversione 1",
+       "compare-rev2": "Vversione 2",
+       "compare-submit": "Miette a cunfronto",
+       "compare-invalid-title": "'O titolo c'avite miso nun è bbuono.",
+       "compare-title-not-exists": "'O file c'avite specificato nun esiste.",
+       "compare-revision-not-exists": "'A verziona c'avite specificato nun esiste.",
+       "dberr-problems": "Scusatece! Stu sito sta passanno nu mumento tecnico malamente.",
+       "dberr-again": "Aspettate cocche minuto e po' recarrecate.",
+       "dberr-info": "(Nun se può cuntattà 'o server d' 'o database: $1)",
+       "dberr-info-hidden": "(Nun se può cuntattà 'o server d' 'o database)",
+       "dberr-usegoogle": "Pe' tramente putite pruvà 'ascianno ncoppa Google.",
+       "dberr-outofdate": "Vedite ca l'indice lloro d' 'e cuntenute nuoste ponno nun essere agghiurnate mò mò.",
+       "dberr-cachederror": "Chest'è na copia \"cache\" d' 'a paggena c'avite asciato, e putesse nun essere agghiurnata.",
+       "htmlform-invalid-input": "Ce sta cocche probblema cu l'input c'avite miso.",
+       "htmlform-select-badoption": "'O valore c'avite specificato nun è n'opziona bbuona.",
+       "htmlform-int-invalid": "'O valore c'avite specificato nun è nu nummero ntero.",
+       "htmlform-float-invalid": "'O valore c'avite specificato nun è nu nummero.",
+       "htmlform-int-toolow": "'O valore c'avite specificato sta pe' sott' 'o minimo 'e $1.",
+       "htmlform-int-toohigh": "'O valore c'avite specificato sta pe' copp' 'o massimo 'e $1.",
+       "htmlform-required": "Stu valore ce vuò.",
+       "htmlform-submit": "Manna",
+       "htmlform-reset": "Annulla 'e cagnamiente",
+       "htmlform-selectorother-other": "Ato",
+       "htmlform-no": "No",
+       "htmlform-yes": "Sì",
+       "htmlform-chosen-placeholder": "Scigliete n'opzione",
+       "htmlform-cloner-create": "Azzecca 'e cchiù",
+       "htmlform-cloner-delete": "Lèva",
+       "htmlform-cloner-required": "Servesse al minimo nu valore.",
+       "sqlite-has-fts": "$1 cu supporto 'e ricerche full-text",
+       "sqlite-no-fts": "$1 senza supporto 'e ricerche full-text",
+       "logentry-delete-delete": "$1 {{GENDER:$2|scancellaje}} 'a paggena $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|arrepigliaje}} 'a paggena $3",
+       "logentry-delete-event": "$1 {{GENDER:$2|cagnaie}} 'a vesibbiletà 'e {{PLURAL:$5|n'azione d' 'o riggistro|$5 aziune d' 'o riggistro}} ncopp' 'a 'a $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|cagnaie}} 'a vesibbiletà 'e {{PLURAL:$5|na verziona|$5 verziune}} ncopp' 'a 'a $3: $4",
+       "logentry-delete-event-legacy": "$1 {{GENDER:$2|cagnaie}} 'a vesibbiletà 'e l'aziune dint' 'o riggistro ncopp' 'a $3: $4",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|cagnaie}} 'a vesibbiletà d' 'e verziune ncopp' 'a $3",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|luvaje pe' sempe}} 'a paggena $3",
+       "logentry-suppress-event": "$1 {{GENDER:$2|annascunnuto cagnaie|annascunnuta cagnaie}} 'a vesibbiletà 'e {{PLURAL:$5|n'azione d' 'o riggistro|$5 aziune d' 'o riggistro}} ncopp' 'a 'a $3: $4",
+       "logentry-suppress-revision": "$1 {{GENDER:$2|annascunnuto cagnaie|annascunnuta cagnaie}} 'a vesibbiletà 'e {{PLURAL:$5|na verziona|$5 verziune}} ncopp' 'a 'a $3: $4",
+       "logentry-suppress-event-legacy": "$1 {{GENDER:$2|annascunnuto cagnaie|annascunnuta cagnaie}} 'a vesibbiletà 'e l'aziune 'e riggistro ncopp' 'a $3",
+       "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|annascunnuto cagnaie|annascunnuta cagnaie}} 'a vesibbiletà d' 'e verziune ncopp' 'a $3",
+       "revdelete-content-hid": "cuntenute annascunnute",
+       "revdelete-summary-hid": "riepilego 'e cagnamiente annascunnute",
+       "revdelete-uname-hid": "nomme utente annascunnuto",
+       "revdelete-content-unhid": "cuntenute fatte avvedè",
+       "revdelete-summary-unhid": "riepilego 'e cagnamiente fatte avvedè",
+       "revdelete-uname-unhid": "nomme utente fatto avvedè",
+       "revdelete-restricted": "restriziune apprecate a ll'ammenistrature",
+       "revdelete-unrestricted": "restriziune luvate a ll'ammenistrature",
+       "logentry-merge-merge": "$1 {{GENDER:$2|aunito|aunita}} $3 int' 'a $4 (verziune nzin' 'a $5)",
+       "logentry-move-move": "$1 {{GENDER:$2|muvette}} paggena $3 a $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|muvette}} paggena $3 a $4 senza lassà nu redirezionamiento",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|muvette}} paggena $3 a $4 pe' copp' 'a nu redirezionamiento",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|muvette}} paggena $3 a $4 pe' copp' 'a nu redirezionamiento senza lassà nu redirezionamiento",
+       "logentry-patrol-patrol": "$1 verziona {{GENDER:$2|signata}} $4 'e paggena cuntrullata $3",
+       "logentry-patrol-patrol-auto": "$1 verziona automatecamente {{GENDER:$2|signata}} $4 'e paggena cuntrullata $3",
+       "logentry-newusers-newusers": "'O cunto utente $1 fuje {{GENDER:$2|criato|criata}}",
+       "logentry-newusers-create": "'O cunto utente $1 fuje {{GENDER:$2|criato|criata}}",
+       "logentry-newusers-create2": "'O cunto utente $3 fuje {{GENDER:$2|criato|criata}} pe' $1",
+       "logentry-newusers-byemail": "'O cunto utente $3 fuje {{GENDER:$2|criato|criata}} pe' $1 e 'a passuor è stata mannata pe' bbìa 'e na mmasciata e-mail",
+       "logentry-newusers-autocreate": "'O cunto utente $1 fuje {{GENDER:$2|criato|criata}} automatecamente",
+       "logentry-rights-rights": "$1 {{GENDER:$2|cagnaje}} 'e gruppo pe' $3 'a $4 a $5",
+       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|cagnaje}} 'e gruppo pe' $3",
+       "logentry-rights-autopromote": "$1 è {{GENDER:$2|stato promosso|stata promossa}} automatecamente 'a $4 a $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|ave carrecato}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|ave carrecato}} na verziona nnova 'e $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|ave carrecato}} $3",
        "rightsnone": "(nisciuno)",
+       "revdelete-summary": "cagna 'o riepilego",
+       "feedback-bugornote": "Si site pronto/a a descrivere nu probblema tecnico ch' 'e dettaglie, pe' piacere [$1 mannate nu bug].\nSi nun site pronto/a, allora putite ausà 'o modulo semprice ca vedite ccà abbascio. 'O commento vuosto sarrà mpezzato dint' 'a paggena [$3 $2]\", seguenno 'o nomme utente vuosto e 'o navigatóre web ca state ausanno.",
+       "feedback-subject": "Suggietto:",
+       "feedback-message": "Mmasciata:",
+       "feedback-cancel": "Canciella",
+       "feedback-submit": "Manna nu Feedback, na segnalazione",
+       "feedback-adding": "Azzecca nu feedback/na segnalazione â paggena..",
+       "feedback-error1": "Errore: Risultato nun aspettato 'a ll'API",
+       "feedback-error2": "Errore: Cagnamiento scassato",
+       "feedback-error3": "Errore: Ll'API nun risponne",
+       "feedback-thanks": "Grazie! 'O feedback vuosto s'è mpizzato dint' 'a paggena \"[$2 $1]\".",
+       "feedback-close": "Fatto",
+       "feedback-bugcheck": "Tutt'appost! Avite surtanto 'a cuntrullà ca chisto nun è unu d' 'e [$1 bug canusciute].",
+       "feedback-bugnew": "Aggio cuntrullato. Manna nu bug nuovo.",
+       "searchsuggest-search": "Truova",
+       "searchsuggest-containing": "tène...",
+       "api-error-badaccess-groups": "Tun putite carrecà file ncopp' 'a sta wiki.",
+       "api-error-badtoken": "Errore interno: 'O token nun è buono.",
+       "api-error-copyuploaddisabled": "'A funzione carrcà 'e n'URL nun è appicciata dint'a stu server.",
+       "api-error-duplicate": "Nce {{PLURAL:$1|stà [$2 n'atu file]|stanno [$2 ati file]}} ncopp' 'o sito ch' 'e stisse cuntenute.",
+       "api-error-duplicate-archive": "Nce {{PLURAL:$1|steva [$2 n'atu file]|stevano [$2 ati file]}} già ncopp' 'o sito ch' 'e stisse cuntenute, però {{PLURAL:$1|è stato|so' state}} scancellate.",
+       "api-error-duplicate-archive-popup-title": "File duprecat{{PLURAL:$1|o che è già stato scancellato|e che songo già state scancellati}}",
+       "api-error-duplicate-popup-title": "Dupreche {{PLURAL:$1|file|file}}",
+       "api-error-empty-file": "'O file ch'avite mannato è abbacante.",
+       "api-error-emptypage": "'A criazione 'e paggene nuove abbacante nun è permessa.",
+       "api-error-fetchfileerror": "Errore interno: Coccosa ascette stuorta quanno se steva 'analizzà stu file.",
+       "api-error-fileexists-forbidden": "Nu file c' 'o nomme \"$1\" esiste già, e chisto nun pò essere sovrascritto.",
+       "api-error-fileexists-shared-forbidden": "Nu file c' 'o nomme \"$1\" esiste già dint' 'a l'archivio 'e file, e chisto nun pò essere sovrascritto.",
+       "api-error-file-too-large": "'O file ch'avite mannato è troppo gruosso.",
+       "api-error-filename-tooshort": "'O nomme d' 'o file è troppo curto.",
+       "api-error-filetype-banned": "Stu tipo 'e file nun è permesso.",
+       "api-error-filetype-banned-type": "$1 {{PLURAL:$4|nun è nu tipo 'e file permesso|nun songo tipe 'e file permesse}}. {{PLURAL:$3|'O tipo 'e file permesso è|'E tipe 'e file permesse songo}} $2.",
+       "api-error-filetype-missing": "Stu file nun tene estensione.",
+       "api-error-hookaborted": "'O cagnamiento c'avite pruvato 'e fà è stato spezzato 'a na stensione.",
+       "api-error-http": "Errore interno: Nun putimmo ngarrà a nce cullegà a 'o server.",
+       "api-error-illegal-filename": "'O nomme d' 'o file nun è permesso.",
+       "api-error-internal-error": "Errore interno: Coccosa ascette male pe' tramente ca se steva processanno 'a carreca dint'a stu wiki.",
+       "api-error-invalid-file-key": "Errore interno: 'O file nun se pò truvà dint' 'a memoria temporanea.",
+       "api-error-missingparam": "Errore interno: nun se trovano 'e parametre pe' ne putè fà 'a richiesta.",
+       "api-error-missingresult": "Errore interno: Nun se pò sapè si 'a copia ascette bbona.",
+       "api-error-mustbeloggedin": "Avite 'a trasì ô sito si vulite carrecà file.",
+       "api-error-mustbeposted": "Errore interno: 'A richiesta vole HTTP POST.",
+       "api-error-noimageinfo": "A carreca ngarraje, ma 'o server nun ce ha pututo dà nisciuna nformazione ncopp' 'o file.",
+       "api-error-nomodule": "Errore interno: Nisciuno modulo 'e carreca mpustato.",
+       "api-error-ok-but-empty": "Errore interno: Nisciuna resposta 'a 'o server.",
+       "api-error-overwrite": "Sovrascrivere nu file ch'esiste già nun è permesso.",
+       "api-error-stashfailed": "Errore interno: 'O server nun ngarraje a s'astipà 'o file temporaneo.",
+       "api-error-publishfailed": "Errore interno: 'O server nun ngarraje a pubbrecà 'o file temporaneo.",
+       "api-error-stasherror": "'A carreca d' 'o file 'n stash è asciuta male, ce sta n'errore.",
+       "api-error-stashedfilenotfound": "'O file 'n stash nun è stato truvato pe' tramente ca se faceva 'a prova 'e carreca d' 'o stash.",
+       "api-error-stashpathinvalid": "'O cullegamento a 'o pizzo addò avesse stà 'o file 'e stash nun è bbuono.",
+       "api-error-stashfilestorage": "L'astipamento d' 'o file 'n stash è asciuto male, ce sta n'errore.",
+       "api-error-stashzerolength": "'O server nun può nzertà 'o file dint'a 'o stash, pecché è luongo zero zero.",
+       "api-error-stashnotloggedin": "Avisseve 'a trasì pe' ne putè astipà 'e file din' 'o stash 'e càrreca.",
+       "api-error-stashwrongowner": "'O file addò stavate a trasì dint' 'o stash nun v'appartene.",
+       "api-error-stashnosuchfilekey": "'A chiave d' 'o file addò stavate a trasì dint' 'o stash nun esiste.",
+       "api-error-timeout": "'O server nun rispunnette dint'a 'o tiempo stabbelito.",
+       "api-error-unclassified": "È capitato n'errore scanusciuto.",
+       "api-error-unknown-code": "Errore scanusciuto: \"$1\"",
+       "api-error-unknown-error": "Errore interno: Coccosa jette a fernì malalamente quano facisteve 'a carreca d' 'o file vuosto.",
+       "api-error-unknown-warning": "Avvertimento scanusciute: $1",
+       "api-error-unknownerror": "Errore scanusciuto: \"$1\"",
+       "api-error-uploaddisabled": "'E carreche so' stutate dint'a sta siki.",
+       "api-error-verification-error": "Stu file putesse stà nguacchiato, o tene n'estensione sbagliata.",
+       "duration-seconds": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "duration-minutes": "$1 {{PLURAL:$1|minuto|minute}}",
+       "duration-hours": "$1 {{PLURAL:$1|ora|ore}}",
+       "duration-days": "$1 {{PLURAL:$1|juorno|juorne}}",
+       "duration-weeks": "$1 {{PLURAL:$1|semmana|semmane}}",
+       "duration-years": "$1 {{PLURAL:$1|anno|anne}}",
+       "duration-decades": "$1 {{PLURAL:$1|decade|decade}}",
+       "duration-centuries": "$1 {{PLURAL:$1|seculo|secule}}",
+       "duration-millennia": "$1 {{PLURAL:$1|millennio|millennia}}",
+       "rotate-comment": "Immaggine rotata $1 {{PLURAL:$1|grade}} 'n senzo orario",
+       "limitreport-title": "Analizzatore d' 'e date d' 'a profilazione:",
+       "limitreport-cputime": "Tiempo d'uso d' 'o CPU",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "limitreport-walltime": "Tiempo riale d'uso",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "limitreport-ppvisitednodes": "Nummero e nurece 'e preprucessore visetate",
+       "limitreport-ppgeneratednodes": "Nummero 'e nurece generate d' 'o preprocessore",
+       "limitreport-postexpandincludesize": "Diminziona d'inclusiune Post-Espanzione",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|byte|byte}}",
+       "limitreport-templateargumentsize": "Dimenzione d' 'o parametro d' 'o template",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte|byte}}",
+       "limitreport-expansiondepth": "Funno massimo 'e spanzione",
+       "limitreport-expensivefunctioncount": "Funzione analizzatore ca costasse assaje 'e prucessà",
+       "expandtemplates": "Template spannute",
+       "expand_templates_intro": "Sta pàggena speciale piglia cocche testo e spanne tutt' 'e template ca stann'a dinto recurzivamente.<br />\nChista spanne pure le funziune d'analise comme<br />\n<code><nowiki>{{</nowiki>#language:…}}</code>, e variabbele comme <br />\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.<br />\nIn pratica tutte chille ca stessero dint'a le doppie parentesi graffe.<br />",
+       "expand_templates_title": "Titole contestuale pe' {{FULLPAGENAME}}, ecc.:",
+       "expand_templates_input": "Testo d'input:",
+       "expand_templates_output": "Risultato",
+       "expand_templates_xml_output": "Output XML",
+       "expand_templates_html_output": "Risultato HTML cruro",
+       "expand_templates_ok": "OK",
+       "expand_templates_remove_comments": "Lèva 'e commente",
+       "expand_templates_remove_nowiki": "Lèva 'e tag <nowiki> 'a int' 'e resultate",
+       "expand_templates_generate_xml": "Fà vedè l'arvero 'e l'analisi XML",
+       "expand_templates_generate_rawhtml": "Fà verè 'o codece HTML 'n cruro",
+       "expand_templates_preview": "Anteprimma",
+       "pagelanguage": "Scigliete 'a lengua d' 'a paggena pe' bbìa e stu strumiento",
+       "pagelang-name": "Paggena",
+       "pagelang-language": "Lengua",
+       "pagelang-use-default": "Aùsa 'a lengua predefinita",
+       "pagelang-select-lang": "Selezziona lengua",
+       "right-pagelang": "Cagnate 'a lengua d' 'a paggena",
+       "action-pagelang": "càgna 'a lengua d' 'a paggena",
+       "log-name-pagelang": "Càgna 'o riggistro 'e llengue",
+       "log-description-pagelang": "Chest'è nu riggistro 'e cagnamiente 'e lengua d' 'e paggene.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ave cagnato}} 'a lengua d' 'a paggena $3 'a $4 a $5.",
+       "default-skin-not-found": "Oops! 'A skin predefinta ' 'o wii vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\n'A installazione pare ca tenesse 'e skin ccà abbascio. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] pe' n'avè cchiù nfurmaziune ncopp' 'a manera 'e ll'abbià o scegliere chilla predefinita.\n\n$2\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Clonanno uno 'e chiste repository <code>mediawiki/skins/*</code> pe' bbìa d' 'o git dint' 'a directory <code>skins/</code> d' 'a installazione MediaWiki vosta.\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki.\n\n; Si avite MediaWiki agghiurnato MediaWiki mò mò:\n: MediaWiki 1.24 e verziune appriesso nun abbìa automatecamente 'e skin installate (vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]). Putite copiare 'e linee ccà abbascio dint' 'o <code>LocalSettings.php</code> pe' putè appiccià tutt' 'e skin installate mò mò:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si avite cagnato mò mò <code>LocalSettings.php</code>:\n: Cuntrullate 'e nomme d' 'e skin n'ata vota pe' ve sparagnà cocch'errore 'e battitura.",
+       "default-skin-not-found-no-skins": "Oops! 'A skin predefinita p' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\nNun avite installato nisciuno skin.\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Clonanno uno 'e chiste repository <code>mediawiki/skins/*</code> pe' bbìa d' 'o git dint' 'a directory <code>skins/</code> d' 'a installazione MediaWiki vosta.\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]) pe n'avè nfurmaziune ncopp' 'a maniera d'appiccià e scegliere chella predefinita.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (funzione appicciata)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''funzione stutata''')",
+       "mediastatistics": "Statistiche d' 'e media",
+       "mediastatistics-summary": "Statistiche ncopp' 'e tipe d' 'e file carrecate. Ce truvate azzeccata sulamente 'a verziona cchiù recente d' 'o file. Verziune viecchie o scancellate se so' luvate.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "Tipo 'e MIME",
+       "mediastatistics-table-extensions": "Estenziune pussibbele",
+       "mediastatistics-table-count": "Nummero 'e file",
+       "mediastatistics-table-totalbytes": "Dimenziona cumbinata",
+       "mediastatistics-header-unknown": "Scanusciuto",
+       "mediastatistics-header-bitmap": "Immaggene bitmap",
+       "mediastatistics-header-drawing": "Disegne (immaggene vetturiale)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Video",
+       "mediastatistics-header-multimedia": "Cuntenute ricche multimediale",
+       "mediastatistics-header-office": "Ufficio",
+       "mediastatistics-header-text": "Testuale",
+       "mediastatistics-header-executable": "File eseguetàbbele",
+       "mediastatistics-header-archive": "Furmate compresse",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|virgola finale è stata luvata|virgule finale so' state luvate}} 'a 'o JSON",
        "json-error-unknown": "Ce sta nu probblema c' 'o JSON. Errore: $1",
+       "json-error-depth": "'O funno massimo 'e stack è stato appassàto",
        "json-error-state-mismatch": "Valore malamente furmato o nun buono p' 'o JSON",
+       "json-error-ctrl-char": "Errore dint' 'o carattere 'e cuntrollo, può darse ca s'avesse codefecato male",
        "json-error-syntax": "Errore 'e sintasse",
        "json-error-utf8": "'E carattere UTF-8 furmate malamente, probbabilmente nun se songhe ncodifecate bbuone",
+       "json-error-recursion": "Uno o cchiù riferimente recurzive dint' 'o valore a codefecare",
+       "json-error-inf-or-nan": "Uno o cchiù valure NAN o INF dint' 'o valore 'a codefecare",
        "json-error-unsupported-type": "S'è dato nu valore pe' nu tipo ca nun se può ncodifecà"
 }
index 22ddf3b..2c29847 100644 (file)
        "otherlanguages": "På andre språk",
        "redirectedfrom": "(Omdirigert fra $1)",
        "redirectpagesub": "Omdirigeringsside",
+       "redirectto": "Omdirigering til:",
        "lastmodifiedat": "Denne siden ble sist endret $1 kl. $2.",
        "viewcount": "Denne siden er vist {{PLURAL:$1|én gang|$1 ganger}}.",
        "protectedpage": "Låst side",
        "createaccount-text": "Noen opprettet en konto for din e-postadresse på {{SITENAME}} ($4) med navnet «$2», med «$3» som passord. Du burde logge inn og endre passordet nå.\n\nDu kan ignorere denne beskjeden dersom kontoen ble opprettet ved en feil.",
        "login-throttled": "Du har prøvd å logge inn for mange ganger.\nVent $1 før du prøver på nytt.",
        "login-abort-generic": "Innleggingen ble avbrutt.",
+       "login-migrated-generic": "Kontoen din har blitt globalisert, og brukernavnet ditt finnes ikke lenger på denne wikien.",
        "loginlanguagelabel": "Språk: $1",
        "suspicious-userlogout": "Din forespørsel om å logge ut ble nektet fordi den så ut til å ha bli sendt av en ødelagt nettleser eller en mellomtjener.",
        "createacct-another-realname-tip": "Det er frivillig å oppgi ditt egentlige navn.\nHvis du velger å oppgi det, vil det blir anvendt for å gi deg som bruker anerkjennelse",
        "showpreview": "Forhåndsvisning",
        "showdiff": "Vis endringer",
        "blankarticle": "<strong>Advarsel:</strong> Siden du er i ferd med å opprette er tom.\nHvis du trykker \"{{int:savearticle}}\" en gang til, vil siden opprettes uten innhold.",
-       "anoneditwarning": "'''Advarsel:''' Du er ikke logget inn.\nIP-adressen din blir bevart i sidens redigeringshistorikk.",
+       "anoneditwarning": "<strong>Advarsel:</strong> Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du <strong>[$1 logger inn]</strong> eller <strong>[$2 oppretter en konto]</strong> vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.",
        "anonpreviewwarning": "<em>Du er ikke logget inn. Ved lagring vil IP-adressen din lagres i sidens redigeringshistorikk.</em>",
        "missingsummary": "'''Påminnelse:''' Du har ikke lagt inn en redigeringsforklaring.\nVelger du ''Lagre siden'' en gang til blir endringene lagret uten forklaring.",
        "missingcommenttext": "Vennligst legg inn en kommentar under.",
        "content-model-text": "Ren tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Sider med like argumenter i malkall",
        "expensive-parserfunction-warning": "Advarsel: Denne siden inneholder for mange prosesskrevende parserfunksjoner.\n\nDet burde være mindre enn {{PLURAL:$2|$2|$2}}, men er nå {{PLURAL:$1|$1|$1}}..",
        "expensive-parserfunction-category": "Sider med for mange prosesskrevende parserfunksjoner",
        "post-expand-template-inclusion-warning": "Advarsel: Størrelsen på inkluderte maler er for stor.\nNoen maler vil ikke bli inkludert.",
        "mergehistory-same-destination": "Kilde- og målside kan ikke være den samme.",
        "mergehistory-reason": "Årsak:",
        "mergelog": "Flettingslogg",
-       "pagemerge-logentry": "flettet [[$1]] til [[$2]] (revisjoner fram til $3)",
        "revertmerge": "Omgjør fletting",
        "mergelogpagetext": "Nedenfor er en liste over de nyligste flettingene av sidehistorikker.",
        "history-title": "Revisjonshistorikk for «$1»",
        "searchrelated": "relatert",
        "searchall": "alle",
        "showingresults": "Nedenfor vises opptil {{PLURAL:$1|'''ett''' resultat|'''$1''' resultater}} fra og med nummer <b>$2</b>.",
-       "showingresultsinrange": "Nedenfor vises opptil {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resulter}} i området #<strong>$2</strong> til #<strong>$3</strong>.",
+       "showingresultsinrange": "Nedenfor vises opptil {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resulter}} i mellom nummer <strong>$2</strong> og nummer <strong>$3</strong>.",
+       "search-showingresults": "Resultat <strong>{{PLURAL:$4|$1|$1–$2}}</strong> av <strong>$3</strong>",
        "search-nonefound": "Ingen resultater passet til søket.",
        "powersearch-legend": "Avansert søk",
        "powersearch-ns": "Søk i navnerom:",
        "youremail": "E-post:",
        "username": "{{GENDER:$1|Brukernavn}}:",
        "prefs-memberingroups": "{{GENDER:$2|Medlem}} i følgende {{PLURAL:$1|gruppe|grupper}}:",
-       "prefs-registration": "Registreringstid:",
+       "prefs-registration": "Registreringstidspunkt:",
        "yourrealname": "Virkelig navn:",
        "yourlanguage": "Språk:",
        "yourvariant": "Språkvariant for innhold:",
        "reuploaddesc": "Avbryt opplasting og gå tilbake til opplastingsskjemaet",
        "upload-tryagain": "Send inn endret filbeskrivelse",
        "uploadnologin": "Ikke logget inn",
-       "uploadnologintext": "Du må $1 for å laste opp filer.",
+       "uploadnologintext": "Du må $1 for å kunne laste opp filer.",
        "upload_directory_missing": "Oppplastingsmappen ($1) mangler og kunne ikke opprettes av tjeneren.",
        "upload_directory_read_only": "Opplastingsmappa ($1) er ikke skrivbar for tjeneren.",
        "uploaderror": "Feil under opplasting av fil",
        "statistics": "Statistikk",
        "statistics-header-pages": "Sidestatistikk",
        "statistics-header-edits": "Redigeringsstatistikk",
-       "statistics-header-views": "Visningsstatistikk",
        "statistics-header-users": "Brukerstatistikk",
        "statistics-header-hooks": "Øvrig statistikk",
        "statistics-articles": "Innholdssider",
        "statistics-files": "Opplastede filer",
        "statistics-edits": "Redigeringer siden {{SITENAME}} ble opprettet",
        "statistics-edits-average": "Gjennomsnittlig antall redigeringer per side",
-       "statistics-views-total": "Totalt antall visninger",
-       "statistics-views-total-desc": "Visninger av ikke-eksisterende sider og spesielsider inkluderes ikke",
-       "statistics-views-peredit": "Visninger per redigering",
        "statistics-users": "Registrerte [[Special:ListUsers|brukere]]",
        "statistics-users-active": "Aktive brukere",
        "statistics-users-active-desc": "Brukere som har utført handlinger {{PLURAL:$1|det siste døgnet|de siste $1 dagene}}",
-       "statistics-mostpopular": "Mest viste sider",
        "pageswithprop": "Sider med sideverdi",
        "pageswithprop-legend": "Sider med en sideverdi",
        "pageswithprop-text": "Denne siden lister opp sider som bruker en viss sideverdi.",
        "uncategorizedtemplates": "Ukategoriserte maler",
        "unusedcategories": "Ubrukte kategorier",
        "unusedimages": "Ubrukte filer",
-       "popularpages": "Populære sider",
        "wantedcategories": "Ønskede kategorier",
        "wantedpages": "Etterspurte sider",
        "wantedpages-badtitle": "Ugyldig tittel i resultatene: $1",
        "pager-older-n": "{{PLURAL:$1|1 eldre|$1 eldre}}",
        "suppress": "Historikkrydding",
        "querypage-disabled": "Denne spesialsiden er deaktivert av ytelsesårsaker.",
+       "apihelp": "API hjelp",
        "booksources": "Bokkilder",
        "booksources-search-legend": "Søk etter bokkilder",
+       "booksources-search": "Søk",
        "booksources-text": "Under er en liste over lenker til andre sider som selger nye og brukte bøker, og kan også ha videre informasjon om bøker du leter etter:",
        "booksources-invalid-isbn": "Det gitte ISBN-nummeret er ugyldig; sjekk om du har angitt det riktig.",
        "specialloguserlabel": "Utøver:",
        "unblocked": "[[User:$1|$1]] ble avblokkert",
        "unblocked-range": "$1 har fått løftet blokkeringen",
        "unblocked-id": "Blokkering $1 ble fjernet",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] har blitt avblokkert.",
        "blocklist": "Blokkerte brukere",
        "ipblocklist": "Blokkerte IP-adresser og brukernavn",
        "ipblocklist-legend": "Finn en blokkert bruker",
        "pageinfo-robot-policy": "Bot-indeksering",
        "pageinfo-robot-index": "Tillatt",
        "pageinfo-robot-noindex": "Ikke tillatt",
-       "pageinfo-views": "Antall visninger",
        "pageinfo-watchers": "Antall overvåkere av siden",
        "pageinfo-few-watchers": "Færre enn $1 {{PLURAL:$1|overvåker|overvåkere}}",
        "pageinfo-redirects-name": "Antall omdirigeringer til denne siden",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|endret}} sidespråk for $3 fra $4 til $5.",
        "default-skin-not-found": "Ops! Standarddrakten for wikien din (<code>$wgDefaultSkin</code>), <code>$1</code>, er ikke tilgjengelig.\n\nInstallasjonen din ser ut til å inneholde følgende drakter. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for informasjon om hvordan du kan slå disse på eller heller velge en standarddrakt.\n\n$2\n\n; Om du nettopp har installert MediaWiki:\n: Du har trolig installert fra git, eller direkte fra kildekoden med en annen metode. Dette er forventet. Prøv å installere noen drakter fra [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org sin draktbase] ved å\n:* laste ned [https://www.mediawiki.org/wiki/Download tarball-installereren], som kommer med flere drakter og utvidelser. Du kan kopiere og lime inn <code>skins/</code>-mappen fra denne.\n:* klone en av <code>mediawiki/skins/*</code>-lagrene via git inn i <code>skins/</code> -mappen av din MediaWiki-installasjon.\n: Å gjøre dette skal ikke forstyrre git-mappen din om du er en MediaWiki-utvikler.\n\n; Om du nettopp har oppgradert MediaWiki:\n: MediaWiki 1.24 og nyere slår ikke lenger på automatisk installerte drakter (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Du kan lime inn følgende linjer i <code>LocalSettings.php</code> for å slå på alle installerte drakter:\n\n<pre>$3</pre>\n\n; Om du nettopp har endret <code>LocalSettings.php</code>:\n: Dobbelsjekk draktnavnene for skrivefeil.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (slått på)",
-       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''slått av''')"
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''slått av''')",
+       "mediastatistics": "Mediestatistikk",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte}} ($2; $3 %)",
+       "mediastatistics-table-mimetype": "MIME-type",
+       "mediastatistics-table-extensions": "Mulige filtyper",
+       "mediastatistics-table-count": "Antall filer",
+       "mediastatistics-table-totalbytes": "Kombinert størrelse",
+       "mediastatistics-header-unknown": "Ukjent",
+       "mediastatistics-header-bitmap": "Bitmap-bilder",
+       "mediastatistics-header-drawing": "Tegninger (vektor-bilder)",
+       "mediastatistics-header-audio": "Lyd",
+       "mediastatistics-header-video": "Videoer",
+       "mediastatistics-header-multimedia": "Rikt media",
+       "mediastatistics-header-office": "Kontor",
+       "mediastatistics-header-text": "Tekstlig",
+       "mediastatistics-header-executable": "Kjørbare filer",
+       "mediastatistics-header-archive": "Komprimerte formater",
+       "json-warn-trailing-comma": "$1 etterfølgende {{PLURAL:$1|komma|kommaer}} ble fjernet fra JSON",
+       "json-error-state-mismatch": "Ugyldig JSON",
+       "json-error-syntax": "Syntaksfeil"
 }
index c8b20c9..3f9f991 100644 (file)
        "mergehistory-same-destination": "De bronzied en doelzied kunnen niet t zelfde ween",
        "mergehistory-reason": "Reden:",
        "mergelog": "Samenvoegingslogboek",
-       "pagemerge-logentry": "voegen [[$1]] naor [[$2]] samen (versies tot en mit $3)",
        "revertmerge": "Samenvoeging weerummedreien",
        "mergelogpagetext": "Hieronder zie'j n lieste van de leste samenvoegingen van n ziedgeschiedenisse naor n aandere.",
        "history-title": "Versiegeschiedenisse van \"$1\"",
        "statistics": "Staotistieken",
        "statistics-header-pages": "Ziedstaotistieken",
        "statistics-header-edits": "Bewarkingsstaotistieken",
-       "statistics-header-views": "Staotistieken bekieken",
        "statistics-header-users": "Gebrukerstaotistieken",
        "statistics-header-hooks": "Overige staotistieken",
        "statistics-articles": "Inhouwelike ziejen",
        "statistics-files": "Bestaanden",
        "statistics-edits": "Ziedbewarkingen vanaof t begin van {{SITENAME}}",
        "statistics-edits-average": "Gemiddeld antal bewarkingen per zied",
-       "statistics-views-total": "Totaal antal weeregeven ziejen",
-       "statistics-views-total-desc": "t Bekieken van niet-bestaonde ziejen en spesiale ziejen zitten der niet bie in",
-       "statistics-views-peredit": "Weeregeven ziejen per bewarking",
        "statistics-users": "In-eschreven [[Special:ListUsers|gebrukers]]",
        "statistics-users-active": "Aktieve gebrukers",
        "statistics-users-active-desc": "Gebrukers die de veurbieje {{PLURAL:$1|dag|$1 dagen}} n haandeling uutevoerd hebben",
-       "statistics-mostpopular": "Meestbekeken ziejen",
        "pageswithprop": "Ziejen mit n ziedeigenschap",
        "pageswithprop-legend": "Ziejen mit n zied-eigenschap",
        "pageswithprop-text": "Op disse zied staon ziejen mit n bepaolde ziedeigenschap.",
        "uncategorizedtemplates": "Mallen zonder kategorie",
        "unusedcategories": "Ongebruukten kategorieën",
        "unusedimages": "Ongebruukten bestaanden",
-       "popularpages": "Populaere artikels",
        "wantedcategories": "Gewunste kategorieën",
        "wantedpages": "Gewunste ziejen",
        "wantedpages-badtitle": "Ongeldige ziednaam in resultaot: $1",
        "pageinfo-robot-policy": "Indexering deur bots",
        "pageinfo-robot-index": "Toe-estaon",
        "pageinfo-robot-noindex": "Niet toe-estaon",
-       "pageinfo-views": "Antal keer bekeken",
        "pageinfo-watchers": "Antal ziedvolgers",
        "pageinfo-few-watchers": "Minder as {{PLURAL:$1|één volger|$1 volgers}}",
        "pageinfo-redirects-name": "t Antal deurverwiezingen naor disse zied",
index fa1a84d..19edc9e 100644 (file)
        "mergehistory-same-destination": "De Sied, vun de schaven warrt un op de schaven warrt, dröfft nich desülve wesen",
        "mergehistory-reason": "Grund:",
        "mergelog": "Tohoopföhr-Logbook",
-       "pagemerge-logentry": "[[$1]] mit [[$2]] tohoopföhrt (Versionen bet $3)",
        "revertmerge": "Tohoopbringen trüchdreihn",
        "mergelogpagetext": "Dit is dat Logbook över de tohoopföhrten Versionshistorien.",
        "history-title": "Verschoonsgeschicht vun „$1“",
        "statistics": "Statistik",
        "statistics-header-pages": "Siedenstatistik",
        "statistics-header-edits": "Änner-Statistik",
-       "statistics-header-views": "Siedenweddergaav-Statistik",
        "statistics-header-users": "Brukerstatistik",
        "statistics-header-hooks": "Annere Statistiken",
        "statistics-articles": "Inholtssieden",
        "statistics-files": "Hoochlaadt Datein",
        "statistics-edits": "Ännern, siet dat {{SITENAME}} gifft",
        "statistics-edits-average": "Dörsnittlich Ännern je Sied",
-       "statistics-views-total": "Weddergeven Sieden alltohoop",
-       "statistics-views-peredit": "Weddergeven Sieden je Ännern",
        "statistics-users": "Anmellt [[Special:ListUsers|Brukers]]",
        "statistics-users-active": "Aktive Brukers",
        "statistics-users-active-desc": "Brukers, de {{PLURAL:$1|in de vergahn 24 Stünnen|in de vergahn $1 Daag}} wat daan hebbt",
-       "statistics-mostpopular": "opmehrst ankekene Sieden",
        "pageswithprop-submit": "Los",
        "doubleredirects": "Dubbelte Wiederleiden",
        "doubleredirectstext": "<b>Wohrscho:</b> Disse List kann „falsche Positive“ bargen.\nDat passeert denn, wenn en Wiederleiden blangen de Wiederleiden-Verwies noch mehr Text mit annere Verwiesen hett.\nDe schallen denn löscht warrn. Elk Reeg wiest de eerste un tweete Wiederleiden un de eerste Reeg Text ut de Siet,\nto den vun den tweeten Wiederleiden wiest warrt, un to den de eerste Wiederleiden mehrst wiesen schall.",
        "uncategorizedtemplates": "Vörlagen ahn Kategorie",
        "unusedcategories": "Kategorien ahn insorteerte Artikels oder Ünnerkategorien",
        "unusedimages": "Weetbiller",
-       "popularpages": "Faken opropene Sieden",
        "wantedcategories": "Kategorien, de veel bruukt warrt, aver noch keen Text hebbt (nich anleggt sünd)",
        "wantedpages": "Sieden, de noch fehlt",
        "wantedpages-badtitle": "Ungülligen Titel in Resultaat: $1",
index 33d401d..b5d6908 100644 (file)
        "mergehistory-same-destination": "स्रोत र गन्तव्य पृष्ठ एउटै हुनसक्दैनन्",
        "mergehistory-reason": "कारण :",
        "mergelog": "जोडेको लग",
-       "pagemerge-logentry": "[[$1]] लाई [[$2]] मा जोडियो  ( $3 सम्म पुनरावलोकन)",
        "revertmerge": "नमिलाउने",
        "mergelogpagetext": "एउटा पृष्ठको इतिहास अर्कोमा भर्खरै मिलाइएको सूची तल दिइन्छ।",
        "history-title": "\"$1\" को पुनरावृत्ति इतिहास",
        "statistics": "तथ्यांक",
        "statistics-header-pages": "पृष्ठहरुको तथ्याङ्क",
        "statistics-header-edits": "सम्पादनहरुको तथ्याङ्क",
-       "statistics-header-views": "तथ्याङ्क देखाउनुहोस्",
        "statistics-header-users": "प्रयोगकर्ता तथ्याङ्कहरू",
        "statistics-header-hooks": "अन्य तथ्याङ्कहरु",
        "statistics-articles": "सामग्री पृष्ठहरू",
        "statistics-files": "उर्ध्वभरण गरिएका फाइलहरु",
        "statistics-edits": "{{SITENAME}} स्थापना भए देखिको पृष्ठ सम्पादन",
        "statistics-edits-average": "प्रतिपृष्ठ औसत सम्पादन",
-       "statistics-views-total": "जम्मा हेर्नुहोस्",
-       "statistics-views-peredit": "प्रति पृष्ठ सम्पादन",
        "statistics-users": "दर्तागरिएको [[Special:ListUsers|प्रयोगकर्ताहरु]]",
        "statistics-users-active": "सकृय प्रयोगकर्ताहरु",
        "statistics-users-active-desc": "प्रयोगकर्ताहरु जो{{PLURAL:$1|बितेको एक दिन|बितेका $1 दिनहरु}}देखि  जो सक्रिय छन्",
-       "statistics-mostpopular": "सबैभन्दा धेरै हेरिएको पृष्ठहरु",
        "pageswithprop-submit": "जाने",
        "doubleredirects": "दोहोरो अनुप्रेषण",
        "double-redirect-fixed-move": "[[$1]] सारिएको छ।\nयसले [[$2]] तिर अनुप्रेषित गर्दछ।",
        "uncategorizedtemplates": "श्रेणीकरण नभएका टेम्प्लेटहरु",
        "unusedcategories": "प्रयोग नभएका श्रेणीहरू",
        "unusedimages": "प्रयोग नभएका फाइलहरु",
-       "popularpages": "धेरै रूचाईएका पृष्ठहरू",
        "wantedcategories": "माग भएका श्रेणीहरू",
        "wantedpages": "खोजिएका पृष्ठहरू",
        "wantedpages-badtitle": "नतिजा सूचीमा अमान्य शीर्षक:$1",
        "pageinfo-header-restrictions": "पृष्ठ सुरक्षा",
        "pageinfo-header-properties": "पृष्ठ गुणहरू",
        "pageinfo-display-title": "प्रदर्शन शिर्षक",
-       "pageinfo-views": "अवलोकन संख्या",
        "pageinfo-watchers": "पृष्ठ निगरानी कर्ताहरुको संख्या",
        "pageinfo-edits": "कुल सम्पादन संख्या",
        "pageinfo-authors": "कुल फरक सम्पादकरूको संख्या",
index 73314c6..95b66b2 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Eukesh",
-            "आलोक"
-        ]
-    },
-    "tog-underline": "लिङ्कतेत अन्दरलाइन यानादिसँ:",
-    "tog-hideminor": "न्हुगु हिलेज्याय् चिधंगु सम्पादन सुचुकादिसँ",
-    "tog-extendwatchlist": "वाचलिस्टयात परिमार्जित याना सकल स्वेज्युगु हिलेज्या क्यनादिसँ, दकले लिपाया जक्क मखु",
-    "tog-usenewrc": "एन्ह्यान्स्ड् न्हुगु हिलेज्या (जाभास्क्रिप्ट)",
-    "tog-numberheadings": "अटो-ल्याखँ हेडिङ",
-    "tog-showtoolbar": "सम्पादन टुलबार क्यनादिसँ (जाभास्क्रिप्ट)",
-    "tog-editondblclick": "दबल क्लिकय् पौ सम्पादन यानादिसँ (जाभास्क्रिप्ट)",
-    "tog-editsectiononrightclick": "सेक्सनया छ्यँआखले राइट क्लिक याना सेक्सन सम्पादन यायेज्युगु यानादिसँ (जाभास्क्रिप्ट)",
-    "tog-rememberpassword": "जिगु लग इन थ्व कम्प्युतरय् लुमंकादिसँ (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "tog-watchcreations": "जिं देकागु / न्ह्यथनागु पौयात जिगु दृष्टिधलः(watchlist)य् तयादिसँ",
-    "tog-watchdefault": "जिं सम्पादन यानागु पौयात जिगु वाचलिस्टय् तयादिसँ",
-    "tog-watchmoves": "जिं संकागु (move) पौयात जिगु वाचलिस्टय् तयादिसँ",
-    "tog-watchdeletion": "जिं हुयागु (delete) पौयात जिगु वाचलिस्टय् तयादिसँ",
-    "tog-minordefault": "सकल सम्पादनतेत डिफल्टं चीधंगु यानादिसँ",
-    "tog-previewontop": "सम्पादन सन्दुक स्वया न्ह्यः प्रिभ्यु क्यनादिसँ",
-    "tog-previewonfirst": "न्हापाँगु सम्पादन स्वया न्ह्यः प्रिभ्यु क्यनादिसँ",
-    "tog-enotifwatchlistpages": "जिगु वाचलिस्टया पौ सम्पादन जुइबिले जितः इ-मेल यानादिसँ",
-    "tog-enotifusertalkpages": "जिगु खँल्हाबल्हा पौ सम्पादन जुइबिले जितः इ-मेल यानादिसँ",
-    "tog-enotifminoredits": "पौया चीधंगु सम्पादनया निंतिं नं जितः इ-मेल यानादिसँ",
-    "tog-enotifrevealaddr": "जिगु इ-मेल थाय्‌बाय्‌ नोटिफिकेसन इ-मेलय् क्यनादिसँ",
-    "tog-shownumberswatching": "स्वयाच्वंपिं छ्यलामितेगु ल्याखँ क्यनादिसँ",
-    "tog-fancysig": "कच्चा हस्ताक्षर (अटोम्याटिक लिङ्क मदेःकः)",
-    "tog-uselivepreview": "लाइभ प्रिभ्यु (जाभास्क्रिप्ट) इनेबल यानादिसँ (परिक्षणकाल)",
-    "tog-forceeditsummary": "सम्पादन सार खालि त्वतिबिले जित सशंकित यानादिसँ",
-    "tog-watchlisthideown": "जिगु सम्पादन वाचलिस्टय् सुचुकादिसँ",
-    "tog-watchlisthidebots": "वाचलिस्टं बोत सम्पादन सुचुकादिसँ",
-    "tog-watchlisthideminor": "वाचलिस्टं चीधंगु सम्पादन सुचुकादिसँ",
-    "tog-watchlisthideliu": "वाचलिस्टं लग्ड इन छ्यलामितेगु सम्पादन सुचुकादिसँ",
-    "tog-watchlisthideanons": "वाचलिस्टं अज्ञात छ्यलामिया सम्पादन सुचुकादिसँ",
-    "tog-ccmeonemails": "जिं मेपिं छ्यलामितेगु छ्वइगु इ-मेलतेगु कपि जित नं छ्वयादिसँ",
-    "tog-diffonly": "पाःगु (diffs) स्वया क्वेया पौया कण्टेण्ट क्यनादिमते",
-    "tog-showhiddencats": "सुचुकातगु पुचःत क्यनादिसँ",
-    "tog-noconvertlink": "लिङ्क शिर्षक हिलेज्या डिजेबल यानादिसँ",
-    "underline-always": "न्ह्याबिलें",
-    "underline-never": "नेभर",
-    "underline-default": "डिफल्ट ब्राउज यानादिसँ",
-    "sunday": "आइतबाः",
-    "monday": "सोमबाः",
-    "tuesday": "मङ्गलबाः",
-    "wednesday": "बुधबाः",
-    "thursday": "बिहिबाः",
-    "friday": "शुक्रबाः",
-    "saturday": "शनिबाः",
-    "sun": "आइत",
-    "mon": "सोम",
-    "tue": "मङ्गल",
-    "wed": "बुध",
-    "thu": "बिहि",
-    "fri": "शुक्र",
-    "sat": "शनि",
-    "january": "ज्यानुवरी",
-    "february": "फेब्रुवरी",
-    "march": "मार्च",
-    "april": "अप्रिल",
-    "may_long": "मे",
-    "june": "जुन",
-    "july": "जुलाइ",
-    "august": "अगस्ट",
-    "september": "सेप्टेम्बर",
-    "october": "अक्टोबर",
-    "november": "नोभेम्बर",
-    "december": "डिसेम्बर",
-    "january-gen": "ज्यानुवरी",
-    "february-gen": "फ्रेब्रुवरी",
-    "march-gen": "मार्च",
-    "april-gen": "अप्रिल",
-    "may-gen": "मे",
-    "june-gen": "जुन",
-    "july-gen": "जुलाइ",
-    "august-gen": "अगस्ट",
-    "september-gen": "सेप्टेम्बर",
-    "october-gen": "अक्टोबर",
-    "november-gen": "नोभेम्बर",
-    "december-gen": "डिसेम्बर",
-    "jan": "ज्यानु",
-    "feb": "फेब्",
-    "mar": "मार्",
-    "apr": "अप्रि",
-    "may": "मे",
-    "jun": "जुन",
-    "jul": "जुल",
-    "aug": "अग",
-    "sep": "सेप्",
-    "oct": "अक्ट्",
-    "nov": "नोभ",
-    "dec": "डिस",
-    "pagecategories": "{{PLURAL:$1|पुचः|पुचःतः}}",
-    "category_header": "पुचः \"$1\"य् दुगु पौतः",
-    "subcategories": "उपपुचःतः",
-    "category-media-header": "पुचः \"$1\"य् दुगु मिडिया",
-    "category-empty": "''थ्व पुचले आःईले पौ वा मिदिया मदु।''",
-    "hidden-categories": "{{PLURAL:$1|गुप्त पुचः|गुप्त पुचःतः}}",
-    "hidden-category-category": "गुप्त पुचःतः",
-    "category-subcat-count": "{{PLURAL:$2|थ्व पुचले बियातःगु उपपुचः जक्क दु।|थ्व पुचले $2 सकलय् बियातःगु {{PLURAL:$1|उपपुचः|$1 उपपुचःतः}} दु।}}",
-    "category-subcat-count-limited": "थ्व पुचले बियातःगु {{PLURAL:$1|उपपुचः|$1 उपपुचःत}} दु।",
-    "category-article-count": "{{PLURAL:$2|थ्व पुचले क्वे बियातःगु पौ दु।|$2 सकलय् थ्व बियातःगु {{PLURAL:$1|पौ|$1 पौस}} थ्व पुचले दु।}}",
-    "category-article-count-limited": "थ्व बियातःगु {{PLURAL:$1|पौ|$1 पौस}} थ्व पुचले दु।",
-    "category-file-count": "{{PLURAL:$2|थ्व पुचले थ्व जक्क फाइल दु।|सकल $2य् क्वे बियातःगु {{PLURAL:$1|फाइल|$1 फाइलत}} थ्व पुचले दु।}}",
-    "about": "विषयक",
-    "article": "कण्टेण्ट पौ",
-    "moredotdotdot": "अप्व॰॰॰",
-    "mypage": "जिगु पौ",
-    "mytalk": "जिगु खं",
-    "anontalk": "थ्व IPया निंतिं खँल्हाबल्हा",
-    "navigation": "परिवहन",
-    "and": "&#32;व",
-    "qbfind": "मालादिसँ",
-    "qbedit": "सम्पादन",
-    "qbpageoptions": "थ्व पौ",
-    "qbmyoptions": "जिगु पौ",
-    "faq": "आपालं न्यनिगु न्ह्यसः (FAQ)",
-    "faqpage": "Project:आपालं न्यनिगु न्ह्यसःत (FAQ)",
-    "vector-action-move": "संकादिसँ",
-    "vector-view-create": "दयेकादिसँ",
-    "vector-view-edit": "सम्पादन",
-    "vector-view-history": "इतिहास स्वयादिसँ",
-    "vector-view-view": "ब्वनादिसँ",
-    "returnto": "$1य् लिहाँझासँ।",
-    "tagline": "{{SITENAME}}नं",
-    "help": "ग्वहालि",
-    "search": "मालादिसँ",
-    "searchbutton": "मालादिसँ",
-    "go": "झासँ",
-    "searcharticle": "झासँ",
-    "history": "पौया इतिहास",
-    "history_short": "इतिहास",
-    "updatedmarker": "जिं दक्ले लिपा पौ स्वे धुंकाया अपडेट",
-    "printableversion": "ध्वायेज्युगु संस्करण",
-    "permalink": "स्थायी लिङ्क",
-    "print": "ध्वानादिसँ",
-    "view": "क्यनादिसँ",
-    "edit": "सम्पादन",
-    "create": "दयेकादिसँ",
-    "editthispage": "थ्व पौ सम्पादन यानादिसं",
-    "create-this-page": "थ्व पौ दयेकादिसँ",
-    "delete": "हुयादिसँ (दिलित)",
-    "deletethispage": "थ्व पौ हुयादिसँ (दिलित)",
-    "newpage": "न्हुगु पौ",
-    "talkpagelinktext": "खँल्हाबँल्हा",
-    "specialpage": "विषेश पौ",
-    "personaltools": "निजी ज्याब्व",
-    "talk": "खँलाबँला",
-    "toolbox": "ज्याब्व सन्दुक",
-    "projectpage": "ज्याखँ पौ क्येनादिसँ",
-    "otherlanguages": "मेमेगु भाषाय्",
-    "jumpto": "थन झासँ:",
-    "jumptosearch": "मालादिसँ",
-    "pool-errorunknown": "मस्युगु इरर",
-    "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": "दुबिस्ता नियम",
-    "privacypage": "Project:गुप्तता नियम",
-    "badaccess": "पर्मिसन इरर",
-    "badaccess-group0": "छिं अनुरोध यानादिगु ज्या छिं याये मछिं।",
-    "badaccess-groups": "छिं अनुरोध यानादिगु ज्या {{PLURAL:$2|पुचः|पुचःतः}}: $1या छ्यलामिं जक्क याये दु।",
-    "versionrequired": "मिडियाविकिया $1 संस्करण माःगु",
-    "versionrequiredtext": "थ्व पौ छ्यले यात मिडियाविकिया $1 संस्करण माः।\nस्वयादिसँ [[विशेष:संस्करण|संस्करण पौ]]।",
-    "ok": "ज्यु",
-    "youhavenewmessagesmulti": "$1य् छित न्हुगु सन्देश वगु दु",
-    "editsection": "सम्पादन",
-    "editold": "सम्पादन",
-    "editlink": "सम्पादन",
-    "editsectionhint": "खण्ड सम्पादन: $1",
-    "showtoc": "क्यनादिसँ",
-    "hidetoc": "सुचुकादिसँ",
-    "collapsible-expand": "चायेकादिसँ",
-    "red-link-title": "$1 (पौ मदु)",
-    "nstab-main": "पौ",
-    "nstab-user": "छ्य्‌लामि पौ",
-    "nstab-media": "मिडिया पौ",
-    "nstab-special": "विशेष",
-    "nstab-project": "ज्याझ्वः पौ",
-    "nstab-image": "फाइल",
-    "nstab-mediawiki": "सन्देश",
-    "nstab-template": "टेम्प्लेट",
-    "nstab-help": "ग्वहालि पौ",
-    "nstab-category": "पुचः",
-    "nosuchaction": "थन्यागु ज्या मदु",
-    "nosuchactiontext": "URLनं या धाःगु ज्या विकिं मस्यु",
-    "nosuchspecialpage": "थन्यागु विशेष पौ मदु",
-    "nospecialpagetext": "<strong>छिं मदुगु विशेष पौया माग तयादिल।</strong>\n\nअस्थित्वय् दुगु विशेष पौया धलः [[विशेष:विशेषपौ|{{int:specialpages}}]]य् दु।",
-    "databaseerror": "डेटाबेस इरर",
-    "laggedslavemode": "चेतावनी: पतिइ न्हुगु अपदेत मदेफु ।",
-    "readonly": "देताबेस संरक्षित",
-    "enterlockreason": "पौ कुनातयेगुया निंतिं कारण बियादिसँ, नापं पौ गब्ले चायेकिगु जुइफु उकिया अनुमान नं बियादिसँ",
-    "readonlytext": "थ्व डेटाबेस आःया ईले, सम्भवतः नियमित डेटाबेस मेन्टेनेन्सया निंतिं, न्हूगु एन्ट्रि व मेमेगु हिलेज्याया यायेमछिंकः कुनातःगु दु। थ्व धुंका हानं डेटाबेस साधारण जुइ।\n\nथ्व डेटाबेस कुनाःतम्ह प्रबन्धकं थ्व वर्णन ब्यूगु दु: $1",
-    "internalerror": "इन्तरनल इरर",
-    "viewsource": "स्रोत स्वयादिसँ",
-    "welcomeuser": "लसकुस, $1जु!",
-    "yourname": "छ्य्‌लामि नां:",
-    "yourpassword": "दुथखँग्वः (पासवर्द):",
-    "yourpasswordagain": "दुथखँग्वः हानं तियादिसँ:",
-    "yourdomainname": "छिगु दोमेन:",
-    "login": "दुहां वनेगु",
-    "nav-login-createaccount": "दुहां वनेगु / खाता चायेकिगु",
-    "userlogin": "दुहां वनेगु / खाता चायेकिगु",
-    "logout": "पिने झासँ",
-    "userlogout": "पिने झासँ",
-    "nologinlink": "खाता न्ह्यथनादिसँ",
-    "createaccount": "खाता चायेकादिसँ",
-    "gotaccountlink": "दुहां झासँ",
-    "badretype": "छिं तियादिगु पासवर्द पाय्‌छि मजु।",
-    "loginsuccesstitle": "लग इन सफल जुल",
-    "emaildisabled": "थ्व फाइलं इमेल छ्वयेमफु।",
-    "accountcreated": "खाता न्ह्येथन",
-    "accountcreatedtext": "$1या निंतिं छ्य्‌लामि खाता चायेकूगु दु।",
-    "loginlanguagelabel": "भाषा: $1",
-    "changepassword": "पासवर्द हिलादिसँ",
-    "changeemail-submit": "इ-मेल हिलादिसँ",
-    "changeemail-cancel": "खारेज",
-    "bold_sample": "गाढा आखः",
-    "bold_tip": "गाढा आखः",
-    "italic_sample": "बेक्वःगु आखः",
-    "italic_tip": "बेक्वःगु आखः",
-    "link_tip": "आन्तरिक लिंक",
-    "summary": "सारांश:",
-    "minoredit": "थ्व चिधंगु सम्पादन ख",
-    "watchthis": "थ्व पौ स्वयादिसँ",
-    "savearticle": "पौ स्वथनादिसँ",
-    "preview": "न्हेकिपा",
-    "showpreview": "न्हेकिपा क्यनादिसँ",
-    "showlivepreview": "जुथें (लाइभ) न्हेकिपा",
-    "showdiff": "हिसुझ्वः क्यनादिसँ",
-    "anoneditwarning": "'''न्ह्यःखँ:''' छि लग्द इन मदु। \nछिगु IP address पौया सम्पादन इतिहासय् स्वथनिगु जुइ।",
-    "anonpreviewwarning": "''छि लग्द इन मदु। थ्व पौ स्वथनादिल धाःसा छिगु IP address थ्व पौया इतिहासय् स्वथनिगु जुइ।''",
-    "loginreqtitle": "लग इन माःगु",
-    "loginreqpagetext": "मेमेगु पौ स्वयेत छिं $1 यायेमा/जुइमा।",
-    "accmailtitle": "पासवर्द छ्वल।",
-    "newarticle": "(न्हु)",
-    "note": "'''होस यानादिसँ:'''",
-    "previewnote": "'''थ्व पूर्वालोकन जक्क ख। छिं यानादिगु सम्पादन स्वथंगु मदुनि!'''",
-    "editing": "$1 सम्पादन जुयाच्वँगु दु",
-    "editconflict": "सम्पादन द्वंगु दु: $1",
-    "yourtext": "छिगु आखः",
-    "storedversion": "स्वथनातगु संस्करण",
-    "content-model-text": "सादा आखः",
-    "revisionasof": "$1 तक्कया संस्करण",
-    "previousrevision": "←पुलांगु संस्करण",
-    "searchprofile-everything": "दक्वं",
-    "search-result-size": "$1 ({{PLURAL:$2|1 खँग्वः |$2 खँग्वःत}})",
-    "searchrelated": "स्वापू दुःगु",
-    "searchall": "सकल",
-    "mypreferences": "जिगु प्राथमिकता",
-    "prefs-skin": "भुँसा",
-    "prefs-datetime": "दिं व ई",
-    "prefs-personal": "छ्य्‌लामि प्रोफाइल",
-    "prefs-rc": "न्हुगु हिलेज्या",
-    "saveprefs": "स्वथनादिसँ",
-    "youremail": "इ-मेल:",
-    "username": "छ्य्‌लामि नां:",
-    "yourrealname": "वास्तविक नां:",
-    "yourlanguage": "भाषा:",
-    "gender-male": "मिजं",
-    "gender-female": "मिसा",
-    "email": "इ-मेल",
-    "userrights-user-editname": "छपू छ्य्‌लामि नां तयादिसँ:",
-    "group": "पुचः",
-    "group-user": "छ्य्‌लामित",
-    "group-bot": "बोत",
-    "recentchanges": "नकतिनिया हिसुझ्वः",
-    "show": "क्यनादिसँ",
-    "upload": "फाइल अपलोद यानादिसँ",
-    "file-anchor-link": "फाइल",
-    "filehist-user": "छ्य्‌लामि",
-    "randompage": "छगु च्वसुइ येंकादिसं",
-    "statistics": "तथ्याङ्क",
-    "withoutinterwiki-submit": "क्यनादिसँ",
-    "newpages-username": "छ्येलेमि नां:",
-    "allpages": "सकल पौत",
-    "nextpage": "मेगु पौ ($1)",
-    "allarticles": "सकल च्वसुत",
-    "allpagessubmit": "झासँ",
-    "categories": "पुचःत",
-    "emailusername": "छ्य्‌लामि नां (युजर नेम) :",
-    "restriction-edit": "सम्पादन",
-    "namespace": "नेमस्पेस:",
-    "blanknamespace": "(मू)",
-    "mycontris": "जिगु योगदान",
-    "sp-contributions-talk": "खँल्हाबँल्हा",
-    "whatlinkshere": "थन छु स्वाई",
-    "contribslink": "योगदान",
-    "movereason": "कारण:",
-    "tooltip-search": "{{SITENAME}} मालादिसं",
-    "tooltip-search-fulltext": "थ्व खँग्वःया निंतिं पौस मालादिसं",
-    "tooltip-p-logo": "मू पौय् झासँ",
-    "tooltip-n-mainpage": "मू पौ भ्रमण यानादिसँ",
-    "tooltip-n-portal": "ज्याझ्वःया बारेय्, छिं छु यायेछिं, गन खँ सीकिगु",
-    "tooltip-n-currentevents": "जुयाच्वँगु घटनाया लिधँसा तथ्य मालादिसँ",
-    "tooltip-n-recentchanges": "थ्व विकिया न्हुगु हिलेज्याया धलः।",
-    "tooltip-n-randompage": "न्ह्याःगु छगू पौ क्यनादिसँ",
-    "tooltip-n-help": "खँ सीकिगु थाय्।",
-    "tooltip-t-whatlinkshere": "थन स्वाइगु सकल विकिपौया धलः",
-    "tooltip-t-recentchangeslinked": "थ्व पौ नाप स्वाःगु पौतेगु न्हुगु हिलेज्या",
-    "tooltip-feed-rss": "थ्व पौया RSS फीड",
-    "tooltip-feed-atom": "थ्व पौया Atom फीड",
-    "tooltip-t-contributions": "थ्व छ्य्‌लामिया योगदानया धलः क्यनादिसँ",
-    "tooltip-t-emailuser": "थ्व छ्य्‌लामियात इ-मेल छ्वयादिसँ",
-    "tooltip-t-upload": "फाइल अपलोद यानादिसँ",
-    "tooltip-t-specialpages": "सकल विशेष पौस धलः",
-    "tooltip-t-print": "थ्व पौस ध्वायेज्युगु संस्करण",
-    "tooltip-t-permalink": "थ्व पौस थ्व संस्करणया पर्मानेन्ट लिङ्क",
-    "tooltip-ca-nstab-main": "कन्टेन्ट पौ स्वयादिसँ",
-    "tooltip-ca-nstab-user": "छ्य्‌लामिपौ स्वयादिसँ",
-    "tooltip-ca-nstab-media": "मिडिया पौ स्वयादिसँ",
-    "tooltip-ca-nstab-special": "थ्व छगू विशेष पौ ख ; थ्व पौयात छिं सम्पादन याये मछिं।",
-    "tooltip-ca-nstab-project": "ज्याझ्वः पौ स्वयादिसँ",
-    "tooltip-ca-nstab-image": "फाइल पौ स्वयादिसँ",
-    "tooltip-ca-nstab-mediawiki": "व्यवस्थापन सन्देश स्वयादिसँ",
-    "tooltip-ca-nstab-template": "टेम्प्लेट स्वयादिसँ",
-    "tooltip-ca-nstab-help": "ग्वहालि पौ स्वयादिसँ",
-    "tooltip-ca-nstab-category": "पुचः पौ स्वयादिसँ",
-    "tooltip-minoredit": "थ्व छगू चिधंगु सम्पादन ख",
-    "tooltip-save": "छिगु परिवर्तन स्वथनादिसँ",
-    "tooltip-preview": "छिगु परिवर्तन पुर्वालोकन यानादिसँ, कृपया स्वथने न्ह्यः थ्व छ्य्‌लादिसँ!",
-    "tooltip-diff": "छिं पतीइ यानादिगु हिलेज्या क्यनादिसँ।",
-    "tooltip-compareselectedversions": "निगु ल्ययातःगु संस्करणया दथुइ भिन्नता स्वयादिसँ।",
-    "tooltip-watch": "थ्व पौयात छिगु वाचलिस्टय् तनादिसँ",
-    "tooltip-recreate": "थ्व पौ हुयाछ्वेधुंकुगु जुसां पुनर्निर्माण यानादिसँ",
-    "tooltip-upload": "अपलोड न्ह्यथनादिसँ",
-    "tooltip-rollback": "\"रोलब्याकं\" छगू क्लिकय् थ्व पौयात न्हापाया छ्य्‌लामिं याःगु परिवर्तनय् हिलाछ्वइ।",
-    "tooltip-undo": "\"Undo\" नं थ्व सम्पादनयात खारेज याना सम्पादन फर्म यात प्रिभ्यु मोडय् चायेकी।\nथुकिलिं सारांशय् कारण तनेछिंकी।",
-    "common.css": "/* थन तःगु CSS सकल स्किनय् छ्य्‌लिगु जुइ */",
-    "cologneblue.css": "/* थन तःगु CSS नं कोलोन ब्लु स्किनया छ्य्‌लामितेत असर याइ */",
-    "monobook.css": "/* थन तःगु CSS नं मोनोबुक स्किनया छ्य्‌लामितेत असर याइ */",
-    "modern.css": "/* थन तःगु CSS नं मोडर्न स्किनया छ्य्‌लामितेत असर याइ */",
-    "print.css": "/* थन तःगु CSS नं प्रिन्ट आउटपुटयात असर याइ */",
-    "others": "मेमेगु",
-    "exif-imagewidth": "ब्याः",
-    "exif-imagelength": "जाः",
-    "exif-imagedescription": "किपाया नां",
-    "exif-make": "किपासाः दयेकामि",
-    "exif-model": "किपासाः मोदेल",
-    "exif-software": "छ्यलातःगु सफ्तवेयर",
-    "exif-artist": "च्वमि",
-    "exif-copyright": "लेखाधिकार थुवा",
-    "exif-pixelydimension": "किपा ब्याः",
-    "exif-pixelxdimension": "किपा जाः",
-    "exif-dc-date": "तिथि",
-    "namespacesall": "सकल",
-    "autosumm-new": "न्हुगु पौ: $1",
-    "specialpages": "विषेश पौत:"
+       "@metadata": {
+               "authors": [
+                       "Eukesh",
+                       "आलोक"
+               ]
+       },
+       "tog-underline": "लिङ्कतेत अन्दरलाइन यानादिसँ:",
+       "tog-hideminor": "न्हुगु हिलेज्याय् चिधंगु सम्पादन सुचुकादिसँ",
+       "tog-extendwatchlist": "वाचलिस्टयात परिमार्जित याना सकल स्वेज्युगु हिलेज्या क्यनादिसँ, दकले लिपाया जक्क मखु",
+       "tog-usenewrc": "एन्ह्यान्स्ड् न्हुगु हिलेज्या (जाभास्क्रिप्ट)",
+       "tog-numberheadings": "अटो-ल्याखँ हेडिङ",
+       "tog-showtoolbar": "सम्पादन टुलबार क्यनादिसँ (जाभास्क्रिप्ट)",
+       "tog-editondblclick": "दबल क्लिकय् पौ सम्पादन यानादिसँ (जाभास्क्रिप्ट)",
+       "tog-editsectiononrightclick": "सेक्सनया छ्यँआखले राइट क्लिक याना सेक्सन सम्पादन यायेज्युगु यानादिसँ (जाभास्क्रिप्ट)",
+       "tog-watchcreations": "जिं देकागु / न्ह्यथनागु पौयात जिगु दृष्टिधलः(watchlist)य् तयादिसँ",
+       "tog-watchdefault": "जिं सम्पादन यानागु पौयात जिगु वाचलिस्टय् तयादिसँ",
+       "tog-watchmoves": "जिं संकागु (move) पौयात जिगु वाचलिस्टय् तयादिसँ",
+       "tog-watchdeletion": "जिं हुयागु (delete) पौयात जिगु वाचलिस्टय् तयादिसँ",
+       "tog-minordefault": "सकल सम्पादनतेत डिफल्टं चीधंगु यानादिसँ",
+       "tog-previewontop": "सम्पादन सन्दुक स्वया न्ह्यः प्रिभ्यु क्यनादिसँ",
+       "tog-previewonfirst": "न्हापाँगु सम्पादन स्वया न्ह्यः प्रिभ्यु क्यनादिसँ",
+       "tog-enotifwatchlistpages": "जिगु वाचलिस्टया पौ सम्पादन जुइबिले जितः इ-मेल यानादिसँ",
+       "tog-enotifusertalkpages": "जिगु खँल्हाबल्हा पौ सम्पादन जुइबिले जितः इ-मेल यानादिसँ",
+       "tog-enotifminoredits": "पौया चीधंगु सम्पादनया निंतिं नं जितः इ-मेल यानादिसँ",
+       "tog-enotifrevealaddr": "जिगु इ-मेल थाय्‌बाय्‌ नोटिफिकेसन इ-मेलय् क्यनादिसँ",
+       "tog-shownumberswatching": "स्वयाच्वंपिं छ्यलामितेगु ल्याखँ क्यनादिसँ",
+       "tog-fancysig": "कच्चा हस्ताक्षर (अटोम्याटिक लिङ्क मदेःकः)",
+       "tog-uselivepreview": "लाइभ प्रिभ्यु (जाभास्क्रिप्ट) इनेबल यानादिसँ (परिक्षणकाल)",
+       "tog-forceeditsummary": "सम्पादन सार खालि त्वतिबिले जित सशंकित यानादिसँ",
+       "tog-watchlisthideown": "जिगु सम्पादन वाचलिस्टय् सुचुकादिसँ",
+       "tog-watchlisthidebots": "वाचलिस्टं बोत सम्पादन सुचुकादिसँ",
+       "tog-watchlisthideminor": "वाचलिस्टं चीधंगु सम्पादन सुचुकादिसँ",
+       "tog-watchlisthideliu": "वाचलिस्टं लग्ड इन छ्यलामितेगु सम्पादन सुचुकादिसँ",
+       "tog-watchlisthideanons": "वाचलिस्टं अज्ञात छ्यलामिया सम्पादन सुचुकादिसँ",
+       "tog-ccmeonemails": "जिं मेपिं छ्यलामितेगु छ्वइगु इ-मेलतेगु कपि जित नं छ्वयादिसँ",
+       "tog-diffonly": "पाःगु (diffs) स्वया क्वेया पौया कण्टेण्ट क्यनादिमते",
+       "tog-showhiddencats": "सुचुकातगु पुचःत क्यनादिसँ",
+       "underline-always": "न्ह्याबिलें",
+       "underline-never": "नेभर",
+       "underline-default": "डिफल्ट ब्राउज यानादिसँ",
+       "sunday": "आइतबाः",
+       "monday": "सोमबाः",
+       "tuesday": "मङ्गलबाः",
+       "wednesday": "बुधबाः",
+       "thursday": "बिहिबाः",
+       "friday": "शुक्रबाः",
+       "saturday": "शनिबाः",
+       "sun": "आइत",
+       "mon": "सोम",
+       "tue": "मङ्गल",
+       "wed": "बुध",
+       "thu": "बिहि",
+       "fri": "शुक्र",
+       "sat": "शनि",
+       "january": "ज्यानुवरी",
+       "february": "फेब्रुवरी",
+       "march": "मार्च",
+       "april": "अप्रिल",
+       "may_long": "मे",
+       "june": "जुन",
+       "july": "जुलाइ",
+       "august": "अगस्ट",
+       "september": "सेप्टेम्बर",
+       "october": "अक्टोबर",
+       "november": "नोभेम्बर",
+       "december": "डिसेम्बर",
+       "january-gen": "ज्यानुवरी",
+       "february-gen": "फ्रेब्रुवरी",
+       "march-gen": "मार्च",
+       "april-gen": "अप्रिल",
+       "may-gen": "मे",
+       "june-gen": "जुन",
+       "july-gen": "जुलाइ",
+       "august-gen": "अगस्ट",
+       "september-gen": "सेप्टेम्बर",
+       "october-gen": "अक्टोबर",
+       "november-gen": "नोभेम्बर",
+       "december-gen": "डिसेम्बर",
+       "jan": "ज्यानु",
+       "feb": "फेब्",
+       "mar": "मार्",
+       "apr": "अप्रि",
+       "may": "मे",
+       "jun": "जुन",
+       "jul": "जुल",
+       "aug": "अग",
+       "sep": "सेप्",
+       "oct": "अक्ट्",
+       "nov": "नोभ",
+       "dec": "डिस",
+       "pagecategories": "{{PLURAL:$1|पुचः|पुचःतः}}",
+       "category_header": "पुचः \"$1\"य् दुगु पौतः",
+       "subcategories": "उपपुचःतः",
+       "category-media-header": "पुचः \"$1\"य् दुगु मिडिया",
+       "category-empty": "''थ्व पुचले आःईले पौ वा मिदिया मदु।''",
+       "hidden-categories": "{{PLURAL:$1|गुप्त पुचः|गुप्त पुचःतः}}",
+       "hidden-category-category": "गुप्त पुचःतः",
+       "category-subcat-count": "{{PLURAL:$2|थ्व पुचले बियातःगु उपपुचः जक्क दु।|थ्व पुचले $2 सकलय् बियातःगु {{PLURAL:$1|उपपुचः|$1 उपपुचःतः}} दु।}}",
+       "category-subcat-count-limited": "थ्व पुचले बियातःगु {{PLURAL:$1|उपपुचः|$1 उपपुचःत}} दु।",
+       "category-article-count": "{{PLURAL:$2|थ्व पुचले क्वे बियातःगु पौ दु।|$2 सकलय् थ्व बियातःगु {{PLURAL:$1|पौ|$1 पौस}} थ्व पुचले दु।}}",
+       "category-article-count-limited": "थ्व बियातःगु {{PLURAL:$1|पौ|$1 पौस}} थ्व पुचले दु।",
+       "category-file-count": "{{PLURAL:$2|थ्व पुचले थ्व जक्क फाइल दु।|सकल $2य् क्वे बियातःगु {{PLURAL:$1|फाइल|$1 फाइलत}} थ्व पुचले दु।}}",
+       "about": "विषयक",
+       "article": "कण्टेण्ट पौ",
+       "moredotdotdot": "अप्व॰॰॰",
+       "mypage": "जिगु पौ",
+       "mytalk": "जिगु खं",
+       "anontalk": "थ्व IPया निंतिं खँल्हाबल्हा",
+       "navigation": "परिवहन",
+       "and": "&#32;व",
+       "qbfind": "मालादिसँ",
+       "qbedit": "सम्पादन",
+       "qbpageoptions": "थ्व पौ",
+       "qbmyoptions": "जिगु पौ",
+       "faq": "आपालं न्यनिगु न्ह्यसः (FAQ)",
+       "faqpage": "Project:आपालं न्यनिगु न्ह्यसःत (FAQ)",
+       "returnto": "$1य् लिहाँझासँ।",
+       "tagline": "{{SITENAME}}नं",
+       "help": "ग्वहालि",
+       "search": "मालादिसँ",
+       "searchbutton": "मालादिसँ",
+       "go": "झासँ",
+       "searcharticle": "झासँ",
+       "history": "पौया इतिहास",
+       "history_short": "इतिहास",
+       "updatedmarker": "जिं दक्ले लिपा पौ स्वे धुंकाया अपडेट",
+       "printableversion": "ध्वायेज्युगु संस्करण",
+       "permalink": "स्थायी लिङ्क",
+       "print": "ध्वानादिसँ",
+       "view": "क्यनादिसँ",
+       "edit": "सम्पादन",
+       "create": "दयेकादिसँ",
+       "editthispage": "थ्व पौ सम्पादन यानादिसं",
+       "create-this-page": "थ्व पौ दयेकादिसँ",
+       "delete": "हुयादिसँ (दिलित)",
+       "deletethispage": "थ्व पौ हुयादिसँ (दिलित)",
+       "newpage": "न्हुगु पौ",
+       "talkpagelinktext": "खँल्हाबँल्हा",
+       "specialpage": "विषेश पौ",
+       "personaltools": "निजी ज्याब्व",
+       "talk": "खँलाबँला",
+       "toolbox": "ज्याब्व सन्दुक",
+       "projectpage": "ज्याखँ पौ क्येनादिसँ",
+       "otherlanguages": "मेमेगु भाषाय्",
+       "jumpto": "थन झासँ:",
+       "jumptosearch": "मालादिसँ",
+       "pool-errorunknown": "मस्युगु इरर",
+       "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": "दुबिस्ता नियम",
+       "privacypage": "Project:गुप्तता नियम",
+       "badaccess": "पर्मिसन इरर",
+       "badaccess-group0": "छिं अनुरोध यानादिगु ज्या छिं याये मछिं।",
+       "badaccess-groups": "छिं अनुरोध यानादिगु ज्या {{PLURAL:$2|पुचः|पुचःतः}}: $1या छ्यलामिं जक्क याये दु।",
+       "versionrequired": "मिडियाविकिया $1 संस्करण माःगु",
+       "versionrequiredtext": "थ्व पौ छ्यले यात मिडियाविकिया $1 संस्करण माः।\nस्वयादिसँ [[विशेष:संस्करण|संस्करण पौ]]।",
+       "ok": "ज्यु",
+       "youhavenewmessagesmulti": "$1य् छित न्हुगु सन्देश वगु दु",
+       "editsection": "सम्पादन",
+       "editold": "सम्पादन",
+       "editlink": "सम्पादन",
+       "editsectionhint": "खण्ड सम्पादन: $1",
+       "showtoc": "क्यनादिसँ",
+       "hidetoc": "सुचुकादिसँ",
+       "collapsible-expand": "चायेकादिसँ",
+       "red-link-title": "$1 (पौ मदु)",
+       "nstab-main": "पौ",
+       "nstab-user": "छ्य्‌लामि पौ",
+       "nstab-media": "मिडिया पौ",
+       "nstab-special": "विशेष",
+       "nstab-project": "ज्याझ्वः पौ",
+       "nstab-image": "फाइल",
+       "nstab-mediawiki": "सन्देश",
+       "nstab-template": "टेम्प्लेट",
+       "nstab-help": "ग्वहालि पौ",
+       "nstab-category": "पुचः",
+       "nosuchaction": "थन्यागु ज्या मदु",
+       "nosuchactiontext": "URLनं या धाःगु ज्या विकिं मस्यु",
+       "nosuchspecialpage": "थन्यागु विशेष पौ मदु",
+       "nospecialpagetext": "<strong>छिं मदुगु विशेष पौया माग तयादिल।</strong>\n\nअस्थित्वय् दुगु विशेष पौया धलः [[विशेष:विशेषपौ|{{int:specialpages}}]]य् दु।",
+       "databaseerror": "डेटाबेस इरर",
+       "laggedslavemode": "चेतावनी: पतिइ न्हुगु अपदेत मदेफु ।",
+       "readonly": "देताबेस संरक्षित",
+       "enterlockreason": "पौ कुनातयेगुया निंतिं कारण बियादिसँ, नापं पौ गब्ले चायेकिगु जुइफु उकिया अनुमान नं बियादिसँ",
+       "readonlytext": "थ्व डेटाबेस आःया ईले, सम्भवतः नियमित डेटाबेस मेन्टेनेन्सया निंतिं, न्हूगु एन्ट्रि व मेमेगु हिलेज्याया यायेमछिंकः कुनातःगु दु। थ्व धुंका हानं डेटाबेस साधारण जुइ।\n\nथ्व डेटाबेस कुनाःतम्ह प्रबन्धकं थ्व वर्णन ब्यूगु दु: $1",
+       "internalerror": "इन्तरनल इरर",
+       "viewsource": "स्रोत स्वयादिसँ",
+       "welcomeuser": "लसकुस, $1जु!",
+       "yourname": "छ्य्‌लामि नां:",
+       "yourpassword": "दुथखँग्वः (पासवर्द):",
+       "yourpasswordagain": "दुथखँग्वः हानं तियादिसँ:",
+       "yourdomainname": "छिगु दोमेन:",
+       "login": "दुहां वनेगु",
+       "nav-login-createaccount": "दुहां वनेगु / खाता चायेकिगु",
+       "userlogin": "दुहां वनेगु / खाता चायेकिगु",
+       "logout": "पिने झासँ",
+       "userlogout": "पिने झासँ",
+       "nologinlink": "खाता न्ह्यथनादिसँ",
+       "createaccount": "खाता चायेकादिसँ",
+       "gotaccountlink": "दुहां झासँ",
+       "badretype": "छिं तियादिगु पासवर्द पाय्‌छि मजु।",
+       "loginsuccesstitle": "लग इन सफल जुल",
+       "emaildisabled": "थ्व फाइलं इमेल छ्वयेमफु।",
+       "accountcreated": "खाता न्ह्येथन",
+       "accountcreatedtext": "$1या निंतिं छ्य्‌लामि खाता चायेकूगु दु।",
+       "loginlanguagelabel": "भाषा: $1",
+       "changepassword": "पासवर्द हिलादिसँ",
+       "changeemail-submit": "इ-मेल हिलादिसँ",
+       "bold_sample": "गाढा आखः",
+       "bold_tip": "गाढा आखः",
+       "italic_sample": "बेक्वःगु आखः",
+       "italic_tip": "बेक्वःगु आखः",
+       "link_tip": "आन्तरिक लिंक",
+       "summary": "सारांश:",
+       "minoredit": "थ्व चिधंगु सम्पादन ख",
+       "watchthis": "थ्व पौ स्वयादिसँ",
+       "savearticle": "पौ स्वथनादिसँ",
+       "preview": "न्हेकिपा",
+       "showpreview": "न्हेकिपा क्यनादिसँ",
+       "showdiff": "हिसुझ्वः क्यनादिसँ",
+       "anoneditwarning": "'''न्ह्यःखँ:''' छि लग्द इन मदु। \nछिगु IP address पौया सम्पादन इतिहासय् स्वथनिगु जुइ।",
+       "anonpreviewwarning": "''छि लग्द इन मदु। थ्व पौ स्वथनादिल धाःसा छिगु IP address थ्व पौया इतिहासय् स्वथनिगु जुइ।''",
+       "loginreqtitle": "लग इन माःगु",
+       "loginreqpagetext": "मेमेगु पौ स्वयेत छिं $1 यायेमा/जुइमा।",
+       "accmailtitle": "पासवर्द छ्वल।",
+       "newarticle": "(न्हु)",
+       "note": "'''होस यानादिसँ:'''",
+       "previewnote": "'''थ्व पूर्वालोकन जक्क ख। छिं यानादिगु सम्पादन स्वथंगु मदुनि!'''",
+       "editing": "$1 सम्पादन जुयाच्वँगु दु",
+       "editconflict": "सम्पादन द्वंगु दु: $1",
+       "yourtext": "छिगु आखः",
+       "storedversion": "स्वथनातगु संस्करण",
+       "content-model-text": "सादा आखः",
+       "revisionasof": "$1 तक्कया संस्करण",
+       "previousrevision": "←पुलांगु संस्करण",
+       "searchprofile-everything": "दक्वं",
+       "search-result-size": "$1 ({{PLURAL:$2|1 खँग्वः |$2 खँग्वःत}})",
+       "searchrelated": "स्वापू दुःगु",
+       "searchall": "सकल",
+       "mypreferences": "जिगु प्राथमिकता",
+       "prefs-skin": "भुँसा",
+       "prefs-personal": "छ्य्‌लामि प्रोफाइल",
+       "prefs-rc": "न्हुगु हिलेज्या",
+       "saveprefs": "स्वथनादिसँ",
+       "youremail": "इ-मेल:",
+       "username": "छ्य्‌लामि नां:",
+       "yourrealname": "वास्तविक नां:",
+       "yourlanguage": "भाषा:",
+       "gender-male": "मिजं",
+       "gender-female": "मिसा",
+       "email": "इ-मेल",
+       "userrights-user-editname": "छपू छ्य्‌लामि नां तयादिसँ:",
+       "group": "पुचः",
+       "group-user": "छ्य्‌लामित",
+       "group-bot": "बोत",
+       "recentchanges": "नकतिनिया हिसुझ्वः",
+       "show": "क्यनादिसँ",
+       "upload": "फाइल अपलोद यानादिसँ",
+       "file-anchor-link": "फाइल",
+       "filehist-user": "छ्य्‌लामि",
+       "randompage": "छगु च्वसुइ येंकादिसं",
+       "statistics": "तथ्याङ्क",
+       "withoutinterwiki-submit": "क्यनादिसँ",
+       "newpages-username": "छ्येलेमि नां:",
+       "allpages": "सकल पौत",
+       "nextpage": "मेगु पौ ($1)",
+       "allarticles": "सकल च्वसुत",
+       "allpagessubmit": "झासँ",
+       "categories": "पुचःत",
+       "emailusername": "छ्य्‌लामि नां (युजर नेम) :",
+       "restriction-edit": "सम्पादन",
+       "namespace": "नेमस्पेस:",
+       "blanknamespace": "(मू)",
+       "mycontris": "जिगु योगदान",
+       "sp-contributions-talk": "खँल्हाबँल्हा",
+       "whatlinkshere": "थन छु स्वाई",
+       "contribslink": "योगदान",
+       "movereason": "कारण:",
+       "tooltip-search": "{{SITENAME}} मालादिसं",
+       "tooltip-search-fulltext": "थ्व खँग्वःया निंतिं पौस मालादिसं",
+       "tooltip-p-logo": "मू पौय् झासँ",
+       "tooltip-n-mainpage": "मू पौ भ्रमण यानादिसँ",
+       "tooltip-n-portal": "ज्याझ्वःया बारेय्, छिं छु यायेछिं, गन खँ सीकिगु",
+       "tooltip-n-currentevents": "जुयाच्वँगु घटनाया लिधँसा तथ्य मालादिसँ",
+       "tooltip-n-recentchanges": "थ्व विकिया न्हुगु हिलेज्याया धलः।",
+       "tooltip-n-randompage": "न्ह्याःगु छगू पौ क्यनादिसँ",
+       "tooltip-n-help": "खँ सीकिगु थाय्।",
+       "tooltip-t-whatlinkshere": "थन स्वाइगु सकल विकिपौया धलः",
+       "tooltip-t-recentchangeslinked": "थ्व पौ नाप स्वाःगु पौतेगु न्हुगु हिलेज्या",
+       "tooltip-feed-rss": "थ्व पौया RSS फीड",
+       "tooltip-feed-atom": "थ्व पौया Atom फीड",
+       "tooltip-t-contributions": "थ्व छ्य्‌लामिया योगदानया धलः क्यनादिसँ",
+       "tooltip-t-emailuser": "थ्व छ्य्‌लामियात इ-मेल छ्वयादिसँ",
+       "tooltip-t-upload": "फाइल अपलोद यानादिसँ",
+       "tooltip-t-specialpages": "सकल विशेष पौस धलः",
+       "tooltip-t-print": "थ्व पौस ध्वायेज्युगु संस्करण",
+       "tooltip-t-permalink": "थ्व पौस थ्व संस्करणया पर्मानेन्ट लिङ्क",
+       "tooltip-ca-nstab-main": "कन्टेन्ट पौ स्वयादिसँ",
+       "tooltip-ca-nstab-user": "छ्य्‌लामिपौ स्वयादिसँ",
+       "tooltip-ca-nstab-media": "मिडिया पौ स्वयादिसँ",
+       "tooltip-ca-nstab-special": "थ्व छगू विशेष पौ ख ; थ्व पौयात छिं सम्पादन याये मछिं।",
+       "tooltip-ca-nstab-project": "ज्याझ्वः पौ स्वयादिसँ",
+       "tooltip-ca-nstab-image": "फाइल पौ स्वयादिसँ",
+       "tooltip-ca-nstab-mediawiki": "व्यवस्थापन सन्देश स्वयादिसँ",
+       "tooltip-ca-nstab-template": "टेम्प्लेट स्वयादिसँ",
+       "tooltip-ca-nstab-help": "ग्वहालि पौ स्वयादिसँ",
+       "tooltip-ca-nstab-category": "पुचः पौ स्वयादिसँ",
+       "tooltip-minoredit": "थ्व छगू चिधंगु सम्पादन ख",
+       "tooltip-save": "छिगु परिवर्तन स्वथनादिसँ",
+       "tooltip-preview": "छिगु परिवर्तन पुर्वालोकन यानादिसँ, कृपया स्वथने न्ह्यः थ्व छ्य्‌लादिसँ!",
+       "tooltip-diff": "छिं पतीइ यानादिगु हिलेज्या क्यनादिसँ।",
+       "tooltip-compareselectedversions": "निगु ल्ययातःगु संस्करणया दथुइ भिन्नता स्वयादिसँ।",
+       "tooltip-watch": "थ्व पौयात छिगु वाचलिस्टय् तनादिसँ",
+       "tooltip-recreate": "थ्व पौ हुयाछ्वेधुंकुगु जुसां पुनर्निर्माण यानादिसँ",
+       "tooltip-upload": "अपलोड न्ह्यथनादिसँ",
+       "tooltip-rollback": "\"रोलब्याकं\" छगू क्लिकय् थ्व पौयात न्हापाया छ्य्‌लामिं याःगु परिवर्तनय् हिलाछ्वइ।",
+       "tooltip-undo": "\"Undo\" नं थ्व सम्पादनयात खारेज याना सम्पादन फर्म यात प्रिभ्यु मोडय् चायेकी।\nथुकिलिं सारांशय् कारण तनेछिंकी।",
+       "common.css": "/* थन तःगु CSS सकल स्किनय् छ्य्‌लिगु जुइ */",
+       "print.css": "/* थन तःगु CSS नं प्रिन्ट आउटपुटयात असर याइ */",
+       "others": "मेमेगु",
+       "exif-imagewidth": "ब्याः",
+       "exif-imagelength": "जाः",
+       "exif-imagedescription": "किपाया नां",
+       "exif-make": "किपासाः दयेकामि",
+       "exif-model": "किपासाः मोदेल",
+       "exif-software": "छ्यलातःगु सफ्तवेयर",
+       "exif-artist": "च्वमि",
+       "exif-copyright": "लेखाधिकार थुवा",
+       "exif-pixelydimension": "किपा ब्याः",
+       "exif-pixelxdimension": "किपा जाः",
+       "exif-dc-date": "तिथि",
+       "namespacesall": "सकल",
+       "autosumm-new": "न्हुगु पौ: $1",
+       "specialpages": "विषेश पौत:"
 }
index 7cbd573..2f99b4f 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Jose77",
-            "Rotemliss",
-            "Sioneholof"
-        ]
-    },
-    "sunday": "Aho Tapu",
-    "monday": "Aho Gofua",
-    "tuesday": "Aho Ua",
-    "wednesday": "Aho Lotu",
-    "thursday": "Aho Tuloto",
-    "friday": "Aho Falaile",
-    "saturday": "Aho Faiumu",
-    "january": "Ianuali",
-    "february": "Fepuali",
-    "march": "Masi",
-    "april": "Apelila",
-    "may_long": "Me",
-    "june": "Iuni",
-    "july": "Iulai",
-    "august": "Aokuso",
-    "september": "Sepetema",
-    "october": "Oketopa",
-    "november": "Novema",
-    "december": "Tesemo",
-    "january-gen": "Ianuali",
-    "february-gen": "Fepuali",
-    "march-gen": "Masi",
-    "april-gen": "Apelila",
-    "may-gen": "Me",
-    "june-gen": "Iuni",
-    "july-gen": "Iulai",
-    "august-gen": "Aokuso",
-    "september-gen": "Sepetema",
-    "october-gen": "Oketopa",
-    "november-gen": "Novema",
-    "december-gen": "Tesemo",
-    "may": "Me",
-    "article": "Tohi Tala",
-    "cancel": "Tiaki",
-    "mytalk": "Haaku tutala",
-    "navigation": "Navikati",
-    "qbedit": "Fakahakohako",
-    "help": "Lagomatai",
-    "search": "Kumi",
-    "searchbutton": "Kumi",
-    "go": "Fano",
-    "searcharticle": "Fano",
-    "history_short": "Liu onoono atu ki tua",
-    "printableversion": "Mitaki lolomi",
-    "permalink": "Matutakiaga mautumau",
-    "edit": "Fakahakohako",
-    "delete": "Tamate",
-    "protect": "Puipui",
-    "talkpagelinktext": "Tutala",
-    "talk": "Fakatutala",
-    "toolbox": "Puha Mena Gahua",
-    "otherlanguages": "Ke he falu vagahau",
-    "jumptonavigation": "navikati",
-    "jumptosearch": "kumi",
-    "aboutsite": "Hagaao ke he {{SITENAME}}",
-    "aboutpage": "Project: Hagaao",
-    "currentevents": "Tau Fakaholoaga Mogonei",
-    "edithelp": "Lagomatai ke he Fakahakohako",
-    "mainpage": "Matapatu Lau",
-    "mainpage-description": "Matapatu Lau",
-    "portal": "Maaga ke Matutaki",
-    "portal-url": "Project:Ko e lau auloa ma maaga",
-    "privacy": "Ko e puipuiaga ke he tau talahauaga mo e talahauaga fakatagata",
-    "youhavenewmessages": "Fai $1 ($2).",
-    "youhavenewmessagesmulti": "Fai tohi foou a koe he $1",
-    "editsection": "fakahakohako",
-    "editold": "fakahakohako",
-    "editsectionhint": "Hiki e vala e: $1",
-    "red-link-title": "$1 (nakai fai lau pihia i i loto e)",
-    "nstab-main": "Lau",
-    "nstab-user": "Lau he tagata",
-    "viewsource": "Kitekite ke mouaga",
-    "yourname": "Matahigoa he tagata:",
-    "yourpassword": "Kupu fufu:",
-    "yourpasswordagain": "Liu lolomi e kupu fufu:",
-    "remembermypassword": "Manatu e haaku loko ini (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Hu ki loto",
-    "nav-login-createaccount": "Hu ki loto / talaga e poko",
-    "userlogin": "Hu ki loto / talaga e poko",
-    "logout": "Hu mai ki tua",
-    "userlogout": "Hu mai ki tua",
-    "notloggedin": "Ai la hu ki loto",
-    "createaccount": "Talaga e poko",
-    "gotaccountlink": "Hu ki loto",
-    "passwordreset-username": "Matahigoa he tagata",
-    "summary": "Fakakatoakatoa:",
-    "minoredit": "Ko e fakahakohako fakatote",
-    "watchthis": "Onoono e lau e",
-    "savearticle": "Taofi e lau",
-    "showpreview": "Fakakite e foliga",
-    "showdiff": "Fakakite e tau hikihiki",
-    "loginreqlink": "hu ki loto",
-    "currentrev": "Kitekiteaga mogonei",
-    "currentrevisionlink": "Kitekiteaga mogonei",
-    "editundo": "Liuaki",
-    "mypreferences": "Haaku a tau manako",
-    "prefs-rc": "Hikihikiaga mogoia",
-    "searchresultshead": "Kumi",
-    "youremail": "Meli hila:",
-    "username": "Matahigoa he tagata:",
-    "email": "Meli hila",
-    "recentchanges": "Hikihikiaga mogoia",
-    "hist": "Liu onoono atu ki tua",
-    "recentchangeslinked": "Falu hikihiki",
-    "recentchangeslinked-feed": "Falu hikihiki",
-    "recentchangeslinked-toolbox": "Falu hikihiki",
-    "upload": "Fakafano e faila",
-    "uploadbtn": "Fakafano e faila",
-    "uploadnologin": "Ai la hu ki loto",
-    "filedesc": "Fakakatoakatoa",
-    "fileuploadsummary": "Fakakatoakatoa:",
-    "watchthisupload": "Onoono e lau e",
-    "filehist-deleteone": "tamate",
-    "filedelete-submit": "Tamate",
-    "randompage": "Lau fifili",
-    "brokenredirects-edit": "fakahakohako",
-    "brokenredirects-delete": "tamate",
-    "newpages-username": "Matahigoa he tagata:",
-    "move": "Une",
-    "movethispage": "Une e lau e",
-    "booksources-go": "Fano",
-    "linksearch-ok": "Kumi",
-    "watchlist": "Ko e haaku lau kitekite",
-    "mywatchlist": "Ko e haaku lau kitekite",
-    "watchnologin": "Ai la hu ki loto",
-    "watch": "Kitekite",
-    "watchthispage": "Onoono e lau e",
-    "delete-legend": "Tamate",
-    "prot_1movedto2": "[[$1]] kua une ke he [[$2]]",
-    "restriction-edit": "Fakahakohako",
-    "restriction-move": "Une",
-    "undelete-search-submit": "Kumi",
-    "contributions": "Tau lagomatai tagata",
-    "mycontris": "Haaku a tau lagomatai",
-    "sp-contributions-submit": "Kumi",
-    "whatlinkshere": "Ko e tau matutakiaga he mena e",
-    "ipbreason": "Kakano:",
-    "ipblocklist-submit": "Kumi",
-    "move-watch": "Onoono e lau e",
-    "movereason": "Kakano:",
-    "allmessages": "Tau fakailoaga",
-    "tooltip-pt-preferences": "Haaku a tau manako",
-    "tooltip-pt-login": "Kua lata ia koe ke loko ini, kae pule ni e a koe, ai pehe ko e masi a koe ke loko ini",
-    "tooltip-pt-logout": "Hu mai ki tua",
-    "tooltip-ca-talk": "Tutala ke he tau matapatu lau",
-    "tooltip-ca-edit": "Maeke ia koe ke hiki, uta kehe mo e lalafi atu falu mena ke he lau nei.  Fakamolemole ti fakaaoga e PREVIEW patani to taofi mau.",
-    "tooltip-search": "Kumi {{SITENAME}}",
-    "tooltip-search-fulltext": "Kumi ke he tau lau oti e kupu e",
-    "tooltip-p-logo": "Matapatu Lau",
-    "tooltip-n-mainpage-description": "Fano ke he matapatu lau",
-    "tooltip-n-portal": "Hagao ke he gahua lahi, ko e heigoa kua lata a koe ke taute, mo e moua mai i fe e tau mena",
-    "tooltip-n-currentevents": "Kumi e tau vala tala kehekehe hagao ke he tau mena tutupu",
-    "tooltip-n-recentchanges": "Hae e tau hikihiki foou he wiki",
-    "tooltip-n-randompage": "Tuku mai noa ni e ha lau",
-    "tooltip-n-help": "Ko e matakavi ke kumi ki ai",
-    "tooltip-t-whatlinkshere": "Ko e tau lau wiki oti ne fai matutaki mai ke he lau e",
-    "tooltip-t-upload": "Fakahu ki loto e tau faila",
-    "tooltip-t-specialpages": "Ko e tau lau oti kua kehekehe",
-    "ilsubmit": "Kumi",
-    "bad_image_list": "Ko e tau mena ni ne fakakite mai ka onoono ki ai (ko e tau laini ne kamata aki e *).\nKo e liniki fakamua he laini ko e liniki ke he faila kelea.\nKo e tau liniki foki i lalo he laini taha ko e tau laini fifili pauaki, i.e. ko e tau lau ne fai faila i loto he laini ia.",
-    "imgmultigo": "Fano!",
-    "table_pager_limit_submit": "Fano",
-    "version-specialpages": "Tau Lau Mahuiga",
-    "fileduplicatesearch-submit": "Kumi",
-    "specialpages": "Tau Lau Mahuiga"
+       "@metadata": {
+               "authors": [
+                       "Jose77",
+                       "Rotemliss",
+                       "Sioneholof"
+               ]
+       },
+       "sunday": "Aho Tapu",
+       "monday": "Aho Gofua",
+       "tuesday": "Aho Ua",
+       "wednesday": "Aho Lotu",
+       "thursday": "Aho Tuloto",
+       "friday": "Aho Falaile",
+       "saturday": "Aho Faiumu",
+       "january": "Ianuali",
+       "february": "Fepuali",
+       "march": "Masi",
+       "april": "Apelila",
+       "may_long": "Me",
+       "june": "Iuni",
+       "july": "Iulai",
+       "august": "Aokuso",
+       "september": "Sepetema",
+       "october": "Oketopa",
+       "november": "Novema",
+       "december": "Tesemo",
+       "january-gen": "Ianuali",
+       "february-gen": "Fepuali",
+       "march-gen": "Masi",
+       "april-gen": "Apelila",
+       "may-gen": "Me",
+       "june-gen": "Iuni",
+       "july-gen": "Iulai",
+       "august-gen": "Aokuso",
+       "september-gen": "Sepetema",
+       "october-gen": "Oketopa",
+       "november-gen": "Novema",
+       "december-gen": "Tesemo",
+       "may": "Me",
+       "article": "Tohi Tala",
+       "cancel": "Tiaki",
+       "mytalk": "Haaku tutala",
+       "navigation": "Navikati",
+       "qbedit": "Fakahakohako",
+       "help": "Lagomatai",
+       "search": "Kumi",
+       "searchbutton": "Kumi",
+       "go": "Fano",
+       "searcharticle": "Fano",
+       "history_short": "Liu onoono atu ki tua",
+       "printableversion": "Mitaki lolomi",
+       "permalink": "Matutakiaga mautumau",
+       "edit": "Fakahakohako",
+       "delete": "Tamate",
+       "protect": "Puipui",
+       "talkpagelinktext": "Tutala",
+       "talk": "Fakatutala",
+       "toolbox": "Puha Mena Gahua",
+       "otherlanguages": "Ke he falu vagahau",
+       "jumptonavigation": "navikati",
+       "jumptosearch": "kumi",
+       "aboutsite": "Hagaao ke he {{SITENAME}}",
+       "aboutpage": "Project: Hagaao",
+       "currentevents": "Tau Fakaholoaga Mogonei",
+       "edithelp": "Lagomatai ke he Fakahakohako",
+       "mainpage": "Matapatu Lau",
+       "mainpage-description": "Matapatu Lau",
+       "portal": "Maaga ke Matutaki",
+       "portal-url": "Project:Ko e lau auloa ma maaga",
+       "privacy": "Ko e puipuiaga ke he tau talahauaga mo e talahauaga fakatagata",
+       "youhavenewmessages": "Fai $1 ($2).",
+       "youhavenewmessagesmulti": "Fai tohi foou a koe he $1",
+       "editsection": "fakahakohako",
+       "editold": "fakahakohako",
+       "editsectionhint": "Hiki e vala e: $1",
+       "red-link-title": "$1 (nakai fai lau pihia i i loto e)",
+       "nstab-main": "Lau",
+       "nstab-user": "Lau he tagata",
+       "viewsource": "Kitekite ke mouaga",
+       "yourname": "Matahigoa he tagata:",
+       "yourpassword": "Kupu fufu:",
+       "yourpasswordagain": "Liu lolomi e kupu fufu:",
+       "remembermypassword": "Manatu e haaku loko ini (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Hu ki loto",
+       "nav-login-createaccount": "Hu ki loto / talaga e poko",
+       "userlogin": "Hu ki loto / talaga e poko",
+       "logout": "Hu mai ki tua",
+       "userlogout": "Hu mai ki tua",
+       "notloggedin": "Ai la hu ki loto",
+       "createaccount": "Talaga e poko",
+       "gotaccountlink": "Hu ki loto",
+       "passwordreset-username": "Matahigoa he tagata",
+       "summary": "Fakakatoakatoa:",
+       "minoredit": "Ko e fakahakohako fakatote",
+       "watchthis": "Onoono e lau e",
+       "savearticle": "Taofi e lau",
+       "showpreview": "Fakakite e foliga",
+       "showdiff": "Fakakite e tau hikihiki",
+       "loginreqlink": "hu ki loto",
+       "currentrev": "Kitekiteaga mogonei",
+       "currentrevisionlink": "Kitekiteaga mogonei",
+       "editundo": "Liuaki",
+       "mypreferences": "Haaku a tau manako",
+       "prefs-rc": "Hikihikiaga mogoia",
+       "searchresultshead": "Kumi",
+       "youremail": "Meli hila:",
+       "username": "Matahigoa he tagata:",
+       "email": "Meli hila",
+       "recentchanges": "Hikihikiaga mogoia",
+       "hist": "Liu onoono atu ki tua",
+       "recentchangeslinked": "Falu hikihiki",
+       "recentchangeslinked-feed": "Falu hikihiki",
+       "recentchangeslinked-toolbox": "Falu hikihiki",
+       "upload": "Fakafano e faila",
+       "uploadbtn": "Fakafano e faila",
+       "uploadnologin": "Ai la hu ki loto",
+       "filedesc": "Fakakatoakatoa",
+       "fileuploadsummary": "Fakakatoakatoa:",
+       "watchthisupload": "Onoono e lau e",
+       "filehist-deleteone": "tamate",
+       "filedelete-submit": "Tamate",
+       "randompage": "Lau fifili",
+       "brokenredirects-edit": "fakahakohako",
+       "brokenredirects-delete": "tamate",
+       "newpages-username": "Matahigoa he tagata:",
+       "move": "Une",
+       "movethispage": "Une e lau e",
+       "linksearch-ok": "Kumi",
+       "watchlist": "Ko e haaku lau kitekite",
+       "mywatchlist": "Ko e haaku lau kitekite",
+       "watchnologin": "Ai la hu ki loto",
+       "watch": "Kitekite",
+       "watchthispage": "Onoono e lau e",
+       "delete-legend": "Tamate",
+       "prot_1movedto2": "[[$1]] kua une ke he [[$2]]",
+       "restriction-edit": "Fakahakohako",
+       "restriction-move": "Une",
+       "undelete-search-submit": "Kumi",
+       "contributions": "Tau lagomatai tagata",
+       "mycontris": "Haaku a tau lagomatai",
+       "sp-contributions-submit": "Kumi",
+       "whatlinkshere": "Ko e tau matutakiaga he mena e",
+       "ipbreason": "Kakano:",
+       "ipblocklist-submit": "Kumi",
+       "move-watch": "Onoono e lau e",
+       "movereason": "Kakano:",
+       "allmessages": "Tau fakailoaga",
+       "tooltip-pt-preferences": "Haaku a tau manako",
+       "tooltip-pt-login": "Kua lata ia koe ke loko ini, kae pule ni e a koe, ai pehe ko e masi a koe ke loko ini",
+       "tooltip-pt-logout": "Hu mai ki tua",
+       "tooltip-ca-talk": "Tutala ke he tau matapatu lau",
+       "tooltip-ca-edit": "Maeke ia koe ke hiki, uta kehe mo e lalafi atu falu mena ke he lau nei.  Fakamolemole ti fakaaoga e PREVIEW patani to taofi mau.",
+       "tooltip-search": "Kumi {{SITENAME}}",
+       "tooltip-search-fulltext": "Kumi ke he tau lau oti e kupu e",
+       "tooltip-p-logo": "Matapatu Lau",
+       "tooltip-n-mainpage-description": "Fano ke he matapatu lau",
+       "tooltip-n-portal": "Hagao ke he gahua lahi, ko e heigoa kua lata a koe ke taute, mo e moua mai i fe e tau mena",
+       "tooltip-n-currentevents": "Kumi e tau vala tala kehekehe hagao ke he tau mena tutupu",
+       "tooltip-n-recentchanges": "Hae e tau hikihiki foou he wiki",
+       "tooltip-n-randompage": "Tuku mai noa ni e ha lau",
+       "tooltip-n-help": "Ko e matakavi ke kumi ki ai",
+       "tooltip-t-whatlinkshere": "Ko e tau lau wiki oti ne fai matutaki mai ke he lau e",
+       "tooltip-t-upload": "Fakahu ki loto e tau faila",
+       "tooltip-t-specialpages": "Ko e tau lau oti kua kehekehe",
+       "ilsubmit": "Kumi",
+       "bad_image_list": "Ko e tau mena ni ne fakakite mai ka onoono ki ai (ko e tau laini ne kamata aki e *).\nKo e liniki fakamua he laini ko e liniki ke he faila kelea.\nKo e tau liniki foki i lalo he laini taha ko e tau laini fifili pauaki, i.e. ko e tau lau ne fai faila i loto he laini ia.",
+       "imgmultigo": "Fano!",
+       "table_pager_limit_submit": "Fano",
+       "version-specialpages": "Tau Lau Mahuiga",
+       "fileduplicatesearch-submit": "Kumi",
+       "specialpages": "Tau Lau Mahuiga"
 }
index 7db6180..6458575 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "HanV",
-            "MarkvA",
-            "Siebrand",
-            "Tedjuh10"
-        ]
-    },
-    "view-pool-error": "De servers zijn op het moment helaas overbelast.\nTe veel gebruikers proberen deze pagina te bekijken.\nWacht even voordat je opnieuw toegang probeert te krijgen tot deze pagina.\n\n$1",
-    "badaccess-group0": "Je hebt geen rechten om de gevraagde handeling uit te voeren.",
-    "youhavenewmessages": "Je hebt $1 ($2).",
-    "youhavenewmessagesfromusers": "Je hebt $1 van {{PLURAL:$3|een andere gebruiker|$3 gebruikers}} ($2).",
-    "youhavenewmessagesmanyusers": "Je hebt $1 van een groot aantal gebruikers ($2).",
-    "youhavenewmessagesmulti": "Je hebt nieuwe berichten op $1",
-    "nosuchactiontext": "De opdracht in de URL is ongeldig.\nMogelijk heb je een typefout gemaakt in de URL of een onjuiste koppeling gevolgd.\nHet kan ook wijzen op een fout in de software van {{SITENAME}}.",
-    "nospecialpagetext": "<strong>Je hebt een onbestaande speciale pagina opgevraagd.</strong>\n\nEen lijst met bestaande speciale pagina’s staat op [[Special:SpecialPages|speciale pagina’s]].",
-    "missing-article": "In de database is geen inhoud aangetroffen voor de pagina \"$1\" die er wel zou moeten zijn ($2).\n\nDit kan voorkomen als je een verouderde koppeling naar het verschil tussen twee versies van een pagina volgt of een versie opvraagt die is verwijderd.\n\nAls dit niet het geval is, heb je wellicht een fout in de software gevonden.\nMaak hiervan melding bij een [[Special:ListUsers/sysop|beheerder]] van {{SITENAME}} en vermeld daarbij de URL van deze pagina.",
-    "actionthrottledtext": "Als maatregel tegen spam is het aantal keren per tijdseenheid dat je deze handeling kunt verrichten beperkt.\nDe limiet is overschreden.\nProbeer het over een aantal minuten opnieuw.",
-    "viewsourcetext": "Je kunt de brontekst van deze pagina bekijken en kopiëren:",
-    "viewyourtext": "Je kunt '''uw bewerkingen''' aan de brontekst van deze pagina bekijken en kopiëren:",
-    "editinginterface": "'''Waarschuwing:''' je bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
-    "namespaceprotected": "Je hebt geen rechten om pagina's in de naamruimte '''$1''' te bewerken.",
-    "customcssprotected": "Je kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
-    "customjsprotected": "Je kunt deze JavaScriptpagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
-    "exception-nologin-text": "Om deze pagina te bekijken of deze handeling uit te kunnen voeren moet je aangemeld zijn bij deze wiki.",
-    "logouttext": "'''Je bent nu afgemeld.'''\n\nJe kunt {{SITENAME}} nu anoniem gebruiken of weer <span class='plainlinks'>[$1 aanmelden]</span> als dezelfde of een andere gebruiker.\nMogelijk worden nog een aantal pagina's weergegeven alsof je aangemeld bent totdat je de cache van uw browser leegt.",
-    "welcomecreation-msg": "Je gebruiker is aangemaakt.\nVergeet niet je [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te passen.",
-    "yourpasswordagain": "Geef je wachtwoord opnieuw in:",
-    "yourdomainname": "Je domein:",
-    "password-change-forbidden": "Je kunt je wachtwoord niet wijzigen in deze wiki.",
-    "externaldberror": "Er is een fout opgetreden bij het aanmelden bij de database of je hebt geen toestemming je externe gebruiker bij te werken.",
-    "loginprompt": "Je moet cookies ingeschakeld hebben om je te kunnen aanmelden bij {{SITENAME}}.",
-    "gotaccount": "Heb je al een gebruikersnaam? '''$1'''.",
-    "userlogin-resetlink": "Ben je je aanmeldgegevens vergeten?",
-    "nocookiesnew": "De gebruiker is geregistreerd, maar jij bent niet aangemeld.\n{{SITENAME}} gebruikt cookies voor het aanmelden van gebruikers.\nSchakel die in en meld daarna aan met je nieuwe gebruikersnaam en wachtwoord.",
-    "nocookieslogin": "{{SITENAME}} gebruikt cookies voor het aanmelden van gebruikers.\nCookies zijn uitgeschakeld in je browser.\nSchakel deze optie aan en probeer het opnieuw.",
-    "nocookiesfornew": "De gebruiker is niet gemaakt omdat de bron niet bevestigd kon worden.\nZorg ervoor dat je cookies hebt ingeschakeld, herlaad deze pagina en probeer het opnieuw.",
-    "noname": "Je hebt geen geldige gebruikersnaam opgegeven.",
-    "loginsuccess": "'''Je bent nu aangemeld bij {{SITENAME}} als \"$1\".'''",
-    "nouserspecified": "Geef een gebruikersnaam op.",
-    "password-name-match": "Je wachtwoord en uw gebruikersnaam mogen niet overeenkomen.",
-    "passwordremindertext": "Iemand, waarschijnlijk jijzelf, heeft vanaf IP-adres $1 een verzoek\ngedaan tot het toezenden van een nieuw wachtwoord voor {{SITENAME}}\n($4). Er is een tijdelijk wachtwoord aangemaakt voor gebruiker \"$2\":\n\"$3\". Als dat je bedoeling was, meld je dan nu aan en kies een nieuw\nwachtwoord.\nJe tijdelijke wachtwoord vervalt over {{PLURAL:$5|$5 dag|$5 dagen}}.\n\nAls iemand anders dan jij dit verzoek heeft gedaan of als je zich inmiddels het\nwachtwoord herinnert en het niet langer wilt wijzigen, negeer dit bericht\ndan en blijf je bestaande wachtwoord gebruiken.",
-    "noemailcreate": "Je moet een geldig e-mailadres opgeven",
-    "passwordsent": "Het wachtwoord is verzonden naar het e-mailadres voor \"$1\".\nMeld je aan nadat je het hebt ontvangen.",
-    "blocked-mailpassword": "Je IP-adres is geblokkeerd voor het maken van wijzigingen.\nOm misbruik te voorkomen is het niet mogelijk om een nieuw wachtwoord aan te vragen.",
-    "eauthentsent": "Er is ter bevestiging een e-mail naar het opgegeven e-mailadres gezonden.\nVolg de aanwijzingen in de e-mail om aan te geven dat het jouw e-mailadres is.\nTot die tijd worden er geen e-mails naar het e-mailadres gezonden.",
-    "acct_creation_throttle_hit": "Bezoekers van deze wiki met hetzelfde IP-adres als jij hebben de afgelopen dag al $1 gebruiker{{PLURAL:$1||s}} geregistreerd, wat het maximale aantal in deze periode is.\nDaarom kan je vanaf je IP-adres op dit moment geen nieuwe gebruikers registreren.",
-    "emailauthenticated": "Je e-mailadres is bevestigd op $2 om $3.",
-    "emailnotauthenticated": "Je e-mailadres is niet bevestigd.\nJe ontvangt geen e-mail voor de onderstaande functies.",
-    "noemailprefs": "Geef een e-mailadres op in je voorkeuren om deze functies te gebruiken.",
-    "emailconfirmlink": "Bevestig je e-mailadres",
-    "createaccount-text": "Iemand heeft een gebruiker op {{SITENAME}} ($4) aangemaakt met de naam \"$2\" en jouw e-mailadres.\nHet wachtwoord voor \"$2\" is \"$3\".\nMeld je aan en wijzig je wachtwoord.\n\nNegeer dit bericht als deze gebruiker zonder jouw medeweten is aangemaakt.",
-    "login-throttled": "Je hebt recentelijk te vaak geprobeerd aan te melden met een onjuist wachtwoord.\nWacht even voordat je het opnieuw probeert.",
-    "login-abort-generic": "Je bent niet aangemeld. De procedure is afgebroken.",
-    "suspicious-userlogout": "Je verzoek om af te melden is genegeerd, omdat het lijkt alsof het verzoek is verzonden door een browser of cacheproxy die stuk is.",
-    "resetpass_announce": "Je bent aangemeld met een tijdelijke code die je per e-mail is toegezonden.\nVoer een nieuw wachtwoord in om het aanmelden te voltooien:",
-    "changepassword-success": "Je wachtwoord is gewijzigd.\nBezig met aanmelden…",
-    "resetpass-no-info": "Je moet aangemeld zijn voordat je deze pagina kunt gebruiken.",
-    "resetpass-wrong-oldpass": "Het huidige of tijdelijke wachtwoord is ongeldig.\nMogelijk heb je je wachtwoord al gewijzigd of een nieuw tijdelijk wachtwoord aangevraagd.",
-    "passwordreset-capture-help": "Als je dit vakje aanvinkt, wordt de e-mail (met het tijdelijke wachtwoord) naar de gebruiker verzonden en ook aan jou weergegeven.",
-    "passwordreset-emailtext-ip": "Iemand, waarschijnlijk jij, heeft vanaf het IP-adres $1 je gebruikersgegevens voor {{SITENAME}} ($4) opgevraagd.\nDe volgende {{PLURAL:$3|gebruiker is|gebruikers zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}.\nMeld je aan en wijzig het wachtwoord nu. Als je dit verzoek niet zelf hebt gedaan, of als je het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf je oude wachtwoord gebruiken.",
-    "passwordreset-emailtext-user": "Gebruiker $1 op de site {{SITENAME}} heeft je gebruikersgegevens voor {{SITENAME}} ($4) opgevraagd.\nDe volgende {{PLURAL:$3|gebruiker is|gebruikers zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}.\nMeld je aan en wijzig het wachtwoord nu. Als je dit verzoek niet zelf hebt gedaan, of als je het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf je oude wachtwoord gebruiken.",
-    "changeemail-text": "Vul dit formulier in om je e-mailadres te wijzigen. Je moet je wachtwoord invoeren om deze wijziging te bevestigen.",
-    "changeemail-no-info": "Je moet aangemeld zijn om rechtstreeks toegang te hebben tot deze pagina.",
-    "changeemail-password": "Jouw wachtwoord voor {{SITENAME}}:",
-    "sig_tip": "Je handtekening met datum en tijd",
-    "anoneditwarning": "'''Waarschuwing:''' je bent niet aangemeld.\nJe IP-adres wordt opgeslagen als je wijzigingen op deze pagina maakt.",
-    "anonpreviewwarning": "''Je bent niet aangemeld.''\n''Door je bewerking op te slaan wordt je IP-adres opgeslagen in de paginageschiedenis.''",
-    "missingsummary": "'''Let op:''' je hebt geen samenvatting opgegeven voor je bewerking.\nAls je nogmaals op ''Pagina opslaan'' klikt wordt de bewerking zonder samenvatting opgeslagen.",
-    "missingcommenttext": "Plaats je reactie hieronder.",
-    "missingcommentheader": "'''Let op:''' Je hebt geen onderwerp/kop voor deze reactie opgegeven.\nAls je opnieuw op \"{{int:savearticle}}\" klikt, wordt je wijziging zonder een onderwerp of koptekst opgeslagen.",
-    "blockedtext": "'''Je gebruiker of IP-adres is geblokkeerd.'''\n\nDe blokkade is uitgevoerd door $1.\nDe opgegeven reden is ''$2''.\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nJe kunt contact opnemen met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] om de blokkade te bespreken.\nJe kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij je een geldig e-mailadres hebt opgegeven in je [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet geblokkeerd is.\nJe huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als je ergens op deze blokkade reageert.",
-    "autoblockedtext": "Je IP-adres is automatisch geblokkeerd, omdat het is gebruikt door een andere gebruiker, die is geblokkeerd door $1.\nDe opgegeven reden is:\n\n:''$2''\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nJe kunt deze blokkade bespreken met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]].\n\nJe kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij je een geldig e-mailadres hebt opgegeven in je [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet is geblokkeerd.\n\nJe huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als je ergens op deze blokkade reageert.",
-    "whitelistedittext": "Je moet $1 om pagina's te bewerken.",
-    "confirmedittext": "Je moet je e-mailadres bevestigen voor je kunt bewerken.\nVoer je e-mailadres in en bevestig het via je [[Special:Preferences|voorkeuren]].",
-    "nosuchsectiontext": "Je probeerde een subkopje te bewerken dat niet bestaat.\nWellicht is het verplaatst of verwijderd terwijl je de pagina aan het bekijken was.",
-    "loginreqpagetext": "Je moet je $1 om andere pagina's te kunnen bekijken.",
-    "newarticletext": "Deze pagina bestaat niet.\nTyp in het onderstaande veld om de pagina aan te maken (meer informatie staat op de [[{{MediaWiki:Helppage}}|hulppagina]]).\nGebruik de knop '''vorige''' in je browser als je hier per ongeluk terecht bent gekomen.",
-    "anontalkpagetext": "----''Deze overlegpagina hoort bij een anonieme gebruiker die geen gebruikersnaam heeft of deze niet gebruikt.\nDaarom wordt het IP-adres ter identificatie gebruikt.\nHet is mogelijk dat meerdere personen hetzelfde IP-adres gebruiken.\nMogelijk ontvang je hier berichten die niet voor je bedoeld zijn.\nAls je dat wilt voorkomen, [[Special:UserLogin/signup|registreer je]] of [[Special:UserLogin|meld je aan]] om verwarring met andere anonieme gebruikers te voorkomen.''",
-    "noarticletext": "Deze pagina bevat geen tekst.\nJe kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina's, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken doorzoeken] of [{{fullurl:{{FULLPAGENAME}}|action=edit}} deze pagina bewerken]</span>.",
-    "noarticletext-nopermission": "Deze pagina bevat geen tekst.\nJe kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina's of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken doorzoeken]</span>, maar je mag de pagina niet aanmaken.",
-    "userpage-userdoesnotexist": "Je bewerkt een gebruikerspagina van een gebruiker die niet bestaat (gebruiker \"$1\").\nControleer of je deze pagina wel wilt aanmaken/bewerken.",
-    "clearyourcache": "'''Let op!''' Nadat je de wijzigingen hebt opgeslagen is het wellicht nodig je browsercache te legen.\n* '''Firefox / Safari:''' houd ''Shift'' ingedrukt terwijl je op ''Vernieuwen'' klikt of druk op ''Ctrl-F5'' of ''Ctrl-R'' (''⌘-Shift-R'' op een Mac)\n* '''Google Chrome:''' druk op ''Ctrl-Shift-R'' (''⌘-Shift-R'' op een Mac)\n* '''Internet Explorer:''' houd ''Ctrl'' ingedrukt terwijl je op ''Vernieuwen'' klikt of druk op ''Ctrl-F5''\n* '''Opera:''' leeg je cache in ''Extra → Voorkeuren''",
-    "usercssyoucanpreview": "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om je nieuwe CSS te testen alvorens op te slaan.",
-    "userjsyoucanpreview": "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om je nieuwe JavaScript te testen alvorens op te slaan.",
-    "usercsspreview": "'''Dit is alleen een voorvertoning van je persoonlijke CSS.\nDeze is nog niet opgeslagen!'''",
-    "userjspreview": "'''Let op: je test nu je persoonlijke JavaScript.'''\n'''De pagina is niet opgeslagen!'''",
-    "userinvalidcssjstitle": "'''Waarschuwing:''' er is geen uiterlijk \"$1\".\nJe eigen .css- en .js-pagina's beginnen met een kleine letter, bijvoorbeeld {{ns:user}}:Naam/vector.css in plaats van {{ns:user}}:Naam/Vector.css.",
-    "previewnote": "'''Let op: dit is een controlepagina.'''\nJe tekst is niet opgeslagen!",
-    "previewconflict": "Deze voorvertoning geeft aan hoe de tekst in het bovenste veld eruit ziet als je deze opslaat.",
-    "session_fail_preview": "'''Je bewerking is niet verwerkt, omdat de sessiegegevens verloren zijn gegaan.\nProbeer het opnieuw.\nAls het dan nog niet lukt, [[Special:UserLogout|meld jezelf dan af]] en weer aan.'''",
-    "session_fail_preview_html": "'''Je bewerking is niet verwerkt, omdat sessiegegevens verloren zijn gegaan.'''\n\n''Omdat in {{SITENAME}} ruwe HTML is ingeschakeld, is een voorvertoning niet mogelijk als bescherming tegen aanvallen met JavaScript.''\n\n'''Als dit een legitieme bewerking is, probeer het dan opnieuw.\nAls het dan nog niet lukt, [[Special:UserLogout|meld jezelf dan af]] en weer aan.'''",
-    "token_suffix_mismatch": "'''Je bewerking is geweigerd, omdat je browser de leestekens in het bewerkingstoken onjuist heeft behandeld.'''\nDe bewerking is geweigerd om verminking van de paginatekst te voorkomen.\nDit gebeurt soms als er een webgebaseerde proxydienst wordt gebruikt die fouten bevat.",
-    "edit_form_incomplete": "'''Sommige onderdelen van het bewerkingsformulier hebben de server niet bereikt. Controleer of je bewerkingen intact zijn en probeer het opnieuw.'''",
-    "explainconflict": "Een andere gebruiker heeft deze pagina bewerkt sinds je met je bewerking bent begonnen.\nIn het bovenste deel van het venster staat de tekst van de huidige pagina.\nJe bewerking staat in het onderste gedeelte.\nJe dient je bewerkingen in te voegen in de bestaande tekst.\n'''Alleen''' de tekst in het bovenste gedeelte wordt opgeslagen als je op \"{{int:savearticle}}\" klikt.",
-    "yourtext": "Je tekst",
-    "nonunicodebrowser": "'''Waarschuwing: je browser kan niet goed overweg met Unicode.'''\nHiermee wordt door de MediaWiki-software rekening gehouden zodat je toch zonder problemen pagina's kunt bewerken: niet-ASCII tekens worden in het bewerkingsveld weergegeven als hexadecimale codes.",
-    "editingold": "'''Waarschuwing: je bewerkt een oude versie van deze pagina.'''\nAls je je bewerking opslaat, gaan alle wijzigingen verloren die na deze versie zijn gemaakt.",
-    "copyrightwarning": "Let op: alle bijdragen aan {{SITENAME}} worden geacht te zijn vrijgegeven onder de $2 (zie $1 voor details).\nAls je niet wilt dat je tekst door anderen naar believen bewerkt en verspreid kan worden, kies dan niet voor \"Pagina opslaan\".<br />\nHierbij beloof je ons tevens dat je deze tekst zelf hebt geschreven of overgenomen uit een vrije, openbare bron.<br />\n'''Gebruik geen materiaal dat beschermd wordt door auteursrecht, tenzij je daarvoor toestemming hebt!'''",
-    "copyrightwarning2": "Al je bijdragen aan {{SITENAME}} kunnen bewerkt, gewijzigd of verwijderd worden door andere gebruikers.\nAls je niet wilt dat je teksten rigoureus aangepast worden door anderen, plaats ze hier dan niet.<br />\nJe belooft ook dat je de oorspronkelijke auteur bent van dit materiaal of dat je het hebt gekopieerd uit een bron in het publieke domein of een soortgelijke vrije bron (zie $1 voor details).\n'''Gebruik geen materiaal dat beschermd wordt door auteursrecht, tenzij je daarvoor toestemming hebt!'''",
-    "longpageerror": "'''Fout: de tekst die je hebt toegevoegd is {{PLURAL:$1|één kilobyte|$1 kilobyte}} groot, wat groter is dan het maximum van {{PLURAL:$2|één kilobyte|$2 kilobyte}}.'''\nOpslaan is niet mogelijk.",
-    "readonlywarning": "'''Waarschuwing: je kunt deze bewerking nu niet opslaan omdat de database is geblokkeerd voor bewerkingen wegens onderhoudswerkzaamheden.'''\nHet is misschien verstandig om je tekst tijdelijk in een tekstbestand op te slaan om dit te bewaren voor wanneer de blokkering van de database opgeheven is.\n\nEen beheerder heeft de database geblokkeerd om de volgende reden: $1",
-    "nocreatetext": "{{SITENAME}} heeft de mogelijkheid om nieuwe pagina's te maken beperkt.\nJe kunt reeds bestaande pagina's wijzigen of je kunt [[Special:UserLogin|jezelf aanmelden of registreren]].",
-    "nocreate-loggedin": "Je hebt geen rechten om nieuwe pagina's te maken.",
-    "permissionserrorstext": "Je hebt geen rechten om dit te doen om de volgende {{PLURAL:$1|reden|redenen}}:",
-    "permissionserrorstext-withaction": "Je hebt geen rechten om $2 om de volgende {{PLURAL:$1|reden|redenen}}:",
-    "recreate-moveddeleted-warn": "'''Waarschuwing: je bent bezig met het aanmaken van een pagina die in het verleden verwijderd is.'''\n\nOverweeg of het terecht is dat je verder werkt aan deze pagina.\nVoor je gemak staan hieronder het verwijderingslogboek en het hernoemingslogboek voor deze pagina:",
-    "edit-no-change": "Je bewerking is genegeerd, omdat er geen wijziging aan de tekst is gemaakt.",
-    "editwarning-warning": "Als je deze pagina verlaat verlies je mogelijk wijzigingen die je hebt gemaakt.\nAls je bent aangemeld, kan je deze waarschuwing uitschakelen in het tabblad \"Bewerken\" in je voorkeuren.",
-    "rev-deleted-text-unhide": "Deze paginaversie is '''verwijderd'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].\nAls je wilt kan je [$1 deze versie bekijken].",
-    "rev-suppressed-text-unhide": "Deze paginaversie is '''onderdrukt'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} logboek onderdrukte versies].\nAls je wilt kan je [$1 deze versie bekijken].",
-    "rev-deleted-text-view": "Deze paginaversie is '''verwijderd'''.\nJe kunt deze bekijken; er kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
-    "rev-suppressed-text-view": "Deze paginaversie is '''onderdrukt'''.\nJe kunt deze bekijken; er kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} logboek onderdrukte versies].",
-    "rev-deleted-no-diff": "Je kunt de verschillen niet bekijken, omdat een van de versies is '''verwijderd'''.\nAchtergronden zijn mogelijk te vinden in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
-    "rev-suppressed-no-diff": "Je kunt de verschillen niet bekijken, omdat een van de versies is '''verwijderd'''.",
-    "rev-deleted-unhide-diff": "Een van de bewerkingen voor de verschillen die je hebt opgevraagd is '''verwijderd'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].\nAls je wilt kan je [$1 de verschillen bekijken].",
-    "rev-suppressed-unhide-diff": "Een van de versies in deze verschillen is '''onderdrukt'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} verbergingslogboek].\nAls je wilt kan je [$1 deze versie bekijken].",
-    "rev-deleted-diff-view": "Een van de versies van de verschillen die je hebt opgevraagd is verwijderd, \nJe kunt deze verschillen bekijken. Mogelijk zijn details zichtbaar in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
-    "rev-suppressed-diff-view": "Een van de bewerkingen voor de verschillen die u hebt opgevraagd, is '''onderdrukt'''.\nJe kunt deze verschillen bekijken. Er kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} verbergingslogboek].",
-    "revdelete-nooldid-text": "Je hebt geen doelversie(s) voor deze handeling opgegeven, de opgegeven versie bestaat niet of je probeert de laatste versie te verbergen.",
-    "revdelete-show-file-confirm": "Weet je zeker dat je de verwijderde versie van het bestand \"<nowiki>$1</nowiki>\" van $2 om $3 wilt bekijken?",
-    "revdelete-confirm": "Bevestig dat je dit wilde doen, dat je de consequenties begrijpt en dat je dit doet in overeenstemming met het geldende [[{{MediaWiki:Policy-url}}|beleid]].",
-    "revdelete-show-no-access": "Er is een fout opgetreden tijdens het weergeven van het object van $1 om $2: dit object is gemarkeerd als \"beschermd\".\nJe hebt geen toegang tot dit object.",
-    "revdelete-modify-no-access": "Er is een fout opgetreden tijdens het wijzigen van het object van $1 om $2: dit object is gemarkeerd als \"beschermd\".\nJe hebt geen toegang tot dit object.",
-    "revdelete-only-restricted": "Er is een fout opgetreden tijdens het verbergen van het item van $1, $2: je kunt geen items onderdrukken uit het zicht van beheerders zonder ook een van de andere zichtbaarheidsopties te selecteren.",
-    "mergehistory-header": "Via deze pagina kan je versies van de geschiedenis van een bronpagina naar een nieuwere pagina samenvoegen.\nZorg dat deze wijziging de geschiedenis van de pagina behoudt.",
-    "search-suggest": "Bedoelde je: $1",
-    "searchdisabled": "Zoeken in {{SITENAME}} is niet mogelijk.\nJe kunt gebruik maken van Google.\nDe gegevens over {{SITENAME}} zijn mogelijk niet bijgewerkt.",
-    "savedprefs": "Je voorkeuren zijn opgeslagen.",
-    "prefs-reset-intro": "Gebruik deze functie om je voorkeuren te herstellen naar de standaardinstellingen.\nDeze handeling kan niet ongedaan gemaakt worden.",
-    "youremail": "E-mailadres:",
-    "prefs-help-variant": "Jouw voorkeursvariant of -spelling om de inhoudspagina's van deze wiki in weer te geven.",
-    "prefs-help-signature": "Reacties op de overlegpagina's worden meestal ondertekend met \"<nowiki>~~~~</nowiki>\".\nDe tildes worden omgezet in je ondertekening en een datum en tijd van de bewerking.",
-    "badsiglength": "Je ondertekening is te lang.\nDeze moet minder dan $1 {{PLURAL:$1|teken|tekens}} bevatten.",
-    "prefs-help-realname": "Echte naam is optioneel.\nAls je deze opgeeft, kan deze naam gebruikt worden om je erkenning te geven voor je werk.",
-    "prefs-help-email": "E-mailadres is optioneel, maar maakt het mogelijk om jou je wachtwoord te e-mailen als je het bent vergeten.",
-    "prefs-help-email-others": "Je kunt ook anderen in staat stellen per e-mail contact met je op te nemen via een koppeling op uw gebruikers- en overlegpagina zonder dat je je identiteit prijsgeeft.",
-    "userrights-groups-help": "Je kunt de groepen wijzigen waar deze gebruiker lid van is.\n* Een aangekruist vakje betekent dat de gebruiker lid is van de groep.\n* Een niet aangekruist vakje betekent dat de gebruiker geen lid is van de groep.\n* Een \"*\" betekent dat je een gebruiker niet uit een groep kunt verwijderen nadat je die hebt toegevoegd of vice versa.",
-    "userrights-no-interwiki": "Je hebt geen rechten om gebruikersrechten op andere wiki's te wijzigen.",
-    "userrights-nologin": "Je moet [[Special:UserLogin|aangemeld]] zijn met een gebruiker met de juiste rechten om gebruikersrechten toe te wijzen.",
-    "userrights-notallowed": "Je hebt geen rechten om gebruikersrechten toe te voegen of te verwijderen.",
-    "userrights-changeable-col": "Groepen die je kunt beheren",
-    "userrights-unchangeable-col": "Groepen die je niet kunt beheren",
-    "recentchangeslinked-summary": "Deze speciale pagina geeft de laatste bewerkingen weer op pagina's waarheen verwezen wordt vanaf een opgegeven pagina of op pagina's in een opgegeven categorie.\nPagina's die op [[Special:Watchlist|uw volglijst]] staan worden '''vet''' weergegeven.",
-    "uploadnologintext": "Je moet [[Special:UserLogin|aangemeld]] zijn om bestanden te uploaden.",
-    "empty-file": "Het bestand dat je probeerde te uploaden had geen inhoud.",
-    "file-too-large": "Het bestand dat je probeerde te uploaden was te groot.",
-    "hookaborted": "De wijziging die je probeerde te maken is afgebroken door een uitbreiding.",
-    "emptyfile": "Het bestand dat je hebt geüpload lijkt leeg te zijn.\nDit zou kunnen komen door een typefout in de bestandsnaam.\nGa na of je dit bestand werkelijk bedoelde te uploaden.",
-    "fileexists": "Er bestaat al een bestand met deze naam.\nControleer <strong>[[:$1]]</strong> als je niet zeker weet of je het huidige bestand wilt overschrijven.\n[[$1|thumb]]",
-    "filepageexists": "De beschrijvingspagina voor dit bestand bestaat al op <strong>[[:$1]]</strong>, maar er bestaat geen bestand met deze naam.\nDe samenvatting die je hebt opgegeven verschijnt niet op de beschrijvingspagina.\nBewerk de pagina handmatig om je beschrijving daar weer te geven.\n[[$1|miniatuur]]",
-    "file-thumbnail-no": "De bestandsnaam begint met <strong>$1</strong>.\nHet lijkt een verkleinde afbeelding te zijn ''(miniatuurafbeelding)''.\nAls je deze afbeelding in volledige resolutie hebt, upload die afbeelding dan.\nWijzig anders de bestandsnaam.",
-    "fileexists-forbidden": "Er bestaat al een bestand met deze naam, en dat kan niet overschreven worden.\nUpload je bestand onder een andere naam.\n[[File:$1|thumb|center|$1]]",
-    "fileexists-shared-forbidden": "Er bestaat al een bestand met deze naam bij de gedeelde bestanden.\nAls je het bestand alsnog wilt uploaden, ga dan terug en kies een andere naam.\n[[File:$1|thumb|center|$1]]",
-    "file-deleted-duplicate": "Een bestand dat identiek is aan dit bestand ([[:$1]]) is voorheen verwijderd.\nRaadpleeg het verwijderingslogboek voordat je verder gaat.",
-    "uploadfromurl-queued": "Je upload is in de wachtrij geplaatst.",
-    "filewasdeleted": "Er is eerder een bestand met deze naam verwijderd.\nRaadpleeg het $1 voordat je het opnieuw toevoegt.",
-    "filename-bad-prefix": "De naam van het bestand dat je aan het uploaden bent begint met '''\"$1\"''', wat een niet-beschrijvende naam is die meestal automatisch door een digitale camera wordt gegeven.\nKies een duidelijke naam voor je bestand.",
-    "upload-success-msg": "Je upload van [$2] is geslaagd en is beschikbaar: [[:{{ns:file}}:$1]]",
-    "upload-failure-msg": "Er was een probleem met je upload van [$2]:\n\n$1",
-    "upload-warning-msg": "Er was een probleem met je upload van [$2].\nGa terug naar het [[Special:Upload/stash/$1|uploadformulier]] om dit probleem te verhelpen.",
-    "uploadstash-badtoken": "Het uitvoeren van de handeling is mislukt. Dit komt mogelijk doordat je bewerkingsreferenties zijn verlopen. Probeer het opnieuw.",
-    "img-auth-nopathinfo": "PATH_INFO mist.\nJe server is niet ingesteld om deze gegevens door te geven.\nMisschien gebruikt deze CGI, en dan wordt img_auth niet ondersteund.\nZie https://www.mediawiki.org/wiki/Manual:Image_Authorization voor meer informatie.",
-    "img-auth-nologinnWL": "Je bent niet aangemeld en \"$1\" staat niet op de witte lijst.",
-    "img-auth-isdir": "Je probeert de map \"$1\" te benaderen.\nAlleen toegang tot bestanden is toegestaan.",
-    "upload-curl-error28-text": "Het duurde te lang voordat de website antwoordde.\nControleer of de website beschikbaar is, wacht even en probeer het dan opnieuw.\nJe kunt het misschien proberen als het minder druk is.",
-    "upload_source_file": "(een bestand op je computer)",
-    "sharedupload-desc-edit": "Dit bestand komt van $1 en kan ook in andere projecten gebruikt worden.\nJe kunt de [$2 pagina met de bestandsbeschrijving] daar bewerken.",
-    "sharedupload-desc-create": "Dit bestand komt van $1 en kan ook in andere projecten gebruikt worden.\nJe kunt de beschrijving bewerken op de [$2 pagina met de bestandsbeschrijving].",
-    "filepage-nofile-link": "Er bestaat geen bestand met deze naam, maar je kunt het [$1 uploaden].",
-    "upload-disallowed-here": "Je kunt dit bestand niet overschrijven.",
-    "filerevert-intro": "Je bent '''[[Media:$1|$1]]''' aan het terugdraaien tot de [$4 versie op $2, $3].",
-    "filedelete-intro": "Je staat op het punt om het bestand '''[[Media:$1|$1]]''' te verwijderen, inclusief alle eerdere versies.",
-    "filedelete-intro-old": "Je bent de versie van '''[[Media:$1|$1]]''' van [$4 $3, $2] aan het verwijderen.",
-    "notargettext": "Je hebt niet opgegeven voor welke pagina of gebruiker je deze handeling wilt uitvoeren.",
-    "nopagetext": "De pagina die je wilt hernoemen bestaat niet.",
-    "booksources-text": "Hieronder staat een lijst met koppelingen naar andere websites die nieuwe of gebruikte boeken verkopen, en die wellicht meer informatie over het boek dat je zoekt hebben:",
-    "alllogstext": "Dit is het gecombineerde logboek van {{SITENAME}}.\nJe kunt ook kiezen voor specifieke logboeken en filteren op gebruiker (hoofdlettergevoelig) en paginanaam (hoofdlettergevoelig).",
-    "cachedspecial-viewing-cached-ttl": "Je bekijkt een cacheversie van deze pagina, die maximaal $1 oud is.",
-    "cachedspecial-viewing-cached-ts": "Je bekijkt een cacheversie van deze pagina, die mogelijk niet volledig is bijgewerkt.",
-    "mailnologintext": "Je moet [[Special:UserLogin|aangemeld]] zijn en een geldig e-mailadres in je [[Special:Preferences|voorkeuren]] vermelden om andere gebruikers te kunnen e-mailen.",
-    "emailpagetext": "Via dit formulier kan je een e-mail aan {{GENDER:$1|deze gebruiker}} verzenden.\nHet e-mailadres dat je hebt opgegeven bij [[Special:Preferences|je voorkeuren]] wordt als afzender gebruikt.\nDe ontvanger kan dus direct naar je reageren.",
-    "usermaildisabledtext": "Je kunt geen e-mail verzenden naar andere gebruikers op deze wiki",
-    "emailccsubject": "Kopie van je bericht aan $1: $2",
-    "emailsenttext": "Je e-mail is verzonden.",
-    "nowatchlist": "Je volglijst is leeg.",
-    "watchlistanontext": "Om je volglijst te bekijken of te bewerken moet je je $1.",
-    "watchnologintext": "Je dient [[Special:UserLogin|aangemeld]] te zijn om je volglijst te bewerken.",
-    "addedwatchtext": "De pagina \"[[:$1]]\" is toegevoegd aan je [[Special:Watchlist|volglijst]].\nToekomstige bewerkingen van deze pagina en de bijbehorende overlegpagina worden op daar weergegeven.",
-    "removedwatchtext": "De pagina \"[[:$1]]\" is van [[Special:Watchlist|je volglijst]] verwijderd.",
-    "watchlist-details": "Er {{PLURAL:$1|staat één pagina|staan $1 pagina's}} op je volglijst, exclusief overlegpagina's.",
-    "wlheader-showupdated": "Pagina's die zijn bewerkt sinds je laatste bezoek worden '''vet''' weergegeven",
-    "watchlistcontains": "Er {{PLURAL:$1|staat één pagina|staan $1 pagina's}} op je volglijst.",
-    "watcherrortext": "Er is een fout opgetreden tijdens het wijzigen van je volglijstinstellingen voor \"$1\".",
-    "enotif_lastvisited": "Zie $1 voor alle wijzigingen sinds je laatste bezoek.",
-    "enotif_body": "Hoi $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nSamenvatting van de wijziging: $PAGESUMMARY $PAGEMINOREDIT\n\nContactgegevens van de auteur:\nE-mailadres: $PAGEEDITOR_EMAIL\nWiki: $PAGEEDITOR_WIKI\n\nTenzij je deze pagina bezoekt, komen er geen verdere berichten. Op je volglijst kan je voor alle gevolgde pagina's de waarschuwingsinstellingen opschonen.\n\nGroet van je {{SITENAME}}-waarschuwingssysteem.\n\n--\nJe kunt je e-mailinstellingen wijzigen op:\n{{canonicalurl:{{#special:Preferences}}}}\n\nJe kunt je volglijstinstellingen wijzigen op:\n{{canonicalurl:Special:Watchlist/edit}}\n\nJe kunt de pagina van je volglijst verwijderen via de volgende koppeling:\n$UNWATCHURL\n\nTerugkoppeling en verdere assistentie:\n{{canonicalurl:{{MediaWiki:Helppage}}}}",
-    "historywarning": "'''Waarschuwing:''' de pagina die je wilt verwijderen heeft ongeveer $1 {{PLURAL:$1|versie|versies}}:",
-    "confirmdeletetext": "Je staat op het punt een pagina te verwijderen, inclusief de geschiedenis.\nBevestig hieronder dat dit inderdaad je bedoeling is, dat je de gevolgen begrijpt en dat de verwijdering overeenstemt met het [[{{MediaWiki:Policy-url}}|beleid]].",
-    "sessionfailure": "Er lijkt een probleem te zijn met je aanmeldsessie.\nJe handeling is gestopt uit voorzorg tegen een beveiligingsrisico (dat bestaat uit mogelijke \"hijacking\" van deze sessie).\nGa een pagina terug, laad die pagina opnieuw en probeer het nog eens.",
-    "protect-text": "Hier kun je het beveiligingsniveau voor de pagina '''$1''' bekijken en wijzigen.",
-    "protect-locked-blocked": "Je kunt het beveiligingsniveau niet wijzigen terwijl je geblokkeerd bent.\nHier zijn de huidige instellingen voor de pagina '''$1''':",
-    "protect-locked-access": "Je hebt geen rechten om het beveiligingsniveau te wijzigen.\nDit zijn de huidige instellingen voor de pagina '''$1''':",
-    "protect-cantedit": "Je kunt het beveiligingsniveau van deze pagina niet wijzigen, omdat je geen rechten hebt om het te bewerken.",
-    "undeletehistory": "Als je een pagina terugplaatst, worden alle versies hersteld.\nAls er al een nieuwe pagina met dezelfde naam is aangemaakt sinds de pagina is verwijderd, worden de eerder verwijderde versies teruggeplaatst en blijft de huidige versie intact.",
-    "undeleterevision-missing": "Ongeldige of missende versie.\nMogelijk heb je een verkeerde koppeling of is de versie hersteld of verwijderd uit het archief.",
-    "undelete-show-file-confirm": "Weet je zeker dat je een verwijderde versie van het bestand \"<nowiki>$1</nowiki>\" van $2 om $3 wilt bekijken?",
-    "ipb-blockingself": "Je staat op het punt jezelf te blokkeren. Weet je zeker dat je dat wilt doen?",
-    "ipb-confirmhideuser": "Je staat op het punt een verborgen gebruiker te blokkeren. Hiervoor worden gebruikersnamen in alle lijsten en logboekregels verborgen. Weet je het zeker?",
-    "ipb-needreblock": "$1 is al geblokkeerd.\nWil je de instellingen wijzigen?",
-    "unblock-hideuser": "Je kunt deze gebruiker niet deblokkeren, omdat de gebruikersnaam verborgen is.",
-    "proxyblockreason": "Dit is een automatische preventieve blokkade, omdat je gebruik maakt van een open proxyserver.\nNeem contact op met je internetprovider of je helpdesk en stel die op de hoogte van dit ernstige beveiligingsprobleem.",
-    "sorbsreason": "Je IP-adres staat bekend als open proxyserver in de DNS-blacklist die {{SITENAME}} gebruikt.",
-    "sorbs_create_account_reason": "Je IP-adres staat bekend als open proxyserver in de DNS-blacklist die {{SITENAME}} gebruikt.\nJe kunt geen gebruiker registreren.",
-    "cant-see-hidden-user": "De gebruiker die je probeert te blokken is al geblokkeerd en verborgen.\nOmdat je het recht \"hideuser\" niet hebt, kun je de blokkade van de gebruiker niet bekijken of bewerken.",
-    "ipbblocked": "Je kunt geen andere gebruikers (de)blokkeren, omdat je zelf geblokkeerd bent",
-    "ipbnounblockself": "Je mag jezelf niet deblokkeren",
-    "lockdbtext": "Waarschuwing: de database blokkeren heeft tot gevolg dat geen enkele gebruiker meer in staat is pagina's te bewerken, voorkeuren te wijzigen of iets anders te doen waarvoor wijzigingen in de database nodig zijn.\nBevestig dat je deze handeling wilt uitvoeren en dat je de database vrijgeeft nadat het onderhoud is uitgevoerd.",
-    "unlockdbtext": "Na het vrijgeven van de database kunnen gebruikers weer pagina's bewerken, hun voorkeuren wijzigen of iets anders te doen waarvoor er wijzigingen in de database nodig zijn.\nBevestig dat je deze handeling wil uitvoeren.",
-    "locknoconfirm": "Je hebt je keuze niet bevestigd via het vinkvakje.",
-    "lockdbsuccesstext": "De database is afgesloten.<br />\nVergeet niet de [[Special:UnlockDB|database vrij te geven]] zodra je klaar bent met je onderhoud.",
-    "movepagetext": "Door middel van het onderstaande formulier kan je een pagina hernoemen.\nDe geschiedenis gaat mee naar de nieuwe pagina.\n* De oude naam wordt automatisch een doorverwijzing naar de nieuwe pagina.\n* Koppelingen naar de oude pagina worden niet aangepast.\n* De pagina's die doorverwijzen naar de oorspronkelijke paginanaam worden automatisch bijgewerkt.\nAls je dit niet wilt, controleer dan of er geen [[Special:DoubleRedirects|dubbele]] of [[Special:BrokenRedirects|onjuiste doorverwijzingen]] zijn ontstaan.\n\nEen pagina kan '''alleen''' hernoemd worden als de nieuwe paginanaam niet bestaat of een doorverwijspagina zonder verdere geschiedenis is.\n\n'''Waarschuwing!'''\nVoor veel bekeken pagina's kan het hernoemen drastische en onvoorziene gevolgen hebben.\nZorg ervoor dat je die gevolgen overziet voordat je deze handeling uitvoert.",
-    "movepagetext-noredirectfixer": "Door middel van het onderstaande formulier kunt u een pagina en alle bijbehorende oude versies hernoemen.\nDe oude naam wordt automatisch een doorverwijzing naar de nieuwe pagina.\nControleer dan of er geen [[Special:DoubleRedirects|dubbele]] of [[Special:BrokenRedirects|onjuiste doorverwijzingen]] zijn ontstaan.\n\nEen pagina kan '''alleen''' hernoemd worden als de nieuwe paginanaam niet bestaat of een doorverwijspagina zonder verdere geschiedenis is.\nJe kunt dus een pagina die per ongeluk is hernoemd terug hernoemen en je kunt een bestaande pagina niet overschrijven. \n\n'''Waarschuwing:''' voor veel bekeken pagina's kan het hernoemen drastische en onvoorziene gevolgen hebben.\nZorg ervoor dat je die gevolgen overziet voordat je deze handeling uitvoert.",
-    "movepagetalktext": "De bijbehorende overlegpagina krijgt automatisch een andere naam, '''tenzij''':\n* De overlegpagina onder de nieuwe naam al bestaat;\n* Je het onderstaande vinkje deselecteert.\n\nIn die gevallen moet je de pagina handmatig hernoemen of samenvoegen.",
-    "moveuserpage-warning": "'''Waarschuwing:''' Je gaat een gebruikerspagina hernoemen.\nHoud er rekening mee dat alleen de pagina wordt hernoemd, ''niet'' de gebruiker.",
-    "movenologintext": "Je moet [[Special:UserLogin|aangemeld]] zijn om een pagina te hernoemen.",
-    "movenotallowed": "Je hebt geen rechten om pagina's te hernoemen.",
-    "movenotallowedfile": "Je hebt geen rechten om bestanden te hernoemen.",
-    "cant-move-user-page": "Je hebt geen rechten om gebruikerspagina's te hernoemen (met uitzondering van subpagina's).",
-    "cant-move-to-user-page": "Je hebt geen rechten om een pagina naar een gebruikerspagina te hernoemen. Hernoemen naar een subpagina is wel mogelijk.",
-    "cantmove-titleprotected": "Je kunt geen pagina naar deze naam hernoemen, omdat deze naam beveiligd is tegen het aanmaken ervan.",
-    "delete_and_move_text": "==Verwijdering nodig==\nOnder de naam \"[[:$1]]\" bestaat al een pagina.\nWil je deze verwijderen om plaats te maken voor de te hernoemen pagina?",
-    "exporttext": "Je kunt de tekst en geschiedenis van een pagina of pagina's exporteren naar XML.\nDit exportbestand is daarna te importeren in een andere MediaWiki via de [[Special:Import|importpagina]].\n\nGeef in het onderstaande veld de namen van de te exporteren pagina's op, één pagina per regel, en geef aan of je alle versies met de bewerkingssamenvatting of alleen de huidige versies met de bewerkingssamenvatting wilt exporteren.\n\nIn het laatste geval kan je ook een koppeling gebruiken, bijvoorbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] voor de pagina \"[[{{MediaWiki:Mainpage}}]]\".",
-    "allmessagestext": "Hieronder staan de systeemberichten uit de MediaWiki-naamruimte.\nGa naar [https://www.mediawiki.org/wiki/Localisation MediaWiki-lokalisatie] en [//translatewiki.net translatewiki.net] als je wilt bijdragen aan de algemene vertaling voor MediaWiki.",
-    "importtext": "Gebruik de [[Special:Export|exportfunctie]] in de wiki waar de informatie vandaan komt.\nSla de uitvoer op je eigen computer op, en voeg die daarna hier toe.",
-    "import-error-edit": "De pagina \"$1\" is niet geïmporteerd omdat je niet de rechten hebt om die te bewerken.",
-    "import-error-create": "De pagina \"$1\" is niet geïmporteerd omdat je niet de rechten hebt om die aan te maken.",
-    "tooltip-pt-userpage": "Jouw gebruikerspagina",
-    "tooltip-pt-anonuserpage": "Gebruikerspagina voor je IP-adres",
-    "tooltip-pt-mytalk": "Jouw overlegpagina",
-    "tooltip-pt-watchlist": "Overzicht van pagina's die je volgt",
-    "tooltip-pt-mycontris": "Overzicht van je bijdragen",
-    "tooltip-pt-login": "Je wordt van harte uitgenodigd om je aan te melden als gebruiker, maar dit is niet verplicht",
-    "tooltip-ca-edit": "Je kunt deze pagina bewerken.\nGebruik de voorbeeldweergaveknop alvorens te bewaren.",
-    "tooltip-ca-viewsource": "Deze pagina is beveiligd.\nJe kunt wel de broncode bekijken.",
-    "tooltip-ca-nstab-special": "Dit is een speciale pagina, je kunt de pagina zelf niet bewerken",
-    "tooltip-save": "Je wijzigingen opslaan",
-    "tooltip-preview": "Een voorvertoning maken. Gebruik dit voordat je opslaat!",
-    "tooltip-watch": "Deze pagina aan je volglijst toevoegen",
-    "notacceptable": "De wikiserver kan de gegevens niet leveren in een vorm die je browser kan lezen.",
-    "spamprotectiontext": "De pagina die je wilde opslaan is geblokkeerd door het spamfilter.\nMeestal wordt dit door een externe koppeling op een zwarte lijst veroorzaakt.",
-    "markedaspatrollederror-noautopatrol": "Je kunt je eigen wijzigingen niet als gecontroleerd markeren.",
-    "mediawarning": "'''Waarschuwing''': dit bestandstype bevat mogelijk programmacode die je systeem schade kan berokkenen.",
-    "confirmemail_noemail": "Je hebt geen geldig e-mailadres opgegeven in je [[Special:Preferences|gebruikersvoorkeuren]].",
-    "confirmemail_text": "{{SITENAME}} eist bevestiging van je e-mailadres voordat je de e-mailmogelijkheden kunt gebruiken.\nKlik op de onderstaande knop om een bevestigingsbericht te ontvangen.\nDit bericht bevat een koppeling met een code.\nOpen die koppeling om je e-mailadres te bevestigen.",
-    "confirmemail_pending": "Er is al een bevestigingsbericht aan je verzonden.\nAls je recentelijk je gebruiker hebt aangemaakt, wacht dan een paar minuten totdat die aankomt voordat je opnieuw een e-mail laat sturen.",
-    "confirmemail_oncreate": "Er is een bevestigingscode naar je e-mailadres verzonden.\nDeze code is niet nodig om je aan te melden, maar je dient deze wel te bevestigen voordat je de e-mailmogelijkheden van deze wiki kunt gebruiken.",
-    "confirmemail_sendfailed": "{{SITENAME}} kon je bevestigingscode niet verzenden.\nControleer je e-mailadres op ongeldige tekens.\n\nHet e-mailprogramma meldde: $1",
-    "confirmemail_needlogin": "Je moet $1 om je e-mailadres te bevestigen.",
-    "confirmemail_success": "Je e-mailadres is bevestigd.\nJe kunt jezelf nu [[Special:UserLogin|aanmelden]] en {{SITENAME}} gebruiken.",
-    "confirmemail_loggedin": "Je e-mailadres is nu bevestigd.",
-    "confirmemail_body": "Iemand, waarschijnlijk jijzelf, met het IP-adres $1,\nheeft zich met dit e-mailadres geregistreerd als gebruiker \"$2\" op {{SITENAME}}.\n\nOpen de volgende koppeling in je webbrowser om te bevestigen dat je deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} te activeren:\n\n$3\n\nAls je jezelf *niet* hebt aangemeld, volg dan de volgende koppeling om de bevestiging van je e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
-    "confirmemail_body_changed": "Iemand, waarschijnlijk jijzelf, met het IP-adres $1,\nheeft het het e-mailadres geregistreerd voor gebruiker \"$2\" op {{SITENAME}} gewijzigd naar dit e-mailadres.\n\nOpen de volgende koppeling in je webbrowser om te bevestigen dat je deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} opnieuw te activeren:\n\n$3\n\nAls je jezelf *niet* hebt aangemeld, volg dan de volgende koppeling om de bevestiging van je e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
-    "confirmemail_body_set": "Iemand, waarschijnlijk jij, met het IP-adres $1,\nheeft het het e-mailadres voor gebruiker \"$2\" op {{SITENAME}} ingesteld op dit e-mailadres.\n\nOpen de volgende koppeling in je webbrowser om te bevestigen dat jij deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} opnieuw te activeren:\n\n$3\n\nAls jij deze wijziging *niet* hebt gemaakt, volg dan de volgende koppeling om de bevestiging van uw e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
-    "deletedwhileediting": "'''Let op''': deze pagina is verwijderd terwijl je bezig was met je bewerking!",
-    "confirmrecreate": "Nadat je begonnen bent met je wijziging heeft [[User:$1|$1]] ([[User talk:$1|overleg]]) deze pagina verwijderd met opgave van de volgende reden:\n: ''$2''\nBevestig dat je de pagina opnieuw wilt aanmaken.",
-    "confirmrecreate-noreason": "Nadat je begonnen bent met je wijziging heeft [[User:$1|$1]] ([[User talk:$1|overleg]]) deze pagina verwijderd.\nBevestig dat je de pagina opnieuw wilt aanmaken.",
-    "confirm-watch-top": "Deze pagina toevoegen aan je volglijst?",
-    "confirm-unwatch-top": "Deze pagina verwijderen uit je volglijst?",
-    "watchlistedit-numitems": "Je volglijst bevat {{PLURAL:$1|1 pagina|$1 pagina’s}}, zonder overlegpagina’s.",
-    "watchlistedit-noitems": "Je volglijst bevat geen pagina’s.",
-    "watchlistedit-normal-explain": "Hieronder worden de pagina’s op je volglijst weergegeven.\nKlik op het vierkantje ernaast en daarna op \"{{int:Watchlistedit-normal-submit}}\" om een pagina te verwijderen.\nJe kunt ook de [[Special:EditWatchlist/raw|ruwe lijst bewerken]].",
-    "watchlistedit-normal-done": "Er {{PLURAL:$1|is één pagina|zijn $1 pagina’s}} verwijderd van je volglijst:",
-    "watchlistedit-raw-explain": "Hieronder staan pagina’s op je volglijst.\nJe kunt de lijst bewerken door pagina’s te verwijderen en toe te voegen.\nEén pagina per regel.\nAls je klaar bent, klik dan op \"{{int:Watchlistedit-raw-submit}}\".\nJe kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].",
-    "watchlistedit-raw-done": "Je volglijst is bijgewerkt.",
-    "version-license-info": "MediaWiki is vrije software; je kunt MediaWiki verspreiden en/of aanpassen onder de voorwaarden van de GNU General Public License zoals gepubliceerd door de Free Software Foundation; ofwel versie 2 van de Licentie, of - zo je wilt - enige latere versie.\n\nMediaWiki wordt verspreid in de hoop dat het nuttig is, maar ZONDER ENIGE GARANTIE; zonder zelfs de implicitiete garantie van VERKOOPBAARHEID of GESCHIKHEID VOOR ENIG DOEL IN HET BIJZONDER. Zie de GNU General Public License voor meer informatie.\n\nSamen met dit programma hoor je een [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de GNU General Public License] te hebben ontvangen; zo niet, schrijf dan naar de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA of [//www.gnu.org/licenses/old-licenses/gpl-2.0.html lees de licentie online].",
-    "compare-title-not-exists": "De titel die je hebt opgegeven bestaat niet.",
-    "compare-revision-not-exists": "De versie die je hebt opgegeven bestaat niet.",
-    "dberr-usegoogle": "Wellicht kun je in de tussentijd zoeken via Google.",
-    "htmlform-float-invalid": "De waarde die je hebt opgegeven is geen getal.",
-    "feedback-bugornote": "Als je zover bent om een technisch probleem in detail te beschrijven, [$1 rapporteer dan een bug].\nAnders kan je ook het eenvoudige formulier hieronder gebruiken.\nJe reactie wordt dan toegevoegd aan de pagina \"[$3 $2]\", samen met je gebruikersnaam en de browser die je gebruikt.",
-    "feedback-thanks": "Bedankt! Je terugkoppeling is op de pagina \"[$2 $1]\" geplaatst.",
-    "api-error-badaccess-groups": "Je mag geen bestanden uploaden in deze wiki.",
-    "api-error-empty-file": "Het bestand dat je hebt geüpload is leeg.",
-    "api-error-file-too-large": "Het bestand dat je hebt geüpload is te groot.",
-    "api-error-hookaborted": "De wijziging die je probeert te maken is afgebroken door een uitbreiding.",
-    "api-error-internal-error": "Interne fout: er is iets misgegaan tijdens het verwerken van je upload door de wiki.",
-    "api-error-mustbeloggedin": "Je moet aangemeld zijn om bestanden te kunnen uploaden.",
-    "api-error-unknown-error": "Interne fout: er is iets misgegaan tijdens het uploaden van je bestand."
+       "@metadata": {
+               "authors": [
+                       "HanV",
+                       "MarkvA",
+                       "Siebrand",
+                       "Tedjuh10",
+                       "Southparkfan"
+               ]
+       },
+       "view-pool-error": "De servers zijn op het moment helaas overbelast.\nTe veel gebruikers proberen deze pagina te bekijken.\nWacht even voordat je opnieuw toegang probeert te krijgen tot deze pagina.\n\n$1",
+       "generic-pool-error": "De servers zijn op het moment helaas overbelast.\nTe veel gebruikers proberen deze pagina te bekijken.\nWacht even voordat je opnieuw toegang probeert te krijgen tot deze pagina.",
+       "badaccess-group0": "Je hebt geen rechten om de gevraagde handeling uit te voeren.",
+       "youhavenewmessages": "Je hebt $1 ($2).",
+       "youhavenewmessagesfromusers": "Je hebt $1 van {{PLURAL:$3|een andere gebruiker|$3 gebruikers}} ($2).",
+       "youhavenewmessagesmanyusers": "Je hebt $1 van een groot aantal gebruikers ($2).",
+       "youhavenewmessagesmulti": "Je hebt nieuwe berichten op $1",
+       "nosuchactiontext": "De opdracht in de URL is ongeldig.\nMogelijk heb je een typefout gemaakt in de URL of een onjuiste koppeling gevolgd.\nHet kan ook wijzen op een fout in de software van {{SITENAME}}.",
+       "nospecialpagetext": "<strong>Je hebt een onbestaande speciale pagina opgevraagd.</strong>\n\nEen lijst met bestaande speciale pagina’s staat op [[Special:SpecialPages|speciale pagina’s]].",
+       "missing-article": "In de database is geen inhoud aangetroffen voor de pagina \"$1\" die er wel zou moeten zijn ($2).\n\nDit kan voorkomen als je een verouderde koppeling naar het verschil tussen twee versies van een pagina volgt of een versie opvraagt die is verwijderd.\n\nAls dit niet het geval is, heb je wellicht een fout in de software gevonden.\nMaak hiervan melding bij een [[Special:ListUsers/sysop|beheerder]] van {{SITENAME}} en vermeld daarbij de URL van deze pagina.",
+       "actionthrottledtext": "Als maatregel tegen spam is het aantal keren per tijdseenheid dat je deze handeling kunt verrichten beperkt.\nDe limiet is overschreden.\nProbeer het over een aantal minuten opnieuw.",
+       "viewsourcetext": "Je kunt de brontekst van deze pagina bekijken en kopiëren:",
+       "viewyourtext": "Je kunt '''uw bewerkingen''' aan de brontekst van deze pagina bekijken en kopiëren:",
+       "editinginterface": "'''Waarschuwing:''' je bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "namespaceprotected": "Je hebt geen rechten om pagina's in de naamruimte '''$1''' te bewerken.",
+       "customcssprotected": "Je kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
+       "customjsprotected": "Je kunt deze JavaScriptpagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
+       "exception-nologin-text": "Om deze pagina te bekijken of deze handeling uit te kunnen voeren moet je aangemeld zijn bij deze wiki.",
+       "logouttext": "<strong>Je bent nu afgemeld.</strong>\n\nMogelijk worden nog een aantal pagina's weergegeven alsof je aangemeld bent totdat je de cache van je browser leegt.",
+       "welcomecreation-msg": "Je gebruiker is aangemaakt.\nVergeet niet je [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te passen.",
+       "userlogin-yourname-ph": "Geef je gebruikersnaam op",
+       "userlogin-yourpassword-ph": "Geef je wachtwoord op",
+       "yourpasswordagain": "Geef je wachtwoord opnieuw in:",
+       "yourdomainname": "Je domein:",
+       "password-change-forbidden": "Je kunt je wachtwoord niet wijzigen in deze wiki.",
+       "externaldberror": "Er is een fout opgetreden bij het aanmelden bij de database of je hebt geen toestemming je externe gebruiker bij te werken.",
+       "gotaccount": "Heb je al een gebruikersnaam? '''$1'''.",
+       "userlogin-resetlink": "Ben je je aanmeldgegevens vergeten?",
+       "createacct-email-ph": "Geef je e-mailadres op",
+       "nocookiesnew": "De gebruiker is geregistreerd, maar jij bent niet aangemeld.\n{{SITENAME}} gebruikt cookies voor het aanmelden van gebruikers.\nSchakel die in en meld daarna aan met je nieuwe gebruikersnaam en wachtwoord.",
+       "nocookieslogin": "{{SITENAME}} gebruikt cookies voor het aanmelden van gebruikers.\nCookies zijn uitgeschakeld in je browser.\nSchakel deze optie aan en probeer het opnieuw.",
+       "nocookiesfornew": "De gebruiker is niet gemaakt omdat de bron niet bevestigd kon worden.\nZorg ervoor dat je cookies hebt ingeschakeld, herlaad deze pagina en probeer het opnieuw.",
+       "noname": "Je hebt geen geldige gebruikersnaam opgegeven.",
+       "loginsuccess": "'''Je bent nu aangemeld bij {{SITENAME}} als \"$1\".'''",
+       "nouserspecified": "Geef een gebruikersnaam op.",
+       "password-name-match": "Je wachtwoord en uw gebruikersnaam mogen niet overeenkomen.",
+       "passwordremindertext": "Iemand, waarschijnlijk jijzelf, heeft vanaf IP-adres $1 een verzoek\ngedaan tot het toezenden van een nieuw wachtwoord voor {{SITENAME}}\n($4). Er is een tijdelijk wachtwoord aangemaakt voor gebruiker \"$2\":\n\"$3\". Als dat je bedoeling was, meld je dan nu aan en kies een nieuw\nwachtwoord.\nJe tijdelijke wachtwoord vervalt over {{PLURAL:$5|$5 dag|$5 dagen}}.\n\nAls iemand anders dan jij dit verzoek heeft gedaan of als je zich inmiddels het\nwachtwoord herinnert en het niet langer wilt wijzigen, negeer dit bericht\ndan en blijf je bestaande wachtwoord gebruiken.",
+       "noemailcreate": "Je moet een geldig e-mailadres opgeven",
+       "passwordsent": "Het wachtwoord is verzonden naar het e-mailadres voor \"$1\".\nMeld je aan nadat je het hebt ontvangen.",
+       "blocked-mailpassword": "Je IP-adres is geblokkeerd voor het maken van wijzigingen.\nOm misbruik te voorkomen is het niet mogelijk om een nieuw wachtwoord aan te vragen.",
+       "eauthentsent": "Er is ter bevestiging een e-mail naar het opgegeven e-mailadres gezonden.\nVolg de aanwijzingen in de e-mail om aan te geven dat het jouw e-mailadres is.\nTot die tijd worden er geen e-mails naar het e-mailadres gezonden.",
+       "acct_creation_throttle_hit": "Bezoekers van deze wiki met hetzelfde IP-adres als jij hebben de afgelopen dag al $1 gebruiker{{PLURAL:$1||s}} geregistreerd, wat het maximale aantal in deze periode is.\nDaarom kan je vanaf je IP-adres op dit moment geen nieuwe gebruikers registreren.",
+       "emailauthenticated": "Je e-mailadres is bevestigd op $2 om $3.",
+       "emailnotauthenticated": "Je e-mailadres is niet bevestigd.\nJe ontvangt geen e-mail voor de onderstaande functies.",
+       "noemailprefs": "Geef een e-mailadres op in je voorkeuren om deze functies te gebruiken.",
+       "emailconfirmlink": "Bevestig je e-mailadres",
+       "createaccount-text": "Iemand heeft een gebruiker op {{SITENAME}} ($4) aangemaakt met de naam \"$2\" en jouw e-mailadres.\nHet wachtwoord voor \"$2\" is \"$3\".\nMeld je aan en wijzig je wachtwoord.\n\nNegeer dit bericht als deze gebruiker zonder jouw medeweten is aangemaakt.",
+       "login-throttled": "Je hebt recentelijk te vaak geprobeerd aan te melden met een onjuist wachtwoord.\nWacht even voordat je het opnieuw probeert.",
+       "login-abort-generic": "Je bent niet aangemeld. De procedure is afgebroken.",
+       "suspicious-userlogout": "Je verzoek om af te melden is genegeerd, omdat het lijkt alsof het verzoek is verzonden door een browser of cacheproxy die stuk is.",
+       "resetpass_announce": "Voer een nieuw wachtwoord in om het aanmelden te voltooien:",
+       "changepassword-success": "Je wachtwoord is gewijzigd.",
+       "resetpass-no-info": "Je moet aangemeld zijn voordat je deze pagina kunt gebruiken.",
+       "resetpass-wrong-oldpass": "Het huidige of tijdelijke wachtwoord is ongeldig.\nMogelijk heb je je wachtwoord al gewijzigd of een nieuw tijdelijk wachtwoord aangevraagd.",
+       "passwordreset-capture-help": "Als je dit vakje aanvinkt, wordt de e-mail (met het tijdelijke wachtwoord) naar de gebruiker verzonden en ook aan jou weergegeven.",
+       "passwordreset-emailtext-ip": "Iemand, waarschijnlijk jij, heeft vanaf het IP-adres $1 je gebruikersgegevens voor {{SITENAME}} ($4) opgevraagd.\nDe volgende {{PLURAL:$3|gebruiker is|gebruikers zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}.\nMeld je aan en wijzig het wachtwoord nu. Als je dit verzoek niet zelf hebt gedaan, of als je het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf je oude wachtwoord gebruiken.",
+       "passwordreset-emailtext-user": "Gebruiker $1 op de site {{SITENAME}} heeft je gebruikersgegevens voor {{SITENAME}} ($4) opgevraagd.\nDe volgende {{PLURAL:$3|gebruiker is|gebruikers zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}.\nMeld je aan en wijzig het wachtwoord nu. Als je dit verzoek niet zelf hebt gedaan, of als je het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf je oude wachtwoord gebruiken.",
+       "changeemail-text": "Vul dit formulier in om je e-mailadres te wijzigen. Je moet je wachtwoord invoeren om deze wijziging te bevestigen.",
+       "changeemail-no-info": "Je moet aangemeld zijn om rechtstreeks toegang te hebben tot deze pagina.",
+       "changeemail-password": "Jouw wachtwoord voor {{SITENAME}}:",
+       "sig_tip": "Je handtekening met datum en tijd",
+       "anoneditwarning": "'''Waarschuwing:''' je bent niet aangemeld.\nJe IP-adres wordt opgeslagen als je wijzigingen op deze pagina maakt.",
+       "anonpreviewwarning": "''Je bent niet aangemeld.''\n''Door je bewerking op te slaan wordt je IP-adres opgeslagen in de paginageschiedenis.''",
+       "missingsummary": "'''Let op:''' je hebt geen samenvatting opgegeven voor je bewerking.\nAls je nogmaals op ''Pagina opslaan'' klikt wordt de bewerking zonder samenvatting opgeslagen.",
+       "missingcommenttext": "Plaats je reactie hieronder.",
+       "missingcommentheader": "'''Let op:''' Je hebt geen onderwerp/kop voor deze reactie opgegeven.\nAls je opnieuw op \"{{int:savearticle}}\" klikt, wordt je wijziging zonder een onderwerp of koptekst opgeslagen.",
+       "blockedtext": "'''Je gebruiker of IP-adres is geblokkeerd.'''\n\nDe blokkade is uitgevoerd door $1.\nDe opgegeven reden is ''$2''.\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nJe kunt contact opnemen met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] om de blokkade te bespreken.\nJe kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij je een geldig e-mailadres hebt opgegeven in je [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet geblokkeerd is.\nJe huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als je ergens op deze blokkade reageert.",
+       "autoblockedtext": "Je IP-adres is automatisch geblokkeerd, omdat het is gebruikt door een andere gebruiker, die is geblokkeerd door $1.\nDe opgegeven reden is:\n\n:''$2''\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nJe kunt deze blokkade bespreken met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]].\n\nJe kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij je een geldig e-mailadres hebt opgegeven in je [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet is geblokkeerd.\n\nJe huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als je ergens op deze blokkade reageert.",
+       "whitelistedittext": "Je moet $1 om pagina's te bewerken.",
+       "confirmedittext": "Je moet je e-mailadres bevestigen voor je kunt bewerken.\nVoer je e-mailadres in en bevestig het via je [[Special:Preferences|voorkeuren]].",
+       "nosuchsectiontext": "Je probeerde een subkopje te bewerken dat niet bestaat.\nWellicht is het verplaatst of verwijderd terwijl je de pagina aan het bekijken was.",
+       "loginreqpagetext": "Je moet je $1 om andere pagina's te kunnen bekijken.",
+       "newarticletext": "Deze pagina bestaat niet.\nTyp in het onderstaande veld om de pagina aan te maken (meer informatie staat op de [$1 hulppagina]).\nGebruik de knop '''vorige''' in je browser als je hier per ongeluk terecht bent gekomen.",
+       "anontalkpagetext": "----''Deze overlegpagina hoort bij een anonieme gebruiker die geen gebruikersnaam heeft of deze niet gebruikt.\nDaarom wordt het IP-adres ter identificatie gebruikt.\nHet is mogelijk dat meerdere personen hetzelfde IP-adres gebruiken.\nMogelijk ontvang je hier berichten die niet voor je bedoeld zijn.\nAls je dat wilt voorkomen, [[Special:UserLogin/signup|registreer je]] of [[Special:UserLogin|meld je aan]] om verwarring met andere anonieme gebruikers te voorkomen.''",
+       "noarticletext": "Deze pagina bevat geen tekst.\nJe kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina's, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken doorzoeken] of [{{fullurl:{{FULLPAGENAME}}|action=edit}} deze pagina bewerken]</span>.",
+       "noarticletext-nopermission": "Deze pagina bevat geen tekst.\nJe kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina's of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken doorzoeken]</span>, maar je mag de pagina niet aanmaken.",
+       "userpage-userdoesnotexist": "Je bewerkt een gebruikerspagina van een gebruiker die niet bestaat (gebruiker \"$1\").\nControleer of je deze pagina wel wilt aanmaken/bewerken.",
+       "clearyourcache": "'''Let op!''' Nadat je de wijzigingen hebt opgeslagen is het wellicht nodig je browsercache te legen.\n* '''Firefox / Safari:''' houd ''Shift'' ingedrukt terwijl je op ''Vernieuwen'' klikt of druk op ''Ctrl-F5'' of ''Ctrl-R'' (''⌘-Shift-R'' op een Mac)\n* '''Google Chrome:''' druk op ''Ctrl-Shift-R'' (''⌘-Shift-R'' op een Mac)\n* '''Internet Explorer:''' houd ''Ctrl'' ingedrukt terwijl je op ''Vernieuwen'' klikt of druk op ''Ctrl-F5''\n* '''Opera:''' leeg je cache in ''Extra → Voorkeuren''",
+       "usercssyoucanpreview": "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om je nieuwe CSS te testen alvorens op te slaan.",
+       "userjsyoucanpreview": "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om je nieuwe JavaScript te testen alvorens op te slaan.",
+       "usercsspreview": "'''Dit is alleen een voorvertoning van je persoonlijke CSS.\nDeze is nog niet opgeslagen!'''",
+       "userjspreview": "'''Let op: je test nu je persoonlijke JavaScript.'''\n'''De pagina is niet opgeslagen!'''",
+       "userinvalidcssjstitle": "'''Waarschuwing:''' er is geen uiterlijk \"$1\".\nJe eigen .css- en .js-pagina's beginnen met een kleine letter, bijvoorbeeld {{ns:user}}:Naam/vector.css in plaats van {{ns:user}}:Naam/Vector.css.",
+       "previewnote": "'''Let op: dit is een controlepagina.'''\nJe tekst is niet opgeslagen!",
+       "previewconflict": "Deze voorvertoning geeft aan hoe de tekst in het bovenste veld eruit ziet als je deze opslaat.",
+       "session_fail_preview": "'''Je bewerking is niet verwerkt, omdat de sessiegegevens verloren zijn gegaan.\nProbeer het opnieuw.\nAls het dan nog niet lukt, [[Special:UserLogout|meld jezelf dan af]] en weer aan.'''",
+       "session_fail_preview_html": "'''Je bewerking is niet verwerkt, omdat sessiegegevens verloren zijn gegaan.'''\n\n''Omdat in {{SITENAME}} ruwe HTML is ingeschakeld, is een voorvertoning niet mogelijk als bescherming tegen aanvallen met JavaScript.''\n\n'''Als dit een legitieme bewerking is, probeer het dan opnieuw.\nAls het dan nog niet lukt, [[Special:UserLogout|meld jezelf dan af]] en weer aan.'''",
+       "token_suffix_mismatch": "'''Je bewerking is geweigerd, omdat je browser de leestekens in het bewerkingstoken onjuist heeft behandeld.'''\nDe bewerking is geweigerd om verminking van de paginatekst te voorkomen.\nDit gebeurt soms als er een webgebaseerde proxydienst wordt gebruikt die fouten bevat.",
+       "edit_form_incomplete": "'''Sommige onderdelen van het bewerkingsformulier hebben de server niet bereikt. Controleer of je bewerkingen intact zijn en probeer het opnieuw.'''",
+       "explainconflict": "Een andere gebruiker heeft deze pagina bewerkt sinds je met je bewerking bent begonnen.\nIn het bovenste deel van het venster staat de tekst van de huidige pagina.\nJe bewerking staat in het onderste gedeelte.\nJe dient je bewerkingen in te voegen in de bestaande tekst.\n'''Alleen''' de tekst in het bovenste gedeelte wordt opgeslagen als je op \"{{int:savearticle}}\" klikt.",
+       "yourtext": "Je tekst",
+       "nonunicodebrowser": "'''Waarschuwing: je browser kan niet goed overweg met Unicode.'''\nHiermee wordt door de MediaWiki-software rekening gehouden zodat je toch zonder problemen pagina's kunt bewerken: niet-ASCII tekens worden in het bewerkingsveld weergegeven als hexadecimale codes.",
+       "editingold": "'''Waarschuwing: je bewerkt een oude versie van deze pagina.'''\nAls je je bewerking opslaat, gaan alle wijzigingen verloren die na deze versie zijn gemaakt.",
+       "copyrightwarning": "Let op: alle bijdragen aan {{SITENAME}} worden geacht te zijn vrijgegeven onder de $2 (zie $1 voor details).\nAls je niet wilt dat je tekst door anderen naar believen bewerkt en verspreid kan worden, kies dan niet voor \"Pagina opslaan\".<br />\nHierbij beloof je ons tevens dat je deze tekst zelf hebt geschreven of overgenomen uit een vrije, openbare bron.<br />\n'''Gebruik geen materiaal dat beschermd wordt door auteursrecht, tenzij je daarvoor toestemming hebt!'''",
+       "copyrightwarning2": "Al je bijdragen aan {{SITENAME}} kunnen bewerkt, gewijzigd of verwijderd worden door andere gebruikers.\nAls je niet wilt dat je teksten rigoureus aangepast worden door anderen, plaats ze hier dan niet.<br />\nJe belooft ook dat je de oorspronkelijke auteur bent van dit materiaal of dat je het hebt gekopieerd uit een bron in het publieke domein of een soortgelijke vrije bron (zie $1 voor details).\n'''Gebruik geen materiaal dat beschermd wordt door auteursrecht, tenzij je daarvoor toestemming hebt!'''",
+       "longpageerror": "'''Fout: de tekst die je hebt toegevoegd is {{PLURAL:$1|één kilobyte|$1 kilobyte}} groot, wat groter is dan het maximum van {{PLURAL:$2|één kilobyte|$2 kilobyte}}.'''\nOpslaan is niet mogelijk.",
+       "readonlywarning": "'''Waarschuwing: je kunt deze bewerking nu niet opslaan omdat de database is geblokkeerd voor bewerkingen wegens onderhoudswerkzaamheden.'''\nHet is misschien verstandig om je tekst tijdelijk in een tekstbestand op te slaan om dit te bewaren voor wanneer de blokkering van de database opgeheven is.\n\nEen beheerder heeft de database geblokkeerd om de volgende reden: $1",
+       "nocreatetext": "{{SITENAME}} heeft de mogelijkheid om nieuwe pagina's te maken beperkt.\nJe kunt reeds bestaande pagina's wijzigen of je kunt [[Special:UserLogin|jezelf aanmelden of registreren]].",
+       "nocreate-loggedin": "Je hebt geen rechten om nieuwe pagina's te maken.",
+       "permissionserrorstext": "Je hebt geen rechten om dit te doen om de volgende {{PLURAL:$1|reden|redenen}}:",
+       "permissionserrorstext-withaction": "Je hebt geen rechten om $2 om de volgende {{PLURAL:$1|reden|redenen}}:",
+       "recreate-moveddeleted-warn": "'''Waarschuwing: je bent bezig met het aanmaken van een pagina die in het verleden verwijderd is.'''\n\nOverweeg of het terecht is dat je verder werkt aan deze pagina.\nVoor je gemak staan hieronder het verwijderingslogboek en het hernoemingslogboek voor deze pagina:",
+       "edit-no-change": "Je bewerking is genegeerd, omdat er geen wijziging aan de tekst is gemaakt.",
+       "editwarning-warning": "Als je deze pagina verlaat verlies je mogelijk wijzigingen die je hebt gemaakt.\nAls je bent aangemeld, kan je deze waarschuwing uitschakelen in het tabblad \"Bewerken\" in je voorkeuren.",
+       "rev-deleted-text-unhide": "Deze paginaversie is '''verwijderd'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].\nAls je wilt kan je [$1 deze versie bekijken].",
+       "rev-suppressed-text-unhide": "Deze paginaversie is '''onderdrukt'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} logboek onderdrukte versies].\nAls je wilt kan je [$1 deze versie bekijken].",
+       "rev-deleted-text-view": "Deze paginaversie is '''verwijderd'''.\nJe kunt deze bekijken; er kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
+       "rev-suppressed-text-view": "Deze paginaversie is '''onderdrukt'''.\nJe kunt deze bekijken; er kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} logboek onderdrukte versies].",
+       "rev-deleted-no-diff": "Je kunt de verschillen niet bekijken, omdat een van de versies is '''verwijderd'''.\nAchtergronden zijn mogelijk te vinden in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
+       "rev-suppressed-no-diff": "Je kunt de verschillen niet bekijken, omdat een van de versies is '''verwijderd'''.",
+       "rev-deleted-unhide-diff": "Een van de bewerkingen voor de verschillen die je hebt opgevraagd is '''verwijderd'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].\nAls je wilt kan je [$1 de verschillen bekijken].",
+       "rev-suppressed-unhide-diff": "Een van de versies in deze verschillen is '''onderdrukt'''.\nEr kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} verbergingslogboek].\nAls je wilt kan je [$1 deze versie bekijken].",
+       "rev-deleted-diff-view": "Een van de versies van de verschillen die je hebt opgevraagd is verwijderd, \nJe kunt deze verschillen bekijken. Mogelijk zijn details zichtbaar in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].",
+       "rev-suppressed-diff-view": "Een van de bewerkingen voor de verschillen die u hebt opgevraagd, is '''onderdrukt'''.\nJe kunt deze verschillen bekijken. Er kunnen details te vinden zijn in het [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} verbergingslogboek].",
+       "revdelete-nooldid-text": "Je hebt geen doelversie(s) voor deze handeling opgegeven, de opgegeven versie bestaat niet of je probeert de laatste versie te verbergen.",
+       "revdelete-show-file-confirm": "Weet je zeker dat je de verwijderde versie van het bestand \"<nowiki>$1</nowiki>\" van $2 om $3 wilt bekijken?",
+       "revdelete-confirm": "Bevestig dat je dit wilde doen, dat je de consequenties begrijpt en dat je dit doet in overeenstemming met het geldende [[{{MediaWiki:Policy-url}}|beleid]].",
+       "revdelete-show-no-access": "Er is een fout opgetreden tijdens het weergeven van het object van $1 om $2: dit object is gemarkeerd als \"beschermd\".\nJe hebt geen toegang tot dit object.",
+       "revdelete-modify-no-access": "Er is een fout opgetreden tijdens het wijzigen van het object van $1 om $2: dit object is gemarkeerd als \"beschermd\".\nJe hebt geen toegang tot dit object.",
+       "revdelete-only-restricted": "Er is een fout opgetreden tijdens het verbergen van het item van $1, $2: je kunt geen items onderdrukken uit het zicht van beheerders zonder ook een van de andere zichtbaarheidsopties te selecteren.",
+       "mergehistory-header": "Via deze pagina kan je versies van de geschiedenis van een bronpagina naar een nieuwere pagina samenvoegen.\nZorg dat deze wijziging de geschiedenis van de pagina behoudt.",
+       "search-suggest": "Bedoelde je: $1",
+       "searchdisabled": "Zoeken in {{SITENAME}} is niet mogelijk.\nJe kunt gebruik maken van Google.\nDe gegevens over {{SITENAME}} zijn mogelijk niet bijgewerkt.",
+       "savedprefs": "Je voorkeuren zijn opgeslagen.",
+       "prefs-reset-intro": "Gebruik deze functie om je voorkeuren te herstellen naar de standaardinstellingen.\nDeze handeling kan niet ongedaan gemaakt worden.",
+       "youremail": "E-mailadres:",
+       "prefs-help-variant": "Jouw voorkeursvariant of -spelling om de inhoudspagina's van deze wiki in weer te geven.",
+       "prefs-help-signature": "Reacties op de overlegpagina's worden meestal ondertekend met \"<nowiki>~~~~</nowiki>\".\nDe tildes worden omgezet in je ondertekening en een datum en tijd van de bewerking.",
+       "badsiglength": "Je ondertekening is te lang.\nDeze moet minder dan $1 {{PLURAL:$1|teken|tekens}} bevatten.",
+       "prefs-help-realname": "Echte naam is optioneel.\nAls je deze opgeeft, kan deze naam gebruikt worden om je erkenning te geven voor je werk.",
+       "prefs-help-email": "E-mailadres is optioneel, maar maakt het mogelijk om jou je wachtwoord te e-mailen als je het bent vergeten.",
+       "prefs-help-email-others": "Je kunt ook anderen in staat stellen per e-mail contact met je op te nemen via een koppeling op uw gebruikers- en overlegpagina zonder dat je je identiteit prijsgeeft.",
+       "userrights-groups-help": "Je kunt de groepen wijzigen waar deze gebruiker lid van is.\n* Een aangekruist vakje betekent dat de gebruiker lid is van de groep.\n* Een niet aangekruist vakje betekent dat de gebruiker geen lid is van de groep.\n* Een \"*\" betekent dat je een gebruiker niet uit een groep kunt verwijderen nadat je die hebt toegevoegd of vice versa.",
+       "userrights-no-interwiki": "Je hebt geen rechten om gebruikersrechten op andere wiki's te wijzigen.",
+       "userrights-nologin": "Je moet [[Special:UserLogin|aangemeld]] zijn met een gebruiker met de juiste rechten om gebruikersrechten toe te wijzen.",
+       "userrights-notallowed": "Je hebt geen rechten om gebruikersrechten toe te voegen of te verwijderen.",
+       "userrights-changeable-col": "Groepen die je kunt beheren",
+       "userrights-unchangeable-col": "Groepen die je niet kunt beheren",
+       "recentchangeslinked-summary": "Deze speciale pagina geeft de laatste bewerkingen weer op pagina's waarheen verwezen wordt vanaf een opgegeven pagina of op pagina's in een opgegeven categorie.\nPagina's die op [[Special:Watchlist|uw volglijst]] staan worden '''vet''' weergegeven.",
+       "uploadnologintext": "Je moet [[Special:UserLogin|aangemeld]] zijn om bestanden te uploaden.",
+       "empty-file": "Het bestand dat je probeerde te uploaden had geen inhoud.",
+       "file-too-large": "Het bestand dat je probeerde te uploaden was te groot.",
+       "hookaborted": "De wijziging die je probeerde te maken is afgebroken door een uitbreiding.",
+       "emptyfile": "Het bestand dat je hebt geüpload lijkt leeg te zijn.\nDit zou kunnen komen door een typefout in de bestandsnaam.\nGa na of je dit bestand werkelijk bedoelde te uploaden.",
+       "fileexists": "Er bestaat al een bestand met deze naam.\nControleer <strong>[[:$1]]</strong> als je niet zeker weet of je het huidige bestand wilt overschrijven.\n[[$1|thumb]]",
+       "filepageexists": "De beschrijvingspagina voor dit bestand bestaat al op <strong>[[:$1]]</strong>, maar er bestaat geen bestand met deze naam.\nDe samenvatting die je hebt opgegeven verschijnt niet op de beschrijvingspagina.\nBewerk de pagina handmatig om je beschrijving daar weer te geven.\n[[$1|miniatuur]]",
+       "file-thumbnail-no": "De bestandsnaam begint met <strong>$1</strong>.\nHet lijkt een verkleinde afbeelding te zijn ''(miniatuurafbeelding)''.\nAls je deze afbeelding in volledige resolutie hebt, upload die afbeelding dan.\nWijzig anders de bestandsnaam.",
+       "fileexists-forbidden": "Er bestaat al een bestand met deze naam, en dat kan niet overschreven worden.\nUpload je bestand onder een andere naam.\n[[File:$1|thumb|center|$1]]",
+       "fileexists-shared-forbidden": "Er bestaat al een bestand met deze naam bij de gedeelde bestanden.\nAls je het bestand alsnog wilt uploaden, ga dan terug en kies een andere naam.\n[[File:$1|thumb|center|$1]]",
+       "file-deleted-duplicate": "Een bestand dat identiek is aan dit bestand ([[:$1]]) is voorheen verwijderd.\nRaadpleeg het verwijderingslogboek voordat je verder gaat.",
+       "filewasdeleted": "Er is eerder een bestand met deze naam verwijderd.\nRaadpleeg het $1 voordat je het opnieuw toevoegt.",
+       "filename-bad-prefix": "De naam van het bestand dat je aan het uploaden bent begint met '''\"$1\"''', wat een niet-beschrijvende naam is die meestal automatisch door een digitale camera wordt gegeven.\nKies een duidelijke naam voor je bestand.",
+       "upload-success-msg": "Je upload van [$2] is geslaagd en is beschikbaar: [[:{{ns:file}}:$1]]",
+       "upload-failure-msg": "Er was een probleem met je upload van [$2]:\n\n$1",
+       "upload-warning-msg": "Er was een probleem met je upload van [$2].\nGa terug naar het [[Special:Upload/stash/$1|uploadformulier]] om dit probleem te verhelpen.",
+       "uploadstash-badtoken": "Het uitvoeren van de handeling is mislukt. Dit komt mogelijk doordat je bewerkingsreferenties zijn verlopen. Probeer het opnieuw.",
+       "img-auth-nopathinfo": "PATH_INFO mist.\nJe server is niet ingesteld om deze gegevens door te geven.\nMisschien gebruikt deze CGI, en dan wordt img_auth niet ondersteund.\nZie https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization voor meer informatie.",
+       "img-auth-nologinnWL": "Je bent niet aangemeld en \"$1\" staat niet op de witte lijst.",
+       "img-auth-isdir": "Je probeert de map \"$1\" te benaderen.\nAlleen toegang tot bestanden is toegestaan.",
+       "upload-curl-error28-text": "Het duurde te lang voordat de website antwoordde.\nControleer of de website beschikbaar is, wacht even en probeer het dan opnieuw.\nJe kunt het misschien proberen als het minder druk is.",
+       "upload_source_file": "(een bestand op je computer)",
+       "sharedupload-desc-edit": "Dit bestand komt van $1 en kan ook in andere projecten gebruikt worden.\nJe kunt de [$2 pagina met de bestandsbeschrijving] daar bewerken.",
+       "sharedupload-desc-create": "Dit bestand komt van $1 en kan ook in andere projecten gebruikt worden.\nJe kunt de beschrijving bewerken op de [$2 pagina met de bestandsbeschrijving].",
+       "filepage-nofile-link": "Er bestaat geen bestand met deze naam, maar je kunt het [$1 uploaden].",
+       "upload-disallowed-here": "Je kunt dit bestand niet overschrijven.",
+       "filerevert-intro": "Je bent '''[[Media:$1|$1]]''' aan het terugdraaien tot de [$4 versie op $2, $3].",
+       "filedelete-intro": "Je staat op het punt om het bestand '''[[Media:$1|$1]]''' te verwijderen, inclusief alle eerdere versies.",
+       "filedelete-intro-old": "Je bent de versie van '''[[Media:$1|$1]]''' van [$4 $3, $2] aan het verwijderen.",
+       "notargettext": "Je hebt niet opgegeven voor welke pagina of gebruiker je deze handeling wilt uitvoeren.",
+       "nopagetext": "De pagina die je wilt hernoemen bestaat niet.",
+       "booksources-text": "Hieronder staat een lijst met koppelingen naar andere websites die nieuwe of gebruikte boeken verkopen, en die wellicht meer informatie over het boek dat je zoekt hebben:",
+       "alllogstext": "Dit is het gecombineerde logboek van {{SITENAME}}.\nJe kunt ook kiezen voor specifieke logboeken en filteren op gebruiker (hoofdlettergevoelig) en paginanaam (hoofdlettergevoelig).",
+       "cachedspecial-viewing-cached-ttl": "Je bekijkt een cacheversie van deze pagina, die maximaal $1 oud is.",
+       "cachedspecial-viewing-cached-ts": "Je bekijkt een cacheversie van deze pagina, die mogelijk niet volledig is bijgewerkt.",
+       "mailnologintext": "Je moet [[Special:UserLogin|aangemeld]] zijn en een geldig e-mailadres in je [[Special:Preferences|voorkeuren]] vermelden om andere gebruikers te kunnen e-mailen.",
+       "emailpagetext": "Via dit formulier kan je een e-mail aan {{GENDER:$1|deze gebruiker}} verzenden.\nHet e-mailadres dat je hebt opgegeven bij [[Special:Preferences|je voorkeuren]] wordt als afzender gebruikt.\nDe ontvanger kan dus direct naar je reageren.",
+       "usermaildisabledtext": "Je kunt geen e-mail verzenden naar andere gebruikers op deze wiki",
+       "emailccsubject": "Kopie van je bericht aan $1: $2",
+       "emailsenttext": "Je e-mail is verzonden.",
+       "nowatchlist": "Je volglijst is leeg.",
+       "watchlistanontext": "Om je volglijst te bekijken of te bewerken moet je je $1.",
+       "addedwatchtext": "De pagina \"[[:$1]]\" is toegevoegd aan je [[Special:Watchlist|volglijst]].\nToekomstige bewerkingen van deze pagina en de bijbehorende overlegpagina worden op daar weergegeven.",
+       "removedwatchtext": "De pagina \"[[:$1]]\" is van [[Special:Watchlist|je volglijst]] verwijderd.",
+       "watchlist-details": "Er {{PLURAL:$1|staat één pagina|staan $1 pagina's}} op je volglijst, exclusief overlegpagina's.",
+       "wlheader-showupdated": "Pagina's die zijn bewerkt sinds je laatste bezoek worden '''vet''' weergegeven",
+       "watcherrortext": "Er is een fout opgetreden tijdens het wijzigen van je volglijstinstellingen voor \"$1\".",
+       "enotif_lastvisited": "Zie $1 voor alle wijzigingen sinds je laatste bezoek.",
+       "enotif_body": "Hoi $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nSamenvatting van de wijziging: $PAGESUMMARY $PAGEMINOREDIT\n\nContactgegevens van de auteur:\nE-mailadres: $PAGEEDITOR_EMAIL\nWiki: $PAGEEDITOR_WIKI\n\nTenzij je deze pagina bezoekt, komen er geen verdere berichten. Op je volglijst kan je voor alle gevolgde pagina's de waarschuwingsinstellingen opschonen.\n\nGroet van je {{SITENAME}}-waarschuwingssysteem.\n\n--\nJe kunt je e-mailinstellingen wijzigen op:\n{{canonicalurl:{{#special:Preferences}}}}\n\nJe kunt je volglijstinstellingen wijzigen op:\n{{canonicalurl:Special:Watchlist/edit}}\n\nJe kunt de pagina van je volglijst verwijderen via de volgende koppeling:\n$UNWATCHURL\n\nTerugkoppeling en verdere assistentie:\n$HELPPAGE",
+       "historywarning": "'''Waarschuwing:''' de pagina die je wilt verwijderen heeft ongeveer $1 {{PLURAL:$1|versie|versies}}:",
+       "confirmdeletetext": "Je staat op het punt een pagina te verwijderen, inclusief de geschiedenis.\nBevestig hieronder dat dit inderdaad je bedoeling is, dat je de gevolgen begrijpt en dat de verwijdering overeenstemt met het [[{{MediaWiki:Policy-url}}|beleid]].",
+       "sessionfailure": "Er lijkt een probleem te zijn met je aanmeldsessie.\nJe handeling is gestopt uit voorzorg tegen een beveiligingsrisico (dat bestaat uit mogelijke \"hijacking\" van deze sessie).\nGa een pagina terug, laad die pagina opnieuw en probeer het nog eens.",
+       "protect-text": "Hier kun je het beveiligingsniveau voor de pagina '''$1''' bekijken en wijzigen.",
+       "protect-locked-blocked": "Je kunt het beveiligingsniveau niet wijzigen terwijl je geblokkeerd bent.\nHier zijn de huidige instellingen voor de pagina '''$1''':",
+       "protect-locked-access": "Je hebt geen rechten om het beveiligingsniveau te wijzigen.\nDit zijn de huidige instellingen voor de pagina '''$1''':",
+       "protect-cantedit": "Je kunt het beveiligingsniveau van deze pagina niet wijzigen, omdat je geen rechten hebt om het te bewerken.",
+       "undeletehistory": "Als je een pagina terugplaatst, worden alle versies hersteld.\nAls er al een nieuwe pagina met dezelfde naam is aangemaakt sinds de pagina is verwijderd, worden de eerder verwijderde versies teruggeplaatst en blijft de huidige versie intact.",
+       "undeleterevision-missing": "Ongeldige of missende versie.\nMogelijk heb je een verkeerde koppeling of is de versie hersteld of verwijderd uit het archief.",
+       "undelete-show-file-confirm": "Weet je zeker dat je een verwijderde versie van het bestand \"<nowiki>$1</nowiki>\" van $2 om $3 wilt bekijken?",
+       "ipb-blockingself": "Je staat op het punt jezelf te blokkeren. Weet je zeker dat je dat wilt doen?",
+       "ipb-confirmhideuser": "Je staat op het punt een verborgen gebruiker te blokkeren. Hiervoor worden gebruikersnamen in alle lijsten en logboekregels verborgen. Weet je het zeker?",
+       "ipb-needreblock": "$1 is al geblokkeerd.\nWil je de instellingen wijzigen?",
+       "unblock-hideuser": "Je kunt deze gebruiker niet deblokkeren, omdat de gebruikersnaam verborgen is.",
+       "proxyblockreason": "Dit is een automatische preventieve blokkade, omdat je gebruik maakt van een open proxyserver.\nNeem contact op met je internetprovider of je helpdesk en stel die op de hoogte van dit ernstige beveiligingsprobleem.",
+       "sorbsreason": "Je IP-adres staat bekend als open proxyserver in de DNS-blacklist die {{SITENAME}} gebruikt.",
+       "sorbs_create_account_reason": "Je IP-adres staat bekend als open proxyserver in de DNS-blacklist die {{SITENAME}} gebruikt.\nJe kunt geen gebruiker registreren.",
+       "cant-see-hidden-user": "De gebruiker die je probeert te blokken is al geblokkeerd en verborgen.\nOmdat je het recht \"hideuser\" niet hebt, kun je de blokkade van de gebruiker niet bekijken of bewerken.",
+       "ipbblocked": "Je kunt geen andere gebruikers (de)blokkeren, omdat je zelf geblokkeerd bent",
+       "ipbnounblockself": "Je mag jezelf niet deblokkeren",
+       "lockdbtext": "Waarschuwing: de database blokkeren heeft tot gevolg dat geen enkele gebruiker meer in staat is pagina's te bewerken, voorkeuren te wijzigen of iets anders te doen waarvoor wijzigingen in de database nodig zijn.\nBevestig dat je deze handeling wilt uitvoeren en dat je de database vrijgeeft nadat het onderhoud is uitgevoerd.",
+       "unlockdbtext": "Na het vrijgeven van de database kunnen gebruikers weer pagina's bewerken, hun voorkeuren wijzigen of iets anders te doen waarvoor er wijzigingen in de database nodig zijn.\nBevestig dat je deze handeling wil uitvoeren.",
+       "locknoconfirm": "Je hebt je keuze niet bevestigd via het vinkvakje.",
+       "lockdbsuccesstext": "De database is afgesloten.<br />\nVergeet niet de [[Special:UnlockDB|database vrij te geven]] zodra je klaar bent met je onderhoud.",
+       "movepagetext": "Door middel van het onderstaande formulier kan je een pagina hernoemen.\nDe geschiedenis gaat mee naar de nieuwe pagina.\n* De oude naam wordt automatisch een doorverwijzing naar de nieuwe pagina.\n* Koppelingen naar de oude pagina worden niet aangepast.\n* De pagina's die doorverwijzen naar de oorspronkelijke paginanaam worden automatisch bijgewerkt.\nAls je dit niet wilt, controleer dan of er geen [[Special:DoubleRedirects|dubbele]] of [[Special:BrokenRedirects|onjuiste doorverwijzingen]] zijn ontstaan.\n\nEen pagina kan '''alleen''' hernoemd worden als de nieuwe paginanaam niet bestaat of een doorverwijspagina zonder verdere geschiedenis is.\n\n'''Waarschuwing!'''\nVoor veel bekeken pagina's kan het hernoemen drastische en onvoorziene gevolgen hebben.\nZorg ervoor dat je die gevolgen overziet voordat je deze handeling uitvoert.",
+       "movepagetext-noredirectfixer": "Door middel van het onderstaande formulier kunt u een pagina en alle bijbehorende oude versies hernoemen.\nDe oude naam wordt automatisch een doorverwijzing naar de nieuwe pagina.\nControleer dan of er geen [[Special:DoubleRedirects|dubbele]] of [[Special:BrokenRedirects|onjuiste doorverwijzingen]] zijn ontstaan.\n\nEen pagina kan '''alleen''' hernoemd worden als de nieuwe paginanaam niet bestaat of een doorverwijspagina zonder verdere geschiedenis is.\nJe kunt dus een pagina die per ongeluk is hernoemd terug hernoemen en je kunt een bestaande pagina niet overschrijven. \n\n'''Waarschuwing:''' voor veel bekeken pagina's kan het hernoemen drastische en onvoorziene gevolgen hebben.\nZorg ervoor dat je die gevolgen overziet voordat je deze handeling uitvoert.",
+       "movepagetalktext": "De bijbehorende overlegpagina krijgt automatisch een andere naam, '''tenzij''':\n* De overlegpagina onder de nieuwe naam al bestaat;\n* Je het onderstaande vinkje deselecteert.\n\nIn die gevallen moet je de pagina handmatig hernoemen of samenvoegen.",
+       "moveuserpage-warning": "'''Waarschuwing:''' Je gaat een gebruikerspagina hernoemen.\nHoud er rekening mee dat alleen de pagina wordt hernoemd, ''niet'' de gebruiker.",
+       "movenologintext": "Je moet [[Special:UserLogin|aangemeld]] zijn om een pagina te hernoemen.",
+       "movenotallowed": "Je hebt geen rechten om pagina's te hernoemen.",
+       "movenotallowedfile": "Je hebt geen rechten om bestanden te hernoemen.",
+       "cant-move-user-page": "Je hebt geen rechten om gebruikerspagina's te hernoemen (met uitzondering van subpagina's).",
+       "cant-move-to-user-page": "Je hebt geen rechten om een pagina naar een gebruikerspagina te hernoemen. Hernoemen naar een subpagina is wel mogelijk.",
+       "cantmove-titleprotected": "Je kunt geen pagina naar deze naam hernoemen, omdat deze naam beveiligd is tegen het aanmaken ervan.",
+       "delete_and_move_text": "==Verwijdering nodig==\nOnder de naam \"[[:$1]]\" bestaat al een pagina.\nWil je deze verwijderen om plaats te maken voor de te hernoemen pagina?",
+       "exporttext": "Je kunt de tekst en geschiedenis van een pagina of pagina's exporteren naar XML.\nDit exportbestand is daarna te importeren in een andere MediaWiki via de [[Special:Import|importpagina]].\n\nGeef in het onderstaande veld de namen van de te exporteren pagina's op, één pagina per regel, en geef aan of je alle versies met de bewerkingssamenvatting of alleen de huidige versies met de bewerkingssamenvatting wilt exporteren.\n\nIn het laatste geval kan je ook een koppeling gebruiken, bijvoorbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] voor de pagina \"[[{{MediaWiki:Mainpage}}]]\".",
+       "allmessagestext": "Hieronder staan de systeemberichten uit de MediaWiki-naamruimte.\nGa naar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisatie] en [//translatewiki.net translatewiki.net] als je wilt bijdragen aan de algemene vertaling voor MediaWiki.",
+       "importtext": "Gebruik de [[Special:Export|exportfunctie]] in de wiki waar de informatie vandaan komt.\nSla de uitvoer op je eigen computer op, en voeg die daarna hier toe.",
+       "import-error-edit": "De pagina \"$1\" is niet geïmporteerd omdat je niet de rechten hebt om die te bewerken.",
+       "import-error-create": "De pagina \"$1\" is niet geïmporteerd omdat je niet de rechten hebt om die aan te maken.",
+       "tooltip-pt-userpage": "Jouw gebruikerspagina",
+       "tooltip-pt-anonuserpage": "Gebruikerspagina voor je IP-adres",
+       "tooltip-pt-mytalk": "Jouw overlegpagina",
+       "tooltip-pt-watchlist": "Overzicht van pagina's die je volgt",
+       "tooltip-pt-mycontris": "Overzicht van je bijdragen",
+       "tooltip-pt-login": "Je wordt van harte uitgenodigd om je aan te melden als gebruiker, maar dit is niet verplicht",
+       "tooltip-ca-edit": "Je kunt deze pagina bewerken.\nGebruik de voorbeeldweergaveknop alvorens te bewaren.",
+       "tooltip-ca-viewsource": "Deze pagina is beveiligd.\nJe kunt wel de broncode bekijken.",
+       "tooltip-ca-nstab-special": "Dit is een speciale pagina, je kunt de pagina zelf niet bewerken",
+       "tooltip-save": "Je wijzigingen opslaan",
+       "tooltip-preview": "Een voorvertoning maken. Gebruik dit voordat je opslaat!",
+       "tooltip-watch": "Deze pagina aan je volglijst toevoegen",
+       "spamprotectiontext": "De pagina die je wilde opslaan is geblokkeerd door het spamfilter.\nMeestal wordt dit door een externe koppeling op een zwarte lijst veroorzaakt.",
+       "markedaspatrollederror-noautopatrol": "Je kunt je eigen wijzigingen niet als gecontroleerd markeren.",
+       "mediawarning": "'''Waarschuwing''': dit bestandstype bevat mogelijk programmacode die je systeem schade kan berokkenen.",
+       "confirmemail_noemail": "Je hebt geen geldig e-mailadres opgegeven in je [[Special:Preferences|gebruikersvoorkeuren]].",
+       "confirmemail_text": "{{SITENAME}} eist bevestiging van je e-mailadres voordat je de e-mailmogelijkheden kunt gebruiken.\nKlik op de onderstaande knop om een bevestigingsbericht te ontvangen.\nDit bericht bevat een koppeling met een code.\nOpen die koppeling om je e-mailadres te bevestigen.",
+       "confirmemail_pending": "Er is al een bevestigingsbericht aan je verzonden.\nAls je recentelijk je gebruiker hebt aangemaakt, wacht dan een paar minuten totdat die aankomt voordat je opnieuw een e-mail laat sturen.",
+       "confirmemail_oncreate": "Er is een bevestigingscode naar je e-mailadres verzonden.\nDeze code is niet nodig om je aan te melden, maar je dient deze wel te bevestigen voordat je de e-mailmogelijkheden van deze wiki kunt gebruiken.",
+       "confirmemail_sendfailed": "{{SITENAME}} kon je bevestigingscode niet verzenden.\nControleer je e-mailadres op ongeldige tekens.\n\nHet e-mailprogramma meldde: $1",
+       "confirmemail_needlogin": "Je moet $1 om je e-mailadres te bevestigen.",
+       "confirmemail_success": "Je e-mailadres is bevestigd.\nJe kunt jezelf nu [[Special:UserLogin|aanmelden]] en {{SITENAME}} gebruiken.",
+       "confirmemail_loggedin": "Je e-mailadres is nu bevestigd.",
+       "confirmemail_body": "Iemand, waarschijnlijk jijzelf, met het IP-adres $1,\nheeft zich met dit e-mailadres geregistreerd als gebruiker \"$2\" op {{SITENAME}}.\n\nOpen de volgende koppeling in je webbrowser om te bevestigen dat je deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} te activeren:\n\n$3\n\nAls je jezelf *niet* hebt aangemeld, volg dan de volgende koppeling om de bevestiging van je e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
+       "confirmemail_body_changed": "Iemand, waarschijnlijk jijzelf, met het IP-adres $1,\nheeft het het e-mailadres geregistreerd voor gebruiker \"$2\" op {{SITENAME}} gewijzigd naar dit e-mailadres.\n\nOpen de volgende koppeling in je webbrowser om te bevestigen dat je deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} opnieuw te activeren:\n\n$3\n\nAls je jezelf *niet* hebt aangemeld, volg dan de volgende koppeling om de bevestiging van je e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
+       "confirmemail_body_set": "Iemand, waarschijnlijk jij, met het IP-adres $1,\nheeft het het e-mailadres voor gebruiker \"$2\" op {{SITENAME}} ingesteld op dit e-mailadres.\n\nOpen de volgende koppeling in je webbrowser om te bevestigen dat jij deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} opnieuw te activeren:\n\n$3\n\nAls jij deze wijziging *niet* hebt gemaakt, volg dan de volgende koppeling om de bevestiging van uw e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
+       "deletedwhileediting": "'''Let op''': deze pagina is verwijderd terwijl je bezig was met je bewerking!",
+       "confirmrecreate": "Nadat je begonnen bent met je wijziging heeft [[User:$1|$1]] ([[User talk:$1|overleg]]) deze pagina verwijderd met opgave van de volgende reden:\n: ''$2''\nBevestig dat je de pagina opnieuw wilt aanmaken.",
+       "confirmrecreate-noreason": "Nadat je begonnen bent met je wijziging heeft [[User:$1|$1]] ([[User talk:$1|overleg]]) deze pagina verwijderd.\nBevestig dat je de pagina opnieuw wilt aanmaken.",
+       "confirm-watch-top": "Deze pagina toevoegen aan je volglijst?",
+       "confirm-unwatch-top": "Deze pagina verwijderen uit je volglijst?",
+       "watchlistedit-normal-explain": "Hieronder worden de pagina’s op je volglijst weergegeven.\nKlik op het vierkantje ernaast en daarna op \"{{int:Watchlistedit-normal-submit}}\" om een pagina te verwijderen.\nJe kunt ook de [[Special:EditWatchlist/raw|ruwe lijst bewerken]].",
+       "watchlistedit-normal-done": "Er {{PLURAL:$1|is één pagina|zijn $1 pagina’s}} verwijderd van je volglijst:",
+       "watchlistedit-raw-explain": "Hieronder staan pagina’s op je volglijst.\nJe kunt de lijst bewerken door pagina’s te verwijderen en toe te voegen.\nEén pagina per regel.\nAls je klaar bent, klik dan op \"{{int:Watchlistedit-raw-submit}}\".\nJe kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].",
+       "watchlistedit-raw-done": "Je volglijst is bijgewerkt.",
+       "version-license-info": "MediaWiki is vrije software; je kunt MediaWiki verspreiden en/of aanpassen onder de voorwaarden van de GNU General Public License zoals gepubliceerd door de Free Software Foundation; ofwel versie 2 van de Licentie, of - zo je wilt - enige latere versie.\n\nMediaWiki wordt verspreid in de hoop dat het nuttig is, maar ZONDER ENIGE GARANTIE; zonder zelfs de implicitiete garantie van VERKOOPBAARHEID of GESCHIKHEID VOOR ENIG DOEL IN HET BIJZONDER. Zie de GNU General Public License voor meer informatie.\n\nSamen met dit programma hoor je een [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de GNU General Public License] te hebben ontvangen; zo niet, schrijf dan naar de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA of [//www.gnu.org/licenses/old-licenses/gpl-2.0.html lees de licentie online].",
+       "compare-title-not-exists": "De titel die je hebt opgegeven bestaat niet.",
+       "compare-revision-not-exists": "De versie die je hebt opgegeven bestaat niet.",
+       "dberr-usegoogle": "Wellicht kun je in de tussentijd zoeken via Google.",
+       "htmlform-float-invalid": "De waarde die je hebt opgegeven is geen getal.",
+       "feedback-bugornote": "Als je zover bent om een technisch probleem in detail te beschrijven, [$1 rapporteer dan een bug].\nAnders kan je ook het eenvoudige formulier hieronder gebruiken.\nJe reactie wordt dan toegevoegd aan de pagina \"[$3 $2]\", samen met je gebruikersnaam en de browser die je gebruikt.",
+       "feedback-thanks": "Bedankt! Je terugkoppeling is op de pagina \"[$2 $1]\" geplaatst.",
+       "api-error-badaccess-groups": "Je mag geen bestanden uploaden in deze wiki.",
+       "api-error-empty-file": "Het bestand dat je hebt geüpload is leeg.",
+       "api-error-file-too-large": "Het bestand dat je hebt geüpload is te groot.",
+       "api-error-hookaborted": "De wijziging die je probeert te maken is afgebroken door een uitbreiding.",
+       "api-error-internal-error": "Interne fout: er is iets misgegaan tijdens het verwerken van je upload door de wiki.",
+       "api-error-mustbeloggedin": "Je moet aangemeld zijn om bestanden te kunnen uploaden.",
+       "api-error-unknown-error": "Interne fout: er is iets misgegaan tijdens het uploaden van je bestand."
 }
index ff3162b..ad62999 100644 (file)
        "viewsourcetext": "U kunt de brontekst van deze pagina bekijken en kopiëren:",
        "viewyourtext": "U kunt '''uw bewerkingen''' aan de brontekst van deze pagina bekijken en kopiëren:",
        "protectedinterface": "Deze pagina bevat tekst voor berichten van de software op deze wiki en is beveiligd om misbruik te voorkomen.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen voor alle wiki's toe te voegen of te wijzigen.",
-       "editinginterface": "'''Waarschuwing:''' u bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "editinginterface": "<strong>Waarschuwing:</strong> u bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "translateinterface": "Om vertalingen voor alle wiki's toe te voegen of te wijzigen kunt u gebruik maken van [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki.",
        "cascadeprotected": "Deze pagina kan niet bewerkt worden, omdat die is opgenomen in de volgende {{PLURAL:$1|pagina|pagina's}} die beveiligd {{PLURAL:$1|is|zijn}} met de cascade-optie:\n$2",
        "namespaceprotected": "U hebt geen rechten om pagina's in de naamruimte '''$1''' te bewerken.",
        "customcssprotected": "U kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
        "virus-unknownscanner": "onbekend antivirusprogramma:",
        "logouttext": "'''U bent nu afgemeld.'''\n\nSommige pagina's kunnen blijven weergegeven alsof u nog aangemeld bent, totdat u uw browsercache leegt.",
        "welcomeuser": "Welkom, $1!",
-       "welcomecreation-msg": "Uw account is aangemaakt.\nIndien gewenst kunt u uw [[Special:Preferences|voorkeuren]] voor {{SITENAME}} aanpassen.",
+       "welcomecreation-msg": "Uw gebruiker is aangemaakt.\nIndien gewenst kunt u uw [[Special:Preferences|voorkeuren]] voor {{SITENAME}} aanpassen.",
        "yourname": "Gebruikersnaam:",
        "userlogin-yourname": "Gebruikersnaam",
        "userlogin-yourname-ph": "Geef uw gebruikersnaam op",
        "userlogin-signwithsecure": "Beveiligde verbinding gebruiken",
        "yourdomainname": "Uw domein:",
        "password-change-forbidden": "U kunt uw wachtwoord niet wijzigen in deze wiki.",
-       "externaldberror": "Er is een fout opgetreden bij het aanmelden bij de database of u hebt geen toestemming uw externe account bij te werken.",
+       "externaldberror": "Er is een fout opgetreden bij het aanmelden bij de database of u hebt geen toestemming uw externe gebruiker bij te werken.",
        "login": "Aanmelden",
        "nav-login-createaccount": "Aanmelden / registreren",
        "userlogin": "Aanmelden / registreren",
        "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": "Hebt u geen account? $1.",
+       "nologin": "Hebt u geen gebruiker? $1.",
        "nologinlink": "Registreren",
        "createaccount": "Registreren",
-       "gotaccount": "Hebt u al een account? $1.",
+       "gotaccount": "Hebt u al een gebruiker? $1.",
        "gotaccountlink": "Aanmelden",
        "userlogin-resetlink": "Bent u uw aanmeldgegevens vergeten?",
        "userlogin-resetpassword-link": "Wachtwoord vergeten?",
        "userlogin-helplink2": "Hulp bij aanmelden",
        "userlogin-loggedin": "U bent al aangemeld als {{GENDER:$1|$1}}.\nGebruik het onderstaande formulier om aan te melden als een andere gebruiker.",
-       "userlogin-createanother": "Een andere account aanmaken",
+       "userlogin-createanother": "Een andere gebruiker aanmaken",
        "createacct-emailrequired": "E-mailadres",
        "createacct-emailoptional": "E-mailadres (optioneel)",
        "createacct-email-ph": "Geef uw e-mailadres op",
        "noname": "U hebt geen geldige gebruikersnaam opgegeven.",
        "loginsuccesstitle": "Aanmelden geslaagd",
        "loginsuccess": "'''U bent nu aangemeld bij {{SITENAME}} als \"$1\".'''",
-       "nosuchuser": "De gebruiker \"$1\" bestaat niet.\nGebruikersnamen zijn hoofdlettergevoelig.\nControleer de schrijfwijze of [[Special:UserLogin/signup|maak een nieuw account aan]].",
+       "nosuchuser": "De gebruiker \"$1\" bestaat niet.\nGebruikersnamen zijn hoofdlettergevoelig.\nControleer de schrijfwijze of [[Special:UserLogin/signup|maak een nieuw gebruiker aan]].",
        "nosuchusershort": "De gebruiker \"$1\" bestaat niet.\nControleer de schrijfwijze.",
        "nouserspecified": "Geef een gebruikersnaam op.",
        "login-userblocked": "Deze gebruiker is geblokkeerd.\nAanmelden is niet mogelijk.",
        "invalidemailaddress": "Het e-mailadres is niet aanvaard, omdat het een ongeldige opmaak heeft.\nGeef een geldig e-mailadres op of laat het veld leeg.",
        "cannotchangeemail": "Het e-mailadres voor een gebruiker kan op deze wiki niet gewijzigd worden.",
        "emaildisabled": "Deze site kan geen e-mails verzenden.",
-       "accountcreated": "Account aangemaakt",
+       "accountcreated": "Gebruiker aangemaakt",
        "accountcreatedtext": "Het gebruikersaccount voor [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|overleg]]) is aangemaakt.",
        "createaccount-title": "Gebruikers registreren voor {{SITENAME}}",
        "createaccount-text": "Iemand heeft een gebruiker op {{SITENAME}} ($4) aangemaakt met de naam \"$2\" en uw e-mailadres.\nHet wachtwoord voor \"$2\" is \"$3\".\nMeld u aan en wijzig uw wachtwoord.\n\nNegeer dit bericht als deze gebruiker zonder uw medeweten is aangemaakt.",
        "login-throttled": "U heeft recentelijk te veel mislukte aanmeldpogingen gedaan.\nWacht alstublieft $1 voordat u het opnieuw probeert.",
        "login-abort-generic": "U bent niet aangemeld. De procedure is afgebroken.",
-       "login-migrated-generic": "Uw account is verplaatst, en uw gebruikersnaam bestaat niet langer op deze wiki.",
+       "login-migrated-generic": "Uw gebruikersnaam is hernoemd, en uw gebruikersnaam bestaat niet langer op deze wiki.",
        "loginlanguagelabel": "Taal: $1",
        "suspicious-userlogout": "Uw verzoek om af te melden is genegeerd, omdat het lijkt alsof het verzoek is verzonden door een browser of cacheproxy die stuk is.",
        "createacct-another-realname-tip": "Echte naam is optioneel.\nAls u deze opgeeft, wordt deze naam gebruikt worden om u erkenning te geven voor uw werk.",
        "showpreview": "Bewerking ter controle bekijken",
        "showdiff": "Wijzigingen bekijken",
        "blankarticle": "<strong>Waarschuwing:</strong> de pagina die u wilt aanmaken is leeg.\nAls u opnieuw op \"{{int:savearticle}}\" klikt, wordt de pagina aangemaakt zonder enige inhoud.",
-       "anoneditwarning": "<strong>Waarschuwing:</strong> u bent niet aangemeld.\nUw IP-adres wordt opgeslagen als u wijzigingen op deze pagina maakt. Wanneer u <strong>[$1 inlogt]</strong> of <strong>[$2 een account maakt]</strong zullen uw bewerkingen verschijnen onder u gebruikersnaam, met ook andere voordelen.",
+       "anoneditwarning": "<strong>Waarschuwing:</strong> u bent niet aangemeld.\nUw IP-adres wordt opgeslagen als u wijzigingen op deze pagina maakt. Wanneer u <strong>[$1 aanmeldt]</strong> of <strong>[$2 een gebruiker aanmaakt]</strong verschijnen uw bewerkingen onder uw gebruikersnaam, naast andere voordelen.",
        "anonpreviewwarning": "''U bent niet aangemeld.''\n''Door uw bewerking op te slaan wordt uw IP-adres opgeslagen in de paginageschiedenis.''",
        "missingsummary": "'''Let op:''' u hebt geen bewerkingssamenvatting opgegeven.\nAls u nogmaals op \"{{int:savearticle}}\" klikt wordt de bewerking zonder samenvatting opgeslagen.",
        "missingcommenttext": "Plaats uw reactie hieronder.",
        "content-model-text": "tekst zonder opmaak",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Pagina's met dubbele sjabloonparameters",
+       "duplicate-args-category-desc": "De pagina bevat aanroepen van sjablonen waarin hetzelfde argument meerdere keren wordt gebruikt, bijvoorbeeld <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> of <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Waarschuwing:''' deze pagina gebruikt te veel kostbare parserfuncties.\n\nNu {{PLURAL:$1|is|zijn}} het er $1, terwijl het er minder dan $2 {{PLURAL:$2|moet|moeten}} zijn.",
        "expensive-parserfunction-category": "Pagina's die te veel kostbare parserfuncties gebruiken",
        "post-expand-template-inclusion-warning": "Waarschuwing: de maximale transclusiegrootte voor sjablonen is overschreden.\nSommige sjablonen worden niet getranscludeerd.",
        "mergehistory-same-destination": "De bronpagina en doelpagina kunnen niet hetzelfde zijn",
        "mergehistory-reason": "Reden:",
        "mergelog": "Samenvoegingslogboek",
-       "pagemerge-logentry": "heeft [[$1]] naar [[$2]] samengevoegd (versies tot en met $3)",
        "revertmerge": "Samenvoeging ongedaan maken",
        "mergelogpagetext": "Hieronder ziet u een lijst van recente samenvoegingen van een paginageschiedenis naar een andere.",
        "history-title": "$1: versiegeschiedenis",
        "search-result-category-size": "{{PLURAL:$1|1 categorielid|$1 categorieleden}} ({{PLURAL:$2|1 ondercategorie|$2 ondercategorieën}}, {{PLURAL:$3|1 bestand|$3 bestanden}})",
        "search-redirect": "(doorverwijzing $1)",
        "search-section": "(subkop $1)",
+       "search-category": "(categorie $1)",
        "search-file-match": "(komt overeen met de inhoud van het bestand)",
        "search-suggest": "Bedoelde u: $1",
        "search-interwiki-caption": "Zusterprojecten",
        "prefs-diffs": "Verschillen",
        "prefs-help-prefershttps": "Deze voorkeur wordt toegepast bij de volgende keer aanmelden.",
        "prefswarning-warning": "U heeft deze wijzigingen gemaakt in uw voorkeuren die nog niet opgeslagen zijn. Wanneer u de pagina verlaat zonder op \"$1\" te klikken zullen uw voorkeuren niet geüpdated worden.",
-       "prefs-tabs-navigation-hint": "Tip: U kunt de pijltjestoetsen naar links en naar rechts gebruiken om te navigeren tussen de tabbladen in de lijst.",
+       "prefs-tabs-navigation-hint": "Tip: u kunt de pijltjestoetsen naar links en naar rechts gebruiken om te navigeren tussen de tabbladen in de lijst.",
        "email-address-validity-valid": "Het e-mailadres lijkt geldig",
        "email-address-validity-invalid": "Geef een geldig e-mailadres op",
        "userrights": "Gebruikersrechtenbeheer",
        "statistics": "Statistieken",
        "statistics-header-pages": "Paginastatistieken",
        "statistics-header-edits": "Bewerkingsstatistieken",
-       "statistics-header-views": "Paginaweergavestatistieken",
        "statistics-header-users": "Gebruikersstatistieken",
        "statistics-header-hooks": "Overige statistieken",
        "statistics-articles": "Inhoudelijke pagina's",
        "statistics-files": "Bestanden",
        "statistics-edits": "Paginabewerkingen sinds het begin van {{SITENAME}}",
        "statistics-edits-average": "Gemiddeld aantal bewerkingen per pagina",
-       "statistics-views-total": "Totaal aantal weergegeven pagina's",
-       "statistics-views-total-desc": "Het bekijken van niet-bestaande pagina's en speciale pagina's is niet inbegrepen",
-       "statistics-views-peredit": "Weergegeven pagina's per bewerking",
        "statistics-users": "Geregistreerde [[Special:ListUsers|gebruikers]]",
        "statistics-users-active": "Actieve gebruikers",
        "statistics-users-active-desc": "Gebruikers die in de afgelopen {{PLURAL:$1|dag|$1 dagen}} een handeling hebben uitgevoerd",
-       "statistics-mostpopular": "Meest bekeken pagina's",
        "pageswithprop": "Pagina's met een pagina-eigenschap",
        "pageswithprop-legend": "Pagina's met een pagina-eigenschap",
        "pageswithprop-text": "Op deze pagina worden pagina's weergegeven met een bepaalde pagina-eigenschap.",
        "uncategorizedtemplates": "Niet-gecategoriseerde sjablonen",
        "unusedcategories": "Ongebruikte categorieën",
        "unusedimages": "Ongebruikte bestanden",
-       "popularpages": "Veel bekeken pagina's",
        "wantedcategories": "Niet-bestaande categorieën met de meeste koppelingen",
        "wantedpages": "Niet-bestaande pagina's met koppelingen",
        "wantedpages-badtitle": "Ongeldige paginanaam in resultaat: $1",
        "pager-older-n": "{{PLURAL:$1|1 oudere|$1 oudere}}",
        "suppress": "Toezicht",
        "querypage-disabled": "Deze speciale pagina is uitgeschakeld om performanceredenen.",
+       "apihelp": "API-hulp",
+       "apihelp-no-such-module": "Module \"$1\" niet gevonden.",
        "booksources": "Boekinformatie",
        "booksources-search-legend": "Bronnen en gegevens over een boek zoeken",
        "booksources-search": "Zoeken",
        "wlheader-enotif": "U wordt per e-mail gewaarschuwd.",
        "wlheader-showupdated": "Pagina's die zijn bewerkt sinds uw laatste bezoek worden '''vet''' weergegeven.",
        "wlnote": "Hieronder {{PLURAL:$1|staat de laaste wijziging|staan de laatste $1 wijzigingen}} in {{PLURAL:$2|het laatste uur|de laatste $2 uur}} per $3 om $4.",
-       "wlshowlast": "Laatste $1 uur, $2 dagen bekijken ()",
+       "wlshowlast": "Laatste $1 uur, $2 dagen bekijken",
        "watchlist-options": "Opties voor volglijst",
        "watching": "Bezig met plaatsen op volglijst…",
        "unwatching": "Bezig met verwijderen van volglijst…",
        "protect-othertime": "Andere duur:",
        "protect-othertime-op": "andere duur",
        "protect-existing-expiry": "Bestaande vervaldatum: $2 om $3",
+       "protect-existing-expiry-infinity": "Bestaande vervaldatum: oneindig",
        "protect-otherreason": "Overige/additionele reden:",
        "protect-otherreason-op": "andere reden",
        "protect-dropdown": "*Veel voorkomende redenen voor beveiliging\n** Vandalisme\n** Spam\n** Bewerkingsoorlog\n** Preventieve beveiliging veelbezochte pagina",
        "tooltip-pt-mycontris": "Overzicht van uw bijdragen",
        "tooltip-pt-login": "U wordt van harte uitgenodigd om u aan te melden als gebruiker, maar dit is niet verplicht",
        "tooltip-pt-logout": "Afmelden",
+       "tooltip-pt-createaccount": "Registreer u vooral en meld u aan. Dit is echter niet vereist.",
        "tooltip-ca-talk": "Overleg over deze pagina",
        "tooltip-ca-edit": "U kunt deze pagina bewerken. Gebruik de knop \"Bewerking ter controle bekijken\" voordat u de pagina opslaat",
        "tooltip-ca-addsection": "Nieuw kopje toevoegen",
        "tooltip-feed-atom": "Atom-feed voor deze pagina",
        "tooltip-t-contributions": "Een lijst met bijdragen van deze gebruiker",
        "tooltip-t-emailuser": "Een e-mail naar deze gebruiker verzenden",
+       "tooltip-t-info": "Meer informatie over deze pagina",
        "tooltip-t-upload": "Bestanden uploaden",
        "tooltip-t-specialpages": "Lijst met alle speciale pagina's",
        "tooltip-t-print": "Printvriendelijke versie van deze pagina",
        "pageinfo-robot-policy": "Indexering door robots",
        "pageinfo-robot-index": "Toegestaan",
        "pageinfo-robot-noindex": "Niet toegestaan",
-       "pageinfo-views": "Aantal weergaven",
        "pageinfo-watchers": "Aantal paginavolgers",
        "pageinfo-few-watchers": "Minder dan  {{PLURAL:$1|één volger|$1 volgers}}",
        "pageinfo-redirects-name": "Aantal doorverwijzingen naar deze pagina",
        "unknown_extension_tag": "Onbekende tag \"$1\"",
        "duplicate-defaultsort": "'''Waarschuwing:''' de standaardsortering \"$2\" krijgt voorrang voor de sortering \"$1\".",
        "duplicate-displaytitle": "<strong>Waarschuwing:</strong>Titelweergave \"$2\" overschrijft eerdere titelweergave \"$1\".",
+       "invalid-indicator-name": "<strong>Fout:</strong> de eigenschap <code>name</code> van de paginastatusindicators mag niet leeg zijn.",
        "version": "Versie",
        "version-extensions": "Geïnstalleerde uitbreidingen",
        "version-skins": "Geïnstalleerde vormgevingen",
        "revdelete-uname-unhid": "gebruikersnaam zichtbaar gemaakt",
        "revdelete-restricted": "heeft beperkingen aan beheerders opgelegd",
        "revdelete-unrestricted": "heeft beperkingen voor beheerders opgeheven",
+       "logentry-merge-merge": "$1 {{GENDER:$2|heeft}} $3 samengevoegd naar $4 (versies tot en met $5)",
        "logentry-move-move": "$1 {{GENDER:$2|heeft}} pagina $3 hernoemd naar $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|heeft}} de pagina $3 hernoemd naar $4 zonder een doorverwijzing achter te laten",
        "logentry-move-move_redir": "$1 {{GENDER:$2|heeft}} pagina $3 hernoemd naar $4 over een doorverwijzing",
        "log-name-pagelang": "Logboek van taalwijzigingen",
        "log-description-pagelang": "Dit is een logboek van wijzigingen van de taal van pagina's.",
        "logentry-pagelang-pagelang": "$1 wijzigde de taal van de pagina '$3' van $4 naar $5.",
+       "default-skin-not-found": "Het standaard uiterlijk voor de wiki, dat is ingesteld in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is niet beschikbaar.\n\nUw installatie heeft de volgende uiterlijken. Zie See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handboek: uiterlijk instellen] voor meer informatie over hoe u het uiterlijk instelt en een standaard uiterlijk aangeeft.\n\n$2\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Een van de repositories <code>mediawiki/skins/*</code> te klonen via git in de map <code dir=\"ltr\">skins/</code> van uw installatie van MediaWiki.\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.\n\n; Als u MediaWiki net hebt bijgewerkt:\n: In MediaWiki 1.24 en nieuwere versies worden geïnstalleerde uiterlijken niet langer automatisch ingeschakeld (zie [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handboek: uiterlijken automatisch vinden]). U kunt de volgende regels kopieren naar <code>LocalSettings.php</code> om alle op dit moment geïnstalleerde uiterlijken in te schakelen:\n\n<pre dir=\"ltr\">$3</pre>\n\n; In het geval u zojuist <code>LocalSettings.php</code> hebt aangepast:\n: Controleer de namen van de uiterlijken op spelfouten.",
+       "default-skin-not-found-no-skins": "Het standaard uiterlijk voor uw wiki, als aangegeven in <code>$wgDefaultSkin</code> als <code>$1</code>, is niet beschikbaar.\n\nU hebt geen geïnstalleerde uiterlijken.\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Een van de repositories <code>mediawiki/skins/*</code> te klonen via git in de map <code dir=\"ltr\">skins/</code> van uw installatie van MediaWiki.\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ingeschakeld)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>uitgeschakeld</strong>)",
        "mediastatistics": "Mediastatistieken",
        "mediastatistics-header-drawing": "Tekeningen (vectorbestanden)",
        "mediastatistics-header-audio": "Audio",
        "mediastatistics-header-video": "Video's",
+       "mediastatistics-header-multimedia": "Interactieve media",
        "mediastatistics-header-office": "Kantoorbestanden",
        "mediastatistics-header-text": "Tekstbestanden",
        "mediastatistics-header-executable": "Uitvoerbare bestanden",
        "mediastatistics-header-archive": "Gecomprimeerde bestanden",
+       "json-warn-trailing-comma": "Er {{PLURAL:$1|is $1 komma|zijn $1 komma's}} aan het einde van de regel verwijderd uit de JSON",
        "json-error-unknown": "Er is een fout opgetreden met de JSON. Foutmelding: $1",
-       "json-error-syntax": "Syntaxfoutmelding"
+       "json-error-depth": "De maximale stackdiepte is overschreden",
+       "json-error-state-mismatch": "Ongeldige of onjuiste JSON",
+       "json-error-ctrl-char": "Fout in controlekarakter, mogelijk verkeerd gecodeerd",
+       "json-error-syntax": "Syntaxfoutmelding",
+       "json-error-utf8": "Ongeldige UTF-8-tekens, mogelijk verkeerd gecodeerd",
+       "json-error-recursion": "Een of meer recursieve verwijzingen in de waarde die moet worden gecodeerd",
+       "json-error-inf-or-nan": "Een of meer NAN- of INF-waarden in de waarde die moet worden gecodeerd",
+       "json-error-unsupported-type": "Er is een waarde opgegeven van een type dat niet kan worden gecodeerd"
 }
index 1d464d2..16ff0e2 100644 (file)
        "nospecialpagetext": "Du har bede om ei spesialside som ikkje finst. Lista over spesialsider finn du [[Special:SpecialPages|her]].",
        "error": "Feil",
        "databaseerror": "Databasefeil",
-       "databaseerror-text": "Ein spørjefeil mot databasa har oppstått.\nDette kan indikere ein feil i programvara.",
+       "databaseerror-text": "Ein spørjefeil mot databasen har oppstått.\nDette kan indikere ein feil i programvara.",
        "databaseerror-error": "Feil: $1",
        "laggedslavemode": "Åtvaring: Det er mogleg at sida ikkje er heilt oppdatert.",
        "readonly": "Databasen er skriveverna",
        "mergehistory-same-destination": "Kjelde- og målside kan ikkje vere den same.",
        "mergehistory-reason": "Årsak:",
        "mergelog": "Flettelogg",
-       "pagemerge-logentry": "fletta [[$1]] til [[$2]] (versjonar fram til $3)",
        "revertmerge": "Fjern fletting",
        "mergelogpagetext": "Nedanfor finn du ei liste over dei siste flettingane av ein sidehistorikk til ein annan.",
        "history-title": "$1: Versjonshistorikk",
        "statistics": "Statistikk",
        "statistics-header-pages": "Sidestatistikk",
        "statistics-header-edits": "Endringsstatistikk",
-       "statistics-header-views": "Visingsstatistikk",
        "statistics-header-users": "Brukarstatistikk",
        "statistics-header-hooks": "Anna statistikk",
        "statistics-articles": "Innhaldssider",
        "statistics-files": "Opplasta filer",
        "statistics-edits": "Endringar sidan {{SITENAME}} vart oppretta",
        "statistics-edits-average": "Gjennomsnittleg tal på endringar per side",
-       "statistics-views-total": "Totalt visningstal",
-       "statistics-views-total-desc": "Visingar av sider som ikkje finst og spesialsider er ikkje tekne med",
-       "statistics-views-peredit": "Visingar per endring",
        "statistics-users": "Registrerte [[Special:ListUsers|brukarar]]",
        "statistics-users-active": "Aktive brukarar",
        "statistics-users-active-desc": "Brukarar som har utført handlingar {{PLURAL:$1|i dag|dei siste $1 dagane}}",
-       "statistics-mostpopular": "Mest viste sider",
        "pageswithprop": "Sider med ein sideeigenskap",
        "pageswithprop-legend": "Sider med ein sideeigenskap",
        "pageswithprop-text": "Denne sida listar opp sider som nyttar ein viss sideeigenskap.",
        "uncategorizedtemplates": "Ukategoriserte malar",
        "unusedcategories": "Ubrukte kategoriar",
        "unusedimages": "Ubrukte filer",
-       "popularpages": "Populære sider",
        "wantedcategories": "Etterspurde kategoriar",
        "wantedpages": "Etterspurde sider",
        "wantedpages-badtitle": "Ugyldig tittel mellom resultata: $1",
        "pageinfo-robot-policy": "Botindeksering",
        "pageinfo-robot-index": "Tillate",
        "pageinfo-robot-noindex": "Ikkje tillate",
-       "pageinfo-views": "Tal på visningar",
        "pageinfo-watchers": "Tal på overvakarar av sida",
        "pageinfo-few-watchers": "Færre enn $1 {{PLURAL:$1|som overvakar}}",
        "pageinfo-redirects-name": "Tal på omdirigeringar til sida",
index c516f05..7b3241a 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "BRG (on nov.wikipedia.org)",
-            "Chrisportelli",
-            "MF-Warburg",
-            "Malafaya",
-            "Nov ialiste",
-            "Wayne (on nov.wikipedia.org)"
-        ]
-    },
-    "sunday": "sundie",
-    "monday": "lundie",
-    "tuesday": "mardie",
-    "wednesday": "merkurdie",
-    "thursday": "jodie",
-    "friday": "venerdie",
-    "saturday": "saturdie",
-    "sun": "sun",
-    "mon": "lun",
-    "tue": "mar",
-    "wed": "mer",
-    "thu": "jod",
-    "fri": "ven",
-    "sat": "sat",
-    "january": "januare",
-    "february": "februare",
-    "march": "marte",
-    "april": "aprile",
-    "may_long": "maye",
-    "june": "june",
-    "july": "julie",
-    "august": "auguste",
-    "september": "septembre",
-    "october": "oktobre",
-    "november": "novembre",
-    "december": "desembre",
-    "january-gen": "de januare",
-    "february-gen": "de februare",
-    "march-gen": "de marte",
-    "april-gen": "de aprile",
-    "may-gen": "de maye",
-    "june-gen": "de june",
-    "july-gen": "de julie",
-    "august-gen": "de auguste",
-    "september-gen": "de septembre",
-    "october-gen": "de oktobre",
-    "november-gen": "de novembre",
-    "december-gen": "de desembre",
-    "jan": "jan",
-    "feb": "feb",
-    "mar": "mar",
-    "apr": "apr",
-    "may": "maye",
-    "jun": "jun",
-    "jul": "jul",
-    "aug": "aug",
-    "sep": "sep",
-    "oct": "okt",
-    "nov": "nov",
-    "dec": "des",
-    "pagecategories": "{{PLURAL:$1|Kategorie|Kategories}}",
-    "category_header": "Artikles in kategorie \"$1\"",
-    "subcategories": "Subkategories",
-    "about": "Pri",
-    "article": "Pagine de kontenaje",
-    "newwindow": "(aperta in novi fenestre)",
-    "cancel": "Nihilisa",
-    "moredotdotdot": "Plu...",
-    "mypage": "Men pagine",
-    "mytalk": "Men parla-pagine",
-    "anontalk": "Parlo por disi IP",
-    "navigation": "Navigatione",
-    "and": "&#32;e",
-    "qbfind": "Trova",
-    "qbedit": "Modifika",
-    "qbpageoptions": "Disi pagine",
-    "qbmyoptions": "Men pagines",
-    "vector-action-delete": "Ekarta",
-    "vector-view-edit": "Modifika",
-    "vector-view-view": "Lekte",
-    "returnto": "Rivada a $1.",
-    "tagline": "Fro {{SITENAME}}",
-    "help": "Helpo",
-    "search": "Sercha",
-    "searchbutton": "Sercha",
-    "go": "Vada",
-    "searcharticle": "Vada",
-    "history": "Historie del pagine",
-    "history_short": "Historie",
-    "printableversion": "Printindi versione",
-    "permalink": "Permananti linke",
-    "print": "Printa",
-    "edit": "Immodifika",
-    "editthispage": "Modifika disi pagine",
-    "delete": "Ekarta",
-    "deletethispage": "Ekarta disi pagine",
-    "protect": "Protekte",
-    "protectthispage": "Protekte disi pagine",
-    "newpage": "Novi pagine",
-    "talkpage": "Diskuse disi pagine",
-    "talkpagelinktext": "Diskusione",
-    "specialpage": "Spesial Pagine",
-    "articlepage": "Regarda pagine de kontenaje",
-    "talk": "Diskusione",
-    "toolbox": "Utensiles",
-    "userpage": "Vida useren pagine",
-    "imagepage": "Regarda imajal pagine",
-    "mediawikipage": "Regarda mesajal pagine",
-    "templatepage": "Vida shablonal pagine",
-    "categorypage": "Regarda kategorial pagine",
-    "otherlanguages": "Altri lingues",
-    "lastmodifiedat": "Disi pagine blid lastim modifika: $2 ye $1.",
-    "jumptonavigation": "navigatione",
-    "jumptosearch": "sercha",
-    "aboutsite": "Pri {{SITENAME}}",
-    "aboutpage": "Project:Pri",
-    "currentevents": "Nuni eventes",
-    "currentevents-url": "Project:Nuni eventes",
-    "edithelp": "Helpo pri modifiko de pagines",
-    "mainpage": "Chefi pagine",
-    "mainpage-description": "Chefi pagine",
-    "portal": "Li komun chambre",
-    "portal-url": "Project:Li komun chambre",
-    "badaccess": "Permisione erore",
-    "youhavenewmessages": "Vu have $1 ($2).",
-    "youhavenewmessagesmulti": "Vu have novi mesajes pri $1",
-    "editsection": "modifika",
-    "editold": "modifika",
-    "editlink": "modifika",
-    "restorelink": "{{PLURAL:$1|unu ekartati modifiko|$1 ekartati modifikos}}",
-    "red-link-title": "$1 (pagine non exista)",
-    "nstab-main": "Artikle",
-    "nstab-user": "Useren pagine",
-    "nstab-special": "Spesial pagine",
-    "nstab-project": "Projetal pagine",
-    "nstab-mediawiki": "Mesaje",
-    "nstab-template": "Shablone",
-    "nstab-help": "Helpo-pagine",
-    "nstab-category": "Kategorie",
-    "error": "Erore",
-    "badtitle": "Mali title",
-    "badtitletext": "Li pregati pagine esed non-valid, vakui, o non-korektim linkat inter-lingue o inter-wiki title. Lu povud kontena un o plusi karakteres kel on non pove usa in titles.",
-    "logouttext": "'''Vu es nun eksignatat.'''\n\nVu pove kontinua usa {{SITENAME}} anonimim, o vu pove riensignata kom li sami o altri usere.",
-    "yourname": "Usere-nome:",
-    "yourpassword": "Pasa-vorde:",
-    "remembermypassword": "Memora men pasa-vorde (kun kuke) (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Ensignata",
-    "loginprompt": "Vu mus lasa cookies de ensignata en {{SITENAME}}.",
-    "userlogin": "Ensignata / krea usere-registre",
-    "logout": "Eksignata",
-    "userlogout": "Eksignata",
-    "notloggedin": "Non ensignatat",
-    "nologin": "Ob vu non have registre? '''$1'''.",
-    "nologinlink": "Krea usere-registre",
-    "gotaccountlink": "Ensignata",
-    "loginerror": "Erore de ensignato",
-    "loginsuccesstitle": "Ensignato suksesosi",
-    "loginsuccess": "'''Vu es nun ensignatat a {{SITENAME}} nomisat \"$1\".'''",
-    "mailmypassword": "E-posta men pasa-vorde",
-    "acct_creation_throttle_hit": "Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last day, which is the maximum allowed in this time period.\nAs a result, visitors using this IP address cannot create any more accounts at the moment.",
-    "accountcreated": "Registre kreat",
-    "accountcreatedtext": "Li usere-registre por $1 ha bli krea.",
-    "bold_sample": "Diki texte",
-    "image_sample": "Exemple.jpg",
-    "summary": "Resume:",
-    "minoredit": "Dise es mikri modifiko",
-    "watchthis": "Observa disi pagine",
-    "savearticle": "Spara pagine",
-    "showpreview": "Montra previdatu",
-    "showdiff": "Montra chanjos",
-    "loginreqtitle": "Ensignato Postulat",
-    "loginreqlink": "ensignata",
-    "accmailtitle": "Pasa-vorde sendat.",
-    "accmailtext": "Li pasa-vorde por \"$1\" ha bli senda a $2.",
-    "yourtext": "Vun texte",
-    "currentrev": "Nuni revisione",
-    "currentrevisionlink": "Nuni revisione",
-    "histfirst": "Maxim frui",
-    "histlast": "Maxim resenti",
-    "history-feed-title": "Historie de revisiones",
-    "history-feed-description": "Historie de revisiones de disi pagine sur li wiki",
-    "history-feed-empty": "Li petit pagine non exista.\nForsan lu ha bli ekarta fro li wiki, o rinomat.\nProba [[Special:Search|sercho sur li wiki]] por relatet pagines.",
-    "lineno": "Linie $1:",
-    "compareselectedversions": "Kompara selektet versiones",
-    "searchresults": "Resultes de sercho",
-    "prevn": "lasti {{PLURAL:$1|$1}}",
-    "nextn": "sekuenti {{PLURAL:$1|$1}}",
-    "viewprevnext": "Vida ($1 {{int:pipe-separator}} $2) ($3).",
-    "search-result-size": "$1 ({{PLURAL:$2|1 vorde|$2 vordes}})",
-    "showingresults": "Montrant subu {{PLURAL:$1|'''1''' resulte|'''$1''' resultes}} amaxim komensant fro #'''$2'''.",
-    "showingresultsnum": "Montrant subu {{PLURAL:$3|'''1''' result|'''$3''' results}} komensant fro #'''$2'''.",
-    "preferences": "Preferos",
-    "mypreferences": "Men preferos",
-    "prefs-rc": "Resenti chanjos",
-    "searchresultshead": "Sercha",
-    "timezoneregion-africa": "Afrika",
-    "nchanges": "$1 {{PLURAL:$1|chanjo|chanjos}}",
-    "recentchanges": "Resenti chanjos",
-    "rcshowhideminor": "$1 minori modifikos",
-    "rcshowhideanons": "$1 anonimi useres",
-    "rcshowhidemine": "$1 men modifikos",
-    "rclinks": "Montra lasti $1 chanjes in lasti $2 dies<br />$3",
-    "hist": "hist",
-    "hide": "Kasha",
-    "show": "Montra",
-    "minoreditletter": "m",
-    "newpageletter": "N",
-    "recentchangeslinked": "Afini chanjos",
-    "recentchangeslinked-feed": "Afini chanjos",
-    "recentchangeslinked-toolbox": "Afini chanjos",
-    "upload": "Enporta",
-    "uploadnologin": "Non ensignatat",
-    "filedesc": "Resume",
-    "fileuploadsummary": "Resume:",
-    "watchthisupload": "Observa disi pagine",
-    "listfiles_search_for": "Sercha imaje nome:",
-    "listfiles_name": "Nome",
-    "listfiles_user": "Usere",
-    "listfiles_size": "Grandeso (bites)",
-    "listfiles_description": "Deskriptione",
-    "filehist-user": "Usere",
-    "imagelinks": "Linkes",
-    "randompage": "Arbitriari pagine",
-    "brokenredirects": "Rupteti ri-adresos",
-    "brokenredirectstext": "Li sekuenti ri-adresos linka a non-existanti pagines:",
-    "brokenredirects-edit": "editja",
-    "fewestrevisions": "Artikles kun minim multi revisiones",
-    "ncategories": "$1 {{PLURAL:$1|kategorie|kategories}}",
-    "lonelypages": "Pagines kel non bli kupla",
-    "lonelypagestext": "Disi pagines non es kuplat fro altri pagines in {{SITENAME}}.",
-    "uncategorizedpages": "Pagines sin kategorie",
-    "uncategorizedcategories": "Kategories sin kategorie",
-    "uncategorizedimages": "Imajes sin kategorie",
-    "popularpages": "Popular pagines",
-    "mostcategories": "Artikles kun maxim multi kategories",
-    "mostrevisions": "Artikles kun maxim multi revisiones",
-    "shortpages": "Kurti pagines",
-    "longpages": "Longi pagines",
-    "deadendpages": "Pagines sin kuplures",
-    "listusers": "Liste de useres",
-    "newpages": "Novi pagines",
-    "ancientpages": "Maxim ansieni pagines",
-    "move": "Mova",
-    "movethispage": "Mova (rinomisa) disi pagine",
-    "booksources": "Libral fontes",
-    "booksources-search-legend": "Sercha libral fontes",
-    "booksources-go": "Vada",
-    "specialloguserlabel": "Usere:",
-    "allpages": "Omni pagines",
-    "alphaindexline": "$1 a $2",
-    "allarticles": "Omni artikles",
-    "allinnamespace": "Omni pagines ($1 nome-spatie)",
-    "allpagessubmit": "Vada",
-    "categories": "Kategories",
-    "categoriespagetext": "Li sekuenti {{PLURAL:$1|kategorie|kategories}} exista in li wiki.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
-    "linksearch-ok": "Sercha",
-    "watchlist": "Men liste de observos",
-    "mywatchlist": "Men liste de observos",
-    "nowatchlist": "Vu have nuli koses in vun liste de observos.",
-    "watchnologin": "Non ensignatat",
-    "addedwatchtext": "Li pagine \"[[:$1]]\" ha bli adi a vun [[Special:Watchlist|observa-liste]].\nFuturi chanjos a disi pagine e lun asosiati Parla-pagine sal bli lista tilok, e li pagine sal apari '''diki''' in li [[Special:RecentChanges|liste de resenti chanjos]] por ke on trova lu plu fasilim.\n\nSi vu voli plu tardim ekarta li pagine fro vun observa-liste, klikta \"Desobserva\" in li lateral kolumne.",
-    "watch": "Observa",
-    "watchthispage": "Observa disi pagine",
-    "unwatch": "Desobserva",
-    "unwatchthispage": "Des-observa disi pagine",
-    "enotif_lastvisited": "Regarda $1 por vida omni chanjes depos vun lasti visite.",
-    "changed": "chanjati",
-    "confirm": "Konfirma",
-    "excontent": "kontenaje esed: '$1'",
-    "excontentauthor": "kontenaje esed: '$1' (e li soli kontribuere esed '[[Special:Contributions/$2|$2]]')",
-    "exblank": "pagine esed vakui",
-    "actioncomplete": "Akto kompleti",
-    "dellogpage": "Loge de ekartos",
-    "dellogpagetext": "Subu es liste del maxim resenti ekartos.",
-    "deletionlog": "registre de ekartos",
-    "deletecomment": "Resone:",
-    "revertpage": "Riverted modifikos da [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]); restaurad lasti versione da [[User:$1|$1]]",
-    "prot_1movedto2": "[[$1]] movat a [[$2]]",
-    "protect-legend": "Konfirma protektione",
-    "protect-level-sysop": "Sisopes nur",
-    "blanknamespace": "(Chefi)",
-    "contributions": "Useren kontributiones",
-    "mycontris": "Men kontributiones",
-    "sp-contributions-newbies": "Montra kontributiones nur de novi useres",
-    "sp-contributions-talk": "Diskusione",
-    "sp-contributions-search": "Sercha kontributiones",
-    "sp-contributions-submit": "Sercha",
-    "whatlinkshere": "Tum kel kupla hir",
-    "whatlinkshere-page": "Pagine:",
-    "whatlinkshere-links": "← linkes",
-    "ipbreason": "Resone:",
-    "badipaddress": "Non-valid IP adrese",
-    "contribslink": "Kontributiones",
-    "movearticle": "Mova pagine",
-    "move-watch": "Observa disi pagine",
-    "movereason": "Resone:",
-    "delete_and_move": "Ekarta e mova",
-    "delete_and_move_confirm": "Yes, ekarta li pagine",
-    "delete_and_move_reason": "Ekartat por fa spatie por movo \"[[$1]]\"",
-    "allmessages": "Sisteme mesajes",
-    "allmessagesname": "Nome",
-    "allmessagesdefault": "Non-spesifikati texte",
-    "allmessagescurrent": "Nuni texte",
-    "allmessagestext": "Dise es liste de sistemen mesajes obtenabli in li MediaWiki nomal spatie.",
-    "tooltip-pt-mytalk": "Vun parla-pagine",
-    "tooltip-pt-preferences": "Men preferos",
-    "tooltip-pt-logout": "Eksignata",
-    "tooltip-p-logo": "Chefi pagine",
-    "ilsubmit": "Sercha",
-    "bydate": "segun date",
-    "exif-imagewidth": "Larjeso",
-    "exif-imagelength": "Alteso",
-    "exif-imagedescription": "Title de imaje",
-    "exif-imageuniqueid": "Unik imaje ID",
-    "autosumm-replace": "Remplasant pagine kun '$1'",
-    "autoredircomment": "Ri-adresant a [[$1]]",
-    "autosumm-new": "Novi pagine: $1",
-    "version": "Versione",
-    "version-specialpages": "Spesial pagines",
-    "version-software-version": "Versione",
-    "specialpages": "Spesial pagines"
+       "@metadata": {
+               "authors": [
+                       "BRG (on nov.wikipedia.org)",
+                       "Chrisportelli",
+                       "MF-Warburg",
+                       "Malafaya",
+                       "Nov ialiste",
+                       "Wayne (on nov.wikipedia.org)"
+               ]
+       },
+       "sunday": "sundie",
+       "monday": "lundie",
+       "tuesday": "mardie",
+       "wednesday": "merkurdie",
+       "thursday": "jodie",
+       "friday": "venerdie",
+       "saturday": "saturdie",
+       "sun": "sun",
+       "mon": "lun",
+       "tue": "mar",
+       "wed": "mer",
+       "thu": "jod",
+       "fri": "ven",
+       "sat": "sat",
+       "january": "januare",
+       "february": "februare",
+       "march": "marte",
+       "april": "aprile",
+       "may_long": "maye",
+       "june": "june",
+       "july": "julie",
+       "august": "auguste",
+       "september": "septembre",
+       "october": "oktobre",
+       "november": "novembre",
+       "december": "desembre",
+       "january-gen": "de januare",
+       "february-gen": "de februare",
+       "march-gen": "de marte",
+       "april-gen": "de aprile",
+       "may-gen": "de maye",
+       "june-gen": "de june",
+       "july-gen": "de julie",
+       "august-gen": "de auguste",
+       "september-gen": "de septembre",
+       "october-gen": "de oktobre",
+       "november-gen": "de novembre",
+       "december-gen": "de desembre",
+       "jan": "jan",
+       "feb": "feb",
+       "mar": "mar",
+       "apr": "apr",
+       "may": "maye",
+       "jun": "jun",
+       "jul": "jul",
+       "aug": "aug",
+       "sep": "sep",
+       "oct": "okt",
+       "nov": "nov",
+       "dec": "des",
+       "pagecategories": "{{PLURAL:$1|Kategorie|Kategories}}",
+       "category_header": "Artikles in kategorie \"$1\"",
+       "subcategories": "Subkategories",
+       "about": "Pri",
+       "article": "Pagine de kontenaje",
+       "newwindow": "(aperta in novi fenestre)",
+       "cancel": "Nihilisa",
+       "moredotdotdot": "Plu...",
+       "mypage": "Men pagine",
+       "mytalk": "Men parla-pagine",
+       "anontalk": "Parlo por disi IP",
+       "navigation": "Navigatione",
+       "and": "&#32;e",
+       "qbfind": "Trova",
+       "qbedit": "Modifika",
+       "qbpageoptions": "Disi pagine",
+       "qbmyoptions": "Men pagines",
+       "returnto": "Rivada a $1.",
+       "tagline": "Fro {{SITENAME}}",
+       "help": "Helpo",
+       "search": "Sercha",
+       "searchbutton": "Sercha",
+       "go": "Vada",
+       "searcharticle": "Vada",
+       "history": "Historie del pagine",
+       "history_short": "Historie",
+       "printableversion": "Printindi versione",
+       "permalink": "Permananti linke",
+       "print": "Printa",
+       "edit": "Immodifika",
+       "editthispage": "Modifika disi pagine",
+       "delete": "Ekarta",
+       "deletethispage": "Ekarta disi pagine",
+       "protect": "Protekte",
+       "protectthispage": "Protekte disi pagine",
+       "newpage": "Novi pagine",
+       "talkpage": "Diskuse disi pagine",
+       "talkpagelinktext": "Diskusione",
+       "specialpage": "Spesial Pagine",
+       "articlepage": "Regarda pagine de kontenaje",
+       "talk": "Diskusione",
+       "toolbox": "Utensiles",
+       "userpage": "Vida useren pagine",
+       "imagepage": "Regarda imajal pagine",
+       "mediawikipage": "Regarda mesajal pagine",
+       "templatepage": "Vida shablonal pagine",
+       "categorypage": "Regarda kategorial pagine",
+       "otherlanguages": "Altri lingues",
+       "lastmodifiedat": "Disi pagine blid lastim modifika: $2 ye $1.",
+       "jumptonavigation": "navigatione",
+       "jumptosearch": "sercha",
+       "aboutsite": "Pri {{SITENAME}}",
+       "aboutpage": "Project:Pri",
+       "currentevents": "Nuni eventes",
+       "currentevents-url": "Project:Nuni eventes",
+       "edithelp": "Helpo pri modifiko de pagines",
+       "mainpage": "Chefi pagine",
+       "mainpage-description": "Chefi pagine",
+       "portal": "Li komun chambre",
+       "portal-url": "Project:Li komun chambre",
+       "badaccess": "Permisione erore",
+       "youhavenewmessages": "Vu have $1 ($2).",
+       "youhavenewmessagesmulti": "Vu have novi mesajes pri $1",
+       "editsection": "modifika",
+       "editold": "modifika",
+       "editlink": "modifika",
+       "restorelink": "{{PLURAL:$1|unu ekartati modifiko|$1 ekartati modifikos}}",
+       "red-link-title": "$1 (pagine non exista)",
+       "nstab-main": "Artikle",
+       "nstab-user": "Useren pagine",
+       "nstab-special": "Spesial pagine",
+       "nstab-project": "Projetal pagine",
+       "nstab-mediawiki": "Mesaje",
+       "nstab-template": "Shablone",
+       "nstab-help": "Helpo-pagine",
+       "nstab-category": "Kategorie",
+       "error": "Erore",
+       "badtitle": "Mali title",
+       "badtitletext": "Li pregati pagine esed non-valid, vakui, o non-korektim linkat inter-lingue o inter-wiki title. Lu povud kontena un o plusi karakteres kel on non pove usa in titles.",
+       "logouttext": "'''Vu es nun eksignatat.'''\n\nVu pove kontinua usa {{SITENAME}} anonimim, o vu pove riensignata kom li sami o altri usere.",
+       "yourname": "Usere-nome:",
+       "yourpassword": "Pasa-vorde:",
+       "remembermypassword": "Memora men pasa-vorde (kun kuke) (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Ensignata",
+       "userlogin": "Ensignata / krea usere-registre",
+       "logout": "Eksignata",
+       "userlogout": "Eksignata",
+       "notloggedin": "Non ensignatat",
+       "nologin": "Ob vu non have registre? '''$1'''.",
+       "nologinlink": "Krea usere-registre",
+       "gotaccountlink": "Ensignata",
+       "loginerror": "Erore de ensignato",
+       "loginsuccesstitle": "Ensignato suksesosi",
+       "loginsuccess": "'''Vu es nun ensignatat a {{SITENAME}} nomisat \"$1\".'''",
+       "mailmypassword": "E-posta men pasa-vorde",
+       "acct_creation_throttle_hit": "Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last day, which is the maximum allowed in this time period.\nAs a result, visitors using this IP address cannot create any more accounts at the moment.",
+       "accountcreated": "Registre kreat",
+       "accountcreatedtext": "Li usere-registre por $1 ha bli krea.",
+       "bold_sample": "Diki texte",
+       "image_sample": "Exemple.jpg",
+       "summary": "Resume:",
+       "minoredit": "Dise es mikri modifiko",
+       "watchthis": "Observa disi pagine",
+       "savearticle": "Spara pagine",
+       "showpreview": "Montra previdatu",
+       "showdiff": "Montra chanjos",
+       "loginreqtitle": "Ensignato Postulat",
+       "loginreqlink": "ensignata",
+       "accmailtitle": "Pasa-vorde sendat.",
+       "accmailtext": "Li pasa-vorde por \"$1\" ha bli senda a $2.",
+       "yourtext": "Vun texte",
+       "currentrev": "Nuni revisione",
+       "currentrevisionlink": "Nuni revisione",
+       "histfirst": "Maxim frui",
+       "histlast": "Maxim resenti",
+       "history-feed-title": "Historie de revisiones",
+       "history-feed-description": "Historie de revisiones de disi pagine sur li wiki",
+       "history-feed-empty": "Li petit pagine non exista.\nForsan lu ha bli ekarta fro li wiki, o rinomat.\nProba [[Special:Search|sercho sur li wiki]] por relatet pagines.",
+       "lineno": "Linie $1:",
+       "compareselectedversions": "Kompara selektet versiones",
+       "searchresults": "Resultes de sercho",
+       "prevn": "lasti {{PLURAL:$1|$1}}",
+       "nextn": "sekuenti {{PLURAL:$1|$1}}",
+       "viewprevnext": "Vida ($1 {{int:pipe-separator}} $2) ($3).",
+       "search-result-size": "$1 ({{PLURAL:$2|1 vorde|$2 vordes}})",
+       "showingresults": "Montrant subu {{PLURAL:$1|'''1''' resulte|'''$1''' resultes}} amaxim komensant fro #'''$2'''.",
+       "preferences": "Preferos",
+       "mypreferences": "Men preferos",
+       "prefs-rc": "Resenti chanjos",
+       "searchresultshead": "Sercha",
+       "timezoneregion-africa": "Afrika",
+       "nchanges": "$1 {{PLURAL:$1|chanjo|chanjos}}",
+       "recentchanges": "Resenti chanjos",
+       "rcshowhideminor": "$1 minori modifikos",
+       "rcshowhideanons": "$1 anonimi useres",
+       "rcshowhidemine": "$1 men modifikos",
+       "rclinks": "Montra lasti $1 chanjes in lasti $2 dies<br />$3",
+       "hist": "hist",
+       "hide": "Kasha",
+       "show": "Montra",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "recentchangeslinked": "Afini chanjos",
+       "recentchangeslinked-feed": "Afini chanjos",
+       "recentchangeslinked-toolbox": "Afini chanjos",
+       "upload": "Enporta",
+       "uploadnologin": "Non ensignatat",
+       "filedesc": "Resume",
+       "fileuploadsummary": "Resume:",
+       "watchthisupload": "Observa disi pagine",
+       "listfiles_search_for": "Sercha imaje nome:",
+       "listfiles_name": "Nome",
+       "listfiles_user": "Usere",
+       "listfiles_size": "Grandeso (bites)",
+       "listfiles_description": "Deskriptione",
+       "filehist-user": "Usere",
+       "imagelinks": "Linkes",
+       "randompage": "Arbitriari pagine",
+       "brokenredirects": "Rupteti ri-adresos",
+       "brokenredirectstext": "Li sekuenti ri-adresos linka a non-existanti pagines:",
+       "brokenredirects-edit": "editja",
+       "fewestrevisions": "Artikles kun minim multi revisiones",
+       "ncategories": "$1 {{PLURAL:$1|kategorie|kategories}}",
+       "lonelypages": "Pagines kel non bli kupla",
+       "lonelypagestext": "Disi pagines non es kuplat fro altri pagines in {{SITENAME}}.",
+       "uncategorizedpages": "Pagines sin kategorie",
+       "uncategorizedcategories": "Kategories sin kategorie",
+       "uncategorizedimages": "Imajes sin kategorie",
+       "mostcategories": "Artikles kun maxim multi kategories",
+       "mostrevisions": "Artikles kun maxim multi revisiones",
+       "shortpages": "Kurti pagines",
+       "longpages": "Longi pagines",
+       "deadendpages": "Pagines sin kuplures",
+       "listusers": "Liste de useres",
+       "newpages": "Novi pagines",
+       "ancientpages": "Maxim ansieni pagines",
+       "move": "Mova",
+       "movethispage": "Mova (rinomisa) disi pagine",
+       "booksources": "Libral fontes",
+       "booksources-search-legend": "Sercha libral fontes",
+       "specialloguserlabel": "Usere:",
+       "allpages": "Omni pagines",
+       "allarticles": "Omni artikles",
+       "allinnamespace": "Omni pagines ($1 nome-spatie)",
+       "allpagessubmit": "Vada",
+       "categories": "Kategories",
+       "categoriespagetext": "Li sekuenti {{PLURAL:$1|kategorie|kategories}} exista in li wiki.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
+       "linksearch-ok": "Sercha",
+       "watchlist": "Men liste de observos",
+       "mywatchlist": "Men liste de observos",
+       "nowatchlist": "Vu have nuli koses in vun liste de observos.",
+       "watchnologin": "Non ensignatat",
+       "addedwatchtext": "Li pagine \"[[:$1]]\" ha bli adi a vun [[Special:Watchlist|observa-liste]].\nFuturi chanjos a disi pagine e lun asosiati Parla-pagine sal bli lista tilok, e li pagine sal apari '''diki''' in li [[Special:RecentChanges|liste de resenti chanjos]] por ke on trova lu plu fasilim.\n\nSi vu voli plu tardim ekarta li pagine fro vun observa-liste, klikta \"Desobserva\" in li lateral kolumne.",
+       "watch": "Observa",
+       "watchthispage": "Observa disi pagine",
+       "unwatch": "Desobserva",
+       "unwatchthispage": "Des-observa disi pagine",
+       "enotif_lastvisited": "Regarda $1 por vida omni chanjes depos vun lasti visite.",
+       "changed": "chanjati",
+       "confirm": "Konfirma",
+       "excontent": "kontenaje esed: '$1'",
+       "excontentauthor": "kontenaje esed: '$1' (e li soli kontribuere esed '[[Special:Contributions/$2|$2]]')",
+       "actioncomplete": "Akto kompleti",
+       "dellogpage": "Loge de ekartos",
+       "dellogpagetext": "Subu es liste del maxim resenti ekartos.",
+       "deletionlog": "registre de ekartos",
+       "deletecomment": "Resone:",
+       "revertpage": "Riverted modifikos da [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]); restaurad lasti versione da [[User:$1|$1]]",
+       "prot_1movedto2": "[[$1]] movat a [[$2]]",
+       "protect-legend": "Konfirma protektione",
+       "protect-level-sysop": "Sisopes nur",
+       "blanknamespace": "(Chefi)",
+       "contributions": "Useren kontributiones",
+       "mycontris": "Men kontributiones",
+       "sp-contributions-newbies": "Montra kontributiones nur de novi useres",
+       "sp-contributions-talk": "Diskusione",
+       "sp-contributions-search": "Sercha kontributiones",
+       "sp-contributions-submit": "Sercha",
+       "whatlinkshere": "Tum kel kupla hir",
+       "whatlinkshere-page": "Pagine:",
+       "whatlinkshere-links": "← linkes",
+       "ipbreason": "Resone:",
+       "badipaddress": "Non-valid IP adrese",
+       "contribslink": "Kontributiones",
+       "movearticle": "Mova pagine",
+       "move-watch": "Observa disi pagine",
+       "movereason": "Resone:",
+       "delete_and_move": "Ekarta e mova",
+       "delete_and_move_confirm": "Yes, ekarta li pagine",
+       "delete_and_move_reason": "Ekartat por fa spatie por movo \"[[$1]]\"",
+       "allmessages": "Sisteme mesajes",
+       "allmessagesname": "Nome",
+       "allmessagesdefault": "Non-spesifikati texte",
+       "allmessagescurrent": "Nuni texte",
+       "allmessagestext": "Dise es liste de sistemen mesajes obtenabli in li MediaWiki nomal spatie.",
+       "tooltip-pt-mytalk": "Vun parla-pagine",
+       "tooltip-pt-preferences": "Men preferos",
+       "tooltip-pt-logout": "Eksignata",
+       "tooltip-p-logo": "Chefi pagine",
+       "ilsubmit": "Sercha",
+       "bydate": "segun date",
+       "exif-imagewidth": "Larjeso",
+       "exif-imagelength": "Alteso",
+       "exif-imagedescription": "Title de imaje",
+       "exif-imageuniqueid": "Unik imaje ID",
+       "autosumm-replace": "Remplasant pagine kun '$1'",
+       "autoredircomment": "Ri-adresant a [[$1]]",
+       "autosumm-new": "Novi pagine: $1",
+       "version": "Versione",
+       "version-specialpages": "Spesial pagines",
+       "version-software-version": "Versione",
+       "specialpages": "Spesial pagines"
 }
index 4459d42..46d12c0 100644 (file)
@@ -9,9 +9,9 @@
        },
        "tog-underline": "Tsenya mothalafase go dihlomaganyo:",
        "tog-hideminor": "Fihla diphetogo tše nnyenyane",
-       "tog-showtoolbar": "Bontšha ''toolbar'' yago fetola (JavaScript)",
-       "tog-editondblclick": "Fetola matlakala ka go thathapa gabedi (JavaScript)",
-       "tog-editsectiononrightclick": "Dumella go fetola sekgao ka thathapa ka lagoja thaetlele ya sekgao (JavaScript)",
+       "tog-showtoolbar": "Bontšha ''toolbar'' yago fetola",
+       "tog-editondblclick": "Fetola matlakala ka go thathapa gabedi",
+       "tog-editsectiononrightclick": "Dumella go fetola sekgao ka thathapa ka lagoja thaetlele ya sekgao",
        "tog-watchcreations": "Tsenya matlaka a mafsa ao ke a ngwalago go lenano laka la ditlhapetšo",
        "tog-watchdefault": "Tsenya matlaka ao ke a fetolago go lenano laka la ditlhapetšo",
        "tog-watchmoves": "Tsenya matlaka ao ke a hudušago go lenano laka la ditlhapetšo",
@@ -97,8 +97,8 @@
        "newwindow": "(e bula lefastere le lempsha)",
        "cancel": "Khansela",
        "moredotdotdot": "Tše dingwe...",
-       "mypage": "Letlakala la ka",
-       "mytalk": "Dipolelo tša ka",
+       "mypage": "Letlakala",
+       "mytalk": "Bolela",
        "anontalk": "Poledišano ya IP ye",
        "navigation": "Tšwelotšo",
        "and": "&#32;le",
        "articlepage": "Nyakoretša letlakala la mateng",
        "talk": "Poledišano",
        "views": "Dinyakorêtšo",
-       "toolbox": "Lepokisi la dithulusu",
+       "toolbox": "Dithulusu",
        "userpage": "Nyakorela letlakala la mošomiši",
        "projectpage": "Nyakoretša letlakala la tirotherwa",
        "imagepage": "Nyakoretša letlakala la ''file''",
        "versionrequiredtext": "Version $1 ya MediaWiki ea hlokega go šomiša letlakala le. Lebelela [[Special:Version|letlakala la version]].",
        "retrievedfrom": "Le tšwa go \"$1\"",
        "youhavenewmessages": "O na le $1 ($2).",
-       "newmessagesdifflinkplural": "l{{PLURAL:$1|Phetogo tša|Diphetogo ya}}go feta",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|Phetogo tša|Diphetogo ya}} go feta",
        "youhavenewmessagesmulti": "O nale melaetša ye mefsa go $1",
        "editsection": "lokiša",
        "editold": "fetola",
        "gotaccount": "O šetše o nale tšhupaleloko? '''$1'''.",
        "gotaccountlink": "Tsena",
        "userlogin-resetlink": "O lebetše dintlha tšago tsena?",
-       "createaccountmail": "ka e-mail",
+       "createaccountmail": "Re šomiše ditlhaka-tša-siphiri tša sebakanyana tšeo re di kgethilego re di romele ka e-mail",
        "createaccountreason": "Lebaka:",
        "badretype": "Ditlhaka-tša-siphiri tše o di šomišitšego ga di swane.",
        "noname": "Gawa fana ka leina la mošomiši la go loka.",
        "wrongpassword": "O loketše ditlhaka-tša-siphiri tšeo e sego tšona. Ka kgopelo, leka gape.",
        "wrongpasswordempty": "Ga wa lokela ditlhaka-tša-siphiri. Ka kgopelo, leka gape.",
        "passwordtooshort": "Ditlhaka-tša-siphiri tša gago ga tša dumelega goba di kopana.\nGo nyakega gore e be le {{PLURAL:$1|tlhaka ye tee|$1 ya ditlhaka}} gape  e seke ya swana le leina la gago (''username'').",
-       "mailmypassword": "Romela ditlhaka-tša-siphiri tše mpšha ka e-mail",
+       "mailmypassword": "Fetola ditlhaka-tša-siphiri",
        "passwordremindertitle": "''Password'' ye mphsa ya nakonyana go {{SITENAME}}",
-       "passwordremindertext": "Motho yo mongwe (goba wena, gotšwa IP atrese $1) o\nkgopetše gore re moromele Ditlhaka-tša-siphiri tše mfsa tša {{SITENAME}} ($4).\n\nDitlhaka-tša-siphiri tša  mošomiši \"$2\" go tloga bjale ke  \"$3\".\nEya go {{SITENAME}} o e fetole.\n\nGa eba motho yo mongwe esego wena o dirile kgopelo ye, goba o gopola Ditlhaka-tša-siphiri gomme ga o sa\nhloka gore e fetolwe, hlokomologa molaetša wo, o tšwele pele o šumiše Ditlhaka-tša-siphiri tša kgale.",
+       "passwordremindertext": "Motho yo mongwe (goba wena, gotšwa IP atrese $1) o\nkgopetše gore re moromele Ditlhaka-tša-siphiri tše mfsa tša {{SITENAME}} ($4).\n\nDitlhaka-tša-siphiri tša  mošomiši \"$2\" go tloga bjale ke  \"$3\".\n\nDitlhaka-tša-siphiri di tla šoma {{PLURAL:$5|letšatši|matšatši a $5}}.\n\nGa eba motho yo mongwe esego wena o dirile kgopelo ye, goba o gopola Ditlhaka-tša-siphiri gomme ga o sa\nhloka gore e fetolwe, hlokomologa molaetša wo, o tšwele pele o šumiše Ditlhaka-tša-siphiri tša kgale.",
        "noemail": "Ga gona e-mail atrese ya mošomiši \"$1\".",
        "passwordsent": "\nDihlaka tša siphiri (''password'') tše mphsa di rometšwe go e-mail atrese ya \"$1\".\nRe kgopela gore o tsene ge fetša go e hwetša.",
        "blocked-mailpassword": "IP atrese ya gago e thibetšwe go dira diphetogo, ka fao ga wa dumellwa\ngo šomiša thulusu ya go hwetša Ditlhaka-tša-siphiri go thibela go hlapanya.",
        "eauthentsent": "Molaetša wa go tiišetša o  rometšwe go e-mail atrese.\n\nPele re romela melaetša ye mengwe go atrese ye, o kgopelwa go latela ditaelo tšeo dilego molaetšeng go tiišetša gore atrese ke ya gago.",
-       "throttled-mailpassword": "Kgopotšo ya ditlhaka-tša-siphiri e rometšwe {{PLURAL:$1|iring|diiring tše $1}} tša gofeta.\nGo thibela go hlapanya/kgobošo, kgopotšo e tee ka {{PLURAL:$1|iri|diiri tše $1}} e tla romellwa.",
+       "throttled-mailpassword": "Kgopelo ya go fetola ditlhaka-tša-siphiri e rometšwe {{PLURAL:$1|iring|diiring tše $1}} tša gofeta.\nGo thibela go hlapanya/kgobošo, kgopotšo e tee ka {{PLURAL:$1|iri|diiri tše $1}} e tla romellwa.",
        "mailerror": "Gobile le phošo go romeleng molaetša  : $1",
-       "acct_creation_throttle_hit": "Ka maswabi, o tlhomile {{PLURAL:$1|tšhupaleloko|$1 tša ditšhupaleloko}}.\nGa wa dumelwa go tlhoma tše dingwe.",
-       "emailauthenticated": "E-mail atrese ya gago e kgonthišitšwe ka $2, $3.",
+       "acct_creation_throttle_hit": "Ka maswabi, IP Aterese ya gago e tlhomile {{PLURAL:$1|tšhupaleloko|$1 tša ditšhupaleloko}} e se kgale.\nGa wa dumelwa go tlhoma tše dingwe ka se sebaka.",
+       "emailauthenticated": "E-mail atrese ya gago e kgonthišitšwe ka $2  $3.",
        "accountcreated": "Tšhupaleloko (Account) e tlhodilwe",
-       "accountcreatedtext": "Tšhupaleloko (account) ya modiri $1 e tlhodilwe.",
+       "accountcreatedtext": "Tšhupaleloko (account) ya modiri [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) e tlhodilwe.",
        "loginlanguagelabel": "Polelo: $1",
        "changepassword": "Fetola ditlhaka-tša-siphiri",
        "resetpass_text": "<!-- Tsenya ditlhaka mo -->",
        "oldpassword": "Ditlhaka-tša-siphiri tša kgale:",
        "newpassword": "Ditlhaka-tša-siphiri tše mpsha:",
        "retypenew": "Tlanya ditlhaka tše mphsa tša siphiri gape:",
-       "changepassword-success": "Ditlhaka tša siphiri di fetotšwe ka katlego! Bjale o kgona go tsena...",
+       "changepassword-success": "Ditlhaka tša siphiri di fetotšwe ka katlego!",
        "bold_sample": "Mongwalo wa '''Bold'''",
        "bold_tip": "Ditlhaka tše Bold",
        "italic_sample": "Ditlhaka tše Italic",
        "preview": "Lebelela",
        "showpreview": "Laetša sebopego sa letlaka",
        "showdiff": "Laetša diphetogo",
-       "anoneditwarning": "'''Temošo''' Gawa ''tsena'', IP ya gago e tla šumišwa go histori ya diphetogo tša letlakala",
+       "anoneditwarning": "<strong>Temošo:</strong> Gawa ''tsena'', IP ya gago e tla šumišwa go histori ya diphetogo tša letlakala. Ge o ka <strong>[$1 tsena]</strong> goba wa  <strong>[$2 tlhoma tšhupaleloko</strong>,diphetogo tša gago di tla šumiša leina la gago.",
        "summary-preview": "Lebelela kakaretšo:",
        "blockedtitle": "Mošomiši o thibilwe",
        "blockedtext": "'''Leina la gago la mošomiši goba IP atrese e thibilwe.'''\n\nO thibilwe ke $1. Makaba a go thiba ke ''$2''.\n\n* Go thoma gago thiba: $8\n* Fetatšatši yago thiba: $6\n* Mothibiwa: $7\n\nO ka leka go boledišana le $1 goba [[{{MediaWiki:Grouppage-sysop}}|molaudi]] ka go thibiwa go.\nO ka se kgone go šumiša thulusu ya 'romela mošomiši molaetša' ka ntle gage o loketše e-mail ya gago go\n[[Special:Preferences|dikgatlhegelo]] gape ge o sa thibelwa go e šomiša.\nIP atrese ya gago ke $3, ge ID ya go thiba ele #$5. Ka kgopelo šumiša ID le IP go dipoledišano ka moka tšeo dilego mabapi le go go thiba.",
        "loginreqlink": "tsena",
        "loginreqpagetext": "O swanela ke go  $1 go nyakorela matlakala a mangwe.",
        "accmailtitle": "Ditlhaka tša siphiri di rometšwe.",
-       "accmailtext": "Ditlhaka-tša-siphiri tša \"$1\"  di rometšwe go $2.",
+       "accmailtext": "Ditlhaka-tša-siphiri tša  [[User talk:$1|$1]]  di rometšwe go $2. Di ka fetolwa go letlaka la <em>[[Special:ChangePassword|go fetola ditlhaka-tša-siphiri ]]</em> ge o tsena.",
        "newarticle": "(mpsha)",
        "newarticletext": "O latetše hlomaganyo go letlakala leo le sego gona ka se sebaka.\nGo tlhola letlakala, thoma go ngwalo lepokising le letelago\n(lebelela [$1 letlakala la thušo] go hwetša šedi).\nGa 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>.",
        "currentrev": "Poeletšo tša bjale",
        "currentrev-asof": "Thumeletšo tša seswa go tloga ka $1",
        "revisionasof": "Thumeletšo go tloga ka $1",
-       "revision-info": "Poeletšo go tloga $1 ka $2",
+       "revision-info": "Poeletšo go tloga $1 ka {{GENDER:$6|$2}}$7",
        "previousrevision": "←Poeletšo tša kgalenyana",
        "nextrevision": "Peletšo tše dimphsanyana→",
        "currentrevisionlink": "Poeletšo ya bjale",
        "histlegend": "Tlhaolo ya diphapano: swaya lepokisi la phetogo go bapetša ke moka o thwanye ''enter'' tlase-tlase<br />\nNane: (bjale) = phapang le diphetogo tša bjale,\n(mafelelo) = phapang le diphetogo tša pele, M = diphetogo tše nyenyane.",
        "history-fieldset-title": "Laotša histori",
        "history-show-deleted": "Tša go phumulwa fela",
-       "histfirst": "Pelepele",
+       "histfirst": "Pelepeleng",
        "histlast": "Ntshwantshwa",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "history-feed-title": "Histori ya poeletšo",
        "history-feed-item-nocomment": "$1 go $2",
        "history-feed-empty": "Letlakala lewe ga le gona.\nMohlomongwe le phumutšwe go wiki, goba le fetotšwe leina.\nLeka [[Special:Search|go fetleka wikii]] go humana matlakala a mapsha.",
        "rev-delundel": "Bontšha/Fihla",
-       "revdelete-hide-text": "Fihla dihlaka tša poeletšo",
+       "revdelete-hide-text": "Dihlaka tša poeletšo",
        "revdelete-log": "Lebaka:",
        "revdel-restore": "\nfetola tshenolo",
        "pagehist": "Histori ya letlakala",
        "shown-title": "Laetša $1 {{PLURAL:$1|sepheto| tša dipheto}} ka letlakala",
        "viewprevnext": "Lebelela ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Go ena le letlaka la leina la \"[[:$1]]\" go wiki ye.'''",
-       "searchmenu-new": "'''Hlola letlakala \"[[:$1]]\" go wiki ye!'''",
+       "searchmenu-new": "<strong>Hlola letlakala \"[[:$1]]\" go wiki ye!</strong>",
        "searchprofile-articles": "Matlakala a diteng",
        "searchprofile-images": "Diphatlalatši tša \"multi\"",
        "searchprofile-everything": "Ka moka",
        "search-section": "(sekga $1)",
        "search-suggest": "O be o nyaka gore: $1",
        "search-interwiki-caption": "Diprojeke tša moloko",
-       "search-interwiki-default": "$1 diphetho:",
+       "search-interwiki-default": "Dipheto gotšwa $1:",
        "search-interwiki-more": "(gape)",
        "searchrelated": "tswalana",
        "searchall": "tšohle",
        "powersearch-legend": "Fetleka ya tšwetše",
        "powersearch-ns": "Fetleka go di \"namespace\"",
        "preferences": "Dikgatlhegelo",
-       "mypreferences": "Dikgatlhegelo tša ka",
+       "mypreferences": "Dikgatlhegelo",
        "prefs-edits": "Palo ya diphetogo:",
        "skin-preview": "Ponopele",
        "prefs-rc": "Diphetogo tša bjale",
        "allowemail": "Dumella melaetša ya e-mail go tšwa go bašomiši ba bangwe",
        "prefs-files": "Difaele",
        "youremail": "E-Poso",
-       "username": "Mošomiši:",
-       "prefs-memberingroups": "Leloko la {{PLURAL:$1|ya sehlopha|ya dihlopha}}:",
+       "username": "{{GENDER:$1|Mošomiši}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Leloko}} la {{PLURAL:$1|ya sehlopha|ya dihlopha}}:",
        "yourrealname": "Leina la mmakgonthe:",
        "yourlanguage": "Polelo:",
        "yournick": "Tshaeno:",
        "recentchanges-label-minor": "Ye ke phetogo ye nnyenyane",
        "recentchanges-label-bot": "Phetogo ye e dirilwe ke \"bot\"",
        "recentchanges-label-unpatrolled": "Phetogo ye ga ese e \"patrollwe\"",
-       "rcnotefrom": "Tlase ke diphetogo go tloga ka '''$2''' (go  fihla ka '''$1''').",
+       "rcnotefrom": "Tlase ke diphetogo go tloga ka <strong>$3, $4</strong> (go  fihla ka <strong>$1</strong>).",
        "rclistfrom": "Laêtša dipheto tše mfsa go thoma go $3 $2",
        "rcshowhideminor": "$1 ya diphetogo tše nnyenyane",
        "rcshowhidebots": "$1 bots",
-       "rcshowhideliu": "$1 bašumiši bao batsenego",
+       "rcshowhideliu": "$1 bašumiši bao batsebjawago",
        "rcshowhideanons": "$1 bašumiši bago se tsebege",
        "rcshowhidepatr": "$1 diphetogo tše ''patrolled''",
        "rcshowhidemine": "$1 diphetogo tsa ka",
        "newpageletter": "N",
        "boteditletter": "b",
        "newsectionsummary": "/* $1 */ sekgao se sempsha",
-       "rc-enhanced-expand": "Laetša ka bophara (e nyaka \"JavaScript\")",
+       "rc-enhanced-expand": "Laetša ka bophara",
        "rc-enhanced-hide": "Fihla bophara bja sedi",
        "recentchangeslinked": "Diphetogo tša go tswalana",
        "recentchangeslinked-feed": "Diphetogo tša go tswalana",
        "license": "Laesense/Tumello:",
        "license-header": "Laesense",
        "license-nopreview": "(Ponopele ga e gona)",
-       "upload_source_file": "(faele go khomphuthara ya gago)",
+       "upload_source_file": "(faele yeo o kgethilego go khomphuthara ya gago)",
        "imgfile": "faele",
        "listfiles": "Lenano la difaele",
        "listfiles_date": "Letšatšikgwedi",
        "filerevert-defaultcomment": "Boela go poeletšo ya go tloga go $2, $1",
        "filedelete": "Phumula $1",
        "filedelete-legend": "Phumula faele",
-       "filedelete-intro": "O phumula '''[[Media:$1|$1]]'''.",
+       "filedelete-intro": "O phumula <strong>[[Media:$1|$1]]</strong> le histori ya yona.",
        "filedelete-comment": "Lebaka:",
        "filedelete-submit": "Phumula",
        "filedelete-success": "'''$1''' e phumutšwe.",
        "uncategorizedtemplates": "''Templates'' tšago sebe le magoro",
        "unusedcategories": "Dihlopha tša go se šomišwe",
        "unusedimages": "Difaele tša go se šomišwe",
-       "popularpages": "Matlakala a go tuma",
        "wantedcategories": "Dihlopha tšago nyakega",
        "wantedpages": "Matlakala ago nyakega",
        "mostlinked": "Matlakala a go hlomaganya go feta a mangwe",
        "mostlinkedcategories": "Dihlopha tša go hlomaganya go feta tše dingwe",
-       "mostlinkedtemplates": "''templates'' tša go hlomaganya go feta tše dingwe",
+       "mostlinkedtemplates": "Matlakala a go hlomaganya go feta a mangwe",
        "mostcategories": "Matlakala a goba le dihlopha tše dintšhi",
        "mostimages": "Faele tša go hlomaganya go feta tše dingwe",
        "mostrevisions": "Matlakala a goba le diphetogo tše dintšhi",
        "emailccsubject": "Kopi ya molaetša wa gago goya go $1: $2",
        "emailsent": "E-mail e rometšwe",
        "emailsenttext": "Molaetša wa gago wa email gawa romelwa.",
-       "watchlist": "Lenano la ditlhapetšo tša ka",
-       "mywatchlist": "Lenano la ditlhapetšo tša ka",
+       "watchlist": "Lenano la ditlhapetšo",
+       "mywatchlist": "Lenano la ditlhapetšo",
        "watchlistfor2": "Ya $1 $2",
        "addedwatchtext": "Letlakala \"[[:$1]]\" le tsene go [[Special:Watchlist|watchlist]] ya gago.\nGo tloga bjale, diphetogo letlakaleng le, le letlakaleng la dipoledišano la gona, di tla bontšhwa ka mongalo wa '''bold''' gare ga [[Special:RecentChanges|list of recent changes]] gore go be bonolo gore oa bone.\n\nGa eba o nyaka go hloša letlaka le go lenano la ditlhapetšo tša gago, šomiša \"Tloša tlhapetšo\" go sidebar.",
        "removedwatchtext": "Letlakala \"[[:$1]]\" letlošitšwe go [[Special:Watchlist|lenano la gago la ditlhapetšo]].",
        "deletepage": "Phumula letlakala",
        "excontent": "mateng ebe e le: '$1'",
        "delete-legend": "Phumula",
-       "historywarning": "'''Temošo:''' Letlakala leo o lekago go lephumula le nale histori le {{:$1|phetogo|diphetogo}}:",
+       "historywarning": "<strong>Temošo:</strong> Letlakala leo o lekago go lephumula le nale histori le {{PLURAL:$1|phetogo|diphetogo tše $1}}:",
        "confirmdeletetext": "O phumula letlakala le histori ka moka ya lona.\nKa kgopela sitlediša gore ke se o nyakago  go sedira, le gore o kwešiša ditla morago tša se, le gore seo o se dirago se latela melawana le ditaelo go ya ka [[{{MediaWiki:Policy-url}}|polisi]].",
        "actioncomplete": "Kgopelo e phetilwe ka katlego",
        "actionfailed": "Tiro e padile",
index 69410b4..6eedbb1 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Reedy",
-            "Seb az86556",
-            "לערי ריינהארט"
-        ]
-    },
-    "sunday": "Damóogo",
-    "monday": "Damóo biiskání",
-    "tuesday": "Damóodóó naakiską́o",
-    "wednesday": "Damóodóó tágí jį́",
-    "thursday": "Damóodóó dį́į́' yiską́o",
-    "friday": "Nda'iiníísh",
-    "saturday": "Yiską́ damóo",
-    "january": "Yas Niłtʼees",
-    "february": "Atsá Biyáázh",
-    "march": "Wóózhchʼį́į́d",
-    "april": "Tʼą́ą́chil",
-    "may_long": "Tʼą́ą́tsoh",
-    "june": "Yaʼiishjááshchilí",
-    "july": "Yaʼiishjáástsoh",
-    "august": "Biniʼantʼą́ą́tsʼózí",
-    "september": "Biniʼantʼą́ą́tsoh",
-    "october": "Ghąąjį",
-    "november": "Níłchʼitsʼósí",
-    "december": "Níłchʼitsoh",
-    "january-gen": "Yas Niłtʼees",
-    "february-gen": "Atsá Biyáázh",
-    "march-gen": "Wóózhchʼį́į́d",
-    "april-gen": "Tʼą́ą́chil",
-    "may-gen": "Tʼą́ą́tsoh",
-    "june-gen": "Yaʼiishjááshchilí",
-    "july-gen": "Yaʼiishjáástsoh",
-    "august-gen": "Biniʼantʼą́ą́tsʼózí",
-    "september-gen": "Biniʼantʼą́ą́tsoh",
-    "october-gen": "Ghąąjį",
-    "november-gen": "Níłchʼitsʼósí",
-    "december-gen": "Níłchʼitsoh",
-    "jan": "Ynts",
-    "feb": "Atsb",
-    "mar": "Wozh",
-    "apr": "Tchi",
-    "may": "Ttso",
-    "jun": "Yjsh",
-    "jul": "Yjts",
-    "aug": "Btsz",
-    "sep": "Btsx",
-    "oct": "Ghąj",
-    "nov": "Ntss",
-    "dec": "Ntsx",
-    "pagecategories": "{{PLURAL:$1|Naaltsoos biiʼ sinilí|Naaltsoos biiʼ sinilí}}",
-    "category_header": "Naaltsoos biiʼ sinilí \"$1\" biyiʼ dahólónígíí",
-    "subcategories": "Hanálzhoʼí",
-    "hidden-categories": "{{PLURAL:$1|Naaltsoos biiʼ sinilí (doo yitʼínii)|Naaltsoos biiʼ sinilí (doo yitʼínii)}}",
-    "category-subcat-count": "{{PLURAL:$2|1 Hanálzhoʼí.|{{PLURAL:$1|1 Hanálzhoʼí|$2 Hanálzhoʼí}} - ($1).}}",
-    "category-article-count": "{{PLURAL:$2|'''1 naaltsoos''' díí naaltsoos biiʼ sinilí biyiʼ hólǫ.|{{PLURAL:$2|'''1 naaltsoos''' díí naaltsoos biiʼ sinilí biyiʼ hólǫ|'''$2 naaltsoos''' díí naaltsoos biiʼ sinilí biyiʼ dahólǫ}} - ($1)}}",
-    "listingcontinuesabbrev": "nááná...",
-    "cancel": "tʼóó ánássįįh",
-    "mytalk": "haneʼ shichʼįʼ ályaaígíí",
-    "navigation": "naaltsoosígíí",
-    "errorpagetitle": "adziih",
-    "tagline": "''{{SITENAME}}'' bitsʼą́ą́dę́ę́ʼ",
-    "help": "Anáʼálwoʼ",
-    "search": "hanishtá nisin",
-    "searchbutton": "tʼáá yíní átʼéegi",
-    "searcharticle": "díí saad tʼéiyá",
-    "history": "łahgo ályaaígíí",
-    "history_short": "łahgo ályaaígíí",
-    "printableversion": "\"Print\" áshłééh nisin",
-    "permalink": "Díí naaltsoos bi-\"url\"",
-    "edit": "Łahgo áshłééh",
-    "create": "áshłééh nisin",
-    "editthispage": "díí naaltsoos łahgo áshłééh",
-    "delete": "sisxé (delete)",
-    "protect": "bich'ą́ą́h iishááh nisin (protect)",
-    "newpage": "Naaltsoos ániidí",
-    "talkpage": "díí kweʼé naaltsoos baa yáshtiʼ nisin",
-    "talkpagelinktext": "bichʼįʼ yáshtiʼ",
-    "specialpage": "Naaltsoos spéshelígíí",
-    "personaltools": "bee naashnishí",
-    "talk": "baa yáshtiʼ nisin",
-    "views": "naaltsoosígíí",
-    "toolbox": "bee naʼanishí",
-    "otherlanguages": "saad",
-    "redirectedfrom": "(\"$1\"dę́ę́ʼ)",
-    "redirectpagesub": "dah astsihígíí",
-    "lastmodifiedat": "Díí naaltsoos $1/$2 łahgo ályaa.",
-    "aboutsite": "{{SITENAME}} baa haneʼ",
-    "aboutpage": "Project: baa haneʼ",
-    "copyright": "Díí naaltsoos bikáaʼgi saad shijaaʼígíí \"$1\" beehazʼą́ąnii bikʼehgo choidííłįįł",
-    "edithelp": "anáʼálwoʼ",
-    "mainpage": "Íiyisíí Naaltsoos",
-    "mainpage-description": "Íiyisíí Naaltsoos",
-    "retrievedfrom": "\"$1\" bitsʼą́ą́dę́ę́ʼ",
-    "youhavenewmessages": "Háíshį́į́ $1 nichʼįʼ áyiilaa. <small>($2)</small>",
-    "editsection": "łahgo áshłééh",
-    "editold": "łahgo áshłééh",
-    "editlink": "łahgo áshłééh",
-    "viewsourcelink": "XML yishʼį́ nisin",
-    "toc": "bikáaʼgi hólónígíí",
-    "showtoc": "yishʼį́ nisin",
-    "hidetoc": "doo yishʼį́ nisin da",
-    "site-rss-feed": "$1 biRSS Feed",
-    "site-atom-feed": "$1 biAtom Feed",
-    "page-rss-feed": "\"$1\" biRSS Feed",
-    "page-atom-feed": "\"$1\" biAtom Feed",
-    "red-link-title": "$1 (ádin)",
-    "nstab-main": "naaltsoos",
-    "nstab-user": "choyoołʼįįhí binaaltsoos",
-    "nstab-special": "Naaltsoos spéshelígíí",
-    "nstab-project": "wikiibíídiiya binaaltsoos",
-    "nstab-image": "eʼelyaaígíí",
-    "nstab-mediawiki": "haneʼ",
-    "nstab-template": "bee álnééhí",
-    "nstab-help": "anáʼálwoʼ",
-    "nstab-category": "Naaltsoos biiʼ sinilí",
-    "missingarticle-rev": "(łahgo ályaaígíí #$1)",
-    "viewsource": "XML yishʼį́ nisin",
-    "yourname": "Choyoołʼįįhí bizhiʼ:",
-    "yourpassword": "Passwordígíí:",
-    "remembermypassword": "shipassword béédíínih (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "nav-login-createaccount": "Log in / accountígíí ádíílííł",
-    "nologinlink": "Accountígíí ádíílííł",
-    "mailmypassword": "passwordígíí ániidí shichʼįʼ ádíílííł (e-mail)",
-    "link_sample": "Linkígíí",
-    "extlink_sample": "http://www.example.com linkígíí",
-    "minoredit": "tʼáá áłtsʼíísígo tʼéiyá naaltsoos łahgo áshłaa",
-    "watchthis": "shinááł nisin",
-    "savearticle": "✔ bee lą́ ashłeeh",
-    "preview": "dooleełígíí",
-    "showpreview": "dooleełígíí yishʼį́ nisin",
-    "showdiff": "łahgo áshłaaígíí yishʼį́ nisin",
-    "anoneditwarning": "<div style=\"background:#aaddff; text-align:center;\">'''Doo \"login\" íinilaa da.''' Éí biniinaa nizhiʼ doo ééhozin da áádóó ni-''IP'' naaltsoos bikááʼ náázhdíyóosoh.<br /><small>('''You are not logged in.''' Your name is thus unknown, and your IP will be recorded.)</small></div>",
-    "newarticle": "(Naaltsoos ániidí)",
-    "previewnote": "'''Díí kweʼé éí \"dooleełígíí\" tʼéiyá átʼé!'''\n::<small>'''(This is only a preview.)'''</small>",
-    "editing": "\"$1\" łahgo áshłééh...",
-    "templatesused": "\"bee álnééhé\" naaltsoos bikáaʼgi hólǫ́:",
-    "templatesusedpreview": "\"bee álnééhé\" naaltsoos bikáaʼgi dooleełígíí:",
-    "template-protected": "(administratorsígíí tʼéiyá)",
-    "template-semiprotected": "(chodayoołʼįįhí doo ééhozinii díí naaltsoos doo łahgo ádayóleʼ átʼée da)",
-    "hiddencategories": "Díí kweʼé naaltsoos éí {{PLURAL:$1|1 Naaltsoos biiʼ sinilí (doo yitʼínii)|$1 Naaltsoos biiʼ sinilí (doo yitʼínii)}} yiiʼ siʼą́:",
-    "viewpagelogs": "logsígíí yishʼį́ nisin",
-    "nohistory": "\"łahgo ályaaígíí\" doo hólǫ́ǫ da/ádin.",
-    "currentrev-asof": "kʼadígíí ($1)",
-    "revisionasof": "$1 yę́ędą́ą́ʼ",
-    "currentrevisionlink": "kʼadígíí",
-    "cur": "kʼadígíí",
-    "histfirst": "bee hodeeshzhiizh",
-    "histlast": "bee nihoolʼá",
-    "rev-delundel": "yishʼį́ nisin/doo yishʼį́ nisin da",
-    "history-title": "łahgo ályaaígíí: \"$1\"",
-    "editundo": "ńdíídleeł!",
-    "viewprevnext": "($1) ($2) ($3) shinááł",
-    "search-result-size": "$1 ({{PLURAL:$2|1 saad bikáaʼgi hólǫ́|$2 saad bikáaʼgi dahólǫ́}})",
-    "search-redirect": "(\"$1\"dę́ę́ʼ)",
-    "search-suggest": "\"$1\" hainítáásh shį́į́?",
-    "search-interwiki-more": "(nááná...)",
-    "powersearch-redir": "dah astsihígíí yishʼį́ nisin.",
-    "mypreferences": "siłkidígíí",
-    "group-sysop": "Administratorsígíí",
-    "grouppage-sysop": "{{ns:project}}:Administratorsígíí",
-    "nchanges": "$1 {{PLURAL:$1|łahgo ályaaígíí|łahgo ályaaígíí}}",
-    "recentchanges": "Áníídí łahgo ályaaígíí",
-    "recentchanges-feed-description": "áníídí łahgo ályaaígíí",
-    "rcshowhideminor": "naaltsoos tʼáá áłtsʼíísígo łahgo ályaaígíí $1",
-    "rcshowhidebots": "''bots''ígíí $1",
-    "rcshowhideliu": "chodayoołʼįįhí ééhozinígíí $1",
-    "rcshowhideanons": "chodayoołʼįįhí doo ééhozinii (IP) $1",
-    "rcshowhidemine": "akʼeʼshełchínígíí $1",
-    "rclinks": "*($1) łahgo ályaaígíí\n*($2) yiskánídą́ą́ʼ kojįʼ <br />\n$3",
-    "hist": "łgá",
-    "hide": "doo yishʼį́ nisin da.",
-    "show": "yishʼį́ nisin.",
-    "minoreditletter": "tʼ",
-    "newpageletter": "NÁ",
-    "recentchangeslinked-page": "naaltsoos:",
-    "upload": "Eʼelyaaígíí biiʼ hééł áshłééh nisin",
-    "uploadedimage": "\"[[$1]]\" biiʼ hééł áyiilaa",
-    "filehist": "łahgo ályaaígíí",
-    "filehist-current": "kʼadígíí",
-    "filehist-thumb": "thumbnailígíí",
-    "filehist-thumbtext": "thumbnailígíí ($1)",
-    "filehist-user": "Choyoołʼįįhí",
-    "filehist-dimensions": "naaniigo/náásee",
-    "filehist-comment": "haneʼ",
-    "imagelinks": "naaltsoos díí kweʼé eʼelyaaígíí chodayoołʼįįhígíí",
-    "linkstoimage": "{{PLURAL:$1|1 naaltsoos díí eʼelyaaígíí choyoołʼįįh|$1 naaltsoos díí eʼelyaaígíí chodayoołʼįįh}}:",
-    "sharedupload": "Díí kweʼé eʼelyaaígíí $1 bitsʼą́ą́dę́ę́ʼ.",
-    "nbytes": "$1 {{PLURAL:$1|byte átʼé|bytes átʼé}}",
-    "newpages": "Naaltsoos ániidí",
-    "move": "hidishnááh nisin",
-    "movethispage": "díí naaltsoos hidishnááh nisin",
-    "allpages": "naaltsoosígíí tʼáá ałtso",
-    "allarticles": "naaltsoosígíí tʼáá ałtso",
-    "linksearch": "linksígíí tłʼóoʼdi siʼánígíí",
-    "emailuser": "E-mail bichʼįʼ áshłééh nisin",
-    "watchlist": "bikʼi déshʼį́į́ʼígíí",
-    "mywatchlist": "bikʼi déshʼį́į́ʼígíí",
-    "addedwatchtext": "[[Special:Watchlist|Naaltsoos bikʼi díníʼį́į́ʼígíí]] bíhiniidééh. \"[[:$1]]\" kʼad bikʼi díníʼį́į́ʼ.<br />Nááná [[Special:RecentChanges|\"áníídí łahgo ályaaígíí\"]] bikáaʼgi díí naaltsoos kʼad kodóó '''ditą́ą''' dooleeł.",
-    "removedwatchtext": "\"[[:$1]]\" kʼad doo [[Special:Watchlist|bikʼi díníʼį́į]] da.",
-    "watch": "bikʼi déshʼį́į́ʼ nisin",
-    "watchthispage": "díí naaltsoos bikʼi déshʼį́į́ʼ nisin",
-    "unwatch": "doo bikʼi déshʼį́įʼ nisin da",
-    "watchlist-details": "{{PLURAL:$1|$1 naaltsoos|$1 naaltsoos}} bikʼi díníʼį́į́ʼ",
-    "wlshowlast": "<small>\n* ( $1 ) ahééʼílkidę́ędą́ą́ʼ kojįʼ\n* ( $2 ) yiskánídą́ą́ʼ kojįʼ\n* ( $3 )</small>",
-    "watchlist-options": "✔",
-    "watching": "(...)",
-    "unwatching": "(...)",
-    "protectedarticle": "\"[[$1]]\" bichʼą́ą́h ííyá.",
-    "modifiedarticleprotection": "\"[[$1]]\" biprotection level łahgo ályaa",
-    "namespace": "Naaltsoos bizhiʼ:",
-    "invert": "binaashii",
-    "blanknamespace": "(Íiyisíí)",
-    "contributions": "akʼeʼeeshchínígíí",
-    "contributions-title": "$1 akʼeʼeeshchínígíí",
-    "mycontris": "akʼeʼshełchínígíí",
-    "contribsub2": "$1 akʼeʼeeshchínígíí ($2)",
-    "uctop": "(← bee nihoolʼá)",
-    "sp-contributions-newbies": "ádaaniidí akʼeʼeeshchínígíí tʼéiyá",
-    "sp-contributions-search": "akʼeʼeeshchínígíí hanishtá nisin",
-    "sp-contributions-username": "IP/Choyoołʼįįhí bizhiʼ:",
-    "sp-contributions-submit": "hanishtá",
-    "whatlinkshere": "linksígíí díí naaltsoos baa atiin",
-    "whatlinkshere-title": "linksígíí \"$1\" baa atiin",
-    "whatlinkshere-page": "Naaltsoos:",
-    "linkshere": "'''[[:$1]]''' baa atiinígíí:",
-    "nolinkshere": "'''\"[[:$1]]\"''' baa atiinígíí doo hólǫ́ǫ da.",
-    "nolinkshere-ns": "'''\"[[:$1]]\"''' baa atiinígíí doo hólǫ́ǫ da.",
-    "isredirect": "dah astsihígíí",
-    "istemplate": "bee álnééhí",
-    "isimage": "eʼelyaaígíí",
-    "whatlinkshere-prev": "{{PLURAL:$1|←|← $1}}",
-    "whatlinkshere-next": "{{PLURAL:$1|→|→ $1}}",
-    "whatlinkshere-links": "← linkígíí",
-    "whatlinkshere-hideredirs": "dah astsihígíí $1",
-    "whatlinkshere-hidetrans": "transclusions $1",
-    "whatlinkshere-hidelinks": "linksígíí $1",
-    "whatlinkshere-filters": "bee agháʼníldéhí",
-    "contribslink": "akʼeʼeeshchínígíí",
-    "blocklogentry": "[[$1]] bichʼą́ą́h niiníyá ($2 $3)",
-    "movearticle": "naaltsoos:",
-    "newtitle": "naaltsoos bizhiʼ ániidí:",
-    "move-watch": "shinááł",
-    "movepagebtn": "✔ bee lą́ ashłeeh",
-    "movepage-moved": "'''\"$1\" kʼad \"$2\" wolyé'''",
-    "revertmove": "ńdíídleeł!",
-    "skinname-monobook": "NaaltsoosŁáa'ígíí",
-    "metadata": "Metadataígíí",
-    "metadata-expand": "yishʼį́ nisin",
-    "metadata-collapse": "doo yishʼį́ nisin da",
-    "watchlistall2": "tʼáá ałtso",
-    "namespacesall": "tʼáá ałtso",
-    "monthsall": "tʼáá ałtso",
-    "watchlisttools-view": "łahgo ályaaígíí yishʼį́ nisin",
-    "watchlisttools-edit": "naaltsoos bikʼi déshʼį́į́ʼígíí bikáaʼgi hólónígíí yishʼį́ dóó łahgo áshłééh nisin",
-    "watchlisttools-raw": "XML yishʼį́ dóó łahgo áshłééh nisin",
-    "specialpages": "Naaltsoos spéshelígíí"
+       "@metadata": {
+               "authors": [
+                       "Reedy",
+                       "Seb az86556",
+                       "לערי ריינהארט"
+               ]
+       },
+       "sunday": "Damóogo",
+       "monday": "Damóo biiskání",
+       "tuesday": "Damóodóó naakiską́o",
+       "wednesday": "Damóodóó tágí jį́",
+       "thursday": "Damóodóó dį́į́' yiską́o",
+       "friday": "Nda'iiníísh",
+       "saturday": "Yiską́ damóo",
+       "january": "Yas Niłtʼees",
+       "february": "Atsá Biyáázh",
+       "march": "Wóózhchʼį́į́d",
+       "april": "Tʼą́ą́chil",
+       "may_long": "Tʼą́ą́tsoh",
+       "june": "Yaʼiishjááshchilí",
+       "july": "Yaʼiishjáástsoh",
+       "august": "Biniʼantʼą́ą́tsʼózí",
+       "september": "Biniʼantʼą́ą́tsoh",
+       "october": "Ghąąjį",
+       "november": "Níłchʼitsʼósí",
+       "december": "Níłchʼitsoh",
+       "january-gen": "Yas Niłtʼees",
+       "february-gen": "Atsá Biyáázh",
+       "march-gen": "Wóózhchʼį́į́d",
+       "april-gen": "Tʼą́ą́chil",
+       "may-gen": "Tʼą́ą́tsoh",
+       "june-gen": "Yaʼiishjááshchilí",
+       "july-gen": "Yaʼiishjáástsoh",
+       "august-gen": "Biniʼantʼą́ą́tsʼózí",
+       "september-gen": "Biniʼantʼą́ą́tsoh",
+       "october-gen": "Ghąąjį",
+       "november-gen": "Níłchʼitsʼósí",
+       "december-gen": "Níłchʼitsoh",
+       "jan": "Ynts",
+       "feb": "Atsb",
+       "mar": "Wozh",
+       "apr": "Tchi",
+       "may": "Ttso",
+       "jun": "Yjsh",
+       "jul": "Yjts",
+       "aug": "Btsz",
+       "sep": "Btsx",
+       "oct": "Ghąj",
+       "nov": "Ntss",
+       "dec": "Ntsx",
+       "pagecategories": "{{PLURAL:$1|Naaltsoos biiʼ sinilí|Naaltsoos biiʼ sinilí}}",
+       "category_header": "Naaltsoos biiʼ sinilí \"$1\" biyiʼ dahólónígíí",
+       "subcategories": "Hanálzhoʼí",
+       "hidden-categories": "{{PLURAL:$1|Naaltsoos biiʼ sinilí (doo yitʼínii)|Naaltsoos biiʼ sinilí (doo yitʼínii)}}",
+       "category-subcat-count": "{{PLURAL:$2|1 Hanálzhoʼí.|{{PLURAL:$1|1 Hanálzhoʼí|$2 Hanálzhoʼí}} - ($1).}}",
+       "category-article-count": "{{PLURAL:$2|'''1 naaltsoos''' díí naaltsoos biiʼ sinilí biyiʼ hólǫ.|{{PLURAL:$2|'''1 naaltsoos''' díí naaltsoos biiʼ sinilí biyiʼ hólǫ|'''$2 naaltsoos''' díí naaltsoos biiʼ sinilí biyiʼ dahólǫ}} - ($1)}}",
+       "listingcontinuesabbrev": "nááná...",
+       "cancel": "tʼóó ánássįįh",
+       "mytalk": "haneʼ shichʼįʼ ályaaígíí",
+       "navigation": "naaltsoosígíí",
+       "errorpagetitle": "adziih",
+       "tagline": "''{{SITENAME}}'' bitsʼą́ą́dę́ę́ʼ",
+       "help": "Anáʼálwoʼ",
+       "search": "hanishtá nisin",
+       "searchbutton": "tʼáá yíní átʼéegi",
+       "searcharticle": "díí saad tʼéiyá",
+       "history": "łahgo ályaaígíí",
+       "history_short": "łahgo ályaaígíí",
+       "printableversion": "\"Print\" áshłééh nisin",
+       "permalink": "Díí naaltsoos bi-\"url\"",
+       "edit": "Łahgo áshłééh",
+       "create": "áshłééh nisin",
+       "editthispage": "díí naaltsoos łahgo áshłééh",
+       "delete": "sisxé (delete)",
+       "protect": "bich'ą́ą́h iishááh nisin (protect)",
+       "newpage": "Naaltsoos ániidí",
+       "talkpage": "díí kweʼé naaltsoos baa yáshtiʼ nisin",
+       "talkpagelinktext": "bichʼįʼ yáshtiʼ",
+       "specialpage": "Naaltsoos spéshelígíí",
+       "personaltools": "bee naashnishí",
+       "talk": "baa yáshtiʼ nisin",
+       "views": "naaltsoosígíí",
+       "toolbox": "bee naʼanishí",
+       "otherlanguages": "saad",
+       "redirectedfrom": "(\"$1\"dę́ę́ʼ)",
+       "redirectpagesub": "dah astsihígíí",
+       "lastmodifiedat": "Díí naaltsoos $1/$2 łahgo ályaa.",
+       "aboutsite": "{{SITENAME}} baa haneʼ",
+       "aboutpage": "Project: baa haneʼ",
+       "copyright": "Díí naaltsoos bikáaʼgi saad shijaaʼígíí \"$1\" beehazʼą́ąnii bikʼehgo choidííłįįł",
+       "edithelp": "anáʼálwoʼ",
+       "mainpage": "Íiyisíí Naaltsoos",
+       "mainpage-description": "Íiyisíí Naaltsoos",
+       "retrievedfrom": "\"$1\" bitsʼą́ą́dę́ę́ʼ",
+       "youhavenewmessages": "Háíshį́į́ $1 nichʼįʼ áyiilaa. <small>($2)</small>",
+       "editsection": "łahgo áshłééh",
+       "editold": "łahgo áshłééh",
+       "editlink": "łahgo áshłééh",
+       "viewsourcelink": "XML yishʼį́ nisin",
+       "toc": "bikáaʼgi hólónígíí",
+       "showtoc": "yishʼį́ nisin",
+       "hidetoc": "doo yishʼį́ nisin da",
+       "site-rss-feed": "$1 biRSS Feed",
+       "site-atom-feed": "$1 biAtom Feed",
+       "page-rss-feed": "\"$1\" biRSS Feed",
+       "page-atom-feed": "\"$1\" biAtom Feed",
+       "red-link-title": "$1 (ádin)",
+       "nstab-main": "naaltsoos",
+       "nstab-user": "choyoołʼįįhí binaaltsoos",
+       "nstab-special": "Naaltsoos spéshelígíí",
+       "nstab-project": "wikiibíídiiya binaaltsoos",
+       "nstab-image": "eʼelyaaígíí",
+       "nstab-mediawiki": "haneʼ",
+       "nstab-template": "bee álnééhí",
+       "nstab-help": "anáʼálwoʼ",
+       "nstab-category": "Naaltsoos biiʼ sinilí",
+       "missingarticle-rev": "(łahgo ályaaígíí #$1)",
+       "viewsource": "XML yishʼį́ nisin",
+       "yourname": "Choyoołʼįįhí bizhiʼ:",
+       "yourpassword": "Passwordígíí:",
+       "remembermypassword": "shipassword béédíínih (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "nav-login-createaccount": "Log in / accountígíí ádíílííł",
+       "nologinlink": "Accountígíí ádíílííł",
+       "mailmypassword": "passwordígíí ániidí shichʼįʼ ádíílííł (e-mail)",
+       "link_sample": "Linkígíí",
+       "extlink_sample": "http://www.example.com linkígíí",
+       "minoredit": "tʼáá áłtsʼíísígo tʼéiyá naaltsoos łahgo áshłaa",
+       "watchthis": "shinááł nisin",
+       "savearticle": "✔ bee lą́ ashłeeh",
+       "preview": "dooleełígíí",
+       "showpreview": "dooleełígíí yishʼį́ nisin",
+       "showdiff": "łahgo áshłaaígíí yishʼį́ nisin",
+       "anoneditwarning": "<div style=\"background:#aaddff; text-align:center;\">'''Doo \"login\" íinilaa da.''' Éí biniinaa nizhiʼ doo ééhozin da áádóó ni-''IP'' naaltsoos bikááʼ náázhdíyóosoh.<br /><small>('''You are not logged in.''' Your name is thus unknown, and your IP will be recorded.)</small></div>",
+       "newarticle": "(Naaltsoos ániidí)",
+       "previewnote": "'''Díí kweʼé éí \"dooleełígíí\" tʼéiyá átʼé!'''\n::<small>'''(This is only a preview.)'''</small>",
+       "editing": "\"$1\" łahgo áshłééh...",
+       "templatesused": "\"bee álnééhé\" naaltsoos bikáaʼgi hólǫ́:",
+       "templatesusedpreview": "\"bee álnééhé\" naaltsoos bikáaʼgi dooleełígíí:",
+       "template-protected": "(administratorsígíí tʼéiyá)",
+       "template-semiprotected": "(chodayoołʼįįhí doo ééhozinii díí naaltsoos doo łahgo ádayóleʼ átʼée da)",
+       "hiddencategories": "Díí kweʼé naaltsoos éí {{PLURAL:$1|1 Naaltsoos biiʼ sinilí (doo yitʼínii)|$1 Naaltsoos biiʼ sinilí (doo yitʼínii)}} yiiʼ siʼą́:",
+       "viewpagelogs": "logsígíí yishʼį́ nisin",
+       "nohistory": "\"łahgo ályaaígíí\" doo hólǫ́ǫ da/ádin.",
+       "currentrev-asof": "kʼadígíí ($1)",
+       "revisionasof": "$1 yę́ędą́ą́ʼ",
+       "currentrevisionlink": "kʼadígíí",
+       "cur": "kʼadígíí",
+       "histfirst": "bee hodeeshzhiizh",
+       "histlast": "bee nihoolʼá",
+       "rev-delundel": "yishʼį́ nisin/doo yishʼį́ nisin da",
+       "history-title": "łahgo ályaaígíí: \"$1\"",
+       "editundo": "ńdíídleeł!",
+       "viewprevnext": "($1) ($2) ($3) shinááł",
+       "search-result-size": "$1 ({{PLURAL:$2|1 saad bikáaʼgi hólǫ́|$2 saad bikáaʼgi dahólǫ́}})",
+       "search-redirect": "(\"$1\"dę́ę́ʼ)",
+       "search-suggest": "\"$1\" hainítáásh shį́į́?",
+       "search-interwiki-more": "(nááná...)",
+       "mypreferences": "siłkidígíí",
+       "group-sysop": "Administratorsígíí",
+       "grouppage-sysop": "{{ns:project}}:Administratorsígíí",
+       "nchanges": "$1 {{PLURAL:$1|łahgo ályaaígíí|łahgo ályaaígíí}}",
+       "recentchanges": "Áníídí łahgo ályaaígíí",
+       "recentchanges-feed-description": "áníídí łahgo ályaaígíí",
+       "rcshowhideminor": "naaltsoos tʼáá áłtsʼíísígo łahgo ályaaígíí $1",
+       "rcshowhidebots": "''bots''ígíí $1",
+       "rcshowhideliu": "chodayoołʼįįhí ééhozinígíí $1",
+       "rcshowhideanons": "chodayoołʼįįhí doo ééhozinii (IP) $1",
+       "rcshowhidemine": "akʼeʼshełchínígíí $1",
+       "rclinks": "*($1) łahgo ályaaígíí\n*($2) yiskánídą́ą́ʼ kojįʼ <br />\n$3",
+       "hist": "łgá",
+       "hide": "doo yishʼį́ nisin da.",
+       "show": "yishʼį́ nisin.",
+       "minoreditletter": "tʼ",
+       "newpageletter": "NÁ",
+       "recentchangeslinked-page": "naaltsoos:",
+       "upload": "Eʼelyaaígíí biiʼ hééł áshłééh nisin",
+       "filehist": "łahgo ályaaígíí",
+       "filehist-current": "kʼadígíí",
+       "filehist-thumb": "thumbnailígíí",
+       "filehist-thumbtext": "thumbnailígíí ($1)",
+       "filehist-user": "Choyoołʼįįhí",
+       "filehist-dimensions": "naaniigo/náásee",
+       "filehist-comment": "haneʼ",
+       "imagelinks": "naaltsoos díí kweʼé eʼelyaaígíí chodayoołʼįįhígíí",
+       "linkstoimage": "{{PLURAL:$1|1 naaltsoos díí eʼelyaaígíí choyoołʼįįh|$1 naaltsoos díí eʼelyaaígíí chodayoołʼįįh}}:",
+       "sharedupload": "Díí kweʼé eʼelyaaígíí $1 bitsʼą́ą́dę́ę́ʼ.",
+       "nbytes": "$1 {{PLURAL:$1|byte átʼé|bytes átʼé}}",
+       "newpages": "Naaltsoos ániidí",
+       "move": "hidishnááh nisin",
+       "movethispage": "díí naaltsoos hidishnááh nisin",
+       "allpages": "naaltsoosígíí tʼáá ałtso",
+       "allarticles": "naaltsoosígíí tʼáá ałtso",
+       "linksearch": "linksígíí tłʼóoʼdi siʼánígíí",
+       "emailuser": "E-mail bichʼįʼ áshłééh nisin",
+       "watchlist": "bikʼi déshʼį́į́ʼígíí",
+       "mywatchlist": "bikʼi déshʼį́į́ʼígíí",
+       "addedwatchtext": "[[Special:Watchlist|Naaltsoos bikʼi díníʼį́į́ʼígíí]] bíhiniidééh. \"[[:$1]]\" kʼad bikʼi díníʼį́į́ʼ.<br />Nááná [[Special:RecentChanges|\"áníídí łahgo ályaaígíí\"]] bikáaʼgi díí naaltsoos kʼad kodóó '''ditą́ą''' dooleeł.",
+       "removedwatchtext": "\"[[:$1]]\" kʼad doo [[Special:Watchlist|bikʼi díníʼį́į]] da.",
+       "watch": "bikʼi déshʼį́į́ʼ nisin",
+       "watchthispage": "díí naaltsoos bikʼi déshʼį́į́ʼ nisin",
+       "unwatch": "doo bikʼi déshʼį́įʼ nisin da",
+       "watchlist-details": "{{PLURAL:$1|$1 naaltsoos|$1 naaltsoos}} bikʼi díníʼį́į́ʼ",
+       "wlshowlast": "( $1 ) ahééʼílkidę́ędą́ą́ʼ kojįʼ, ( $2 ) yiskánídą́ą́ʼ kojįʼ",
+       "watchlist-options": "✔",
+       "watching": "(...)",
+       "unwatching": "(...)",
+       "protectedarticle": "\"[[$1]]\" bichʼą́ą́h ííyá.",
+       "modifiedarticleprotection": "\"[[$1]]\" biprotection level łahgo ályaa",
+       "namespace": "Naaltsoos bizhiʼ:",
+       "invert": "binaashii",
+       "blanknamespace": "(Íiyisíí)",
+       "contributions": "akʼeʼeeshchínígíí",
+       "contributions-title": "$1 akʼeʼeeshchínígíí",
+       "mycontris": "akʼeʼshełchínígíí",
+       "contribsub2": "$1 akʼeʼeeshchínígíí ($2)",
+       "uctop": "(← bee nihoolʼá)",
+       "sp-contributions-newbies": "ádaaniidí akʼeʼeeshchínígíí tʼéiyá",
+       "sp-contributions-search": "akʼeʼeeshchínígíí hanishtá nisin",
+       "sp-contributions-username": "IP/Choyoołʼįįhí bizhiʼ:",
+       "sp-contributions-submit": "hanishtá",
+       "whatlinkshere": "linksígíí díí naaltsoos baa atiin",
+       "whatlinkshere-title": "linksígíí \"$1\" baa atiin",
+       "whatlinkshere-page": "Naaltsoos:",
+       "linkshere": "'''[[:$1]]''' baa atiinígíí:",
+       "nolinkshere": "'''\"[[:$1]]\"''' baa atiinígíí doo hólǫ́ǫ da.",
+       "nolinkshere-ns": "'''\"[[:$1]]\"''' baa atiinígíí doo hólǫ́ǫ da.",
+       "isredirect": "dah astsihígíí",
+       "istemplate": "bee álnééhí",
+       "isimage": "eʼelyaaígíí",
+       "whatlinkshere-prev": "{{PLURAL:$1|←|← $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|→|→ $1}}",
+       "whatlinkshere-links": "← linkígíí",
+       "whatlinkshere-hideredirs": "dah astsihígíí $1",
+       "whatlinkshere-hidetrans": "transclusions $1",
+       "whatlinkshere-hidelinks": "linksígíí $1",
+       "whatlinkshere-filters": "bee agháʼníldéhí",
+       "contribslink": "akʼeʼeeshchínígíí",
+       "blocklogentry": "[[$1]] bichʼą́ą́h niiníyá ($2 $3)",
+       "movearticle": "naaltsoos:",
+       "newtitle": "naaltsoos bizhiʼ ániidí:",
+       "move-watch": "shinááł",
+       "movepagebtn": "✔ bee lą́ ashłeeh",
+       "movepage-moved": "'''\"$1\" kʼad \"$2\" wolyé'''",
+       "revertmove": "ńdíídleeł!",
+       "metadata": "Metadataígíí",
+       "metadata-expand": "yishʼį́ nisin",
+       "metadata-collapse": "doo yishʼį́ nisin da",
+       "namespacesall": "tʼáá ałtso",
+       "monthsall": "tʼáá ałtso",
+       "watchlisttools-view": "łahgo ályaaígíí yishʼį́ nisin",
+       "watchlisttools-edit": "naaltsoos bikʼi déshʼį́į́ʼígíí bikáaʼgi hólónígíí yishʼį́ dóó łahgo áshłééh nisin",
+       "watchlisttools-raw": "XML yishʼį́ dóó łahgo áshłééh nisin",
+       "specialpages": "Naaltsoos spéshelígíí"
 }
index 2c20f13..e44ec12 100644 (file)
        "mergehistory-same-destination": "Las paginas d'origina e de destinacion pòdon pas èsser la meteissa",
        "mergehistory-reason": "Motiu :",
        "mergelog": "Istoric de las fusions",
-       "pagemerge-logentry": "[[$1]] fusionada amb [[$2]] (revisions fins al $3)",
        "revertmerge": "Separar",
        "mergelogpagetext": "Vaquí, çaijós, la lista de las fusions las mai recentas de l'istoric d'una pagina amb una autra.",
        "history-title": "$1 : Istoric de las versions",
        "statistics": "Estatisticas",
        "statistics-header-pages": "Estatisticas de las paginas",
        "statistics-header-edits": "Estatisticas sus las edicions",
-       "statistics-header-views": "Estatisticas sus las visitas",
        "statistics-header-users": "Estatisticas d'utilizaire",
        "statistics-header-hooks": "Autras estatisticas",
        "statistics-articles": "Paginas de contengut",
        "statistics-files": "Fichièrs importats",
        "statistics-edits": "Modificacions de paginas dempuèi que {{SITENAME}} foguèt installat",
        "statistics-edits-average": "Modificacions mejanas per pagina",
-       "statistics-views-total": "Visitas totalas",
-       "statistics-views-total-desc": "Las vistas de las paginas non existentas e de las paginas especialas son pas inclusas",
-       "statistics-views-peredit": "Visitas per modificacions",
        "statistics-users": "[[Special:ListUsers|Utilizaires]] enregistrats",
        "statistics-users-active": "Utilizaires actius",
        "statistics-users-active-desc": "Utilizaires qu'an fach al mens una accion durant {{PLURAL:$1|lo darrièr jorn|los $1 darrièrs jorns}}",
-       "statistics-mostpopular": "Paginas mai consultadas",
        "pageswithprop": "Paginas amb una proprietat de pagina",
        "pageswithprop-legend": "Paginas amb una proprietat de pagina",
        "pageswithprop-text": "Aquesta pagina fa la lista de las paginas qu'utilizan una proprietat de pagina particulara.",
        "uncategorizedtemplates": "Modèls sens categoria",
        "unusedcategories": "Categorias inutilizadas",
        "unusedimages": "Imatges orfanèls",
-       "popularpages": "Paginas mai consultadas",
        "wantedcategories": "Categorias mai demandadas",
        "wantedpages": "Paginas mai demandadas",
        "wantedpages-badtitle": "Títol invalid dins los resultats : $1",
        "pageinfo-robot-policy": "Indexacion per robòts",
        "pageinfo-robot-index": "Autorizada",
        "pageinfo-robot-noindex": "Interdicha",
-       "pageinfo-views": "Nombre de vistas",
        "pageinfo-watchers": "Nombre de contributors qu'an la pagina dins lor lista de seguiment",
        "pageinfo-few-watchers": "Mens de $1 {{PLURAL:$1|observator|observators}}",
        "pageinfo-redirects-name": "Nombre de redireccions cap a aquesta pagina",
index 572e4ed..aae5efd 100644 (file)
@@ -1,70 +1,72 @@
 {
-    "@metadata": {
-        "authors": [
-            "Diroma Elias (on om.wikipedia.org)",
-            "Johannes Rohr (on om.wikipedia.org)",
-            "Malafaya",
-            "Node ue"
-        ]
-    },
-    "sunday": "Dilbata",
-    "monday": "Wiixata",
-    "tuesday": "Qibxata",
-    "wednesday": "Roobii",
-    "thursday": "Kamiisa",
-    "friday": "Jimaata",
-    "saturday": "Sanbata",
-    "sun": "Dil",
-    "mon": "Wix",
-    "tue": "Qib",
-    "wed": "Rob",
-    "thu": "Kam",
-    "fri": "Jim",
-    "sat": "San",
-    "january": "Amajjii",
-    "february": "Guraandhala",
-    "march": "Bitooteessa",
-    "april": "Elba",
-    "may_long": "Caamsa",
-    "june": "Waxabajjii",
-    "july": "Adooleessa",
-    "august": "Hagayya",
-    "september": "Fuulbana",
-    "october": "Onkololeessa",
-    "november": "Sadaasa",
-    "december": "Muddee",
-    "about": "Wa'ee",
-    "article": "Kutaa",
-    "and": "&#32;fi",
-    "help": "Qarqarsa",
-    "go": "Fufi",
-    "history": "Seena",
-    "history_short": "Seena",
-    "edit": "Barressu",
-    "aboutsite": "Wa'ee {{SITENAME}}",
-    "aboutpage": "Project:Wa'ee",
-    "currentevents": "Gocha amma",
-    "edithelp": "Qarqarsa Barressu",
-    "mainpage": "Fuula Dura",
-    "mainpage-description": "Fuula Dura",
-    "yourname": "Maqaa-Tajajilamma:",
-    "yourdomainname": "Maqaa domain kankee:",
-    "gotaccountlink": "Seenu",
-    "accountcreated": "Accountiin banamerra",
-    "loginlanguagelabel": "Afaan: $1",
-    "yourtext": "Barrefama kee",
-    "yourdiff": "Garagarumma",
-    "yourrealname": "Maqaa Dhugaa:",
-    "yourlanguage": "Afaan:",
-    "yourvariant": "Jijjirama:",
-    "upload": "File Galchu",
-    "filerevert-comment": "Sababa:",
-    "filedelete-comment": "Sababa:",
-    "allarticles": "Kutta hunda",
-    "actioncomplete": "Gochaan dhumattera",
-    "deletecomment": "Sababa:",
-    "ipbreason": "Sababa:",
-    "movereason": "Sababa:",
-    "allmessagesname": "Maqaa",
-    "allmessages-language": "Afaan:"
+       "@metadata": {
+               "authors": [
+                       "Diroma Elias (on om.wikipedia.org)",
+                       "Johannes Rohr (on om.wikipedia.org)",
+                       "Malafaya",
+                       "Node ue",
+                       "Tumsaa"
+               ]
+       },
+       "sunday": "Dilbata",
+       "monday": "Wiixata",
+       "tuesday": "Qibxata",
+       "wednesday": "Roobii",
+       "thursday": "Kamiisa",
+       "friday": "Jimaata",
+       "saturday": "Sanbata",
+       "sun": "Dil",
+       "mon": "Wix",
+       "tue": "Qib",
+       "wed": "Rob",
+       "thu": "Kam",
+       "fri": "Jim",
+       "sat": "San",
+       "january": "Amajjii",
+       "february": "Guraandhala",
+       "march": "Bitooteessa",
+       "april": "Elba",
+       "may_long": "Caamsa",
+       "june": "Waxabajjii",
+       "july": "Adooleessa",
+       "august": "Hagayya",
+       "september": "Fuulbana",
+       "october": "Onkololeessa",
+       "november": "Sadaasa",
+       "december": "Muddee",
+       "about": "Wa'ee",
+       "article": "Kutaa",
+       "and": "&#32;fi",
+       "help": "Qarqarsa",
+       "go": "Fufi",
+       "history": "Seena",
+       "history_short": "Seena",
+       "edit": "Barressu",
+       "aboutsite": "Wa'ee {{SITENAME}}",
+       "aboutpage": "Project:Wa'ee",
+       "currentevents": "Gocha amma",
+       "edithelp": "Qarqarsa Barressu",
+       "mainpage": "Fuula Dura",
+       "mainpage-description": "Fuula Dura",
+       "yourname": "Maqaa-Tajajilamma:",
+       "yourdomainname": "Maqaa domain kankee:",
+       "gotaccountlink": "Seenu",
+       "accountcreated": "Accountiin banamerra",
+       "loginlanguagelabel": "Afaan: $1",
+       "yourtext": "Barrefama kee",
+       "yourdiff": "Garagarumma",
+       "yourrealname": "Maqaa Dhugaa:",
+       "yourlanguage": "Afaan:",
+       "yourvariant": "Jijjirama:",
+       "upload": "File Galchu",
+       "filerevert-comment": "Sababa:",
+       "filedelete-comment": "Sababa:",
+       "booksources-search": "Barbaadi",
+       "allarticles": "Kutta hunda",
+       "actioncomplete": "Gochaan dhumattera",
+       "deletecomment": "Sababa:",
+       "ipbreason": "Sababa:",
+       "movereason": "Sababa:",
+       "allmessagesname": "Maqaa",
+       "allmessages-language": "Afaan:"
 }
index 194096d..e88863f 100644 (file)
        "site-atom-feed": "$1 ଆଟମ ଫିଡ଼",
        "page-rss-feed": "$1 ଟି ଆରେସେସ ଫିଡ଼",
        "page-atom-feed": "$1 ଟି ଆଟମ ଫିଡ଼",
-       "red-link-title": " $1 (ପୃଷ୍ଠାଟି ନାହିଁ)",
+       "red-link-title": "$1 (ପୃଷ୍ଠାଟି ନାହିଁ)",
        "sort-descending": "ବଡ଼ରୁ ସାନ କ୍ରମେ ସଜାନ୍ତୁ",
        "sort-ascending": "ସାନରୁ ବଡ଼ କ୍ରମେ ସଜାନ୍ତୁ",
        "nstab-main": "ପୃଷ୍ଠା",
        "mergehistory-same-destination": "ମୂଳାଧାର ଓ ଅନ୍ତ ପୃଷ୍ଠା ସମାନ ହୋଇପାରିବ ନାହିଁ",
        "mergehistory-reason": "କାରଣ:",
        "mergelog": "ମିଶ୍ରଣ ଲଗ୍",
-       "pagemerge-logentry": "[[$2]] ସହିତ [[$1]]କୁ ଯୋଡ଼ି ଦିଆଗଲା ($3 ଯାଏଁ ସଙ୍କଳନ)",
        "revertmerge": "ମିଶାଇବା ନାହିଁ",
        "mergelogpagetext": "ତଳେ ସବୁଠାରୁ ନଗଦ ଯୋଡ଼ାଯାଇଥିବା ପୃଷ୍ଠାର ଇତିହାସ ଆଉ ଗୋଟିଏ ସହ ଦିଆଯାଇଅଛି ।",
        "history-title": "\"$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 ଜଣ ସଭ୍ୟ}} ({{PLURAL:$2|ଗୋଟିଏ ଶ୍ରେଣୀy|$2ଟି ଶ୍ରେଣୀ ସମୂହ}}, {{PLURAL:$3|ଗୋଟିଏ ଫାଇଲ|$3ଟି ଫାଇଲ}})",
        "search-redirect": "($1 କୁ ଆଗକୁ ବଢେଇନିଅ )",
        "search-section": "(ଭାଗ $1)",
        "statistics": "ହିସାବ",
        "statistics-header-pages": "ପୃଷ୍ଠା ପରିସଙ୍ଖ୍ୟାନ",
        "statistics-header-edits": "ପରିସଙ୍ଖ୍ୟାନ ସମ୍ପାଦନା",
-       "statistics-header-views": "ପରିସଙ୍ଖ୍ୟାନ ଦେଖିବେ",
        "statistics-header-users": "ସଭ୍ୟ ପରିସଙ୍ଖ୍ୟାନ",
        "statistics-header-hooks": "ବାକି ପରିସଙ୍ଖ୍ୟାନ",
        "statistics-articles": "ସୂଚୀ ପୃଷ୍ଠାସମୂହ",
        "statistics-files": "ଫାଇଲସବୁ ଅପଲୋଡ଼ କରାଗଲା",
        "statistics-edits": "{{SITENAME}} ତିଆରିହେବା ବେଳରୁ ପୃଷ୍ଠାର ନାମ",
        "statistics-edits-average": "ପୃଷ୍ଠାପ୍ରତି ହାରାହାରି ସମ୍ପାଦନା",
-       "statistics-views-total": "ମୋଟ ଦେଖଣା",
-       "statistics-views-total-desc": "ଅଚଳ ପୃଷ୍ଠା ଓ ବିଶେଷ ପୃଷ୍ଠାର ଦେଖଣା ଏହା ଭିତରେ ଦିଆଯାଇନାହିଁ",
-       "statistics-views-peredit": "ସମ୍ପାଦନା ପ୍ରତି ଦେଖା",
        "statistics-users": "ପଞ୍ଜିକରଣ କରିଥିବା [[Special:ListUsers|ସଭ୍ୟଗଣ]]",
        "statistics-users-active": "ସଚଳ ସଭ୍ୟ",
        "statistics-users-active-desc": "ବିଗତ {{PLURAL:$1|ଦିନରେ|$1 ଦିନରେ}} କିଛି କାମ କରିଥିବା ସଭ୍ୟଗଣ",
-       "statistics-mostpopular": "ସବୁଠାରୁ ଅଧିକ ଦେଖାଯାଇଥିବା ପୃଷ୍ଠା",
        "pageswithprop": "ପୃଷ୍ଠା ବିବରଣୀ ଥିବା ପୃଷ୍ଠାମାନ",
        "pageswithprop-legend": "ପୃଷ୍ଠା ବିବରଣୀଟିଏ ଥିବା ପୃଷ୍ଠାମାନ",
        "pageswithprop-text": "ଏହୁ ପୃଷ୍ଠାରେ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ପୃଷ୍ଠାର ଗୁଣଥିବା ପୃଷ୍ଠାମାନଙ୍କର ତାଲିକା ରହିଛି ।",
        "uncategorizedtemplates": "ଶ୍ରେଣୀହିନ ଛାଞ୍ଚସବୁ",
        "unusedcategories": "ବ୍ୟବହାର ହେଉନଥିବା ଶ୍ରେଣୀସମୂହ",
        "unusedimages": "ବ୍ୟବହାର ହେଉନଥିବା ଫାଇଲସମୂହ",
-       "popularpages": "ଜଣାଶୁଣା ପୃଷ୍ଠାସମୂହ",
        "wantedcategories": "ଦରକାରୀ ଶ୍ରେଣୀସମୂହ",
        "wantedpages": "ଦରକାରି ପୃଷ୍ଠା",
        "wantedpages-badtitle": "$1 ଉତ୍ତରସବୁରେ ଥିବା ଭୁଲ ଟାଇଟଲ",
        "proxyblockreason": "ଏକ ଖୋଲା ପ୍ରକ୍ସି ହୋଇଥିବାରୁ ଆପଣଙ୍କ IP ଠିକଣାଟିକୁ ଅଟକାଇଦିଆଗଲା ।\nଦୟାକରି ଆପଣଙ୍କ ଇଣ୍ଟରନେଟ ସେବାପ୍ରଦାନକାରୀ, କାରିଗରି ସହଯୋଗ କିମ୍ବା ସଙ୍ଗଠନ ସହିତ କଥା ହୋଇ ଏହି ବିରାଟ ଅସୁବିଧା ବାବଦରେ ବତାଇଦିଅନ୍ତୁ ।",
        "sorbsreason": "{{SITENAME}} ଦେଇ ଆପଣଙ୍କ IP ଠିକଣାଟି DNSBL ଭିତରେ ଏକ ଖୋଲା ପ୍ରକ୍ସି ଭାବରେ ନଥିଭୁକ୍ତ ହୋଇଅଛି ।",
        "sorbs_create_account_reason": "{{SITENAME}} ଦେଇ ଆପଣଙ୍କ IP ଠିକଣାଟି DNSBL ଭିତରେ ଏକ ଖୋଲା ପ୍ରକ୍ସି ଭାବରେ ନଥିଭୁକ୍ତ ହୋଇଅଛି ।\nଆପଣ ନୂଆ ଖାତାଟିଏ ଖୋଲି ପାରିବେ ନାହିଁ",
+       "xffblockreason": "ଆପଣଙ୍କର କିମ୍ବା ଆପଣ ବ୍ୟବହାର କରୁଥିବା ପ୍ରକ୍ସି ସର୍ଭରର X-Forwarded-For ହେଡ଼ରରେ ଥିବାଏକ IP ଠିକଣାକୁ ଅଟକାଯାଇଛି । ଅଟକାଇବାର କାରଣ ହେଲା: $1",
        "cant-see-hidden-user": "ଆପଣ ଅଟକାଇବାକୁ ଚାହୁଁଥିବା ସଭ୍ୟଜଣକ ଆଗରୁ ଅଟକାଯାଇଛନ୍ତି ଓ ଲୁଚାଯାଇଛନ୍ତି ।\nଯେହେତୁ ଆପଣଙ୍କ ପାଖରେ ସଭ୍ୟଙ୍କୁ ଲୁଚାଇବା ଅଧିକାର ନାହୀଁ, ଆପଣ ସଭ୍ୟଙ୍କର ଅଟକକୁ ଦେଖିପାରିବେ ବା ବଦଳାଇପାରିବେ ନାହିଁ ।",
        "ipbblocked": "ଯେହେତୁ ଆପଣଙ୍କୁ ଅଟକାଯାଇଛି ଆପଣ ବାକି ସଭ୍ୟମାନଙ୍କୁ ଅଟକାଇ ବା ଅଟକରୁ ଛାଡ଼ କରିପାରିବେ ନାହିଁ ।",
        "ipbnounblockself": "ଆପଣ ନିଜକୁ ଅଟକାଇପାରିବେ ନାହିଁ",
        "movepagetalktext": "ଯଦି:\n*ଗୋଟିଏ ଖାଲି ଆଲୋଚନା ପୃଷ୍ଠା ସେହି ନାଆଁରେ ଥାଏ\n*ଆପଣ ତଳ ବାକ୍ସକୁ ନ ବାଛନ୍ତି\nତେବେ ଏହି ପ୍ରୁଷ୍ଠା ସହ ଯୋଡାଯାଇଥିବା ଆଲୋଚନା ପ୍ରୁଷ୍ଠାକୁ ଆପେ ଆପେ ଘୁଞ୍ଚାଇଦିଆଯିବ ।\nସେହି ଯାଗାରେ, ଆପଣଙ୍କୁ ପ୍ରୁଷ୍ଠାଟିକୁ ଘୁଞ୍ଚାଇବାକୁ/ମିଶାଇବାକୁ ପଡ଼ିବ ।",
        "movearticle": "ପୃଷ୍ଠା ଘୁଞ୍ଚେଇବା:",
        "moveuserpage-warning": "'''ସୂଚନା:''' ଆପଣ ଏକ ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠାକୁ ଘୁଞ୍ଚାଇବାକୁ ଯାଉଛନ୍ତି । ଦୟାକରି ଜାଣିରଖନ୍ତୁ ଯେ ପୃଷ୍ଠାଟି କେବଳ ଘୁଞ୍ଚିଯିବ ଓ ବ୍ୟବହାରକାରୀ ''ଘୁଞ୍ଚିବେ ନାହିଁ'' ।",
+       "movecategorypage-warning": "<strong>ଚେତାବନୀ:</strong> ଆପଣ ଏକ ଶ୍ରେଣୀ ପୃଷ୍ଠାକୁ ଘୁଞ୍ଚାଇବାକୁ ଯାଉଛନ୍ତି । କେବଳ ପୃଷ୍ଠାଟି ଘୁଞ୍ଚିଯିବ ଏବଂ ପୁରୁଣା ଶ୍ରେଣୀର କୌଣସି ପୃଷ୍ଠା ନୂଆ ଶ୍ରେଣୀଭୁକ୍ତ ହେବନାହିଁ <em>ଜାଣିରଖନ୍ତୁ</em> ।",
        "movenologintext": "ଏହି ପୃଷ୍ଠାଟିକୁ ଘୁଞ୍ଚାଇବା ପାଇଁ ଆପଣ ନିହାତି ଜଣେ ପଞ୍ଜୀକୃତ ସଭ୍ୟ ହୋଇଥିବେ ଏବଂ [[Special:UserLogin|logged in]]",
        "movenotallowed": "ଆପଣଙ୍କର ପୃଷ୍ଠାଗୁଡିକୁ ଘୁଞ୍ଚାଇବା ଅଧିକାର ନହିଁ ।",
        "movenotallowedfile": "ଆପଣଙ୍କର ଫାଇଲ ଘୁଞ୍ଚାଇବାର ଅଧିକାର ନହିଁ ।",
        "cant-move-user-page": "ଆପଣଙ୍କୁ ଏହି ସଭ୍ୟ ପୃଷ୍ଠାଟିକୁ ଘୁଞ୍ଚାଇବା ଲାଗି ଅନୁମତି ମିଳିନାହିଁ, କିନ୍ତୁ ନିଜର ଉପପୃଷ୍ଠା ସବୁ ଘୁଞ୍ଚାଇ ପାରିବେ ।",
        "cant-move-to-user-page": "ଆପଣଙ୍କର ଗୋଟିଏ ପୃଷ୍ଠାକୁ ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠାକୁ ଘୁଞ୍ଚାଇବାର ଅଧିକାର ନହିଁ ।",
+       "cant-move-category-page": "ଆପଣଙ୍କୁ ଶ୍ରେଣୀ ପୃଷ୍ଠାଟିଏ ଘୁଞ୍ଚାଇବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।",
+       "cant-move-to-category-page": "ପୃଷ୍ଠାଟିଏକୁ ଶ୍ରେଣୀ ପୃଷ୍ଠାକୁ ଘୁଞ୍ଚାଇବା ଲାଗି ଆପଣଙ୍କୁ ଅନୁମତି ମିଳିନାହିଁ ।",
        "newtitle": "ନୂଆ ନାଆଁକୁ:",
        "move-watch": "ମୂଳ ପୃଷ୍ଠା ଓ ବଦଳାଇବାକୁ ଚାହୁଁଥିବା ପୃଷ୍ଠା ଦେଖାଇବେ",
        "movepagebtn": "ପୃଷ୍ଠା ଘୁଞ୍ଚେଇବେ",
        "thumbnail-more": "ବିସ୍ତାର",
        "filemissing": "ଫାଇଲ ମିଳୁନାହିଁ",
        "thumbnail_error": "ନଖଦେଖଣା ତିଆରିବାରେ ଅସୁବିଧା: $1",
+       "thumbnail_error_remote": "$1ରୁ ତ୍ରୁଟି ମେସେଜ:\n$2",
        "djvu_page_error": "DjVu ପୃଷ୍ଠା ସୀମା ବାହାରେ ରହିଅଛି",
        "djvu_no_xml": "DjVu ଫାଇଲ ନିମନ୍ତେ XML ଆଣିବାରେ ବିଫଳ ହେଲୁଁ",
        "thumbnail-temp-create": "ଏକ ଅସ୍ଥାୟୀ ଛୋଟଦେଖଣା ଫାଇଲ ତିଆରି କରିବାରେ ବିଫଳ ହେଲୁ",
        "thumbnail_image-type": "ଛବିର ପ୍ରକାର ଅନୁମୋଦିତ ନୁହେଁ",
        "thumbnail_gd-library": "ଅଧାଗଢ଼ା GD ପାଠାଗାର ସଜାଣି: $1 ମିଳୁନାହିଁ",
        "thumbnail_image-missing": "ଫାଇଲଟି ନଥିଲା ଭଳି ଲାଗୁଛି : $1",
+       "thumbnail_image-failure-limit": "ଏହି ଥମ୍ବନେଲ ରେଣ୍ଡର କରିବା ପାଇଁ ନିକଟରେ ଅନେକ ($1 କିମ୍ବା ଅଧିକ) ବିଫଳ ଚେଷ୍ଟା କରାଯାଇଛି । ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "import": "ପୃଷ୍ଠା ଆମଦାନି କରିବେ",
        "importinterwiki": "ଟ୍ରାନ୍ସଉଇକି ଈମ୍ପୋର୍ଟ",
        "import-interwiki-text": "ଏକ ଉଇକି ଓ ପୃଷ୍ଠା ନାମ ଆମଦାନି କରିବା ନିମନ୍ତେ ଦିଅନ୍ତୁ ।\nସଂସ୍କରଣ ତାରିଖ ଓ ସମ୍ପାଦକଙ୍କ ନାମ ସାଇତା ହୋଇ ରହିବ ।\nଅନ୍ତଉଇକି ଆମଦାନି କାମସବୁ [[Special:Log/import|ଆମଦାନି ଇତିହାସ]]ରେ ସାଇଟ ହୋଇ ରହିଛି ।",
+       "import-interwiki-sourcewiki": "ମୂଳ ଉଇକି:",
+       "import-interwiki-sourcepage": "ମୂଳ ପୃଷ୍ଠା:",
        "import-interwiki-history": "ଏହି ପୃଷ୍ଠା ନିମନ୍ତେ ସବୁଯାକ ସଂସ୍କରଣ ଇତିହାସ ନକଲ କରିନିଅନ୍ତୁ",
        "import-interwiki-templates": "ସବୁଯାକ ଛାଞ୍ଚ ଏହା ଭିତରେ ରଖିବେ",
        "import-interwiki-submit": "ଆମଦାନୀ",
        "import-token-mismatch": "ଅବଧି ତଥ୍ୟ ଲୋପପାଇଗଲାଣି ।\nଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "import-invalid-interwiki": "ଦିଆଯାଇଥିବା ଉଇକିରୁ ଆହରଣ କରାଯାଇପାରିବ ନାହିଁ ।",
        "import-error-edit": "ଆପଣଙ୍କର ଏହାକୁ ବଦଳାଇବା ଅଧିକାର ନ ଥିବାରୁ \"$1\" ପୃଷ୍ଠାଟି ଆଣିହେଲା ନାହିଁ ।",
-       "import-error-create": "\"$1\" ପୃଷ୍ଠାଟି ଅଣାଯାଇନାହିଁ କାରଣ ଆପଣଙ୍କର ଏହାକୁ ତିଆରିକରିବା ଅଧିକାର ନାହିଁ ।",
-       "import-error-interwiki": "\"$1\"ପୃଷ୍ଠାକୁ ଆମଦାନୀ କରିହେଲାନି କାରଣ ଏହାର ନାମ ବାହାରଲିଙ୍କରେ ଆଗରୁ ଅଛି(ଉଇକିଗୁଡିକ ମଧ୍ୟରେ) ।",
-       "import-error-special": "\"$1\"ପୃଷ୍ଠାକୁ ଆମଦାନୀ କରିହେଲାନି କାରଣ ଏହା ଏକ ବିଶେଷ ନେମସ୍ପେସରେ ଅଛି ଯାହା ପୃଷ୍ଠାଗୁଡିକୁ ଅନୁମତି ଦିଏ ନାହିଁ ।",
-       "import-error-invalid": "\"$1\"ପୃଷ୍ଠାକୁ ଆମଦାନୀ କରିହେଲାନି କାରଣ ଏହାର ନାମଟି ଅବୈଧ ।",
+       "import-error-create": "ଆପଣଙ୍କର ଏହାକୁ ଗଢ଼ିବା ଅଧିକାର ନ ଥିବାରୁ \"$1\" ପୃଷ୍ଠାଟି ଅଣାଯାଇନାହିଁ ।",
+       "import-error-interwiki": "ଏହାର ନାମ ବାହାର ଲିଙ୍କ ପାଇଁ ସାଇତାଯାଇ ଥିବାରୁ \"$1\"ପୃଷ୍ଠାଟିକୁ ଆଣିହେଲା ନାହିଁ (ଇଣ୍ଟର ଉଇକି)",
+       "import-error-special": "ଅନୁମତି ନ ଥିବା ଏକ ବିଶେଷ ନେମସ୍ପେସରେ ଥିବାରୁ \"$1\"ପୃଷ୍ଠାକୁ ଆଣି ହେଲାନାହିଁ ।",
+       "import-error-invalid": "ଏହି ଉଇକିରେ ଅଣାଯିବା ନୂଆ ନାମଟି ଅବୈଧ ଥିବାରୁ \"$1\" ପୃଷ୍ଠାଟିକୁ ଆଣିହେଲା ନାହିଁ ।",
        "import-error-unserialize": "\"$1\"ପୃଷ୍ଠାର $2 ପୁନରାବୃତିଟି ଅଣତାଲିକାଭୁକ୍ତ କରାଯାଇପାରିବ ନାହିଁ । ପୁନରାବୃତିଟି $3 ପ୍ରକାର ବ୍ୟବାହର କରିବା ପାଇଁ $4ରେ ତାଲିକାଭୁକ୍ତ ହୋଇଛି ।",
+       "import-error-bad-location": "ଏହି ମଡ଼େଲଟି ପୃଷ୍ଠାରେ $3 କଣ୍ଟେଣ୍ଟ ମଡ଼େଲ ବ୍ୟବହାର କରି $2 ସଂସ୍କରଣଟି ଏହି ଉଇକିରେ ସାଇତାଯାଇପାରିବ ନାହିଁ ।",
        "import-options-wrong": "ଭୁଲ {{PLURAL:$2|option|options}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "ଦିଆଯାଇଥିବା ମୂଳ ପୃଷ୍ଠାର ଶୀର୍ଷକଟି ଅବୈଧ ଅଟେ ।",
        "import-rootpage-nosubpage": "ମୂଳ ପୃଷ୍ଠାର \"$1\" ନେମସ୍ପେସ ଉପପୃଷ୍ଠାର ଅନୁମତି ଦିଏନାହିଁ ।",
        "importlogpage": "ଇତିହାସ ଆହରଣ",
        "importlogpagetext": "ଅନ୍ୟ ଉଇକିରୁ ପରିଛାଙ୍କ ଦେଇ ସମ୍ପାଦନା ଇତିହାସ ସହ କରାହୋଇଥିବା ପୃଷ୍ଠା ଆମଦାନି ।",
        "import-logentry-upload": "ଫାଇଲ ଅପଲୋଡ଼ ଦେଇ [[$1]] ଆମଦାନି କରାଯାଇଛି",
-       "import-logentry-upload-detail": "$1 ଗୋଟି {{PLURAL:$1|ସଂସ୍କରଣ|ସଂସ୍କରଣ}}",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|ଗୋଟି ସଂସ୍କରଣ|ଗୋଟି ସଂସ୍କରଣ}} ଅଣାଗଲା",
        "import-logentry-interwiki": "$1 କୁ ଟ୍ରାନ୍ସଉଇକି କରାଗଲା",
-       "import-logentry-interwiki-detail": "$2 ଭିତରୁ $1 ଗୋଟି {{PLURAL:$1|ସଂସ୍କରଣ|ସଂସ୍କରଣ}}",
+       "import-logentry-interwiki-detail": "$2ରୁ $1 {{PLURAL:$1|ଗୋଟି ସଂସ୍କରଣ|ଗୋଟି ସଂସ୍କରଣ}} ଅଣାଗଲା",
        "javascripttest": "ଜାଭାସ୍କ୍ରିପ୍ଟ ପରଖ",
        "javascripttest-title": "ଚାଲୁଥିବା $1 ପରଖଗୁଡିକ",
        "javascripttest-pagetext-noframework": "ଏହି ପୃଷ୍ଠାଟି ଜାଭାସ୍କ୍ରିପ୍ଟ ପରଖ ପାଇଁ ସଂରକ୍ଷଣ କରି ରଖାଯାଇଛି ।",
        "spam_reverting": "$1 ସହ ଯୋଡ଼ା ନଥିବା ଶେଷ ସଂସ୍କରଣକୁ ଲେଉଟାଇ ଦେଉଅଛୁଁ",
        "spam_blanking": "$1 ସହ ଯୋଡ଼ାଥିବା ସବୁଯାକ ସଂସ୍କରଣ ଖାଲି କରିଦିଆଗଲା",
        "spam_deleting": "$1 ସହ ଯୋଡ଼ାଥିବା ସବୁଯାକ ସଂସ୍କରଣ ଖାଲି କରିଦିଆଗଲା",
-       "simpleantispam-label": "ସà­\8dପାମ-ବିରà­\8bଧି à¬ªà¬°à¬\96 à¥¤\nà¬\8fହାà¬\95à­\81 à¬­à¬°à¬¨à­\8dତà­\81 '''ନାହିà¬\81''' !",
+       "simpleantispam-label": "à¬\86ଣà­\8dà¬\9fି-ସà­\8dପାମ à¬ªà¬°à¬\96 à¥¤\nà¬\8fହାà¬\95à­\81 à¬­à¬°à¬¨à­\8dତà­\81 <strong>ନାହିà¬\81</strong>!",
        "pageinfo-title": "\"$1\"ର ବିବରଣୀ",
        "pageinfo-not-current": "ଦୁଖିତଃ, ପୁରୁଣା ସଂସ୍କରଣଗୁଡିକର ଏହି ତଥ୍ୟ ଦେବା ସମ୍ଭବ ନୁହେଁ ।",
        "pageinfo-header-basic": "ସାଧାରଣ ଜାଣିବା କଥା",
        "pageinfo-robot-policy": "ସ୍ୱୟଂଚାଳକ&nbsp;(Bot) ଦ୍ୱାରା ସୂଚୀ ନିର୍ମାଣ",
        "pageinfo-robot-index": "ଅନୁମୋଦିତ",
        "pageinfo-robot-noindex": "ଅନୁନମୋଦିତ",
-       "pageinfo-views": "ଦେଖଣା ସଂଖ୍ୟା",
        "pageinfo-watchers": "ପୃଷ୍ଠା ଦେଖଣାହାରି ସଂଖ୍ୟା",
        "pageinfo-few-watchers": "$1ରୁ କମ {{PLURAL:$1|ଦେଖଣାକାରୀ|ଦେଖଣାକାରୀଗଣ}}",
        "pageinfo-redirects-name": "ଏହି ପୃଷ୍ଠା ସହ ସମ୍ବନ୍ଧିତ ପୁନର୍ପ୍ରେରଣ",
        "confirmemail_subject": "{{SITENAME}} ଇମେଲ ଠିକଣା ନିଶ୍ଚିତ କରିବା",
        "confirmemail_body": "କେହିଜଣେ, ବୋଧହୁଏ ଆପଣ ହିଁ $1 ଆଇ.ପି. ଠିକଣାରୁ,\nଏହି ଇ-ମେଲ ଆଇ.ଡି.ରେ \"$2\" ନାଆଁରେ {{SITENAME}} ଠାରେ ଖାତାଟିଏ ଖୋଲିଛନ୍ତି ।\n\nଏହି ଖାତାଟି ସତରେ ଆପଣଙ୍କର ବୋଲି ଥୟ କରିବା ପାଇଁ ଓ {{SITENAME}}ରେ ଇ-ମେଲ ସୁବିଧାସବୁ ସଚଳ କରିବାପାଇଁ, ଏହି ଲିଙ୍କ୍ଟିକୁ ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଖୋଲନ୍ତୁ:\n\n$3\n\nଯଦି ଆପଣ ଖାତାଟିଏ ଆଗରୁ ଖୋଲି *ନାହାନ୍ତି* ତେବେ ଏହି ଲିଙ୍କକୁ ଯାଇ ଇ-ମେଲ ଆ.ଡି. ଥୟ କରିବାକୁ ନାକଚ କରିଦିଅନ୍ତୁ:\n\n$5\n\nଏହି କନଫର୍ମେସନ କୋଡ଼ $4 ବେଳେ ଅଚଳ ହୋଇଯିବ ।",
        "confirmemail_body_changed": "କେହିଜଣେ, ବୋଧହୁଏ ଆପଣ ହିଁ $1 ଆଇ.ପି. ଠିକଣାରୁ,\nଏହି ଇ-ମେଲ ଆଇ.ଡି.ରେ \"$2\" ନାଆଁରେ {{SITENAME}} ଠାରେ ଖାତାଟିଏ ଖୋଲିଛନ୍ତି ।\n\nଏହି ଖାତାଟି ସତରେ ଆପଣଙ୍କର ବୋଲି ଥୟ କରିବା ପାଇଁ ଓ {{SITENAME}}ରେ ଇ-ମେଲ ସୁବିଧାସବୁ ସଚଳ କରିବାପାଇଁ, ଏହି ଲିଙ୍କ୍ଟିକୁ ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଖୋଲନ୍ତୁ:\n\n$3\n\nଯଦି ଆପଣ ଖାତାଟିଏ ଆଗରୁ ଖୋଲି *ନାହାନ୍ତି* ତେବେ ଏହି ଲିଙ୍କକୁ ଯାଇ ଇ-ମେଲ ଆ.ଡି. ଥୟ କରିବାକୁ ନାକଚ କରିଦିଅନ୍ତୁ:\n\n$5\n\nଏହି କନଫର୍ମେସନ କୋଡ଼ $4 ବେଳେ ଅଚଳ ହୋଇଯିବ ।",
-       "confirmemail_body_set": "କେହିଜଣେ, ବୋଧହୁଏ ଆପଣ ହିଁ $1 ଆଇ.ପି. ଠିକଣାରୁ,\nଏହି ଇ-ମେଲ ଆଇ.ଡି.ରେ \"$2\" ନାଆଁରେ {{SITENAME}} ଠାରେ ଖାତାଟିଏ ଖୋଲିଛନ୍ତି ।\n\nଏହି ଖାତାଟି ସତରେ ଆପଣଙ୍କର ବୋଲି ଥୟ କରିବା ପାଇଁ ଓ {{SITENAME}}ରେ ଇ-ମେଲ ସୁବିଧାସବୁ ସଚଳ କରିବାପାଇଁ, ଏହି ଲିଙ୍କ୍ଟିକୁ ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଖୋଲନ୍ତୁ:\n\n$3\n\nଯଦି ଆପଣ ଖାତାଟିଏ ଆଗରୁ ଖୋଲି *ନାହାନ୍ତି* ତେବେ ଏହି ଲିଙ୍କକୁ ଯାଇ ଇ-ମେଲ ଆ.ଡି. ଥୟ କରିବାକୁ ନାକଚ କରିଦିଅନ୍ତୁ:\n\n$5\n\nଏହି କନଫର୍ମେସନ କୋଡ଼ $4 ବେଳେ ଅଚଳ ହୋଇଯିବ ।",
+       "confirmemail_body_set": "କେହିଜଣେ, ବୋଧହୁଏ ଆପଣ ହିଁ $1 IP ଠିକଣାରୁ,\n\"$2\" ଖାତା ପାଇଁ {{SITENAME}}ରେ ଇମେଲ ଦେଇଛନ୍ତି ।\n\nଏହି ଖାତାଟି ଆପଣଙ୍କର ବୋଲି ଥୟ କରି {{SITENAME}}ରେ ଇମେଲ ସୁବିଧାସବୁ ସକ୍ରିୟ କରିବାପାଇଁ, ଏହି ଲିଙ୍କଟି ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଖୋଲନ୍ତୁ:\n\n$3\n\nଯଦି ଖାତାଟିଏ ଆପଣଙ୍କର ନୁହେଁ ତେବେ ଏହି ଲିଙ୍କକୁ ଯାଇ ଇମେଲ ଥୟ କରିବା ନାକଚ କରିଦିଅନ୍ତୁ:\n\n$5\n\nକନଫର୍ମେସନ କୋଡ଼ଟି $4ରେ ଅକାମୀ ହୋଇଯିବ ।",
        "confirmemail_invalidated": "ଇମେଲ ଠିକଣା ଥୟ କରିବା ନାକଚ କରିଦଗଲା",
        "invalidateemail": "ଇ-ମେଲ ଠିକଣା ଥୟ କରିବା",
        "scarytranscludedisabled": "[ଉଇକି-ଉଇକି ଭିତରେ ଟ୍ରାନ୍ସକ୍ଲୁଡ଼ିଙ୍ଗ ଅଚଳ କରାଯାଇଛି]",
        "confirm-watch-top": "ଏହି ପୃଷ୍ଠାଟିକୁ ଆପଣଙ୍କ ଦେଖିଥିବା ତାଲିକାରେ ଯୋଡନ୍ତୁ ?",
        "confirm-unwatch-button": "ଠିକ ଅଛି",
        "confirm-unwatch-top": "ନିଜ ଦେଖଣାତାଲିକାରୁ ଏହି ପୃଷ୍ଠାଟି ବାହାର କରିଦେବେ କି?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "ଆଗ ପୃଷ୍ଠା",
        "imgmultipagenext": "ପର ପୃଷ୍ଠା →",
        "imgmultigo": "ଯିବା!",
        "imgmultigoto": "$1 ପୃଷ୍ଠାକୁ ଯିବେ",
        "img-lang-default": "(ଡିଫଲ୍ଟ ଭାଷା)",
+       "img-lang-info": "$1ରେ ଏହି ଛବିଟି ରେଣ୍ଡର କରନ୍ତୁ । $2",
+       "img-lang-go": "ଯାଆନ୍ତୁ",
        "ascending_abbrev": "ସାନରୁ ବଡ କ୍ରମରେ",
        "descending_abbrev": "ବଖାଣ",
        "table_pager_next": "ପର ପୃଷ୍ଠା",
        "autosumm-replace": "ବିଷୟବସ୍ତୁକୁ \"$1\" ଦେଇ ପ୍ରତିବଦଳ କଲେ",
        "autoredircomment": "[[$1]]କୁ ପୃଷ୍ଠାଟି ଘୁଞ୍ଚାଇଦିଆଗଲା",
        "autosumm-new": "\"$1\" ନାଆଁରେ ପୃଷ୍ଠାଟିଏ ତିଆରିକଲେ",
+       "autosumm-newblank": "ଫାଙ୍କା ପୃଷ୍ଠାଟିଏ ତିଆରି କରାଗଲା",
        "lag-warn-normal": "$1 {{PLURAL:$1|ସେକେଣ୍ଡ|ସେକେଣ୍ଡ}}ରୁ ନୂଆ ବଦଳ ଏହି ତାଲିକାରେ ଦେଖାଯାଉ ନାହିଁ ।",
        "lag-warn-high": "ଅଧିକ ଡାଟାବେସ ସର୍ଭର ପଛୁଆ ଅବସ୍ଥା ହେତୁ $1 {{PLURAL:$1|ସେକେଣ୍ଡ|ସେକେଣ୍ଡ}}ରୁ ନୂଆ ବଦଳସବୁ ଏହି ତାଲିକାରେ ଦେଖାଯିବ ନାହିଁ ।",
        "watchlistedit-normal-title": "ଦେଖଣାତାଲିକା ସମ୍ପାଦନା କରିବେ",
        "watchlistedit-raw-done": "ଆପଣଙ୍କ ଦେଖଣା ତାଲିକାଟି ଅପଡେଟ ହେଇଯାଇଛି ।",
        "watchlistedit-raw-added": "{{PLURAL:$1|ନାମଟିଏ|$1 ଗୋଟି ନାମ}} ଯୋଗ କରାଗଲା:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|ନାମଟିଏ|$1 ଗୋଟି ନାମ}} କାଢ଼ିଦିଆଗଲା:",
+       "watchlistedit-clear-title": "ଦେଖଣାତାଲିକାଟିଏ ତିଆରି କରାଗଲା",
+       "watchlistedit-clear-legend": "ଦେଖଣାତାଲିକା ସଫାକରନ୍ତୁ",
+       "watchlistedit-clear-explain": "ଆପଣଙ୍କ ଦେଖଣାତାଲିକାରୁ ସବୁ ନାମ ହଟାଇଦିଆଯିବ",
        "watchlistedit-clear-titles": "ନାମ:",
+       "watchlistedit-clear-submit": "ନିଜର ଦେଖଣାତାଲିକା ସଫାକରିବେ (ଏହା ଚିରସ୍ଥାୟୀ!)",
+       "watchlistedit-clear-done": "ଆପଣଙ୍କର ଦେଖଣାତାଲିକା ସଫାକରାଗଲା ।",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 ନାମଟି|$1 ନାମସବୁ}} ହଟାଇ ଦିଆଗଲା:",
+       "watchlistedit-too-many": "ଏଠାରେ ଦେଖାଇବା ପାଇଁ ଅନେକ ଗୁଡ଼ିଏ ପୃଷ୍ଠା ରହିଛି ।",
+       "watchlisttools-clear": "ଦେଖଣାତାଲିକା ସଫାକରନ୍ତୁ",
        "watchlisttools-view": "ଦରକାରୀ ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ",
        "watchlisttools-edit": "ଦେଖିବା ତାଲିକାଟିକୁ ଦେଖିବେ ଓ ବଦଳାଇବେ",
        "watchlisttools-raw": "ଫାଙ୍କା ଦେଖଣା ତାଲିକାଟିର ସମ୍ପାଦନା କରିବେ",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ମୋ ଆଲୋଚନା]])",
        "unknown_extension_tag": "ଅଜଣା ଏକ୍ସଟେନସନ ଚିହ୍ନ \"$1\"",
        "duplicate-defaultsort": "'''ସୂଚନା:''' ଆପେଆପେ କାମକରୁଥିବା \"$2\" ଆଗରୁ ଆପେ ଆପେ ସଜାଡୁଥିବା \"$1\"କୁ ବନ୍ଦ କରିଦେଇଛି ।",
+       "duplicate-displaytitle": "<strong>ଚେତାବନୀ:</strong> \"$2\" ନାମଟି \"$1\" ନାମ ଉପରେ ଚଢ଼ାଇ ଦେଖାନ୍ତୁ ।",
        "version": "ସଂସ୍କରଣ",
        "version-extensions": "ଇନଷ୍ଟଲ କରାହୋଇଥିବା ଏକ୍ସଟେନସନସବୁ",
-       "version-skins": "ବହିରାବରଣ",
+       "version-skins": "à¬\87ନଷà­\8dà¬\9fଲ à¬¹à­\8bà¬\87ଥିବା à¬¸à­\8dà¬\95ିନ",
        "version-specialpages": "ବିଶେଷ ପୃଷ୍ଠା",
        "version-parserhooks": "ପାର୍ସର ହୁକ",
        "version-variables": "ଚଳ",
        "version-hook-name": "ହୁକ ନାମ",
        "version-hook-subscribedby": "କାହା ଦେଇ ମଗାଯାଇଛି",
        "version-version": "(ଭାଗ $1)",
+       "version-no-ext-name": "[କୌଣସି ନାମ ନାହିଁ]",
        "version-license": "ମିଡ଼ିଆଉଇକି ସ୍ୱତ୍ୱ",
        "version-ext-license": "ଲାଇସେନ୍ସ",
        "version-ext-colheader-name": "ଏକ୍ସଟେନସନ",
+       "version-skin-colheader-name": "ସ୍କିନ",
        "version-ext-colheader-version": "ସଂସ୍କରଣ",
        "version-ext-colheader-license": "ଲାଇସେନ୍ସ",
        "version-ext-colheader-description": "ବର୍ଣନା",
        "version-ext-colheader-credits": "ଲେଖକମାନେ",
+       "version-license-title": "$1 ପାଇଁ ଲାଇସେନ୍ସ",
+       "version-license-not-found": "ଏହି ଏକ୍ସଟେନସନରେ କୌଣସି ସବିଶେଷ ସୂଚନା ନାହିଁ ।",
+       "version-credits-title": "$1 ପାଇଁ ଶ୍ରେୟ",
+       "version-credits-not-found": "ଏହି ଏକ୍ସଟେନସନରୁ କୌଣସି କ୍ରେଡ଼ିଟ ସୂଚନା ମିଳିଲା ନାହିଁ ।",
        "version-poweredby-credits": "ଏହି ଉଇକିଟି '''[https://www.mediawiki.org/ ମିଡ଼ିଆଉଇକି]''' ଦେଇ ପରିଚାଳିତ, ସତ୍ଵାଧିକାର © ୨୦୦୧-$1 $2 ।",
        "version-poweredby-others": "ବାକିସବୁ",
+       "version-poweredby-translators": "translatewiki.net ଅନୁବାଦକଗଣ",
        "version-credits-summary": "ଆମେ ଏହି ଲୋକମାନଙ୍କୁ [[Special:Version|MediaWiki]]ରେ ସେମାନକର ଅବଦାନ ପାଇଁ ଚିହ୍ନିବାକୁ ଚାହୁଁଛୁ ।",
        "version-license-info": "MediaWiki ଏକ ମାଗଣା ସଫ୍ଟୱାର; ଆପଣ ଏହାକୁ ପୁନବଣ୍ଟନ କରିପାରିବେ ବା GNU ଜେନେରାଲ ପବ୍ଲିକ ଲାଇସେନ୍ସ ଅଧିନରେ ବଦଳାଇପାରିବେ ଯାହା ଫ୍ରି ସଫ୍ଟୱାର ଫାଉଣ୍ଡେସନ ଦେଇ ପ୍ରକାଶିତ ହୋଇଥିବ।\n\nMediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯାଇଥାଏ, କିନ୍ତୁ ଏହା କୌଣସି ଲିଖିତ ପଟା ସହ ଆସିନଥାଏ; ଏହା ବିକ୍ରୟଯୋଗ୍ୟତା ବା ଏକ ନିର୍ଦିଷ୍ଟ କାମପାଇଁ ବାଧ୍ୟତାମୂଳକ ପଟା ସହ ଆସିନଥାଏ । ଅଧିକ ଜାଣିବା ନିମନ୍ତେ ଦୟାକରି GNU ଜେନେରାଲ ପବ୍ଲିକ ଲାଇସେନ୍ସ ଦେଖନ୍ତୁ ।\n\nଆପଣ [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU ଜେନେରାଲ ପବ୍ଲିକ ଲାଇସେନ୍ସର ନକଲଟିଏ] ଏହି ସଫ୍ଟୱାର ସହିତ ପାଇଥିବା ଜରୁରି; ଯଦି ପାଇନଥିବେ, ଫ୍ରି ସଫ୍ଟୱାର ଫାଉଣ୍ଡେସନ, Inc., ୫୧ ଫ୍ରାଙ୍କଲୀନ ଷ୍ଟ୍ରିଟ, ୫ମ ମହଲା, ବଷ୍ଟନ, ମାସାଚୁସେଟସ ୦୨୧୧୦-୧୩୦୧, ଯୁକ୍ତରାଷ୍ଟ୍ର ଆମେରିକା କିମ୍ବା [//www.gnu.org/licenses/old-licenses/gpl-2.0.html ଅନଲାଇନ] ପଢ଼ିନିଅନ୍ତୁ ।",
        "version-software": "ଇନଷ୍ଟଲ ହୋଇଥିବା ସଫ୍ଟୱାର",
        "version-entrypoints": "ନିବେଶ ହେଉଥିବା ସ୍ଥାନର URLଗୁଡିକ",
        "version-entrypoints-header-entrypoint": "ପ୍ରବେଶ ବିନ୍ଦୁ",
        "version-entrypoints-header-url": "ଇଉଆରଏଲ",
+       "redirect": "ଫାଇଲ, ସଭ୍ୟ, ପୃଷ୍ଠା କିମ୍ବା ସଂସ୍କରଣ ID ଅନୁସାରେ ପୁନପ୍ରେରଣ",
+       "redirect-legend": "ଏକ ଫାଇଲ କିମ୍ବା ପୃଷ୍ଠାକୁ ପୁନପ୍ରେରଣ କରନ୍ତୁ",
+       "redirect-summary": "(ଫାଇଲ ନାମ ଥିଲେ), (ଏକ ସଂସ୍କରଣ ID କିମ୍ବା ପୃଷ୍ଠା ID ଥିଲେ) କିମ୍ବା ଏକ ସଭ୍ୟ ଖାତା ଥିଲେ (ଏକ ସାଂଖିକ ସଭ୍ୟ ID)ଏହି ବିଶେଷ ପୃଷ୍ଠାଟି ଏକ ଫାଇଲକୁ ଲେଉଟାଇ ଦେଇଥାଏ । ବ୍ୟବହାର: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], କିମ୍ବା [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "ଯାଆନ୍ତୁ",
        "redirect-lookup": "ଖୋଜନ୍ତୁ:",
        "redirect-value": "ମୂଲ୍ୟ:",
        "tags": "ବୈଧ ସମ୍ପାଦନା ଚିହ୍ନ",
        "tag-filter": "[[Special:Tags|ଟାଗ]] ଛଣା:",
        "tag-filter-submit": "ଛାଣିବା",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ଗୋଟି ଟ୍ୟାଗ|ଗୋଟି ଟ୍ୟାଗ}}]]: $2)",
        "tags-title": "ସୂଚକ",
        "tags-intro": "ଏହି ପୃଷ୍ଠା ସଫ୍ଟୱାର ଏକ ବଦଳ ଭାବେ ଚିହ୍ନିତ କରୁଥିବା ଚିହ୍ନସବୁର ମାନେ ସହ ତାଲିକା ତିଆରି କରିଥାଏ ।",
        "tags-tag": "ଚିହ୍ନ ନାମ",
        "sqlite-no-fts": "ପୁରା ଟେକ୍ସ୍ଟ ଖୋଜା ସହଯୋଗ ବିନା $1",
        "logentry-delete-delete": "$1, $3 ପୃଷ୍ଠାଟି {{GENDER:$2|ଲିଭାଇଦେଲେ}}",
        "logentry-delete-restore": "$1, $3 ପୃଷ୍ଠାଟି {{GENDER:$2|ପୁନସ୍ଥାପନ କଲେ}}",
-       "logentry-delete-event": "$1 $3 ବେଳେ {{PLURAL:$5|ଏକ ଇତିହାସର ଘଟଣାର|$5 ଇତିହାସର ଘଟଣାମାନଙ୍କର}} ଦେଖଣା ବଦଳାଇ ଦେଲେ: $4",
-       "logentry-delete-revision": "$1 $3 ପୃଷ୍ଠାରେ {{PLURAL:$5|ସଙ୍କଳନଟିଏର|$5 ସଙ୍କଳନମାନଙ୍କର}} ଦେଖଣା ବଦଳାଇ ଦେଲେ: $4",
-       "logentry-delete-event-legacy": "$1 $3 à¬°à­\87 à¬\87ତିହାସର à¬\98à¬\9fଣାସବà­\81ର à¬¦à­\87à¬\96ଣା à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87",
-       "logentry-delete-revision-legacy": "$1 $3 à¬ªà­\83ଷà­\8dଠାରà­\87 à¬\87ତିହାସର à¬\98à¬\9fଣାସବà­\81ର à¬¦à­\87à¬\96ଣା à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87",
-       "logentry-suppress-delete": "$1 $3 ପୃଷ୍ଠାଟିକୁ ଚପାଇଦେଲେ",
-       "logentry-suppress-event": "$3 ବେଳେ $1 ଗୋପନ ଭାବରେ {{PLURAL:$5|ଇତିହାସର ଘଟଣାଟିଏର|$5 ଇତିହାସର ଘଟଣାବଳୀର}} ଦେଖଣା ବଦଳାଇଦେଲେ: $4",
-       "logentry-suppress-revision": "$1 à¬\97à­\8bପନ à¬­à¬¾à¬¬à¬°à­\87 $3 à¬ªà­\83ଷà­\8dଠାରà­\87 {{PLURAL:$5|à¬\87ତିହାସର à¬\98à¬\9fଣାà¬\9fିà¬\8fର|$5 à¬\87ତିହାସର à¬\98à¬\9fଣାବଳà­\80ର}} à¬¦à­\87à¬\96ଣା à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87: $4",
-       "logentry-suppress-event-legacy": "$1 à¬\97à­\8bପନ à¬­à¬¾à¬¬à¬°à­\87 à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87 $3ରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬\87ତିହାସ à¬\98à¬\9fଣାମାନà¬\99à­\8dà¬\95ର à¬¦à­\87à¬\96ଣା à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87",
-       "logentry-suppress-revision-legacy": "$1 à¬\97à­\8bପନ à¬­à¬¾à¬¬à¬°à­\87 à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87 $3 à¬ªà­\83ଷà­\8dଠାରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬\87ତିହାସ à¬\98à¬\9fଣାମାନà¬\99à­\8dà¬\95ର à¬¦à­\87à¬\96ଣା à¬¬à¬¦à¬³à¬¾à¬\87ଦà­\87ଲà­\87",
+       "logentry-delete-event": "$1 {{PLURAL:$5|ଲଗ ଘଟଣାଟିଏ|$5 ଗୋଟି ଲଗ ଘଟଣା}}ର ଦେଖଣା $3 ପୃଷ୍ଠାରେ {{GENDER:$2|ବଦଳାଇଲେ}}: $4",
+       "logentry-delete-revision": "$1 {{PLURAL:$5|ସଂସ୍କରଣଟିଏ|$5 ଗୋଟି ସଂସ୍କରଣ}}ର ଦେଖଣା $3 ପୃଷ୍ଠାରେ {{GENDER:$2|ବଦଲାଇଲେ}}: $4",
+       "logentry-delete-event-legacy": "$1 $3 à¬ªà­\83ଷà­\8dଠାର à¬²à¬\97 à¬\98à¬\9fଣାà¬\97à­\81ଡ଼ିà¬\95ର à¬¦à­\87à¬\96ଣା {{GENDER:$2|ବଦଳାà¬\87ଲà­\87}}",
+       "logentry-delete-revision-legacy": "$1 $3 à¬ªà­\83ଷà­\8dଠାରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬²à¬\97 à¬\98à¬\9fଣାà¬\97à­\81ଡ଼ିà¬\95ର à¬¦à­\87à¬\96ଣା à¬¸à¬\82ସà­\8dà¬\95ରଣମାନ {{GENDER:$2|ବଦଳାà¬\87ଲà­\87}}",
+       "logentry-suppress-delete": "$1 $3 ପୃଷ୍ଠାଟିକୁ {{GENDER:$2|ଦବାଇଦେଲେ}}",
+       "logentry-suppress-event": "$1 $3 ପୃଷ୍ଠାରେ ଗୋପନୀୟ ଭାବରେ {{PLURAL:$5|ଲଗ ଇଭେଣ୍ଟଟିଏର|$5 ଗୋଟି ଲଗ ଇଭେଣ୍ଟର}} ଦେଖଣା {{GENDER:$2|ବଦଳାଇଦେଲେ}}: $4",
+       "logentry-suppress-revision": "$1 à¬\97à­\8bପନ à¬­à¬¾à¬¬à­\87 $3 à¬ªà­\83ଷà­\8dଠାରà­\87 {{PLURAL:$5|ସà¬\82ସà­\8dà¬\95ରଣà¬\9fିà¬\8fର|$5 à¬\97à­\8bà¬\9fି à¬¸à¬\82ସà­\8dà¬\95ରଣର}} à¬¦à­\87à¬\96ଣା {{GENDER:$2|ବଦଳାà¬\87ଦà­\87ଲà­\87}}: $4",
+       "logentry-suppress-event-legacy": "$1 à¬\97à­\8bପନ à¬­à¬¾à¬¬à­\87 $3ରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬²à¬\97 à¬\87ଭà­\87ଣà­\8dà¬\9fମାନà¬\99à­\8dà¬\95ର à¬¦à­\87à¬\96ଣା  {{GENDER:$2|ବଦଳାà¬\87ଦà­\87ଲà­\87}}",
+       "logentry-suppress-revision-legacy": "$1 à¬\97à­\8bପନ à¬­à¬¾à¬¬à­\87 $3 à¬ªà­\83ଷà­\8dଠାରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬¸à¬\82ସà­\8dà¬\95ରଣମାନà¬\99à­\8dà¬\95ର à¬¦à­\87à¬\96ଣା {{GENDER:$2|ବଦଳାà¬\87ଦà­\87ଲà­\87}}",
        "revdelete-content-hid": "ଭିତର ଭାଗ ଲୁଚାଯାଇଅଛି",
        "revdelete-summary-hid": "ସମ୍ପାଦନା ସାରକଥା ଲୁଚାଯାଇଅଛି",
        "revdelete-uname-hid": "ଇଉଜର ନାମ ଲୁଚାଯାଇଅଛି",
        "revdelete-uname-unhid": "ଲୁଚାଯାଇଥିବା ଇଉଜର ନାମ ଦେଖାଇବେ",
        "revdelete-restricted": "ପରିଛାମାନଙ୍କ ନିମନ୍ତେ ଥିବା ବାରଣ",
        "revdelete-unrestricted": "ପରିଛାମାନଙ୍କ ନିମନ୍ତେ ଥିବା ବାରଣ ବାହାର କରିଦିଆଗଲା",
-       "logentry-move-move": "$1 $3 ପୃଷ୍ଠାଟି $4କୁ ଘୁଞ୍ଚାଇଲେ",
-       "logentry-move-move-noredirect": "$1 $3 ପୃଷ୍ଠାଟି $4କୁ ପୁନପ୍ରେରଣ ବିନା ଘୁଞ୍ଚାଇଲେ",
-       "logentry-move-move_redir": "$1 $3 ପୃଷ୍ଠାଟି $4କୁ ପୁନପ୍ରେରଣ ଛାଡ଼ି ଘୁଞ୍ଚାଇଲେ",
-       "logentry-move-move_redir-noredirect": "$1 $3 ପୃଷ୍ଠାଟି $4କୁ ପୁନପ୍ରେରଣକୁ ଛାଡ଼ି ପୁନପ୍ରେରଣ ବିନା ଘୁଞ୍ଚାଇଲେ",
-       "logentry-patrol-patrol": "$1 $3 à¬ªà­\83ଷà­\8dଠାର $4 à¬¤à¬® à¬¸à¬\99à­\8dà¬\95ଳନà¬\95à­\81 à¬\9cà¬\97ାଯାà¬\87à¬\85à¬\9bି à¬¬à­\8bଲି à¬\9aିହà­\8dନିତ à¬\95ଲà­\87",
-       "logentry-patrol-patrol-auto": "$1 à¬\86ପà­\87à¬\86ପà­\87 $3 à¬ªà­\83ଷà­\8dଠାର $4 à¬¤à¬® à¬¸à¬\99à­\8dà¬\95ଳନà¬\95à­\81 à¬\9cà¬\97ାଯାà¬\87à¬\85à¬\9bି à¬¬à­\8bଲି à¬\9aିହà­\8dନିତ à¬\95ଲà­\87",
+       "logentry-move-move": "$1 ପୃଷ୍ଠାଟିକୁ $3ରୁ $4କୁ {{GENDER:$2|ଘୁଞ୍ଚାଇଲେ}}",
+       "logentry-move-move-noredirect": "$1 $3 ପୃଷ୍ଠାଟି $4କୁ ପୁନପ୍ରେରଣ ବିନା {{GENDER:$2|ଘୁଞ୍ଚାଇଲେ}}",
+       "logentry-move-move_redir": "$1 $3 ପୃଷ୍ଠାଟି $4କୁ {{GENDER:$2|ଲେଉଟାଇଲେ}}",
+       "logentry-move-move_redir-noredirect": "$1 ପୁନପ୍ରେରଣ ବିନା $3 ପୃଷ୍ଠାଟି $4କୁ {{GENDER:$2|ଘୁଞ୍ଚାଇଲେ}}",
+       "logentry-patrol-patrol": "$1 $3 à¬ªà­\83ଷà­\8dଠାର $4 à¬¤à¬® à¬¸à¬\82ସà­\8dà¬\95ରଣ à¬\9cà¬\97ାଯାà¬\87à¬\85à¬\9bି à¬¬à­\8bଲି {{GENDER:$2|à¬\9aିହà­\8dନିତ à¬\95ଲà­\87}}",
+       "logentry-patrol-patrol-auto": "$1 à¬\86ପà­\87à¬\86ପà­\87 $3 à¬ªà­\83ଷà­\8dଠାର $4 à¬¤à¬® à¬¸à¬\82ସà­\8dà¬\95ରଣ à¬\9cà¬\97ାଯାà¬\87à¬\85à¬\9bି à¬¬à­\8bଲି {{GENDER:$2|à¬\9aିହà­\8dନିତ à¬\95ଲà­\87}}",
        "logentry-newusers-newusers": "ସଭ୍ୟ ଖାତା $1 {{GENDER:$2|ତିଆରି}} କରାଗଲା",
        "logentry-newusers-create": "ସଭ୍ୟ ଖାତା $1 {{GENDER:$2|ତିଆରି}} କରାଗଲା",
-       "logentry-newusers-create2": "ସଭ୍ୟ ଖାତା $3ଟି $1 ଦ୍ଵାରା ତିଆରି କରାଗଲା",
-       "logentry-newusers-byemail": "$1ଙ୍କ ଦ୍ଵାରା $3 ବ୍ୟବହାରକାରୀ ଖାତାଟି ଖୋଳାଗଲା ଏବଂ ପାସୱାର୍ଡଟି ଇ-ମେଲ ଦ୍ଵାରା ପଠାଗଲା",
+       "logentry-newusers-create2": "$3 ସଭ୍ୟ ଖାତାଟି $1ଙ୍କ ଦ୍ଵାରା {{GENDER:$2|ଗଢ଼ାଗଲା}}",
+       "logentry-newusers-byemail": "ସଭ୍ୟ ଖାତା $3, $1ଙ୍କ ଦ୍ଵାରା {{GENDER:$2|ଖୋଲାଗଲା}} ଏବଂ ପାସୱାର୍ଡଟି ଇମେଲ ଦ୍ଵାରା ପଠାଗଲା",
        "logentry-newusers-autocreate": "ବ୍ୟବହାରକାରୀ ଖାତା $1 ଆପେଆପେ {{GENDER:$2|ତିଆରିହେଲା}}",
-       "logentry-rights-rights": "$1, $3 à¬ªà¬¾à¬\87à¬\81 $4ରà­\81 $5à¬\95à­\81 à¬¸à¬­à­\8dà­\9fପଦ à¬¬à¬¦à¬³à¬¾à¬\87ଲà­\87",
+       "logentry-rights-rights": "$1, $3 à¬ªà¬¾à¬\87à¬\81 $4ରà­\81 $5à¬\95à­\81 à¬\95à­\8bଠ à¬¸à¬­à­\8dà­\9fପଦ {{GENDER:$2|ବଦଳାà¬\87ଲà­\87}}",
        "logentry-rights-rights-legacy": "$1 ଗୋଷ୍ଠୀ ସଭ୍ୟପଦ $3 ପାଇଁ {{GENDER:$2|ବଦଳିଗଲା}}",
-       "logentry-rights-autopromote": "$1 ଆପେ ଆପେ $4ରୁ $5କୁ ଗଲେ",
+       "logentry-rights-autopromote": "$1 ଆପେ ଆପେ $4ରୁ $5କୁ {{GENDER:$2|ପଦୋନ୍ନତ କରାଗଲା}}",
+       "logentry-upload-upload": "$1, $3 {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
+       "logentry-upload-overwrite": "$1, $3ର ଏକ ନୂଆ ସଂସ୍କରଣ {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
+       "logentry-upload-revert": "$1, $3 {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
        "rightsnone": "(କିଛି ନାହିଁ)",
        "revdelete-summary": "ସାରକଥା ସମ୍ପାଦନା",
        "feedback-bugornote": "ଦୟାକରି ଆପଣ ଏକ କାରିଗରି ଅସୁବିଧାଟିଏ ଜଣାଇବା ପାଇଁ ଚାହୁଁଥିଲେ ଦୟାକରି [$1 ଏଠାରେ ଅସୁବିଧାଟି ଜଣାନ୍ତୁ] । \nଅଥବା, ଆପଣ ତଳେ ଠିଆ ସହଜ ଆବେଦନ ପତ୍ରଟି ପୁରଣ କରିପାରିବେ ।  ଆପଣଙ୍କ ବ୍ୟବହାରକାରୀ ନାମ ଓ ଆପଣ ବ୍ୟବହାର କରୁଥିବା ବ୍ରାଉଜର ଅନୁସାରେ ଆପଣଙ୍କ ମତାମତ \"[$3 $2]\"ରେ ଯୋଡ଼ାଯିବ ।",
        "api-error-overwrite": "ଆଗରୁଥିବା ଏକ ଫାଇଲ ଉପରେ ମଡ଼ାଇବା ଅନୁମୋଦିତ ନୁହେଁ ।",
        "api-error-stashfailed": "ଭିତର ଅସୁବିଧା: ସର୍ଭର ଅସ୍ଥାୟୀ ଫାଇଲକୁ ସାଇତି ପାରିଲା ନାହିଁ ।",
        "api-error-publishfailed": "ଭିତର ଅସୁବିଧା: ସର୍ଭର ଅସ୍ଥାୟୀ ଫାଇଲକୁ ପ୍ରକାଶ କରିପାରିଲା ନାହିଁ ।",
+       "api-error-stasherror": "ଫାଇଲଟିକୁ ଷ୍ଟାସରେ ଅପଲୋଡ଼ କଲାବେଳେ ତ୍ରୁଟିଟିଏ ପରିଲକ୍ଷିତ ହେଲା ।",
        "api-error-timeout": "ସର୍ଭର ଏକ ସୀମିତ କାଳ ଭିତରେ ଉତ୍ତର ଦେଲାନାହିଁ ।",
        "api-error-unclassified": "ଏକ ଅଜଣା ଅସୁବିଧା ଘଟିଲା ।",
        "api-error-unknown-code": "ଅଜଣା ତୃଟି: \"$1\"",
        "duration-decades": "$1 {{PLURAL:$1|decade|decades}}",
        "duration-centuries": "$1 {{PLURAL:$1|century|centuries}}",
        "duration-millennia": "$1 {{PLURAL:$1|millennium|millennia}}",
+       "rotate-comment": "$1ଙ୍କ ଦ୍ୱାରା ଛବିଟିକୁ ଘଣ୍ଟା କଣ୍ଟାର ସମାନ ଦିଗରେ {{PLURAL:$1|ଡିଗ୍ରି|ଡିଗ୍ରି}} ବୁଲାଇଦିଆଗଲା",
+       "limitreport-title": "ପାର୍ସର ପ୍ରୋଫାଇଲିଙ୍ଗ ଡାଟା:",
+       "limitreport-cputime": "CPU ସମୟ ବ୍ୟବହାର",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|ସେକେଣ୍ଡ|ସେକେଣ୍ଡ}}",
+       "limitreport-walltime": "ରିଏଲ ଟାଇମ ବ୍ୟବହାର",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|ସେକେଣ୍ଡ|ସେକେଣ୍ଡ}}",
+       "limitreport-ppvisitednodes": "ପ୍ରିପୋସେସର ନୋଡ଼ କାଉଣ୍ଟ ଦେଖିଲେ",
+       "limitreport-ppgeneratednodes": "ପ୍ରିପୋସେସର ନୋଡ଼ କାଉଣ୍ଟ ତିଆରି କଲେ",
+       "limitreport-postexpandincludesize": "ବଢ଼ାଇବା ପରେ ଆକାର ରଖନ୍ତୁ",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|ବାଇଟ|ବାଇଟ}}",
+       "limitreport-templateargumentsize": "ଛାଞ୍ଚ ଆର୍ଗୁମେଣ୍ଟ ଆକାର",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|ବାଇଟ|ବାଇଟ}}",
+       "limitreport-expansiondepth": "ସର୍ବୋଚ୍ଚ ବଢ଼ାଇବା ଗଭୀରତା",
+       "limitreport-expensivefunctioncount": "ଭାରୀ ପାର୍ସର ଫଙ୍କସନ ଆକଳନ",
+       "expandtemplates": "ଛାଞ୍ଚ ବଢ଼ାଇବା",
+       "expand_templates_intro": "ଏହି ବିଶେଷ ପୃଷ୍ଠାଟି ସବୁ ଲେଖା ନେଇ ଛାଞ୍ଚକୁ ବାରମ୍ବାର ବଢ଼ାଇଦିଏ ।\nଏହା <code><nowiki>{{</nowiki>#language:…}}</code> ଭଳି ପାର୍ସର ଫଙ୍କସନମାନଙ୍କୁ\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code> ଭଳି ଭେରିଏବଲମାନଙ୍କୁ ବଢ଼ାଏ ।\nଅଧିକନ୍ତୁ, ଏହା <code><nowiki>{{ }} }}</code>ରେ ଥିବା ସବୁ କିଛି ବଢ଼ାଇଥାଏ ।",
+       "expand_templates_title": "{{FULLPAGENAME}} ଆଦି ପାଇଁ ପ୍ରସଙ୍ଗ ନାମ:",
        "expand_templates_input": "ଇନପୁଟ ବିଷୟ:",
        "expand_templates_output": "ପରିଣାମ",
+       "expand_templates_xml_output": "XML ଫଳାଫଳ",
+       "expand_templates_html_output": "ଖାଲି HTML ଫଳାଫଳ",
        "expand_templates_ok": "ଠିକ ଅଛି",
        "expand_templates_remove_comments": "ମତାମତ ହଟାନ୍ତୁ",
-       "expand_templates_preview": "ଦେଖଣା"
+       "expand_templates_remove_nowiki": "ଫଳାଫଳରେ <nowiki> ଟ୍ୟାଗମାନଙ୍କୁ ଦବାଇଦିଅନ୍ତୁ",
+       "expand_templates_generate_xml": "XML ପାର୍ସ ସଂରଚନା ଦେଖାନ୍ତୁ",
+       "expand_templates_generate_rawhtml": "କେବଳ HTML କୋଡ଼ ଦେଖାନ୍ତୁ",
+       "expand_templates_preview": "ଦେଖଣା",
+       "pagelanguage": "ପୃଷ୍ଠା ଭାଷା ବଛା",
+       "pagelang-name": "ପୃଷ୍ଠା",
+       "pagelang-language": "ଭାଷା",
+       "pagelang-use-default": "ଡିଫଲ୍ଟ ଭାଷା ବ୍ୟବହାର କରନ୍ତୁ",
+       "pagelang-select-lang": "ଭାଷା ବାଛନ୍ତୁ",
+       "right-pagelang": "ପୃଷ୍ଠାର ଭାଷା ବାଛନ୍ତୁ",
+       "action-pagelang": "ପୃଷ୍ଠାର ଭାଷା ବଦଳାନ୍ତୁ",
+       "log-name-pagelang": "ଭାଷା ଇତିହାସ ବଦଳାନ୍ତୁ",
+       "log-description-pagelang": "ପୃଷ୍ଠା ଭାଷା ବଦଳର ଏ ଏକ ଇତିହାସ",
+       "logentry-pagelang-pagelang": "$1 $3 ପୃଷ୍ଠାର ଭାଷା $4 ରୁ $5କୁ {{GENDER:$2|ବଦଳାଇଦେଲେ}} ।",
+       "default-skin-not-found": "<code dir=\"ltr\">$wgDefaultSkin</code>ରେ ଦିଆଯାଇଥିବା <code>$1</code>ଏହି ଉଇକିର ଡିଫଲ୍ଟ ସ୍କିନ ମିଳିଲାନାହିଁ ।\n\nଆପଣଙ୍କ ଇନଷ୍ଟଲେସନରେ ତଳଲିଖିତ ସ୍କିନ ରହିଛି । ସେମାନଙ୍କୁ କିପରି ସକ୍ରିୟ କରିବେ ଓ ଡିଫଲ୍ଟ ଭାବେ ବାଛିବେ ଜାଣିବା ପାଇଁ [https://www.mediawiki.org/wiki/Manual:Skin_configuration ମାନୁଆଲ: ସ୍କିନ ସଂରଚନା] ଦେଖନ୍ତୁ ।\n\n$2\n\n; ଯଦି ଆପଣ ଏହି ଏବେ MediaWiki ଇନଷ୍ଟଲ କରିଥାନ୍ତି:\n: ଆପଣ ବୋଧେ git ରୁ ସିଧା, କିମ୍ବା ସୋର୍ସ କୋଡ଼ରୁ କିମ୍ବା ଆଉ କେଉଁଠାରୁ ଇନଷ୍ଟଲ କରିଛନ୍ତି । ଏହା ଆଶାନୁରୂପ । [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.orgର ]ରୁ ଆଉ କିଛି ସ୍କିନ ଇନଷ୍ଟଲ କରିପାରିବେ:\n:* ବିଭିନ୍ନ ସ୍କିନ ଓ ଏକ୍ସଟେନସନ ସହିତ ଆସୁଥିବା [https://www.mediawiki.org/wiki/Download ଟାରବଲ ଇନଷ୍ଟଲର] ଡାଉନଲୋଡ଼ କରାଯାଉଛି । ଆପଣ  <code>skins/</code> ଡାଇରେକ୍ଟରି ଏଠାରୁ କପି କରି ପେଷ୍ଟ କରିପାରିବେ । \n:* git ଦେଇ <code>mediawiki/skins/*</code> ରେପୋଜିଟରିରୁ ଗୋଟେ ସ୍କିନ ଆପଣଙ୍କର MediaWiki ଇନଷ୍ଟଲେସନର <code dir=\"ltr\">skins/</code> ଡାଇରେକ୍ଟରିକୁ କପି କରାଯାଉଛି ।\n: ଆପଣ ଯଦି ଜଣେ MediaWiki ଡେଭେଲପର ହୋଇଥାନ୍ତି ତାହେଲେ ଏହା କରିବା ଦ୍ୱାରା ଆପଣଙ୍କର git ରେପୋଜିଟୋରିରେ କିଛି ବାଧା ଉପୁଜିବା ଅନୁଚିତ ।\n\n; ଆପଣ ଯଦି ଏହି ମାତ୍ର MediaWiki ଅପଗ୍ରେଡ଼ କରିଥାନ୍ତି ତେବେ:\n: MediaWiki 1.24 ଏବଂ ନୂଆ ସଂସ୍କରଣମାନ ଆପେଆପେ ଇନଷ୍ଟଲ ହୋଇଥିବା ସ୍କିନ ସକ୍ରିୟ କରି ନଥାନ୍ତି ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]) ଦେଖନ୍ତୁ । ଏବେ ଇନଷ୍ଟଲ ହୋଇଥିବା ସମସ୍ତ ସ୍କିନ ପାଇଁ ଆପଣ ଏହି ଧାଡ଼ିଟି <code>LocalSettings.php</code>ରେ ପେଷ୍ଟ କରିପାରିବେ:\n\n<pre dir=\"ltr\">$3</pre>\n\n; ଯଦି ଆପଣ ଏହି ମାତ୍ର <code>LocalSettings.php</code> ବଦଳାଇ ଦେଇଥାନ୍ତି:\n: ବନାନ ପରଖିବା ପାଇଁ ସ୍କିନର ନାମ ଆଉଥରେ ପରଖିନିଅନ୍ତୁ ।",
+       "default-skin-not-found-no-skins": "<code>$wgDefaultSkin</code>ରେ ସୂଚିତ ହେବା ଅନୁସାରେ ଆପଣଙ୍କ ଉଇକି ପାଇଁ ଡିଫଲ୍ଟ ସ୍କିନ <code>$1</code> ଉପଲବ୍ଧ ନାହିଁ ।\n\nକୌଣସି ସ୍କିନ ଇନଷ୍ଟଲ ହୋଇନାହିଁ ।\n\n; ଯଦି ଆପଣ ଏହି ଏବେ MediaWiki ଇନଷ୍ଟଲ କରିଥାନ୍ତି:\n: ଆପଣ ବୋଧେ git ରୁ ସିଧା, କିମ୍ବା ସୋର୍ସ କୋଡ଼ରୁ କିମ୍ବା ଆଉ କେଉଁଠାରୁ ଇନଷ୍ଟଲ କରିଛନ୍ତି । ଏହା ଆଶାନୁରୂପ । MediaWiki 1.24 ଓ ତା'ପରର ସଂସ୍କରଣମାନଙ୍କ ମୂଳ ରେପୋଜିଟରିରେ କୌଣସି ସ୍କିନ ରହିନଥାଏ । [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.orgର ]ରୁ ଆଉ କିଛି ସ୍କିନ ଇନଷ୍ଟଲ କରିପାରିବେ । କିପରି:\n:* ବିଭିନ୍ନ ସ୍କିନ ଓ ଏକ୍ସଟେନସନ ସହିତ ଆସୁଥିବା [https://www.mediawiki.org/wiki/Download ଟାରବଲ ଇନଷ୍ଟଲର] ଡାଉନଲୋଡ଼ କରାଯାଉଛି । ଆପଣ  <code>skins/</code> ଡାଇରେକ୍ଟରି ଏଠାରୁ କପି କରି ପେଷ୍ଟ କରି । \n:* git ଦେଇ <code>mediawiki/skins/*</code> ରେପୋଜିଟରିରୁ ଗୋଟେ ସ୍କିନ ଆପଣଙ୍କର MediaWiki ଇନଷ୍ଟଲେସନର <code dir=\"ltr\">skins/</code> ଡାଇରେକ୍ଟରିକୁ କପି କରି ।\n: ଆପଣ ଯଦି ଜଣେ MediaWiki ଡେଭେଲପର ହୋଇଥାନ୍ତି ତାହେଲେ ଏହା କରିବା ଦ୍ୱାରା ଆପଣଙ୍କର git ରେପୋଜିଟୋରିରେ କିଛି ବାଧା ଉପୁଜିବା ଅନୁଚିତ । ସ୍କିନ ସକ୍ରିୟ କରିବା ଓ ଡିଫଲ୍ଟ ଭାବେ ବାଛିବା ବାବଦରେ ଅଧିକ ସୂଚନା ପାଇଁ [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] ଦେଖନ୍ତୁ ।",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ସକ୍ରିୟ କରାଗଲା)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''ନିକ୍ରିୟ କରାଗଲା''')",
+       "mediastatistics": "ମିଡ଼ିଆ ଆକଳନ",
+       "mediastatistics-summary": "ଅପଲୋଡ଼ ହୋଇଥିବା ଫାଇଲର ପ୍ରକାର ବାବଦରେ ଆକଳନ । ଏଥିରେ ଏକ ଫାଇଲର ନିକଟତମ ସଂସ୍କରଣ ରହିଛି । ପୁରୁଣା କିମ୍ବା ଅପସାରିତ ସଂସ୍କରଣ ଏଥିରେ ରଖାଯାଇନାହିଁ ।",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 ବାଇଟ|$1 ବାଇଟ}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME ପ୍ରକାର",
+       "mediastatistics-table-extensions": "ସମ୍ଭାବିତ ଏକ୍ସଟେନସନ",
+       "mediastatistics-table-count": "ଫାଇଲ ସଂଖ୍ୟା",
+       "mediastatistics-table-totalbytes": "ସମ୍ମିଳିତ ଆକାର",
+       "mediastatistics-header-unknown": "ଅଜଣା",
+       "mediastatistics-header-bitmap": "ବିଟମ୍ୟାପ ଛବି",
+       "mediastatistics-header-drawing": "ଅଙ୍କନ (ଭେକ୍ଟର ଛବି)",
+       "mediastatistics-header-audio": "ଅଡ଼ିଓ",
+       "mediastatistics-header-video": "ଭିଡ଼ିଓ",
+       "mediastatistics-header-multimedia": "ରିଚ ମିଡ଼ିଆ",
+       "mediastatistics-header-office": "ଅଫିସ",
+       "mediastatistics-header-text": "ଲେଖା",
+       "mediastatistics-header-executable": "ଏକ୍ସକିଉଟ କରିହେବା ଭଳି",
+       "mediastatistics-header-archive": "କମ୍ପ୍ରେସ ହୋଇଥିବା ଫର୍ମାଟ",
+       "json-warn-trailing-comma": "$1 ପରର {{PLURAL:$1|କମାଟି|କମା ସବୁ}} JSONରୁ ହଟାଇ ଦିଆଯାଇଛି",
+       "json-error-unknown": "JSONରେ କିଛି ତ୍ରୁଟି ଥିଲା । ତ୍ରୁଟି: $1",
+       "json-error-depth": "ସର୍ବାଧିକ ଷ୍ଟାକ ଗଭୀରତା ଟପିଯାଇଛି",
+       "json-error-state-mismatch": "ଅବୈଧ କିମ୍ବା ଅସୁବିଧାଜନକ JSON",
+       "json-error-ctrl-char": "କଣ୍ଟ୍ରୋଲ କ୍ୟାରେକ୍ଟର ତ୍ରୁଟି, ଭୁଲ ଭାବେ ଏନକୋଡ଼ କରାଯାଇଥିବା ହେତୁ ହୋଇପାରେ",
+       "json-error-syntax": "ସିଣ୍ଟାକ୍ସ ଭୁଲ",
+       "json-error-utf8": "UTF-8 କ୍ୟାରେକ୍ଟର ଅସଜଡ଼ା, ଭୁଲ ଭାବେ ଏନକୋଡ଼ କରାଯାଇଥିବା ହେତୁ ହୋଇପାରେ",
+       "json-error-recursion": "ଏନକୋଡ଼ ହେବାକୁ ଥିବା ଭାଲ୍ୟୁରେ ଏକରୁ ଅଧିକ ରିକର୍ସିଭ ଆଧାର",
+       "json-error-inf-or-nan": "ଭାଲ୍ୟୁରେ ଏକରୁ ଅଧିକ NAN କିମ୍ବା INF ମୂଲ୍ୟ ଏନକୋଡ଼ କରିବାକୁ ହେବ",
+       "json-error-unsupported-type": "ଏନକୋଡ଼ ହୋଇନପାରିବା ଭଳି ଏକ ପ୍ରକାରର ମୂଲ୍ୟ ଦିଆଗଲା"
 }
index 8a256d5..392fee0 100644 (file)
        "statistics": "Статистикæ",
        "statistics-header-pages": "Фарсы статистикæ",
        "statistics-header-edits": "Ивдтыты статистикæ",
-       "statistics-header-views": "Бакастыты статистикæ",
        "statistics-header-users": "Архайджыты статистикæ",
        "statistics-header-hooks": "Æндæр статистикæтæ",
        "statistics-articles": "Мидисы фæрстæ",
        "uncategorizedpages": "Æнæкатегори фæрстæ",
        "uncategorizedimages": "Æнæкатегори файлтæ",
        "uncategorizedtemplates": "Æнæкатегори хуызæгтæ",
-       "popularpages": "Популярон фæрстæ",
        "wantedcategories": "Хъæугæ категоритæ",
        "wantedpages": "Хъæугæ фæрстæ",
        "wantedfiles": "Хъæугæ файлтæ",
index 6d50a47..cb72b0a 100644 (file)
@@ -60,6 +60,7 @@
        "tog-showhiddencats": "ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਵਖਾਓ",
        "tog-norollbackdiff": "\"ਵਾਪਸ ਮੋੜੋ\" ਅਮਲ ਵਿਚ ਲਿਆਣ ਮਗਰੋਂ ਫ਼ਰਕ ਨਾ ਵਖਾਓ",
        "tog-useeditwarning": "ਜਦੋਂ ਮੈਂ ਅਣ-ਸਾਂਭੀਆਂ ਸੋਧਾਂ ਵਾਲਾ ਸਫ਼ਾ ਛੱਡਾਂ ਤਾਂ ਮੈਨੂੰ ਖ਼ਬਰ ਦਿਉ",
+       "tog-prefershttps": "ਦਾਖ਼ਲ ਹੋਣ 'ਤੇ ਹਮੇਸ਼ਾਂ ਸੁਰੱਖਿਅਤ ਜੋੜ ਵਰਤੋ",
        "underline-always": "ਹਮੇਸ਼ਾਂ",
        "underline-never": "ਕਦੇ ਨਹੀਂ",
        "underline-default": "ਸਕਿਨ ਜਾਂ ਬਰਾਊਜ਼ਰ ਮੂਲ",
        "history": "ਸਫ਼ੇ ਦਾ ਅਤੀਤ",
        "history_short": "ਅਤੀਤ",
        "updatedmarker": "ਮੇਰੀ ਆਖਰੀ ਫੇਰੀ ਤੋਂ ਬਾਅਦ ਦੇ ਅੱਪਡੇਟ",
-       "printableversion": "à¨\9bਪਣਯà©\8bà¨\97 à¨µà¨°à¨\9cਨ",
+       "printableversion": "à¨\9bਪਣਯà©\8bà¨\97 à¨°à©\82ਪ",
        "permalink": "ਪੱਕੀ ਲਿੰਕ",
        "print": "ਛਾਪੋ",
        "view": "ਵੇਖੋ",
        "viewhelppage": "ਮਦਦ ਸਫ਼ਾ ਵੇਖੋ",
        "categorypage": "ਸ਼੍ਰੇਣੀ ਸਫ਼ਾ ਵੇਖੋ",
        "viewtalkpage": "ਚਰਚਾ ਵੇਖੋ",
-       "otherlanguages": "ਹà©\8bਰ à¨­à¨¾à¨¸à¨¼à¨¾à¨µà¨¾ਂ ਵਿਚ",
+       "otherlanguages": "ਹà©\8bਰ à¨¬à©\8bਲà©\80à¨\86ਂ ਵਿਚ",
        "redirectedfrom": "($1 ਤੋਂ ਰੀਡਿਰੈਕਟ)",
        "redirectpagesub": "ਰੀਡਿਰੈਕਟ ਸਫ਼ਾ",
        "redirectto": "ਇਸ ਵੱਲ ਮੋੜੋ:",
        "policy-url": "Project:ਨੀਤੀ",
        "portal": "ਭਾਈਚਾਰਕ ਸੱਥ",
        "portal-url": "Project:ਸੱਥ",
-       "privacy": "ਪਰਾà¨\88ਵà©\87ਸà©\80 à¨ªà¨¾à¨²à¨¸ੀ",
-       "privacypage": "Project:ਪਰਾà¨\88ਵà©\87ਸà©\80 à¨ªà¨¾à¨²à¨¸ੀ",
+       "privacy": "ਪਰਦਾ à¨¨à©\80ਤੀ",
+       "privacypage": "Project:ਪਰਦਾ à¨¨à©\80ਤੀ",
        "badaccess": "ਮਨਜ਼ੂਰੀ ਗਲਤੀ",
        "badaccess-group0": "ਤੁਹਾਨੂੰ ਉਹ ਕਾਰਵਾਈ ਕਰਨ ਦੀ ਮਨਜ਼ੂਰੀ ਨਹੀਂ ਜਿਹਦੀ ਤੁਸੀਂ ਮੰਗ ਕੀਤੀ ਹੈ।",
        "badaccess-groups": "ਜੋ ਕਾਰਵਾਈ ਤੁਸੀਂ ਕਰਨੀ ਚਾਹੀ ਹੈ ਓਹ {{PLURAL:$2|ਇਸ ਸਮੂਹ|ਇਹਨਾਂ ਸਮੂਹਾਂ}} ਦੇ ਮੈਂਬਰ ਹੀ ਕਰ ਸਕਦੇ ਹਨ: $1",
        "nav-login-createaccount": "ਲਾਗਇਨ/ਖਾਤਾ ਬਣਾਓ",
        "userlogin": "ਲਾਗਇਨ/ਖਾਤਾ ਬਣਾਓ",
        "userloginnocreate": "ਲਾਗਇਨ",
-       "logout": "ਲਾà¨\97 à¨\86à¨\89à¨\9f",
-       "userlogout": "ਲਾà¨\97 à¨\86à¨\89à¨\9f",
+       "logout": "ਵਿਦਾà¨\88 à¨²à¨\89",
+       "userlogout": "ਵਿਦਾà¨\88 à¨²à¨\89",
        "notloggedin": "ਲਾਗਇਨ ਨਹੀਂ ਹੋ",
        "userlogin-noaccount": "ਖਾਤਾ ਨਹੀਂ ਹੈ?",
        "userlogin-joinproject": "{{SITENAME}} ਦਾ ਹਿੱਸਾ ਬਣੋ",
        "pt-login": "ਲਾਗ ਇਨ",
        "pt-login-button": "ਲਾਗ ਇਨ",
        "pt-createaccount": "ਖਾਤਾ ਬਣਾਓ",
-       "pt-userlogout": "ਲਾà¨\97 à¨\86à¨\89à¨\9f",
+       "pt-userlogout": "ਬਾਹਰ à¨\86à¨\89",
        "php-mail-error-unknown": "PHP ਦੇ ਮੇਲ() ਕਰਜ ਵਿੱਚ ਅਣਜਾਣ ਦੋਸ਼",
        "user-mail-no-addy": "ਬਿਨਾਂ ਈ-ਮੇਲ ਪਤਾ ਦਿੱਤੇ ਈ-ਮੇਲ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ।",
        "user-mail-no-body": "ਖ਼ਾਲੀ ਜਾਂ ਬਹੁਤੀ ਛੋਟੀ ਸਮੱਗਰੀ ਨਾਲ਼ ਈਮੇਲ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਗਈ",
-       "changepassword": "ਪਾਸਵਰਡ ਬਦਲੋ",
+       "changepassword": "ਪà¨\9bਾਣ-ਸ਼ਬਦ ਬਦਲੋ",
        "resetpass_announce": "ਲਾਗਇਨ ਪੂਰਾ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਨਵਾਂ ਪਾਸਵਰਡ ਬਣਾਉਣਾ ਪਵੇਗਾ।",
-       "resetpass_header": "à¨\85à¨\95ਾà¨\8aà¨\82à¨\9f à¨ªà¨¾à¨¸à¨µà¨°à¨¡ ਬਦਲੋ",
-       "oldpassword": "ਪà©\81ਰਾਣਾ à¨ªà¨¾à¨¸à¨µà¨°à¨¡:",
+       "resetpass_header": "à¨\96ਾਤà©\87 à¨¦à¨¾ à¨ªà¨\9bਾਣ-ਸ਼ਬਦ ਬਦਲੋ",
+       "oldpassword": "ਪà©\81ਰਾਣਾ à¨ªà¨\9bਾਣ-ਸ਼ਬਦ:",
        "newpassword": "ਨਵਾਂ ਪਾਸਵਰਡ:",
        "retypenew": "ਨਵਾਂ ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ:",
        "resetpass_submit": "ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ ਅਤੇ ਲਾਗਇਨ ਕਰੋ",
        "changepassword-throttled": "ਤੁਸੀਂ ਦਾਖ਼ਲ ਹੋਣ ਦੀਆਂ ਬਹੁਤ ਸਾਰੀਆਂ ਤਾਜ਼ਾ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ।\nਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ $1 ਉਡੀਕ ਕਰੋ ਜੀ।",
        "resetpass_forbidden": "ਪਾਸਵਰਡ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ",
        "resetpass-no-info": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਸਿੱਧੇ ਹੀ ਵੇਖਣ ਲਈ ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨਾ ਪਵੇਗਾ।",
-       "resetpass-submit-loggedin": "ਪਾਸਵਰਡ ਬਦਲੋ",
+       "resetpass-submit-loggedin": "ਪà¨\9bਾਣ-ਸ਼ਬਦ ਬਦਲੋ",
        "resetpass-submit-cancel": "ਰੱਦ ਕਰੋ",
        "resetpass-wrong-oldpass": "ਗ਼ਲਤ ਆਰਜ਼ੀ ਜਾਂ ਚਾਲੂ ਪਾਸਵਰਡ।\nਸ਼ਾਇਦ ਤੁਸੀਂ ਕਾਮਯਾਬੀ ਨਾਲ਼ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲ ਚੁੱਕੇ ਹੋ ਜਾਂ ਆਰਜ਼ੀ ਪਾਸਵਰਡ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਸੀ।",
        "resetpass-recycled": "ਆਪਣਾ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਮੌਜੂਦਾ ਪਛਾਣ-ਸ਼ਬਦ ਤੋਂ ਵੱਖਰਾ ਬਣਾਉ ਜੀ।",
        "subject": "ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ:",
        "minoredit": "ਇਹ ਇੱਕ ਛੋਟੀ ਸੋਧ ਹੈ",
        "watchthis": "ਇਸ ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖੋ",
-       "savearticle": "ਸਫ਼ਾ à¨¸à©°à¨­à¨¾à¨²ੋ",
+       "savearticle": "ਸਫ਼ਾ à¨¸à¨¾à¨\82ਭੋ",
        "preview": "ਝਲਕ",
        "showpreview": "ਝਲਕ ਵਿਖਾਓ",
-       "showdiff": "ਤਬਦà©\80ਲà©\80à¨\86à¨\82 à¨µà¨\96ਾà¨\93",
+       "showdiff": "ਤਬਦà©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à¨\96ਾà¨\89",
        "anoneditwarning": "'''ਖ਼ਬਰਦਾਰ:''' ਤੁਸੀਂ ਦਾਖ਼ਲ ਨਹੀਂ ਹੋ। ਕੋਈ ਵੀ ਸੋਧ ਕਰਨ 'ਤੇ ਤੁਹਾਡਾ ਆਈ.ਪੀ. ਪਤਾ ਲੋਕਾਂ ਨੂੰ ਵਿਖਾਈ ਦੇਵੇਗਾ। ਜੇਕਰ ਤੁਸੀਂ <strong>[$1 ਦਾਖ਼ਲ ਹੁੰਦੇ ਹੋ]</strong> ਜਾਂ <strong>[$2 ਖਾਤਾ ਬਣਾਉਂਦੇ ਹੋ]</strong> ਤਾਂ ਤੁਹਾਡੀਆਂ ਸੋਧਾਂ ਦਾ ਸਿਹਰਾ, ਹੋਰ ਫ਼ਾਇਦਿਆਂ ਸਮੇਤ, ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਸਿਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।",
        "anonpreviewwarning": "''ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ। ਤਬਦੀਲੀ ਸਾਂਭਣ ਨਾਲ਼ ਤੁਹਾਡਾ IP ਪਤਾ ਸਫ਼ੇ ਦੇ ਸੋਧ ਅਤੀਤ ਵਿਚ ਰਿਕਾਰਡ ਹੋ ਜਾਵੇਗਾ।''",
        "missingsummary": "'''ਯਾਦ-ਦਹਾਨੀ:''' ਤੁਸੀਂ ਸੋਧ ਸਾਰ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰਵਾਇਆ। ਜੇ ਤੁਸੀਂ \"{{int:savearticle}}\" ਤੇ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕੀਤਾ ਤਾਂ ਤੁਹਾਡਾ ਸਫ਼ਾ ਇਸਦੇ ਬਿਨਾਂ ਹੀ ਸਾਂਭਿਆ ਜਾਵੇਗਾ।",
        "semiprotectedpagewarning": "'''ਨੋਟ:''' ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਹੈ ਤਾਂ ਕਿ ਸਿਰਫ਼ ਰਜਿਸਟਰ ਹੋਏ ਮੈਂਬਰ ਹੀ ਇਸ ਨੂੰ ਸੋਧ ਸਕਣ।\nਚਿੱਠੇ ਵਿਚਲਾ ਨਵਾਂ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:",
        "titleprotectedwarning": "'''ਖ਼ਬਰਦਾਰ: ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਹੈ ਸੋ ਇਸਨੂੰ ਬਣਾਉਣ ਲਈ [[Special:ListGroupRights|ਖ਼ਾਸ ਹੱਕਾਂ]] ਦੀ ਲੋੜ ਹੈ।'''\nਚਿੱਠੇ ਦਾ ਨਵਾਂ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:",
        "templatesused": "ਇਸ ਪੰਨੇ ’ਤੇ {{PLURAL:$1|ਵਰਤਿਆ ਸਾਂਚਾ|ਵਰਤੇ ਸਾਂਚੇ}}:",
-       "templatesusedpreview": "{{PLURAL:$1|ਟੈਪਲੇਟ|ਟੈਪਲੇਟ}} ਇਹ ਝਲਕ 'ਚ ਵਰਤੇ ਜਾਂਦੇ ਹਨ:",
+       "templatesusedpreview": "ਏਸ ਝਾਤ 'ਚ {{PLURAL:$1|ਵਰਤਿਆ ਗਿਆ ਫਰਮਾ|ਵਰਤੇ ਗਏ ਫਰਮੇ}}:",
        "templatesusedsection": "ਇਹ ਭਾਗ ਵਿੱਚ {{PLURAL:$1|ਸਾਂਚਾ|ਸਾਂਚੇ}} ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:",
        "template-protected": "(ਸੁਰੱਖਿਅਤ)",
        "template-semiprotected": "(ਨੀਮ-ਸੁਰੱਖਿਅਤ)",
        "mergehistory-same-destination": "ਸਰੋਤ ਸਫ਼ਾ ਅਤੇ ਮੰਜ਼ਿਲ ਸਫ਼ਾ ਇੱਕੋ ਜਿਹੇ ਨਹੀਂ ਹੋ ਸਕਦੇ",
        "mergehistory-reason": "ਕਾਰਨ:",
        "mergelog": "ਰਲ਼ਾਉਣ ਦਾ ਚਿੱਠਾ",
-       "pagemerge-logentry": "[[$1]] ਨੂੰ [[$2]] ਵਿੱਚ ਰਲ਼ਾਇਆ ($3 ਤੱਕ ਦੀਆ ਰੀਵਿਜ਼ਨਾਂ)",
        "revertmerge": "ਅਨ-ਮਰਜ",
        "mergelogpagetext": "ਹੇਠਾਂ ਇੱਕ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਦੂਜੇ ਦੇ ਅਤੀਤ ਵਿਚ ਰਲ਼ਾਉਣ ਦੀ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਲਿਸਟ ਹੈ।",
        "history-title": "\"$1\" ਦੇ ਰੀਵਿਜਨ ਦਾ ਅਤੀਤ",
        "difference-multipage": "(ਦੋ ਸਫ਼ਿਆਂ ਵਿਚਕਾਰ ਫ਼ਰਕ)",
        "lineno": "ਲਾਈਨ $1:",
        "compareselectedversions": "ਚੁਣੇ ਵਰਜਨਾਂ ਦੀ ਤੁਲਨਾ",
-       "showhideselectedversions": "à¨\9aà©\81ਣà©\87 à¨°à©\80ਵਿà¨\9c਼ਨ à¨µà¨\96ਾà¨\93/ਲà©\81à¨\95ਾà¨\93",
+       "showhideselectedversions": "à¨\9aà©\81ਣà©\80à¨\86à¨\82 à¨¸à©\81ਧਾà¨\88à¨\86à¨\82 à¨¦à©\80 à¨¦à¨¿à¨¸à¨£à¨¯à©\8bà¨\97ਤਾ à¨¬à¨¦à¨²à©\8b",
        "editundo": "ਰੱਦ ਕਰੋ",
        "diff-empty": "(ਕੋਈ ਫ਼ਰਕ ਨਹੀਂ)",
        "searchresults": "ਖੋਜ ਨਤੀਜੇ",
        "powersearch-remember": "ਇਸ ਚੋਣ ਨੂੰ ਅੱਗੋਂ ਦੀਆਂ ਭਾਲ਼ਾਂ ਵਾਸਤੇ ਯਾਦ ਰੱਖੋ",
        "search-external": "ਬਾਹਰੀ ਖੋਜ",
        "search-error": "ਖੋਜ ਕਰਦੇ ਵਕਤ ਇੱਕ ਦੋਸ਼ ਮਿਲਿਆ:$1",
-       "preferences": "ਪਸੰਦਾਂ",
-       "mypreferences": "ਪਸੰਦਾਂ",
+       "preferences": "ਤਰà¨\9cà©\80ਹਾਂ",
+       "mypreferences": "ਤਰà¨\9cà©\80ਹਾਂ",
        "prefs-edits": "ਸੋਧਾਂ ਦੀ ਗਿਣਤੀ:",
        "prefsnologintext2": "ਆਪਣੀਆਂ ਤਰਜੀਹਾਂ ਬਦਲਣ ਵਾਸਤੇ ਦਾਖ਼ਲ ਹੋਵੋ।",
        "prefs-skin": "ਸਕਿਨ",
        "prefs-labs": "ਲੈਬ ਫੀਚਰ",
        "prefs-user-pages": "ਵਰਤੋਂਕਾਰ ਸਫ਼ੇ",
        "prefs-personal": "ਵਰਤੋਂਕਾਰ ਪ੍ਰੋਫ਼ਾਈਲ",
-       "prefs-rc": "ਤਾà¨\9c਼ਾ à¨¬à¨¦à¨²à¨¾à¨\85",
+       "prefs-rc": "ਹਾਲà©\80à¨\86 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82",
        "prefs-watchlist": "ਨਿਗਰਾਨ-ਸੂਚੀ",
        "prefs-watchlist-days": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਦਿਖਾਉਣ ਲਈ ਦਿਨ:",
        "prefs-watchlist-days-max": "ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨ}}",
        "prefs-watchlist-edits-max": "ਵੱਧ ਤੋਂ ਵੱਧ ਨੰਬਰ: ੧੦੦੦",
        "prefs-watchlist-token": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ਟੋਕਨ:",
        "prefs-misc": "ਫੁਟਕਲ",
-       "prefs-resetpass": "ਪਾਸਵਰਡ ਬਦਲੋ",
+       "prefs-resetpass": "ਪà¨\9bਾਣ-ਸ਼ਬਦ ਬਦਲੋ",
        "prefs-changeemail": "ਈ-ਮੇਲ ਪਤਾ ਬਦਲੋ",
        "prefs-setemail": "ਈ-ਮੇਲ ਪਤਾ ਸੈੱਟ ਕਰੋ",
        "prefs-email": "ਈਮੇਲ ਚੋਣਾਂ",
        "recentchangesdays-max": "ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨ}}",
        "recentchangescount": "ਮੂਲ ਤੌਰ 'ਤੇ ਵਿਖਾਈਆਂ ਸੋਧਾਂ ਦੀ ਗਿਣਤੀ:",
        "prefs-help-recentchangescount": "ਇਸ ਵਿਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ, ਸਫ਼ਿਆਂ ਦੇ ਅਤੀਤ ਅਤੇ ਚਿੱਠੇ ਸ਼ਾਮਲ ਹਨ।",
-       "savedprefs": "ਤà©\81ਹਾਡà©\80à¨\86à¨\82 à¨ªà¨¸à©°à¨¦ਾਂ ਸਾਂਭੀਆਂ ਗਈਆਂ ਹੈ।",
+       "savedprefs": "ਤà©\81ਹਾਡà©\80à¨\86à¨\82 à¨¤à¨°à¨\9cà©\80ਹਾਂ ਸਾਂਭੀਆਂ ਗਈਆਂ ਹੈ।",
        "timezonelegend": "ਸਮਾਂ ਜੋਨ:",
        "localtime": "ਸਥਾਨਕ ਸਮਾਂ:",
        "timezoneuseserverdefault": "ਵਿਕੀ ਮੂਲ ($1) ਵਰਤੋ",
        "prefs-common-css-js": "ਸਾਰੀਆਂ ਸਕਿਨਾਂ ਲਈ ਸਾਂਝਾ CSS/ਜਾਵਾਸਕਰਿਪਟ:",
        "prefs-emailconfirm-label": "ਈ-ਮੇਲ ਪੁਸ਼ਟੀ:",
        "youremail": "ਈ-ਮੇਲ:",
-       "username": "{{GENDER:$1|ਯà©\82à¨\9c਼ਰਨਾਂ}}:",
+       "username": "{{GENDER:$1|ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¦à¨¾ ਨਾਂ}}:",
        "prefs-memberingroups": "{{PLURAL:$1|ਢਾਣੀ|ਢਾਣੀਆਂ}} ਦਾ {{GENDER:$2|ਮੈਂਬਰ}}:",
        "prefs-registration": "ਰਜਿਸਟਰੇਸ਼ਨ ਸਮਾਂ:",
        "yourrealname": "ਅਸਲੀ ਨਾਂ:",
        "prefs-help-email-others": "ਤੁਸੀਂ ਇਹ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਜਾਂ ਚਰਚਾ ਪੰਨੇ ਤੋਂ ਹੋਰ ਵਰਤੋਂਕਾਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜ ਸਕਣ?\nਜਦੋਂ ਹੋਰ ਵਰਤੋਂਕਾਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜਦੇ ਹਨ ਤਾਂ ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਜ਼ਾਹਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।",
        "prefs-help-email-required": "ਈ-ਮੇਲ ਪਤਾ ਚਾਹੀਦਾ ਹੈ।",
        "prefs-info": "ਮੁਢਲੀ ਜਾਣਕਾਰੀ",
-       "prefs-i18n": "à¨\85ੰਤਰਰਾਸ਼à¨\9fਰੀਕਰਨ",
+       "prefs-i18n": "à¨\95à©\8cਮਾà¨\82ਤਰੀਕਰਨ",
        "prefs-signature": "ਦਸਤਖ਼ਤ",
        "prefs-dateformat": "ਮਿਤੀ ਦਾ ਅੰਦਾਜ਼",
        "prefs-timeoffset": "ਸਮੇਂ ਦਾ ਆਫ਼ਸੈੱਟ",
        "prefs-help-prefershttps": "ਇਹ ਪਸੰਦ ਤੁਹਾਡੇ ਅਗਲੇ ਦਾਖ਼ਲੇ ਤੋਂ ਚਾਲੂ ਹੋ ਜਾਵੇਗੀ।",
        "email-address-validity-valid": "ਈ-ਮੇਲ ਪਤਾ ਸਹੀ ਲਗਦਾ ਹੈ",
        "email-address-validity-invalid": "ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਦਾਖ਼ਲ ਕਰੋ",
-       "userrights": "ਵਰਤੋਂਕਾਰ ਦੇ ਅਧਿਕਾਰਾਂ ਦਾ ਰੱਖ-ਰਖਾਓ",
+       "userrights": "ਵਰਤੋਂਕਾਰੀ ਹੱਕਾਂ ਦਾ ਪ੍ਰਬੰਧ",
        "userrights-lookup-user": "ਵਰਤੋਂਕਾਰ ਸਮੂਹਾਂ ਦੀ ਦੇਖਭਾਲ",
        "userrights-user-editname": "ਇੱਕ ਵਰਤੋਂਕਾਰ ਨਾਂ ਭਰੋ:",
        "editusergroup": "ਵਰਤੋਂਕਾਰ ਸਮੂਹਾਂ ਦੀ ਸੋਧ",
        "userrights-notallowed": "ਤੁਹਾਡੇ ਕੋਲ਼ ਵਰਤੋਂਕਾਰ ਹੱਕ ਦੇਣ ਜਾਂ ਖੋਹਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
        "userrights-changeable-col": "ਉਹ ਸਮੂਹ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਸਕਦੇ ਹੋ",
        "userrights-unchangeable-col": "ਉਹ ਸਮੂਹ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਨਹੀਂ ਸਕਦੇ",
-       "group": "ਸਮà©\82ਹ:",
+       "group": "à¨\9fà©\8bਲà©\80:",
        "group-user": "ਵਰਤੋਂਕਾਰ",
        "group-autoconfirmed": "ਖ਼ੁਦ-ਤਸਦੀਕਸ਼ੁਦਾ ਮੈਂਬਰ",
        "group-bot": "ਬੌਟ",
        "right-editmyuserjs": "ਆਪਣੀਆਂ ਵਰਤੋਂਕਾਰ ਜਾਵਾਸਕਰਿਪਟ ਫ਼ਾਈਲਾਂ ਸੋਧੋ",
        "right-viewmywatchlist": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵੇਖੋ",
        "right-editmywatchlist": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ। ਧਿਆਨ ਦਿਓ ਕਿ ਕੁਝ ਸਫ਼ੇ ਇਸ ਹੱਕ ਤੋਂ ਬਿਨਾਂ ਵੀ ਜੁੜਨਗੇ।",
-       "right-editmyoptions": "à¨\86ਪਣà©\80à¨\86à¨\82 à¨ªà¨¸à©°à¨¦ਾਂ ਸੋਧੋ",
+       "right-editmyoptions": "à¨\86ਪਣà©\80à¨\86à¨\82 à¨¤à¨°à¨\9cà©\80ਹਾਂ ਸੋਧੋ",
        "right-unwatchedpages": "ਨਜ਼ਰ ਨਾ ਰੱਖੇ ਜਾ ਰਹੇ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ ਵੇਖਣੀ",
        "right-mergehistory": "ਸਫ਼ਿਆਂ ਦੇ ਅਤੀਤਾਂ ਨੂੰ ਰਲ਼ਾਉਣਾ",
        "right-userrights": "ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ ਦੇ ਹੱਕ ਬਦਲਣੇ",
        "action-move-subpages": "ਇਹ ਸਫ਼ਾ ਤੇ ਇਸ ਦੇ ਅਧੀਨ-ਸਫ਼ਿਆਂ ਨੂੰ ਭੇਜੋ",
        "action-move-categorypages": "ਵਰਗਾਂ ਦੇ ਸਫ਼ੇ ਭੇਜੋ",
        "action-movefile": "ਇਹ ਫ਼ਾਈਲ ਭੇਜੋ",
-       "action-upload": "à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ à¨\85ੱਪਲà©\8bਡ à¨\95ਰà©\8b",
+       "action-upload": "à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ à¨\9aà©\9cà©\8dਹਾà¨\89",
        "action-reupload": "ਇਹ ਮੌਜੂਦਾ ਫ਼ਾਈਲ ਉੱਤੇ ਲਿਖੋ",
        "action-reupload-shared": "ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਸਾਂਝੀ ਕੀਤੀ ਰਿਪੋਜ਼ਟਰੀ ਉੱਤੇ ਧਰੋ",
        "action-upload_by_url": "ਇਹ ਫ਼ਾਈਲ ਨੂੰ ਇੱਕ URL ਤੋਂ ਅੱਪਲੋਡ ਕਰੋ",
        "diff": "ਫ਼ਰਕ",
        "hist": "ਅਤੀਤ",
        "hide": "ਲੁਕਾਓ",
-       "show": "ਵà¨\96ਾà¨\93",
+       "show": "ਵਿà¨\96ਾà¨\89",
        "minoreditletter": "ਛੋ",
        "newpageletter": "ਨ",
        "boteditletter": "ਬੋਟ",
        "recentchangeslinked-summary": "ਇਹ ਕਿਸੇ ਖ਼ਾਸ ਸਫ਼ੇ ਤੋਂ ਲਿੰਕ ਕੀਤੇ ਸਫ਼ਿਆਂ (ਜਾਂ ਕਿਸੇ ਖ਼ਾਸ ਸ਼੍ਰੇਣੀ ਦੇ ਮੈਂਬਰਾਂ) ਵਿੱਚ ਹੋਈਆਂ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਦੀ ਲਿਸਟ ਹੈ। [[Special:Watchlist|ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ]] ਵਿੱਚ ਮੌਜੂਦ ਸਫ਼ੇ ਮੋਟੇ ਅੱਖਰਾਂ ਵਿੱਚ ਵਖਾਈ ਦੇਣਗੇ।",
        "recentchangeslinked-page": "ਸਫ਼ੇ ਦਾ ਨਾਂ:",
        "recentchangeslinked-to": "ਇਹਦੇ ਬਦਲੇ ਇਸ ਸਫ਼ੇ ਨਾਲ ਜੁੜੇ ਸਫ਼ਿਆਂ ਵਿੱਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਵਿਖਾਓ",
-       "upload": "ਫ਼ਾà¨\88ਲ à¨\85ੱਪਲà©\8bਡ à¨\95ਰà©\8b",
-       "uploadbtn": "ਫ਼ਾà¨\88ਲ à¨\85ੱਪਲà©\8bਡ à¨\95ਰà©\8b",
+       "upload": "ਫ਼ਾà¨\88ਲ à¨\9aà©\9cà©\8dਹਾà¨\89",
+       "uploadbtn": "ਫ਼ਾà¨\88ਲ à¨\9aà©\9cà©\8dਹਾà¨\89",
        "reuploaddesc": "ਅੱਪਲੋਡ ਫਾਰਮ ਉੱਤੇ ਜਾਓ।",
        "upload-tryagain": "ਬਦਲਿਆ ਹੋਇਆ ਫ਼ਾਈਲ ਵੇਰਵਾ ਪੇਸ਼ ਕਰੋ",
        "uploadnologin": "ਦਾਖ਼ਲ ਨਹੀਂ ਹੋ",
        "backend-fail-closetemp": "ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਬੰਦ ਨਹੀਂ ਹੋਈ।",
        "backend-fail-read": "\"$1\" ਫ਼ਾਈਲ ਪੜ੍ਹੀ ਨਾ ਜਾ ਸਕੀ।",
        "backend-fail-create": "\"$1\" ਫ਼ਾਈਲ ਲਿਖੀ ਨਾ ਜਾ ਸਕੀ।",
+       "zip-wrong-format": "ਦੱਸੀ ਗਈ ਫ਼ਾਈਲ ਜ਼ਿੱਪ ਫ਼ਾਈਲ ਨਹੀਂ ਸੀ।",
        "uploadstash-refresh": "ਫ਼ਾਈਲਾਂ ਦੀ ਲਿਸਟ ਨੂੰ ਤਾਜ਼ਾ ਕਰੋ",
        "img-auth-accessdenied": "ਪਹੁੰਚ ਨਕਾਰੀ ਗਈ",
        "img-auth-nofile": "ਫ਼ਾਈਲ \"$1\" ਮੌਜੂਦ ਨਹੀਂ ਹੈ।",
        "statistics": "ਅੰਕੜੇ",
        "statistics-header-pages": "ਸਫ਼ਾ ਅੰਕੜੇ",
        "statistics-header-edits": "ਸੋਧ ਅੰਕੜੇ",
-       "statistics-header-views": "ਅੰਕੜੇ ਵਿਖਾਓ",
        "statistics-header-users": "ਵਰਤੋਂਕਾਰ ਅੰਕੜੇ",
        "statistics-header-hooks": "ਹੋਰ ਅੰਕੜੇ",
        "statistics-articles": "ਸਮੱਗਰੀ ਸਫ਼ੇ",
        "statistics-pages-desc": "ਇਸ ਵਿਕੀ ਦੇ ਸਾਰੇ ਸਫ਼ੇ, ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ, ਰੀਡਾਇਰੈਕਟਾਂ ਇਤਿਆਦਿ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹੋਏ",
        "statistics-files": "ਅਪਲੋਡ ਕੀਤੀਆਂ ਗਈਆਂ ਫਾਈਲਾਂ",
        "statistics-edits-average": "ਪ੍ਰਤੀ ਸਫ਼ਾ ਔਸਤ ਸੋਧਾਂ",
-       "statistics-views-total": "ਕੁੱਲ ਫੇਰੀਆਂ",
-       "statistics-views-peredit": "ਪ੍ਰਤੀ ਸੋਧ ਫੇਰੀਆਂ",
        "statistics-users": "ਰਜਿਸਟਰਡ [[Special:ListUsers|ਵਰਤੋਂਕਾਰ]]",
        "statistics-users-active": "ਸਰਗਰਮ ਵਰਤੋਂਕਾਰ",
        "statistics-users-active-desc": "ਮੈਂਬਰ, ਜਿੰਨ੍ਹਾ ਨੇ ਆਖ਼ਰੀ {{PLURAL:$1|ਦਿਨ|$1 ਦਿਨਾਂ}} ਵਿਚ ਕੋਈ ਕੰਮ ਕੀਤਾ ਹੈ।",
-       "statistics-mostpopular": "ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੇ ਸਫ਼ੇ",
        "pageswithprop-prop": "ਗੁਣ ਦਾ ਨਾਂ:",
        "pageswithprop-submit": "ਜਾਉ",
        "doubleredirects": "ਦੋਹਰੇ ਰੀਡਿਰੈਕਟ",
        "uncategorizedtemplates": "ਬਗ਼ੈਰ ਕੈਟੇਗਰੀਆਂ ਵਾਲ਼ੇ ਸਾਂਚੇ",
        "unusedcategories": "ਅਣਵਰਤੀਆਂ ਕੈਟਾਗਰੀਆਂ",
        "unusedimages": "ਅਣਵਰਤੀਆਂ ਫਾਇਲਾਂ",
-       "popularpages": "ਹਰਮਨਪਿਆਰੇ ਸਫ਼ੇ",
        "wantedcategories": "ਚਾਹੀਦੀਆਂ ਕੈਟੇਗਰੀਆਂ",
        "wantedpages": "ਚਾਹੀਦੇ ਸਫ਼ੇ",
        "wantedfiles": "ਚਾਹੀਦੀਆਂ ਫਾਇਲਾਂ",
        "listgrouprights-removegroup-all": "ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ",
        "listgrouprights-addgroup-self-all": "ਆਪਣੇ ਖਾਤੇ ਵਿਚ ਸਾਰੇ ਸਮੂਹ ਜੋੜੋ",
        "listgrouprights-removegroup-self-all": "ਆਪਣੇ ਖਾਤੇ ਤੋਂ ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ",
+       "listgrouprights-namespaceprotection-header": "ਨਾਂ-ਥਾਂ ਦੀਆਂ ਬੰਧੇਜਾਂ",
        "listgrouprights-namespaceprotection-namespace": "ਨਾਂ-ਥਾਂ",
        "trackingcategories": "ਵਰਗਾਂ ਦੀ ਪੈੜ",
        "trackingcategories-msg": "ਵਰਗ ਦੀ ਪੈੜ",
        "mywatchlist": "ਨਿਗਰਾਨੀ-ਲਿਸਟ",
        "watchlistfor2": "$1 $2 ਲਈ",
        "nowatchlist": "ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।",
-       "watchlistanontext": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ $1।",
+       "watchlistanontext": "ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਦਾਖ਼ਲ ਹੋਵੋ।",
        "watchnologin": "ਲਾਗਇਨ ਨਹੀਂ",
        "addwatch": "ਨਿਗਰਾਨੀ-ਲਿਸਟ ’ਚ ਜੋੜੋ",
        "addedwatchtext": "ਪੰਨਾ \"[[:$1]]\" ਤੁਹਾਡੀ [[Special:Watchlist|ਧਿਆਨਸੂਚੀ]] ’ਚ ਜੁੜ ਚੁੱਕਾ ਹੈ।\nਇਸ ਅਤੇ ਇਸਦੇ ਚਰਚਾ ਪੰਨੇ ’ਚ ਹੋਈਆਂ ਬਦਲੀਆਂ ਓਥੇ ਵਖਾਈ ਦੇਣਗੀਆਂ ਅਤੇ ਵੇਖਣ ਦੀ ਸੌਖ ਲਈ [[Special:RecentChanges|ਹਾਲ ਹੀ ’ਚ ਹੋਈਆਂ ਬਦਲੀਆਂ]] ਵਿੱਚ ਇਹ ਪੰਨਾ '''ਗੂੜ੍ਹਾ''' ਦਿਖਾਈ ਦੇਵੇਗਾ।",
        "allmessages-filter-all": "ਸਭ",
        "allmessages-filter-modified": "ਬਦਲਿਆ ਗਿਆ",
        "allmessages-prefix": "ਇਸ ਅਗੇਤਰ ਨਾਲ਼ ਛਾਣੋ:",
-       "allmessages-language": "ਭਾਸ਼ਾ:",
+       "allmessages-language": "ਬà©\8bਲà©\80:",
        "allmessages-filter-submit": "ਜਾਓ",
        "allmessages-filter-translate": "ਤਰਜਮਾ ਕਰੋ",
        "thumbnail-more": "ਵਧਾਓ",
        "tooltip-pt-userpage": "ਤੁਹਾਡਾ ਵਰਤੋਂਕਾਰ ਸਫ਼ਾ",
        "tooltip-pt-mytalk": "ਤੁਹਾਡਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ",
        "tooltip-pt-anontalk": "ਇਸ IP ਪਤੇ ਤੋਂ ਹੋਈਆਂ ਸੋਧਾਂ ਬਾਰੇ ਚਰਚਾ",
-       "tooltip-pt-preferences": "ਤà©\81ਹਾਡà©\80à¨\86à¨\82 à¨ªà¨¸à©°à¨¦ਾਂ",
+       "tooltip-pt-preferences": "ਤà©\81ਹਾਡà©\80à¨\86à¨\82 à¨¤à¨°à¨\9cà©\80ਹਾਂ",
        "tooltip-pt-watchlist": "ਉਹਨਾਂ ਸਫ਼ਿਆਂ ਦੀ ਸੂਚੀ ਜਿਹਨਾਂ ਦੀਆਂ ਤਬਦੀਲੀਆਂ 'ਤੇ ਤੁਸੀਂ ਅੱਖ ਰੱਖ ਰਹੇ ਹੋ",
        "tooltip-pt-mycontris": "ਤੁਹਾਡੇ ਯੋਗਦਾਨਾਂ ਦੀ ਸੂਚੀ",
        "tooltip-pt-login": "ਤੁਹਾਨੂੰ ਦਾਖ਼ਲ ਹੋਣ ਲਈ ਪ੍ਰੇਰਿਆ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ",
-       "tooltip-pt-logout": "ਸਾà¨\88à¨\9f à¨¤à©\8bà¨\82 à¨µà¨¿à¨¦à¨¾à¨\88 à¨²à¨\93",
+       "tooltip-pt-logout": "ਸਾà¨\88à¨\9f à¨¤à©\8bà¨\82 à¨¬à¨¾à¨¹à¨° à¨\86à¨\89",
        "tooltip-ca-talk": "ਸਮਗੱਰੀ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ",
        "tooltip-ca-edit": "ਤੁਸੀਂ ਇਹ ਸਫ਼ਾ ਸੋਧ ਸਕਦੇ ਹੋ। ਕਿਰਪਾ ਕਰਕੇ ਤਬਦੀਲੀ ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਵੇਖੋ।",
        "tooltip-ca-addsection": "ਨਵਾਂ ਭਾਗ ਸ਼ੁਰੂ ਕਰੋ",
        "tooltip-t-emailuser": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ",
        "tooltip-t-upload": "ਫ਼ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ",
        "tooltip-t-specialpages": "ਸਾਰੇ ਖ਼ਾਸ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ",
-       "tooltip-t-print": "à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à¨¾ à¨\9bਪਣਯà©\8bà¨\97 à¨µà¨°à¨\9cਨ",
+       "tooltip-t-print": "à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à¨¾ à¨\9bਪਣਯà©\8bà¨\97 à¨°à©\82ਪ",
        "tooltip-t-permalink": "ਸਫ਼ੇ ਦੇ ਇਸ ਰੀਵਿਜਨ ਲਈ ਪੱਕੀ ਕੜੀ",
        "tooltip-ca-nstab-main": "ਸਮੱਗਰੀ ਸਫ਼ਾ ਵੇਖੋ",
        "tooltip-ca-nstab-user": "ਵਰਤੋਂਕਾਰ ਸਫ਼ਾ ਵੇਖੋ",
        "pageinfo-robot-policy": "ਇੰਜਨ ਦੀ ਹਾਲਤ ਖੋਜੋ",
        "pageinfo-robot-index": "ਮਨਜ਼ੂਰ ਹੈ",
        "pageinfo-robot-noindex": "ਨਾ-ਮਨਜ਼ੂਰ",
-       "pageinfo-views": "ਵਖਾਵਿਆਂ ਦੀ ਗਿਣਤੀ",
        "pageinfo-watchers": "ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਵਾਲਿਆਂ ਦੀ ਗਿਣਤੀ",
        "pageinfo-subpages-name": "ਇਸ ਸਫ਼ੇ ਦੇ ਉਪ-ਸਫ਼ੇ",
        "pageinfo-firstuser": "ਸਫ਼ੇ ਦਾ ਉਸਰਈਆ",
        "exif-locationdestcode": "ਦਰਸਾਈ ਥਾਂ ਦਾ ਕੋਡ",
        "exif-contact": "ਰਾਬਤੇ ਦੀ ਜਾਣਕਾਰੀ",
        "exif-writer": "ਲੇਖਕ",
-       "exif-languagecode": "ਭਾਸ਼ਾ",
+       "exif-languagecode": "ਬà©\8bਲà©\80",
        "exif-iimversion": "IIM ਵਰਜ਼ਨ",
        "exif-iimcategory": "ਸ਼੍ਰੇਣੀ",
        "exif-iimsupplementalcategory": "ਪੂਰਕ ਸ਼੍ਰੇਣੀਆਂ",
        "blankpage": "ਖ਼ਾਲੀ ਸਫ਼ਾ",
        "intentionallyblankpage": "ਇਹ ਸਫ਼ਾ ਜਾਣ-ਬੁੱਝ ਕੇ ਖ਼ਾਲੀ ਛੱਡਿਆ ਗਿਆ ਹੈ।",
        "external_image_whitelist": " #ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ <pre>\n#ਹੇਠਾਂ ਓਹੀ ਐਕਸਪ੍ਰੈਸ਼ਨ ਪਾਓ (ਜਿਹੜਾ ਹਿੱਸਾ // ਦੇ ਵਿਚਾਲੇ ਹੈ)\n#ਇਹ ਬਾਹਰੀ ਤਸਵੀਰਾਂ ਦੇ URLs (ਹੌਟਲਿੰਕਡ) ਨਾਲ ਮਿਲਣਗੀਆਂ\n#ਜਿਹੜੀਆਂ ਮਿਲਣਗੀਆਂ ਓਹ ਬਤੌਰ ਤਸਵੀਰਾਂ ਦਿੱਸਣਗੀਆਂ ਨਹੀਂ ਤਾਂ ਤਸਵੀਰ ਦਾ ਸਿਰਫ਼ ਲਿੰਕ ਨਜ਼ਰ ਆਵੇਗਾ\n#'#' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਲਾਈਨਾਂ ਟਿੱਪਣੀਆਂ ਵਾਂਗ ਲਈਆਂ ਜਾਂਦੀਆਂ ਹਨ\n#ਇਹ ਕੇਸ-ਇਨਸੈਂਸਟਿਵ ਹੈ\n\n#ਸਾਰੇ ਰੈਜੈਕਸ ਫ਼ਰੈਗਮੈਂਟ ਇਸ ਲਾਈਨ ਤੋਂ ਉੱਪਰ ਪਾਓ। ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ </pre>",
-       "tag-filter": "[[Special:Tags|à¨\9fà©\88à¨\97]] à¨«à¨¿à¨²à¨\9fਰ:",
+       "tag-filter": "[[Special:Tags|ਨਿਸ਼ਾਨ]] à¨ªà©\8cਣà©\80:",
        "tag-filter-submit": "ਛਾਨਣੀ",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ਟੈਗ}}]]: $2)",
        "tags-title": "ਟੈਗ",
        "tags-tag": "ਟੈਗ ਦਾ ਨਾਮ",
        "tags-description-header": "ਅਰਥ ਦਾ ਪੂਰਾ ਬਿਓਰਾ",
        "tags-active-header": "ਸਰਗਰਮ?",
-       "tags-hitcount-header": "à¨\9fà©\88à¨\97 à¨\95à©\80ਤà©\80à¨\86à¨\82 ਤਬਦੀਲੀਆਂ",
+       "tags-hitcount-header": "ਨਿਸ਼ਾਨਦà©\87ਹ ਤਬਦੀਲੀਆਂ",
        "tags-active-yes": "ਹਾਂ",
        "tags-active-no": "ਨਹੀਂ",
        "tags-edit": "ਸੋਧੋ",
        "mediastatistics-header-audio": "ਆਡੀਓ",
        "mediastatistics-header-video": "ਵੀਡੀਓਆਂ",
        "mediastatistics-header-office": "ਦਫ਼ਤਰ",
-       "mediastatistics-header-text": "ਲਿਖਤੀ"
+       "mediastatistics-header-text": "ਲਿਖਤੀ",
+       "json-error-syntax": "ਵਾਕ-ਵਿਉਂਤ 'ਚ ਦੋਸ਼"
 }
index 57e52a5..e7e7896 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Arikasikis",
-            "Spacebirdy"
-        ]
-    },
-    "tog-enotifwatchlistpages": "Manpa-awit na e-mail ed siak no abalo may sakey ya bolong ya babantayan ko",
-    "underline-always": "Naynay",
-    "underline-never": "Andin-balot",
-    "category_header": "Saray artikulo ed category ya \"$1\"",
-    "about": "Nipakar ed",
-    "article": "Bolong na laman",
-    "cancel": "I-tonda",
-    "mypage": "Say bolong ko",
-    "mytalk": "Say tongtongan ko",
-    "anontalk": "Tongtongan para ed sayan IP",
-    "and": "&#32;san",
-    "qbpageoptions": "Ayan bolong",
-    "returnto": "Impawel ed $1.",
-    "help": "Tolong",
-    "search": "Anapen",
-    "searchbutton": "Anapen",
-    "go": "Ula",
-    "searcharticle": "Ula",
-    "history": "Awaran na sayan bolong",
-    "history_short": "awaran na sayan bolong",
-    "printableversion": "Naigalot ya bersion",
-    "permalink": "Masiansian gawing",
-    "edit": "Baloen o dagdagan",
-    "delete": "Buralen",
-    "deletethispage": "Buralen so ayan page",
-    "protect": "Iyagel",
-    "protectthispage": "Iyagel yan bolong",
-    "unprotect": "aga la iyagel",
-    "unprotectthispage": "Aga la iyagel yan bolong",
-    "newpage": "Balon bolong",
-    "talkpage": "Pantongtongan yan bolong",
-    "specialpage": "Niduman Bolong",
-    "articlepage": "Nengnengen so content page",
-    "talk": "Tongtongan",
-    "userpage": "Basaen so bolong na manag-usar",
-    "mediawikipage": "Nengnengen so bolong na pakabat",
-    "viewhelppage": "Nengnengen so bolong na tolong",
-    "categorypage": "Nengnengen so bolong na saray category",
-    "viewtalkpage": "Nengnengen so tongtongan",
-    "otherlanguages": "Diad arom ran salita",
-    "lastmodifiedat": "Say ayan bolong: otet ya binalo nen $2, $1.",
-    "protectedpage": "Iyayagel yan bolong",
-    "jumptosearch": "anapen",
-    "aboutsite": "Nipakar ed {{SITENAME}}",
-    "aboutpage": "Project:Nipaakar",
-    "currentevents": "Saray nagagawa natan",
-    "currentevents-url": "Project:Saray nagagawa natan",
-    "edithelp": "Tolong nipakar ed panagbalo na artikulo",
-    "mainpage": "Arapan ya Bolong",
-    "mainpage-description": "Arapan ya Bolong",
-    "portal": "Pwerta na komyunidad",
-    "portal-url": "Project:Pwerta na Komyunidad",
-    "badaccess-group0": "Agmo sarag ya gaween so action ya kekerewen mo.",
-    "youhavenewmessages": "Walay $1 ($2).",
-    "youhavenewmessagesmulti": "Walay balo ran pakabat mo ed $1",
-    "viewdeleted": "Nengnengen so $1?",
-    "nstab-user": "Bolong na manag-usar",
-    "nstab-mediawiki": "Pakabat",
-    "badarticleerror": "Aga sarag ya gaween so ayan action ed sayan bolong.",
-    "cannotdelete": "Aga nabural so nibagan bolong o file. (Sarag ton abural la na arom.)",
-    "badtitle": "Aga sarag ya titulo",
-    "viewsource": "Nengnengen so pinanlapuan",
-    "viewsourcetext": "Sarag mon nengnengen san kopyaen so pinanlapuan na ayan bolong:",
-    "yourdomainname": "Say domain mo",
-    "login": "Onloob",
-    "logout": "Paway",
-    "userlogout": "Paway",
-    "createaccount": "Mangawa na account",
-    "gotaccountlink": "Onloob",
-    "badretype": "Aga parehas so en-type mo ran password.",
-    "acct_creation_throttle_hit": "Sorry, nangawala ka la na $1 account. Agka la makapangawa na account.",
-    "accountcreated": "Agawa so account",
-    "accountcreatedtext": "Agawa la so user account para $1.",
-    "changepassword": "Salatan so password",
-    "newpassword": "Balon password:",
-    "link_tip": "Gawing ed loob",
-    "minoredit": "Melag yan edit.",
-    "watchthis": "Bantayan yan bolong",
-    "preview": "Nengnengen",
-    "showdiff": "Ipanengneng so binalo",
-    "anoneditwarning": "'''Pasakbay:''' Agka ni limmoob. Aka-record so IP address mo ed agawgawa ed bolong.",
-    "blockedtitle": "Sebel ed sayan manag-usar",
-    "blockednoreason": "anggapon katunungan so inter",
-    "whitelistedittext": "Nakaukulan mo ya $1 umpian nabalo o nadagdagan ray bolobolong.",
-    "loginreqtitle": "Nakaukulan kan Onloob",
-    "loginreqlink": "onloob",
-    "loginreqpagetext": "Nakaukulan kan $1 umpian nanengneng so arom ran bolobolong.",
-    "accmailtitle": "Say Password impawet la.",
-    "accmailtext": "Empawet ed $2 so password para ed $1.",
-    "newarticle": "(Balo)",
-    "editing": "Babaloen so $1",
-    "yourdiff": "Saray niduma",
-    "copyrightwarning": "Tandaan komon ya amin ya contribution para ed {{SITENAME}} et nonoten ya pinaolian onong ed $2 (nengnengen so $1 para ed detalye).\nNo ag mo labay ya say inkorit mo ed sarag ya baloen odino ibonog ed anggan siopa, ag mo ipapalima dia.<br />\nSan ipropromisam met ya insulat mo yan dili o kinopyam ya manlapo ed sakey ya public domain odino parehas ya libren resource.\n'''AG MANPALIMA NA KIMEY YA WALAY COPYRIGHT TO YA ANGGAPOY ABOLOY!'''",
-    "cantcreateaccounttitle": "Aga makagawa na account",
-    "last": "sampot",
-    "histfirst": "Sankaunaan",
-    "histlast": "Sankautetan",
-    "mypreferences": "Saray preference ko",
-    "datedefault": "Anggapoy preference",
-    "prefs-datetime": "Bilang na agew san oras",
-    "prefs-rc": "Sampot ran binalo",
-    "prefs-watchlist": "Listaan na babantayan",
-    "prefs-editing": "Babaloen",
-    "searchresultshead": "Anapen",
-    "yourrealname": "Tuwan ngaran:",
-    "badsiglength": "Andukey ya maong so nickname. Say dukey to dapat mas daiset en say $1 ya character.",
-    "userrights-user-editname": "Isulat so username:",
-    "recentchanges": "Sampot ran binalo",
-    "hide": "Yamot",
-    "show": "Ipanengneng",
-    "recentchangeslinked": "Kabiangan ran binalo",
-    "recentchangeslinked-feed": "Kabiangan ran binalo",
-    "recentchangeslinked-toolbox": "Kabiangan ran binalo",
-    "upload": "Mangisigep na file",
-    "uploadlog": "Isigep so log",
-    "filesource": "Pinanlapuan:",
-    "uploadedfiles": "Insegep ran file",
-    "badfilename": "Binalo so ngaran na file, umpian \"$1\" so balon ngaran to.",
-    "sourcefilename": "Filename na pinanlapuan:",
-    "watchthisupload": "Bantayan yan bolong",
-    "listfiles_name": "Ngaran",
-    "imagelinks": "Saray Gawing",
-    "download": "mangileksab (download)",
-    "unusedtemplateswlh": "arom ran gawing",
-    "randompage": "Random ya bolong",
-    "randompage-nopages": "Anggapoy bolong ya wadya ed ayan namespace.",
-    "withoutinterwiki": "Saray bolobolong ya anggapoy gawing ya language",
-    "withoutinterwiki-summary": "Anggapoy gawin paulad version na arum ran salita so ontombok ran bolobolong:",
-    "shortpages": "Antikey ran bolong",
-    "longpages": "Andokoy ran bolong",
-    "protectedpages": "Iyayagel ran bolobolong",
-    "newpages": "Balo ran bolong",
-    "ancientpages": "Sankadaanan ran bolobolong",
-    "move": "Iyales",
-    "movethispage": "Iyales yan bolong",
-    "booksources": "Saray liblibron pinanlapuan",
-    "booksources-search-legend": "Mananap na saray libron pinanlapuan",
-    "booksources-go": "Ula",
-    "all-logs-page": "Amin ran log",
-    "allpages": "Amin ya bolobolong",
-    "alphaindexline": "$1 anggad $2",
-    "nextpage": "Ontombok ya page ($1)",
-    "allpagesfrom": "Ipanengneng ray bolobolong ya manlapod:",
-    "allarticles": "Amin ran bolobolong",
-    "allinnamespace": "Amin ya bolobolong ($1 namespace)",
-    "allpagessubmit": "Ula",
-    "allpagesprefix": "Ipanengneng so saray bolobolong ya walay prefix:",
-    "linksearch": "Anapen ramay gawing ed web",
-    "linksearch-pat": "Anapen so pattern:",
-    "linksearch-ok": "Anapen",
-    "emailuser": "E-mail so ayan user",
-    "emailfrom": "Manlapud",
-    "emailto": "Para ed",
-    "emailmessage": "Pakabat",
-    "emailsend": "Paawit",
-    "emailsent": "Say e-mail impawet la",
-    "emailsenttext": "Impawit la so e-mail message mo.",
-    "mywatchlist": "Listaan na babantayan ko",
-    "watchnologin": "Agka ni akaloob",
-    "addedwatchtext": "Impila so bolong ya \"[[:$1]]\" diad [[Special:Watchlist|listaan na babantayan]] mo. Isulat diman so saray ontombok ran idagdag o panagbalo ed sayan bolong san diad bolong na tongtongan. San akasulat ran '''mapatnag''' (bolded) ed [[Special:RecentChanges|listaan na saray sampot ran binalo]] umpian mas maganom ya nanengneng.\n\nNo labay mon ekalen may bolong diad listaan na babantayan, tapik mo labat so \"ekalen ed babantayan\" (unwatch) diad gilig ya bar.",
-    "watch": "bantayan",
-    "watchthispage": "Bantayan yan bolong",
-    "watching": "Babantayan...",
-    "created": "agawa",
-    "changed": "asalatan",
-    "deletepage": "Buralen so bolong",
-    "confirm": "Paletan",
-    "exblank": "Anggapoy laman na bolong",
-    "actioncomplete": "Asumpal lan agawa",
-    "deletedtext": "Abural lay \"$1\".\nPinengneng so $2 para ed listaan na saray abural ran balo.",
-    "deletecomment": "Katonongan",
-    "prot_1movedto2": "say [[$1]] enyales paula ed [[$2]]",
-    "protect-legend": "Palitaen so pangiyagel",
-    "protect-level-sysop": "Sysops labat",
-    "undelete": "Nengnengen so inekal ran bolobolong",
-    "viewdeletedpage": "Nengnengen so inekal ran bolong",
-    "undelete-search-box": "Anapen ramay binural ran bolobolong",
-    "undelete-search-prefix": "Ipanengneng ray bolobolong ya mangagapo ed:",
-    "undelete-search-submit": "Anapen",
-    "contributions": "Saray contribution na user",
-    "mycontris": "Saray entolong ko",
-    "year": "Taon:",
-    "sp-contributions-newbies-sub": "Para balo ran account",
-    "sp-contributions-submit": "Anapen",
-    "whatlinkshere": "Antoray akaturo dia",
-    "whatlinkshere-title": "Saray bolong ya aka-gawing ed $1",
-    "whatlinkshere-page": "Bolong:",
-    "blockip": "Isara ed para ayan manag-usar",
-    "ipbreason": "Katonongan",
-    "ipbsubmit": "Isebel ed sayan manag-usar",
-    "badipaddress": "Aga nayarin IP address",
-    "ipusubmit": "Aga la isebel so ayan address",
-    "ipblocklist": "Listaan na saray sebel ran IP address san username",
-    "ipblocklist-submit": "Anapen",
-    "expiringblock": "nabalang no $1 $2",
-    "blocklink": "isara",
-    "contribslink": "saray entolong to",
-    "move-page-legend": "Iyales so bolong",
-    "movearticle": "Iyales so bolong",
-    "movepagebtn": "Iyales so bolong",
-    "pagemovedsub": "Asumpal lan inyales",
-    "articleexists": "Wala lay bolong to may ngaran ya atan, odino aga valid so pinilim ya ngaran. Pili ka pa na arom ya ngaran.",
-    "movereason": "Katonongan",
-    "delete_and_move": "Buralen san iyales",
-    "delete_and_move_confirm": "On, buralen yan page",
-    "export-submit": "Ipaawit",
-    "export-addcat": "Iyarom",
-    "allmessages": "Saray pakabat na oksoy",
-    "allmessagesname": "Ngaran",
-    "allmessagestext": "Aya so listaan na amin ya pakabat na oksoy ya naanap ed MediaWiki namespace.",
-    "filemissing": "Nababalang so file",
-    "importnotext": "Andilugan odino anggapoy laman ton text",
-    "tooltip-pt-logout": "Paway",
-    "tooltip-ca-viewsource": "Iya-yagel yan bolong. Sarag mon nengnengen so pinanlapuan to.",
-    "tooltip-ca-protect": "Iyagel yan bolong",
-    "tooltip-ca-move": "Iyales so ayan bolong",
-    "tooltip-search": "Anapen {{SITENAME}}",
-    "tooltip-p-logo": "Arapan ya Bolong",
-    "tooltip-t-specialpages": "Listaan na amin ran niduman bolobolong",
-    "tooltip-ca-nstab-user": "Nengnengen so bolong na manag-usar",
-    "tooltip-ca-nstab-mediawiki": "Nengnengen so pakabat na oksoy",
-    "lastmodifiedatby": "Sampot ya binalo yan bolong nen agew ya $2, $1 nen $3.",
-    "ilsubmit": "Anapen",
-    "exif-filesource": "File na pinanlapuan",
-    "watchlistall2": "amin",
-    "namespacesall": "amin",
-    "monthsall": "amin",
-    "confirmemail": "Kumpirmaen so E-mail address",
-    "confirmemail_sent": "Empawet so confirmation e-mail.",
-    "confirmemail_needlogin": "Nakaukulan mo ya $1 umpian nakompirma so email address mo.",
-    "confirmemail_success": "Akompirma so e-mail address mo. Sarag mo lay man-log-in san panliketan so wiki.",
-    "confirmemail_loggedin": "Akompira la so e-mail address mo.",
-    "deletedwhileediting": "Pasakbay: Abural yan bolong nen ginapuan mon baloen!",
-    "confirm-purge-top": "Ekalen so cache na sayan bolong?",
-    "imgmultipagenext": "ontombok ya bolong →",
-    "imgmultigo": "Ula!",
-    "table_pager_next": "Ontombok ya bolong",
-    "table_pager_prev": "Embeneg ya bolong",
-    "table_pager_first": "Unaan ya bolong",
-    "table_pager_last": "Otet ya bolong",
-    "table_pager_limit_submit": "Ula",
-    "autosumm-blank": "Ekalen so amin ya laman na bolong",
-    "autosumm-replace": "Salatan yan bolong na '$1'",
-    "autoredircomment": "Ituturo paulad [[$1]]",
-    "autosumm-new": "Balon bolong: $1",
-    "livepreview-loading": "Ilulugan…",
-    "livepreview-ready": "Ilulugan… Akaparaan!",
-    "specialpages": "Niduma ran bolobolong"
+       "@metadata": {
+               "authors": [
+                       "Arikasikis",
+                       "Spacebirdy"
+               ]
+       },
+       "tog-enotifwatchlistpages": "Manpa-awit na e-mail ed siak no abalo may sakey ya bolong ya babantayan ko",
+       "underline-always": "Naynay",
+       "underline-never": "Andin-balot",
+       "category_header": "Saray artikulo ed category ya \"$1\"",
+       "about": "Nipakar ed",
+       "article": "Bolong na laman",
+       "cancel": "I-tonda",
+       "mypage": "Say bolong ko",
+       "mytalk": "Say tongtongan ko",
+       "anontalk": "Tongtongan para ed sayan IP",
+       "and": "&#32;san",
+       "qbpageoptions": "Ayan bolong",
+       "returnto": "Impawel ed $1.",
+       "help": "Tolong",
+       "search": "Anapen",
+       "searchbutton": "Anapen",
+       "go": "Ula",
+       "searcharticle": "Ula",
+       "history": "Awaran na sayan bolong",
+       "history_short": "awaran na sayan bolong",
+       "printableversion": "Naigalot ya bersion",
+       "permalink": "Masiansian gawing",
+       "edit": "Baloen o dagdagan",
+       "delete": "Buralen",
+       "deletethispage": "Buralen so ayan page",
+       "protect": "Iyagel",
+       "protectthispage": "Iyagel yan bolong",
+       "unprotect": "aga la iyagel",
+       "unprotectthispage": "Aga la iyagel yan bolong",
+       "newpage": "Balon bolong",
+       "talkpage": "Pantongtongan yan bolong",
+       "specialpage": "Niduman Bolong",
+       "articlepage": "Nengnengen so content page",
+       "talk": "Tongtongan",
+       "userpage": "Basaen so bolong na manag-usar",
+       "mediawikipage": "Nengnengen so bolong na pakabat",
+       "viewhelppage": "Nengnengen so bolong na tolong",
+       "categorypage": "Nengnengen so bolong na saray category",
+       "viewtalkpage": "Nengnengen so tongtongan",
+       "otherlanguages": "Diad arom ran salita",
+       "lastmodifiedat": "Say ayan bolong: otet ya binalo nen $2, $1.",
+       "protectedpage": "Iyayagel yan bolong",
+       "jumptosearch": "anapen",
+       "aboutsite": "Nipakar ed {{SITENAME}}",
+       "aboutpage": "Project:Nipaakar",
+       "currentevents": "Saray nagagawa natan",
+       "currentevents-url": "Project:Saray nagagawa natan",
+       "edithelp": "Tolong nipakar ed panagbalo na artikulo",
+       "mainpage": "Arapan ya Bolong",
+       "mainpage-description": "Arapan ya Bolong",
+       "portal": "Pwerta na komyunidad",
+       "portal-url": "Project:Pwerta na Komyunidad",
+       "badaccess-group0": "Agmo sarag ya gaween so action ya kekerewen mo.",
+       "youhavenewmessages": "Walay $1 ($2).",
+       "youhavenewmessagesmulti": "Walay balo ran pakabat mo ed $1",
+       "viewdeleted": "Nengnengen so $1?",
+       "nstab-user": "Bolong na manag-usar",
+       "nstab-mediawiki": "Pakabat",
+       "badarticleerror": "Aga sarag ya gaween so ayan action ed sayan bolong.",
+       "cannotdelete": "Aga nabural so nibagan bolong o file. (Sarag ton abural la na arom.)",
+       "badtitle": "Aga sarag ya titulo",
+       "viewsource": "Nengnengen so pinanlapuan",
+       "viewsourcetext": "Sarag mon nengnengen san kopyaen so pinanlapuan na ayan bolong:",
+       "yourdomainname": "Say domain mo",
+       "login": "Onloob",
+       "logout": "Paway",
+       "userlogout": "Paway",
+       "createaccount": "Mangawa na account",
+       "gotaccountlink": "Onloob",
+       "badretype": "Aga parehas so en-type mo ran password.",
+       "acct_creation_throttle_hit": "Sorry, nangawala ka la na $1 account. Agka la makapangawa na account.",
+       "accountcreated": "Agawa so account",
+       "accountcreatedtext": "Agawa la so user account para $1.",
+       "changepassword": "Salatan so password",
+       "newpassword": "Balon password:",
+       "link_tip": "Gawing ed loob",
+       "minoredit": "Melag yan edit.",
+       "watchthis": "Bantayan yan bolong",
+       "preview": "Nengnengen",
+       "showdiff": "Ipanengneng so binalo",
+       "anoneditwarning": "'''Pasakbay:''' Agka ni limmoob. Aka-record so IP address mo ed agawgawa ed bolong.",
+       "blockedtitle": "Sebel ed sayan manag-usar",
+       "blockednoreason": "anggapon katunungan so inter",
+       "whitelistedittext": "Nakaukulan mo ya $1 umpian nabalo o nadagdagan ray bolobolong.",
+       "loginreqtitle": "Nakaukulan kan Onloob",
+       "loginreqlink": "onloob",
+       "loginreqpagetext": "Nakaukulan kan $1 umpian nanengneng so arom ran bolobolong.",
+       "accmailtitle": "Say Password impawet la.",
+       "accmailtext": "Empawet ed $2 so password para ed $1.",
+       "newarticle": "(Balo)",
+       "editing": "Babaloen so $1",
+       "yourdiff": "Saray niduma",
+       "copyrightwarning": "Tandaan komon ya amin ya contribution para ed {{SITENAME}} et nonoten ya pinaolian onong ed $2 (nengnengen so $1 para ed detalye).\nNo ag mo labay ya say inkorit mo ed sarag ya baloen odino ibonog ed anggan siopa, ag mo ipapalima dia.<br />\nSan ipropromisam met ya insulat mo yan dili o kinopyam ya manlapo ed sakey ya public domain odino parehas ya libren resource.\n'''AG MANPALIMA NA KIMEY YA WALAY COPYRIGHT TO YA ANGGAPOY ABOLOY!'''",
+       "cantcreateaccounttitle": "Aga makagawa na account",
+       "last": "sampot",
+       "histfirst": "Sankaunaan",
+       "histlast": "Sankautetan",
+       "mypreferences": "Saray preference ko",
+       "datedefault": "Anggapoy preference",
+       "prefs-rc": "Sampot ran binalo",
+       "prefs-watchlist": "Listaan na babantayan",
+       "prefs-editing": "Babaloen",
+       "searchresultshead": "Anapen",
+       "yourrealname": "Tuwan ngaran:",
+       "badsiglength": "Andukey ya maong so nickname. Say dukey to dapat mas daiset en say $1 ya character.",
+       "userrights-user-editname": "Isulat so username:",
+       "recentchanges": "Sampot ran binalo",
+       "hide": "Yamot",
+       "show": "Ipanengneng",
+       "recentchangeslinked": "Kabiangan ran binalo",
+       "recentchangeslinked-feed": "Kabiangan ran binalo",
+       "recentchangeslinked-toolbox": "Kabiangan ran binalo",
+       "upload": "Mangisigep na file",
+       "filesource": "Pinanlapuan:",
+       "badfilename": "Binalo so ngaran na file, umpian \"$1\" so balon ngaran to.",
+       "sourcefilename": "Filename na pinanlapuan:",
+       "watchthisupload": "Bantayan yan bolong",
+       "listfiles_name": "Ngaran",
+       "imagelinks": "Saray Gawing",
+       "download": "mangileksab (download)",
+       "unusedtemplateswlh": "arom ran gawing",
+       "randompage": "Random ya bolong",
+       "randompage-nopages": "Anggapoy bolong ya wadya ed ayan namespace.",
+       "withoutinterwiki": "Saray bolobolong ya anggapoy gawing ya language",
+       "withoutinterwiki-summary": "Anggapoy gawin paulad version na arum ran salita so ontombok ran bolobolong:",
+       "shortpages": "Antikey ran bolong",
+       "longpages": "Andokoy ran bolong",
+       "protectedpages": "Iyayagel ran bolobolong",
+       "newpages": "Balo ran bolong",
+       "ancientpages": "Sankadaanan ran bolobolong",
+       "move": "Iyales",
+       "movethispage": "Iyales yan bolong",
+       "booksources": "Saray liblibron pinanlapuan",
+       "booksources-search-legend": "Mananap na saray libron pinanlapuan",
+       "all-logs-page": "Amin ran log",
+       "allpages": "Amin ya bolobolong",
+       "nextpage": "Ontombok ya page ($1)",
+       "allpagesfrom": "Ipanengneng ray bolobolong ya manlapod:",
+       "allarticles": "Amin ran bolobolong",
+       "allinnamespace": "Amin ya bolobolong ($1 namespace)",
+       "allpagessubmit": "Ula",
+       "allpagesprefix": "Ipanengneng so saray bolobolong ya walay prefix:",
+       "linksearch": "Anapen ramay gawing ed web",
+       "linksearch-pat": "Anapen so pattern:",
+       "linksearch-ok": "Anapen",
+       "emailuser": "E-mail so ayan user",
+       "emailfrom": "Manlapud",
+       "emailto": "Para ed",
+       "emailmessage": "Pakabat",
+       "emailsend": "Paawit",
+       "emailsent": "Say e-mail impawet la",
+       "emailsenttext": "Impawit la so e-mail message mo.",
+       "mywatchlist": "Listaan na babantayan ko",
+       "watchnologin": "Agka ni akaloob",
+       "addedwatchtext": "Impila so bolong ya \"[[:$1]]\" diad [[Special:Watchlist|listaan na babantayan]] mo. Isulat diman so saray ontombok ran idagdag o panagbalo ed sayan bolong san diad bolong na tongtongan. San akasulat ran '''mapatnag''' (bolded) ed [[Special:RecentChanges|listaan na saray sampot ran binalo]] umpian mas maganom ya nanengneng.\n\nNo labay mon ekalen may bolong diad listaan na babantayan, tapik mo labat so \"ekalen ed babantayan\" (unwatch) diad gilig ya bar.",
+       "watch": "bantayan",
+       "watchthispage": "Bantayan yan bolong",
+       "watching": "Babantayan...",
+       "created": "agawa",
+       "changed": "asalatan",
+       "deletepage": "Buralen so bolong",
+       "confirm": "Paletan",
+       "actioncomplete": "Asumpal lan agawa",
+       "deletedtext": "Abural lay \"$1\".\nPinengneng so $2 para ed listaan na saray abural ran balo.",
+       "deletecomment": "Katonongan",
+       "prot_1movedto2": "say [[$1]] enyales paula ed [[$2]]",
+       "protect-legend": "Palitaen so pangiyagel",
+       "protect-level-sysop": "Sysops labat",
+       "undelete": "Nengnengen so inekal ran bolobolong",
+       "viewdeletedpage": "Nengnengen so inekal ran bolong",
+       "undelete-search-box": "Anapen ramay binural ran bolobolong",
+       "undelete-search-prefix": "Ipanengneng ray bolobolong ya mangagapo ed:",
+       "undelete-search-submit": "Anapen",
+       "contributions": "Saray contribution na user",
+       "mycontris": "Saray entolong ko",
+       "year": "Taon:",
+       "sp-contributions-newbies-sub": "Para balo ran account",
+       "sp-contributions-submit": "Anapen",
+       "whatlinkshere": "Antoray akaturo dia",
+       "whatlinkshere-title": "Saray bolong ya aka-gawing ed $1",
+       "whatlinkshere-page": "Bolong:",
+       "blockip": "Isara ed para ayan manag-usar",
+       "ipbreason": "Katonongan",
+       "ipbsubmit": "Isebel ed sayan manag-usar",
+       "badipaddress": "Aga nayarin IP address",
+       "ipusubmit": "Aga la isebel so ayan address",
+       "ipblocklist": "Listaan na saray sebel ran IP address san username",
+       "ipblocklist-submit": "Anapen",
+       "expiringblock": "nabalang no $1 $2",
+       "blocklink": "isara",
+       "contribslink": "saray entolong to",
+       "move-page-legend": "Iyales so bolong",
+       "movearticle": "Iyales so bolong",
+       "movepagebtn": "Iyales so bolong",
+       "pagemovedsub": "Asumpal lan inyales",
+       "articleexists": "Wala lay bolong to may ngaran ya atan, odino aga valid so pinilim ya ngaran. Pili ka pa na arom ya ngaran.",
+       "movereason": "Katonongan",
+       "delete_and_move": "Buralen san iyales",
+       "delete_and_move_confirm": "On, buralen yan page",
+       "export-submit": "Ipaawit",
+       "export-addcat": "Iyarom",
+       "allmessages": "Saray pakabat na oksoy",
+       "allmessagesname": "Ngaran",
+       "allmessagestext": "Aya so listaan na amin ya pakabat na oksoy ya naanap ed MediaWiki namespace.",
+       "filemissing": "Nababalang so file",
+       "tooltip-pt-logout": "Paway",
+       "tooltip-ca-viewsource": "Iya-yagel yan bolong. Sarag mon nengnengen so pinanlapuan to.",
+       "tooltip-ca-protect": "Iyagel yan bolong",
+       "tooltip-ca-move": "Iyales so ayan bolong",
+       "tooltip-search": "Anapen {{SITENAME}}",
+       "tooltip-p-logo": "Arapan ya Bolong",
+       "tooltip-t-specialpages": "Listaan na amin ran niduman bolobolong",
+       "tooltip-ca-nstab-user": "Nengnengen so bolong na manag-usar",
+       "tooltip-ca-nstab-mediawiki": "Nengnengen so pakabat na oksoy",
+       "lastmodifiedatby": "Sampot ya binalo yan bolong nen agew ya $2, $1 nen $3.",
+       "ilsubmit": "Anapen",
+       "exif-filesource": "File na pinanlapuan",
+       "namespacesall": "amin",
+       "monthsall": "amin",
+       "confirmemail": "Kumpirmaen so E-mail address",
+       "confirmemail_sent": "Empawet so confirmation e-mail.",
+       "confirmemail_needlogin": "Nakaukulan mo ya $1 umpian nakompirma so email address mo.",
+       "confirmemail_success": "Akompirma so e-mail address mo. Sarag mo lay man-log-in san panliketan so wiki.",
+       "confirmemail_loggedin": "Akompira la so e-mail address mo.",
+       "deletedwhileediting": "Pasakbay: Abural yan bolong nen ginapuan mon baloen!",
+       "confirm-purge-top": "Ekalen so cache na sayan bolong?",
+       "imgmultipagenext": "ontombok ya bolong →",
+       "imgmultigo": "Ula!",
+       "table_pager_next": "Ontombok ya bolong",
+       "table_pager_prev": "Embeneg ya bolong",
+       "table_pager_first": "Unaan ya bolong",
+       "table_pager_last": "Otet ya bolong",
+       "table_pager_limit_submit": "Ula",
+       "autosumm-blank": "Ekalen so amin ya laman na bolong",
+       "autosumm-replace": "Salatan yan bolong na '$1'",
+       "autoredircomment": "Ituturo paulad [[$1]]",
+       "autosumm-new": "Balon bolong: $1",
+       "specialpages": "Niduma ran bolobolong"
 }
index 1aeb589..c96e2e7 100644 (file)
@@ -6,7 +6,8 @@
                        "Katimawan2005",
                        "Urhixidur",
                        "Val2397",
-                       "아라"
+                       "아라",
+                       "Leeheonjin"
                ]
        },
        "tog-underline": "Gulisan lang panglalam deng suglung:",
        "mergehistory-autocomment": "Pisamut ing [[:$1]] keng  [[:$2]]",
        "mergehistory-comment": "Misanib ya ing [[:$1]] king [[:$2]]: $3",
        "mergelog": "Piyabe ing log",
-       "pagemerge-logentry": "misanib ya ing [[$1]] king [[$2]] (deng pamagbayu angga king $3)",
        "revertmerge": "Episamut",
        "mergelogpagetext": "Makabili la king lalam deng pekabayung pamisanib da reng amlat bulung (page history).",
        "history-title": "↓Amlat ning pamagbayu king \"$1\"",
        "search-result-size": "$1 ({{PLURAL:$2|1 a kataya|$2 kataya}})",
        "search-redirect": "(pamanalis direksiun $1)",
        "search-section": "(seksion $1)",
+       "search-category": "(kategorya $1)",
        "search-suggest": "Ing buri mung sabian: $1",
        "search-interwiki-caption": "Kapatad a proyektu",
        "search-interwiki-default": "$1 linual/resulta:",
        "randomredirect-nopages": "Alang pamanalis direksiun (redirect) king pirinan lagyung (namespace) ini.",
        "statistics": "Deng datos (Statistics)",
        "statistics-header-users": "Talagamit statistics",
-       "statistics-mostpopular": "Bulung a pekamaralas dang linawe",
        "doubleredirects": "Dobling pamanaliling direksiun",
        "doubleredirectstext": "Pakalista la king bulung a ini deng bulung a makayalis direksiun (redirect) kareng aliwang bulung pamanalis direksiun. Atin yang suglung ing balang dane (row) king mumuna ampong kaduang pamanalis direksiun, ampo king tuturu (target) ning kaduang pamanalis direksiun, a keraklan ya ing \"tagana\" o \"tutung\" bulung a tuturu, nung nu ya dapat tambing makaturu ing mumunang pamanalis direksiun.",
        "brokenredirects": "Meputut a pamanaliling direksiun",
        "uncategorizedtemplates": "Modelung (template) alang kategoriya",
        "unusedcategories": "Kategoriyang e megamit",
        "unusedimages": "Simpan a e megamit",
-       "popularpages": "Sikat a bulung",
        "wantedcategories": "Kategoriyang paintunan (wanted)",
        "wantedpages": "Bulung a kailangan (wanted pages)",
        "mostlinked": "Dakal dili suglung kareng bulung",
index d690593..a82bf86 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Delaraha (on pap.wikipedia.org)",
-            "Kamizu",
-            "Sdm1985",
-            "לערי ריינהארט"
-        ]
-    },
-    "underline-always": "Semper",
-    "underline-never": "Niunka",
-    "sunday": "djadomingu",
-    "monday": "djaluna",
-    "tuesday": "djamars",
-    "wednesday": "djarason",
-    "thursday": "djaweps",
-    "friday": "djabièrne",
-    "saturday": "djasabra",
-    "january": "yanüari",
-    "february": "febrüari",
-    "march": "mart",
-    "april": "aprel",
-    "may_long": "mei",
-    "june": "yüni",
-    "july": "yüli",
-    "august": "ougùstùs",
-    "september": "sèptèmber",
-    "october": "òktober",
-    "november": "novèmber",
-    "december": "desèmber",
-    "jan": "yan",
-    "feb": "feb",
-    "mar": "mrt",
-    "apr": "apr",
-    "may": "mei",
-    "jun": "yün",
-    "jul": "yül",
-    "aug": "oug",
-    "sep": "sep",
-    "oct": "okt",
-    "nov": "nov",
-    "dec": "des",
-    "category_header": "Artíkulonan den kategoria \"$1\"",
-    "subcategories": "Supkategorianan",
-    "about": "Info",
-    "article": "Artíkulo",
-    "cancel": "Kanselá",
-    "moredotdotdot": "Mas...",
-    "mypage": "Mi página",
-    "mytalk": "Mi diskushon",
-    "anontalk": "Diskushon pa e IP aki",
-    "navigation": "Nabegashon",
-    "and": "&#32;i",
-    "faq": "Preguntanan mas Puntrá",
-    "faqpage": "Project:Preguntanan mas Puntrá",
-    "errorpagetitle": "Eror",
-    "returnto": "Bai bèk $1.",
-    "tagline": "Di {{SITENAME}}",
-    "help": "Ayudo",
-    "search": "Buska",
-    "history": "Historia di página",
-    "history_short": "Historia",
-    "edit": "Editá",
-    "editthispage": "Editá e página aki",
-    "delete": "Kita",
-    "protect": "Protehá",
-    "unprotect": "stop di protehá",
-    "unprotectthispage": "Stop di protehá e página aki",
-    "talkpagelinktext": "Papia",
-    "specialpage": "Página Spesial",
-    "personaltools": "Hèrmèntnan Personal",
-    "postcomment": "Sekshon Nobo",
-    "articlepage": "Wak página di kontenido",
-    "talk": "Diskushon",
-    "views": "Kantidat di biaha mirá",
-    "toolbox": "Kaha di Hèrmènt",
-    "userpage": "Wak página di uzadó",
-    "projectpage": "Wak página di e proyekto",
-    "imagepage": "Mira página di e dokumento",
-    "mediawikipage": "Mira paginanan di mensahe",
-    "templatepage": "Mira malchi di e página",
-    "viewhelppage": "Mira página di yudansa",
-    "categorypage": "Mira e página di kategoria",
-    "viewtalkpage": "Wak diskushon",
-    "otherlanguages": "Na otro idioma",
-    "redirectedfrom": "(Bo a yega akinan pa via di e página $1)",
-    "redirectpagesub": "Página ku ta sirbi komo portal",
-    "lastmodifiedat": "E páginá aki a wòrdu kambiá ultimo biaha riba $1, ora $2.",
-    "viewcount": "E paginá aki a wòrdu mirá {{PLURAL:$1|biaha|$1 biaha}}.",
-    "protectedpage": "Página Protehá",
-    "jumpto": "Bai na:",
-    "jumptonavigation": "Nabegashon",
-    "jumptosearch": "Buska",
-    "aboutsite": "Tokante {{SITENAME}}",
-    "aboutpage": "Project:Info",
-    "copyright": "E kontenido ta disponibel bou di $1.",
-    "copyrightpage": "{{ns:project}}:Derechinan di outor",
-    "currentevents": "Eventonan aktual",
-    "currentevents-url": "Project:Eventonan aktual",
-    "disclaimers": "Deklarashon di Liberashon for di Responsabilidatnan",
-    "disclaimerpage": "Project:Deklarashon di Liberashon for di Responsabilidat General",
-    "edithelp": "Ayudo ku editamentu",
-    "mainpage": "Página Prinsipal",
-    "mainpage-description": "Página Prinsipal",
-    "policy-url": "Project:Pólisa",
-    "portal": "Portal di komunidat",
-    "portal-url": "Project:Portal di komunidat",
-    "privacy": "Pólisa di Privasidat",
-    "privacypage": "Project:Pólisa di Privasidat",
-    "badaccess": "Eror di outorisashon",
-    "badaccess-group0": "Bo no tin outorisashon pa ehekutá e akshon ku bo a skohe.",
-    "youhavenewmessages": "Bo tin $1 ($2).",
-    "youhavenewmessagesmulti": "Bo tin mensahe nobo riba $1",
-    "editsection": "editá",
-    "toc": "Kontenido",
-    "showtoc": "mustra",
-    "hidetoc": "skonde",
-    "nstab-main": "Artíkulo",
-    "nstab-user": "Página personal",
-    "nstab-media": "Media",
-    "nstab-special": "Spesial",
-    "nstab-image": "Imagen",
-    "nstab-mediawiki": "Mensahe",
-    "nstab-template": "Predefinishon",
-    "nstab-help": "Ayudo",
-    "nstab-category": "Kategoria",
-    "nosuchspecialpage": "E página spesial no ta eksistí",
-    "nospecialpagetext": "<strong>Bo a pidi un página spesial inválido.</strong>\n\nBo por haña un lista di tur [[Special:SpecialPages|{{int:specialpages}}]].",
-    "error": "Eror",
-    "internalerror": "Eror interno",
-    "cannotdelete": "No por a kita e página òf imagen spesifiká. (Por ta e kaso ku un otro hende a kita e kaba.)",
-    "badtitle": "Título inválido",
-    "badtitletext": "E título di e página ku bo a pidi tabata inválido, bashí, òf un link pa un inter-idioma òf inter-wiki inkorekto.",
-    "viewsource": "Wak fuente",
-    "yourname": "Nòmber di uzadó",
-    "yourpassword": "Kontraseña",
-    "yourpasswordagain": "Hinka kontraseña atrobe",
-    "remembermypassword": "Kordá mi (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "userlogin": "Traha un kuenta nobo òf outentiká",
-    "userlogout": "Terminá sesion",
-    "badretype": "E kontraseñanan hinká no ta kuadra.",
-    "wrongpassword": "Kontraseña no ta korekto. Por fabor purba atrobe.",
-    "wrongpasswordempty": "Kontraseña tabata bashí. Por fabor purba atrobe.",
-    "acct_creation_throttle_hit": "Bishitantenan na uzando bo IP adrès a traha $1 kuenta den e último 24 ora, lokual ta e máksimo permití den e periodo aki. Esaki ta nifiká ku hendenan uzando e IP adrès aki no por traha mas kuenta na e momentu aki.",
-    "emailauthenticated": "Bo e-mail adrès tabata outentiká riba $1.",
-    "emailnotauthenticated": "Bo e-mail adrès no ta outentiká ahinda. Lo siguiente funkshonnan lo no ta disponibel.",
-    "emailconfirmlink": "Konfirmá bo e-mail adrès.",
-    "accountcreated": "Kuenta trahá",
-    "accountcreatedtext": "E kuenta di uzadó pa $1 tabata trahá.",
-    "changepassword": "Kambia kontraseña",
-    "watchthis": "Observá e página aki",
-    "anoneditwarning": "Bo no a outentiká bo mes.\nBo por kambia página libremente, pero tene kuenta ku lo nota bo IP adrès den e historia di kambionan hasí na e página aki.",
-    "blockedtitle": "Uzadó ta blokiá",
-    "confirmedittext": "Bo mester konfirmá bo e-mail adrès promé ku bo editá página. Por fabor duna i validá bo e-mail adrès via bo [[Special:Preferences|preferensianan]].",
-    "accmailtitle": "Kontraseña mandá.",
-    "accmailtext": "E kontraseña pa '$1' tabata mandá pa $2.",
-    "newarticle": "(Nobo)",
-    "anontalkpagetext": "----''Esaki ta e página di diskushon pa un uzadó anonimo ku no a traha un kuenta ahinda, òf no sa uza e. Ta pa e rason aki nos tin ku uza IP adrès pa identifiká e persona. Diferente uzadó por uza e IP adrès aki. Si bo ta un uzadó anonimo i ta sinti ku komentario irelevante tabata mandá pa bo, por fabor [[Special:UserLogin|registrá un kuenta nobo òf outentiká bo mes]] pa evitá konfushon den futuro.''",
-    "yourtext": "Bo teksto",
-    "yourdiff": "Diferensianan",
-    "currentrev": "Revishon aktual",
-    "currentrevisionlink": "wak revishon aktual",
-    "cur": "akt",
-    "next": "siguiente",
-    "last": "prev",
-    "histlegend": "Leyenda: (akt) = diferensia ku vershon aktual,\n(prev) = diferensia ku vershon previo, m = editashon menor",
-    "histfirst": "Promé",
-    "histlast": "Último",
-    "nextn": "siguiente {{PLURAL:$1|$1}}",
-    "preferences": "Preferensianan",
-    "mypreferences": "Mi preferensianan",
-    "timezonelegend": "Zona di tempu",
-    "allowemail": "Akseptá e-mail di otro uzadó",
-    "youremail": "E-mail:",
-    "username": "Nòmber di uzadó:",
-    "uid": "ID di uzadó:",
-    "yourrealname": "Nòmber berdadero:",
-    "yourlanguage": "Idioma:",
-    "yourvariant": "Variante:",
-    "yournick": "Nòmber di kariño:",
-    "badsig": "Firma inválido; kontrolá e HTML uzá.",
-    "recentchanges": "Kambionan resien",
-    "recentchanges-summary": "Sigui e kambionan mas resien na {{SITENAME}} riba e página aki.",
-    "rclistfrom": "Mustra kambionan nobo kuminsando for di $1",
-    "rcshowhideminor": "$1 kambionan menor",
-    "rcshowhidebots": "$1 botnan",
-    "rcshowhideanons": "$1 uzadónan anonimo",
-    "rclinks": "Mustra último $1 kambionan den último $2 dianan<br />$3",
-    "hide": "Skonde",
-    "show": "Mustra",
-    "file-anchor-link": "Imagen",
-    "unwatchedpages": "Páginanan no observá",
-    "statistics": "Estadístika",
-    "statistics-header-users": "Estadístika di uzadónan",
-    "ncategories": "$1 {{PLURAL:$1|kategoria|kategorianan}}",
-    "uncategorizedpages": "Páginanan no kategorisá",
-    "uncategorizedcategories": "Kategorianan no kategorisá",
-    "unusedcategories": "Kategorianan no uzá",
-    "wantedcategories": "Kategorianan deseá",
-    "wantedpages": "Páginanan deseá",
-    "ancientpages": "Páginanan mas bieu",
-    "unusedcategoriestext": "E siguiente kategorianan ta eksistí pero ningun artíkulo òf kategoria ta hasi uzo di nan.",
-    "alllogstext": "Esaki ta un bista kombiná di registronan.\nBo por skohe un tipo di registro tambe, òf filtrá e bista ku un nòmber di uzadó òf un título di un artíkulo.",
-    "allpages": "Tur página",
-    "alphaindexline": "$1 pa $2",
-    "allpagesfrom": "Mustra páginanan kuminsando na:",
-    "allarticles": "Tur artíkulo",
-    "allinnamespace": "Tur página (dominio $1)",
-    "allpagesprefix": "Mustra páginanan kuminsando ku e prefiho:",
-    "categories": "Kategorianan",
-    "categoriespagetext": "Esaki ta e kategorianan ku ta eksistí den {{SITENAME}}.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
-    "emailuser": "Manda e-mail pa e uzadó aki",
-    "emailpage": "Manda e-mail",
-    "emailpagetext": "E formulario aki lo manda un e-mail pa e uzadò aki.\nBo e-mail adrès (manera ta pará den bo preferensianan) lo aparesé den e e-mail pa e resipiente por respondé na bo direktamente.",
-    "defemailsubject": "E-mail di {{SITENAME}}",
-    "emailfrom": "Di:",
-    "emailto": "Pa:",
-    "emailsubject": "Tópiko:",
-    "emailmessage": "Mensahe:",
-    "emailsend": "Manda",
-    "emailsent": "E-mail mandá",
-    "emailsenttext": "Bo e-mail tabata mandá.",
-    "watchlist": "Mi lista di observashon",
-    "nowatchlist": "Bo lista di observashon ta bashí.",
-    "watchnologintext": "Bo mester [[Special:UserLogin|outentiká bo mes]] pa modifiká bo lista di observashon.",
-    "addedwatchtext": "E página \"[[:$1]]\" tabata añadí na bo [[Special:Watchlist|lista di observashon]].\nLo lista kambionan hasí na e página aki i su página di diskushon einan,\ni e página lo aparesé '''vet''' den e [[Special:RecentChanges|lista di kambionan resien]] pa\ne ta mas fásil pa bo mira.\n\nSi despues bo ke kita e página for di bo lista di observashon, primi \"Stop di observá\" den e menú ariba.",
-    "watch": "Observá",
-    "watchthispage": "Observá e página aki",
-    "unwatch": "Stop di observá",
-    "unwatchthispage": "Stop di observá",
-    "watchlistcontains": "Bo lista di observashon tin $1 {{PLURAL:$1|página|páginanan}}.",
-    "wlshowlast": "Mustra último $1 oranan $2 dianan $3",
-    "created": "trahá",
-    "changed": "kambiá",
-    "confirm": "Konfirmá",
-    "actioncomplete": "Akshon kompletá",
-    "prot_1movedto2": "[[$1]] mové pa [[$2]]",
-    "protect-legend": "Konfirmá protekshon",
-    "undelete": "Wak páginanan kitá",
-    "invert": "Invertí selekshon",
-    "blanknamespace": "(Prinsipal)",
-    "contributions": "Kontribushonnan di uzadó",
-    "mycontris": "Mi kontribushonnan",
-    "whatlinkshere": "Kiko ta link aki",
-    "blockip": "Blokia uzadó",
-    "badipaddress": "IP adrès ta inválido",
-    "blockipsuccesssub": "Blokeo eksitoso",
-    "blockipsuccesstext": "[[Special:Contributions/$1|$1]] tabata blokiá.<br />\nWak e [[Special:BlockList|lista di blokeonan]] pa wak tur blokeo aktivo.",
-    "unblockip": "Desblokia uzadó",
-    "blocklink": "blokia",
-    "unblocklink": "desblokia",
-    "contribslink": "kontrib'nan",
-    "autoblocker": "Bo tabata outomatikamente blokiá pasombra \"[[User:$1|$1]]\" a uza e IP adrès aki resientemente. E rason ku $1 tabata blokiá ta: \"'''$2'''\"",
-    "unblocklogentry": "a desblokia $1",
-    "articleexists": "Tin un página ku e título ei kaba, òf e\ntítulo ku bo a skohe no ta válido.\nPor fabor skohe un otro título.",
-    "allmessages": "Mensahenan di sistema",
-    "allmessagesname": "Nòmber",
-    "allmessagesdefault": "Teksto predeterminá",
-    "allmessagescurrent": "Teksto aktual",
-    "allmessagestext": "Esaki ta un lista di mensahe di sistema disponibel den e dominio di MediaWiki.",
-    "anonymous": "Uzadó(nan) anonimo di {{SITENAME}}",
-    "previousdiff": "← Diferensia anterior",
-    "nextdiff": "Siguiente diferensia →",
-    "watchlistall2": "tur",
-    "namespacesall": "tur",
-    "confirmemail": "Konfirmá e-mail adrès",
-    "confirmemail_text": "Bo mester validá bo e-mail adrès pa uza funkshonnan di e-mail.\nPrimi e boton abou pa manda un e-mail di konfirmashon pa bo e-mail adrès.\nOra bo haña e e-mail, bo ta sigui e instrukshonnan aden.\nPa kontrolá si bo ta konfirmá kaba, wak bo preferensianan.",
-    "confirmemail_send": "Manda un kódigo di konfirmashon via e-mail.",
-    "confirmemail_sent": "E-mail pa konfirmashon mandá.",
-    "confirmemail_invalid": "Kódigo di konfirmashon inválido. Ta posibel ku e kódigo a kaduká.",
-    "confirmemail_needlogin": "Bo mester $1 pa konfirmá bo e-mail adrès.",
-    "confirmemail_success": "Bo e-mail adrès tabata konfirmá. Bo por outentiká bo mes i gosa di {{SITENAME}}.",
-    "confirmemail_loggedin": "Bo e-mail adrès ta konfirmá.",
-    "confirmemail_subject": "{{SITENAME}}: Konfirmashon di e-mail adrès",
-    "confirmemail_body": "Un hende, probablemente abo, di IP adrès $1, a registrá e\nkuenta \"$2\" ku e e-mail adrès aki riba {{SITENAME}}.\n\nPa konfirmá ku e kuenta aki en berdat ta di bo i pa aktivá\nfunkshonnan di e-mail riba {{SITENAME}}, por fabor habri e link aki:\n\n$3\n\nSi esaki *no* ta abo, por fabor no habri e link.\nFollow this link to cancel the e-mail address confirmation:\n\n$5\n\nE kódigo di konfirmashon aki lo kaduká riba $4.",
-    "confirmrecreate": "[[User:$1|$1]] ([[User talk:$1|diskushon]]) a kita e artíkulo aki despues ku bo ta kuminsá editá. E rason ta:\n: ''$2''\nPor fabor konfirmá ku bo ke traha e artíkulo aki di nobo.",
-    "specialpages": "Páginanan Spesial"
+       "@metadata": {
+               "authors": [
+                       "Delaraha (on pap.wikipedia.org)",
+                       "Kamizu",
+                       "Sdm1985",
+                       "לערי ריינהארט",
+                       "아라"
+               ]
+       },
+       "underline-always": "Semper",
+       "underline-never": "Niunka",
+       "sunday": "djadomingu",
+       "monday": "djaluna",
+       "tuesday": "djamars",
+       "wednesday": "djarason",
+       "thursday": "djaweps",
+       "friday": "djabièrne",
+       "saturday": "djasabra",
+       "january": "yanüari",
+       "february": "febrüari",
+       "march": "mart",
+       "april": "aprel",
+       "may_long": "mei",
+       "june": "yüni",
+       "july": "yüli",
+       "august": "ougùstùs",
+       "september": "sèptèmber",
+       "october": "òktober",
+       "november": "novèmber",
+       "december": "desèmber",
+       "jan": "yan",
+       "feb": "feb",
+       "mar": "mrt",
+       "apr": "apr",
+       "may": "mei",
+       "jun": "yün",
+       "jul": "yül",
+       "aug": "oug",
+       "sep": "sep",
+       "oct": "okt",
+       "nov": "nov",
+       "dec": "des",
+       "category_header": "Artíkulonan den kategoria \"$1\"",
+       "subcategories": "Supkategorianan",
+       "about": "Info",
+       "article": "Artíkulo",
+       "cancel": "Kanselá",
+       "moredotdotdot": "Mas...",
+       "mypage": "Mi página",
+       "mytalk": "Mi diskushon",
+       "anontalk": "Diskushon pa e IP aki",
+       "navigation": "Nabegashon",
+       "and": "&#32;i",
+       "faq": "Preguntanan mas Puntrá",
+       "faqpage": "Project:Preguntanan mas Puntrá",
+       "errorpagetitle": "Eror",
+       "returnto": "Bai bèk $1.",
+       "tagline": "Di {{SITENAME}}",
+       "help": "Ayudo",
+       "search": "Buska",
+       "history": "Historia di página",
+       "history_short": "Historia",
+       "edit": "Editá",
+       "editthispage": "Editá e página aki",
+       "delete": "Kita",
+       "protect": "Protehá",
+       "unprotect": "stop di protehá",
+       "unprotectthispage": "Stop di protehá e página aki",
+       "talkpagelinktext": "Papia",
+       "specialpage": "Página Spesial",
+       "personaltools": "Hèrmèntnan Personal",
+       "articlepage": "Wak página di kontenido",
+       "talk": "Diskushon",
+       "views": "Kantidat di biaha mirá",
+       "toolbox": "Kaha di Hèrmènt",
+       "userpage": "Wak página di uzadó",
+       "projectpage": "Wak página di e proyekto",
+       "imagepage": "Mira página di e dokumento",
+       "mediawikipage": "Mira paginanan di mensahe",
+       "templatepage": "Mira malchi di e página",
+       "viewhelppage": "Mira página di yudansa",
+       "categorypage": "Mira e página di kategoria",
+       "viewtalkpage": "Wak diskushon",
+       "otherlanguages": "Na otro idioma",
+       "redirectedfrom": "(Bo a yega akinan pa via di e página $1)",
+       "redirectpagesub": "Página ku ta sirbi komo portal",
+       "lastmodifiedat": "E páginá aki a wòrdu kambiá ultimo biaha riba $1, ora $2.",
+       "viewcount": "E paginá aki a wòrdu mirá {{PLURAL:$1|biaha|$1 biaha}}.",
+       "protectedpage": "Página Protehá",
+       "jumpto": "Bai na:",
+       "jumptonavigation": "Nabegashon",
+       "jumptosearch": "Buska",
+       "aboutsite": "Tokante {{SITENAME}}",
+       "aboutpage": "Project:Info",
+       "copyright": "E kontenido ta disponibel bou di $1.",
+       "copyrightpage": "{{ns:project}}:Derechinan di outor",
+       "currentevents": "Eventonan aktual",
+       "currentevents-url": "Project:Eventonan aktual",
+       "disclaimers": "Deklarashon di Liberashon for di Responsabilidatnan",
+       "disclaimerpage": "Project:Deklarashon di Liberashon for di Responsabilidat General",
+       "edithelp": "Ayudo ku editamentu",
+       "mainpage": "Página Prinsipal",
+       "mainpage-description": "Página Prinsipal",
+       "policy-url": "Project:Pólisa",
+       "portal": "Portal di komunidat",
+       "portal-url": "Project:Portal di komunidat",
+       "privacy": "Pólisa di Privasidat",
+       "privacypage": "Project:Pólisa di Privasidat",
+       "badaccess": "Eror di outorisashon",
+       "badaccess-group0": "Bo no tin outorisashon pa ehekutá e akshon ku bo a skohe.",
+       "youhavenewmessages": "Bo tin $1 ($2).",
+       "youhavenewmessagesmulti": "Bo tin mensahe nobo riba $1",
+       "editsection": "editá",
+       "toc": "Kontenido",
+       "showtoc": "mustra",
+       "hidetoc": "skonde",
+       "nstab-main": "Artíkulo",
+       "nstab-user": "Página personal",
+       "nstab-media": "Media",
+       "nstab-special": "Spesial",
+       "nstab-image": "Imagen",
+       "nstab-mediawiki": "Mensahe",
+       "nstab-template": "Predefinishon",
+       "nstab-help": "Ayudo",
+       "nstab-category": "Kategoria",
+       "nosuchspecialpage": "E página spesial no ta eksistí",
+       "nospecialpagetext": "<strong>Bo a pidi un página spesial inválido.</strong>\n\nBo por haña un lista di tur [[Special:SpecialPages|{{int:specialpages}}]].",
+       "error": "Eror",
+       "internalerror": "Eror interno",
+       "cannotdelete": "No por a kita e página òf imagen spesifiká. (Por ta e kaso ku un otro hende a kita e kaba.)",
+       "badtitle": "Título inválido",
+       "badtitletext": "E título di e página ku bo a pidi tabata inválido, bashí, òf un link pa un inter-idioma òf inter-wiki inkorekto.",
+       "viewsource": "Wak fuente",
+       "yourname": "Nòmber di uzadó",
+       "yourpassword": "Kontraseña",
+       "yourpasswordagain": "Hinka kontraseña atrobe",
+       "remembermypassword": "Kordá mi (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "userlogin": "Traha un kuenta nobo òf outentiká",
+       "userlogout": "Terminá sesion",
+       "badretype": "E kontraseñanan hinká no ta kuadra.",
+       "wrongpassword": "Kontraseña no ta korekto. Por fabor purba atrobe.",
+       "wrongpasswordempty": "Kontraseña tabata bashí. Por fabor purba atrobe.",
+       "acct_creation_throttle_hit": "Bishitantenan na uzando bo IP adrès a traha $1 kuenta den e último 24 ora, lokual ta e máksimo permití den e periodo aki. Esaki ta nifiká ku hendenan uzando e IP adrès aki no por traha mas kuenta na e momentu aki.",
+       "emailauthenticated": "Bo e-mail adrès tabata outentiká riba $1.",
+       "emailnotauthenticated": "Bo e-mail adrès no ta outentiká ahinda. Lo siguiente funkshonnan lo no ta disponibel.",
+       "emailconfirmlink": "Konfirmá bo e-mail adrès.",
+       "accountcreated": "Kuenta trahá",
+       "accountcreatedtext": "E kuenta di uzadó pa $1 tabata trahá.",
+       "changepassword": "Kambia kontraseña",
+       "watchthis": "Observá e página aki",
+       "anoneditwarning": "Bo no a outentiká bo mes.\nBo por kambia página libremente, pero tene kuenta ku lo nota bo IP adrès den e historia di kambionan hasí na e página aki.",
+       "blockedtitle": "Uzadó ta blokiá",
+       "confirmedittext": "Bo mester konfirmá bo e-mail adrès promé ku bo editá página. Por fabor duna i validá bo e-mail adrès via bo [[Special:Preferences|preferensianan]].",
+       "accmailtitle": "Kontraseña mandá.",
+       "accmailtext": "E kontraseña pa '$1' tabata mandá pa $2.",
+       "newarticle": "(Nobo)",
+       "anontalkpagetext": "----''Esaki ta e página di diskushon pa un uzadó anonimo ku no a traha un kuenta ahinda, òf no sa uza e. Ta pa e rason aki nos tin ku uza IP adrès pa identifiká e persona. Diferente uzadó por uza e IP adrès aki. Si bo ta un uzadó anonimo i ta sinti ku komentario irelevante tabata mandá pa bo, por fabor [[Special:UserLogin|registrá un kuenta nobo òf outentiká bo mes]] pa evitá konfushon den futuro.''",
+       "yourtext": "Bo teksto",
+       "yourdiff": "Diferensianan",
+       "currentrev": "Revishon aktual",
+       "currentrevisionlink": "wak revishon aktual",
+       "cur": "akt",
+       "next": "siguiente",
+       "last": "prev",
+       "histlegend": "Leyenda: (akt) = diferensia ku vershon aktual,\n(prev) = diferensia ku vershon previo, m = editashon menor",
+       "histfirst": "Promé",
+       "histlast": "Último",
+       "nextn": "siguiente {{PLURAL:$1|$1}}",
+       "preferences": "Preferensianan",
+       "mypreferences": "Mi preferensianan",
+       "timezonelegend": "Zona di tempu",
+       "allowemail": "Akseptá e-mail di otro uzadó",
+       "youremail": "E-mail:",
+       "username": "Nòmber di uzadó:",
+       "yourrealname": "Nòmber berdadero:",
+       "yourlanguage": "Idioma:",
+       "yourvariant": "Variante:",
+       "yournick": "Nòmber di kariño:",
+       "badsig": "Firma inválido; kontrolá e HTML uzá.",
+       "recentchanges": "Kambionan resien",
+       "recentchanges-summary": "Sigui e kambionan mas resien na {{SITENAME}} riba e página aki.",
+       "rclistfrom": "Mustra kambionan nobo kuminsando for di $3 $2",
+       "rcshowhideminor": "$1 kambionan menor",
+       "rcshowhidebots": "$1 botnan",
+       "rcshowhideanons": "$1 uzadónan anonimo",
+       "rclinks": "Mustra último $1 kambionan den último $2 dianan<br />$3",
+       "hide": "Skonde",
+       "show": "Mustra",
+       "file-anchor-link": "Imagen",
+       "unwatchedpages": "Páginanan no observá",
+       "statistics": "Estadístika",
+       "statistics-header-users": "Estadístika di uzadónan",
+       "ncategories": "$1 {{PLURAL:$1|kategoria|kategorianan}}",
+       "uncategorizedpages": "Páginanan no kategorisá",
+       "uncategorizedcategories": "Kategorianan no kategorisá",
+       "unusedcategories": "Kategorianan no uzá",
+       "wantedcategories": "Kategorianan deseá",
+       "wantedpages": "Páginanan deseá",
+       "ancientpages": "Páginanan mas bieu",
+       "unusedcategoriestext": "E siguiente kategorianan ta eksistí pero ningun artíkulo òf kategoria ta hasi uzo di nan.",
+       "alllogstext": "Esaki ta un bista kombiná di registronan.\nBo por skohe un tipo di registro tambe, òf filtrá e bista ku un nòmber di uzadó òf un título di un artíkulo.",
+       "allpages": "Tur página",
+       "allpagesfrom": "Mustra páginanan kuminsando na:",
+       "allarticles": "Tur artíkulo",
+       "allinnamespace": "Tur página (dominio $1)",
+       "allpagesprefix": "Mustra páginanan kuminsando ku e prefiho:",
+       "categories": "Kategorianan",
+       "categoriespagetext": "Esaki ta e kategorianan ku ta eksistí den {{SITENAME}}.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
+       "emailuser": "Manda e-mail pa e uzadó aki",
+       "emailpage": "Manda e-mail",
+       "emailpagetext": "E formulario aki lo manda un e-mail pa e uzadò aki.\nBo e-mail adrès (manera ta pará den bo preferensianan) lo aparesé den e e-mail pa e resipiente por respondé na bo direktamente.",
+       "defemailsubject": "E-mail di {{SITENAME}}",
+       "emailfrom": "Di:",
+       "emailto": "Pa:",
+       "emailsubject": "Tópiko:",
+       "emailmessage": "Mensahe:",
+       "emailsend": "Manda",
+       "emailsent": "E-mail mandá",
+       "emailsenttext": "Bo e-mail tabata mandá.",
+       "watchlist": "Mi lista di observashon",
+       "nowatchlist": "Bo lista di observashon ta bashí.",
+       "addedwatchtext": "E página \"[[:$1]]\" tabata añadí na bo [[Special:Watchlist|lista di observashon]].\nLo lista kambionan hasí na e página aki i su página di diskushon einan,\ni e página lo aparesé '''vet''' den e [[Special:RecentChanges|lista di kambionan resien]] pa\ne ta mas fásil pa bo mira.\n\nSi despues bo ke kita e página for di bo lista di observashon, primi \"Stop di observá\" den e menú ariba.",
+       "watch": "Observá",
+       "watchthispage": "Observá e página aki",
+       "unwatch": "Stop di observá",
+       "unwatchthispage": "Stop di observá",
+       "wlshowlast": "Mustra último $1 oranan $2 dianan",
+       "created": "trahá",
+       "changed": "kambiá",
+       "confirm": "Konfirmá",
+       "actioncomplete": "Akshon kompletá",
+       "prot_1movedto2": "[[$1]] mové pa [[$2]]",
+       "protect-legend": "Konfirmá protekshon",
+       "undelete": "Wak páginanan kitá",
+       "invert": "Invertí selekshon",
+       "blanknamespace": "(Prinsipal)",
+       "contributions": "Kontribushonnan di uzadó",
+       "mycontris": "Mi kontribushonnan",
+       "whatlinkshere": "Kiko ta link aki",
+       "blockip": "Blokia uzadó",
+       "badipaddress": "IP adrès ta inválido",
+       "blockipsuccesssub": "Blokeo eksitoso",
+       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] tabata blokiá.<br />\nWak e [[Special:BlockList|lista di blokeonan]] pa wak tur blokeo aktivo.",
+       "unblockip": "Desblokia uzadó",
+       "blocklink": "blokia",
+       "unblocklink": "desblokia",
+       "contribslink": "kontrib'nan",
+       "autoblocker": "Bo tabata outomatikamente blokiá pasombra \"[[User:$1|$1]]\" a uza e IP adrès aki resientemente. E rason ku $1 tabata blokiá ta: \"'''$2'''\"",
+       "unblocklogentry": "a desblokia $1",
+       "articleexists": "Tin un página ku e título ei kaba, òf e\ntítulo ku bo a skohe no ta válido.\nPor fabor skohe un otro título.",
+       "allmessages": "Mensahenan di sistema",
+       "allmessagesname": "Nòmber",
+       "allmessagesdefault": "Teksto predeterminá",
+       "allmessagescurrent": "Teksto aktual",
+       "allmessagestext": "Esaki ta un lista di mensahe di sistema disponibel den e dominio di MediaWiki.",
+       "anonymous": "Uzadó(nan) anonimo di {{SITENAME}}",
+       "previousdiff": "← Diferensia anterior",
+       "nextdiff": "Siguiente diferensia →",
+       "namespacesall": "tur",
+       "confirmemail": "Konfirmá e-mail adrès",
+       "confirmemail_text": "Bo mester validá bo e-mail adrès pa uza funkshonnan di e-mail.\nPrimi e boton abou pa manda un e-mail di konfirmashon pa bo e-mail adrès.\nOra bo haña e e-mail, bo ta sigui e instrukshonnan aden.\nPa kontrolá si bo ta konfirmá kaba, wak bo preferensianan.",
+       "confirmemail_send": "Manda un kódigo di konfirmashon via e-mail.",
+       "confirmemail_sent": "E-mail pa konfirmashon mandá.",
+       "confirmemail_invalid": "Kódigo di konfirmashon inválido. Ta posibel ku e kódigo a kaduká.",
+       "confirmemail_needlogin": "Bo mester $1 pa konfirmá bo e-mail adrès.",
+       "confirmemail_success": "Bo e-mail adrès tabata konfirmá. Bo por outentiká bo mes i gosa di {{SITENAME}}.",
+       "confirmemail_loggedin": "Bo e-mail adrès ta konfirmá.",
+       "confirmemail_subject": "{{SITENAME}}: Konfirmashon di e-mail adrès",
+       "confirmemail_body": "Un hende, probablemente abo, di IP adrès $1, a registrá e\nkuenta \"$2\" ku e e-mail adrès aki riba {{SITENAME}}.\n\nPa konfirmá ku e kuenta aki en berdat ta di bo i pa aktivá\nfunkshonnan di e-mail riba {{SITENAME}}, por fabor habri e link aki:\n\n$3\n\nSi esaki *no* ta abo, por fabor no habri e link.\nFollow this link to cancel the e-mail address confirmation:\n\n$5\n\nE kódigo di konfirmashon aki lo kaduká riba $4.",
+       "confirmrecreate": "[[User:$1|$1]] ([[User talk:$1|diskushon]]) a kita e artíkulo aki despues ku bo ta kuminsá editá. E rason ta:\n: ''$2''\nPor fabor konfirmá ku bo ke traha e artíkulo aki di nobo.",
+       "specialpages": "Páginanan Spesial"
 }
index c8d1d7b..9ac3ca7 100644 (file)
@@ -17,7 +17,6 @@
        "tog-showtoolbar": "Instrumente-Leist wiese (JavaScript)",
        "tog-editondblclick": "Siede mett Dobbeltklick beoabeide (JavaScript)",
        "tog-editsectiononrightclick": "Eenzelne Aufschnette mett eenem Rajsch-Klick beoabeide (JavaScript)",
-       "tog-rememberpassword": "Login bewoare, dee Brucka blift aun disem Computer aunjemaldt",
        "tog-previewontop": "Wies Preview bowe em Beoabeide-Fensta",
        "tog-showhiddencats": "Wies fe'stoakne Kategorien",
        "underline-always": "Emma",
        "talkpagelinktext": "Beredsied",
        "specialpage": "Spezialsied",
        "personaltools": "Perseenliche Instrumente",
-       "postcomment": "Kommentar moake",
        "talk": "Beredsied",
        "views": "Aunsechte",
        "toolbox": "Instrumente",
        "yourname": "Bruckanome:",
        "yourpassword": "Pauswot:",
        "nav-login-createaccount": "Aunmalde",
-       "loginprompt": "Tom Aunmalde motte Cookies bie {{SITENAME}} aktiviet senne.",
        "userlogin": "Aunmalde",
        "logout": "Rut hia",
        "userlogout": "Rut hia",
        "savearticle": "Sied bewoare",
        "preview": "Preview",
        "showpreview": "Wies Preview",
-       "showlivepreview": "Live-Preview",
        "showdiff": "Endanisse wiese",
        "anoneditwarning": "'''Paus opp:''' Du best nich aunjemaldt. Diene IP-Adras woat enne Versioonsjeschicht oppbewoat en es emma to seene.",
        "missingsummary": "'''Dentj draun:''' Du hast tjeene Toopfotinj jemoakt. Wan du wada opp Bewoare klickst, woat diene Endanis ohne Toopfotinj ewanohme.",
        "mypreferences": "Miene Ennstalinje",
        "youremail": "Email:",
        "username": "Bruckanome:",
-       "uid": "Brucka-ID:",
        "prefs-memberingroups": "Mettjliet von {{PLURAL:$1|group|groups}}:",
        "yourrealname": "Ajchta Nome:",
        "yourlanguage": "Sproak:",
        "speciallogtitlelabel": "Tietel:",
        "all-logs-page": "Aule Berejchte",
        "allpages": "Aule Siede",
-       "alphaindexline": "$1 bott $2",
        "allpagesfrom": "Wies Siede fonn auf:",
        "allarticles": "Aule Siede",
        "mywatchlist": "Miene Oppaussied",
        "tooltip-rollback": "\"Rollback\" dreit dee Endarung(e) von dise Sied mett eenem Klick wada tridj bettem latsten Biedrach.",
        "tooltip-undo": "Moakt bloos dise eene Endarung tridj en wiest daut Resultaut en eenem Eschtmolseene-Fensta, doamett enne Toopfotinj een Grunt jenant woare kaun.",
        "common.css": "/* CSS opp dise Sted woat opp aula Skins wirtje */",
-       "cologneblue.css": "/* CSS opp dise Sted wirtjt opp daut Keloonsch-Blau-Skin */",
-       "monobook.css": "/* CSS opp dise Sted wirtjt opp daut Monobook-Skin */",
-       "modern.css": "/* CSS opp dise Sted wirtjt opp daut Modern-Skin */",
        "print.css": "/* CSS opp dise Sted woat daut Utkome vom Dretje aundasch moake */",
        "common.js": "/* Daut neachste JavaScript woat fe aula Brucka jelode. */",
-       "cologneblue.js": "/* Daut neachste JavaScript woat fe Brucka mett Keloonsch-Blau-Skin jelode */",
-       "monobook.js": "/* Daut neachste JavaScript woat fe Brucka mett Monobook-Skin jelode */",
-       "modern.js": "/* Daut neachste JavaScript woat fe Brucka mett Modern-Skin jelode. */",
-       "notacceptable": "Dee Wiki-Server kaun dee Dote nich soo reedmoake, daut dien Jereetschauft dee lese kaun.",
        "anonymous": "Onbekaunda Brucka {{PLURAL:$1|user|users}} von {{SITENAME}}",
        "siteuser": "{{SITENAME}}-Brucka $1",
        "lastmodifiedatby": "Dise Sied word daut latste Mol aum $1, Klock $2 von $3 je'endat.",
        "markedaspatrolledtext": "Dee utjewehlde Sied-Versioon es aus kontrolliet markiet.",
        "bad_image_list": "Format:\n\nBloos items, woone mett eenem * aunfange, woare jenome. Dee eschta Link no dem * mott een Link opp een schlajchtet Dokument (file) senne. Dee Links, woone dan kome, wiese opp Utnohme, aulsoo soone Siede, woo daut Dokument (file) jewese en jeseene woare kaun.",
        "metadata": "Meta-Dote",
-       "watchlistall2": "aule",
        "namespacesall": "aule",
        "monthsall": "aule",
        "specialpages": "Spezialsiede"
index 444c9aa..baf36fa 100644 (file)
        "uncategorizedtemplates": "Vorlach ohne Sachgrubb",
        "unusedcategories": "Vawaisdi Sachgrubb",
        "unusedimages": "Vawaisde Dadaije",
-       "popularpages": "Bliewbde Saide",
        "wantedcategories": "Gwinschde Sachgrubbe",
        "wantedpages": "Gwinschde Saide",
        "mostlinkedcategories": "Nizlischi Sachgrubbe",
index 22ffb43..bfa517f 100644 (file)
@@ -1,71 +1,69 @@
 {
-    "@metadata": {
-        "authors": [
-            "Eukesh (on pi.wikipedia.org)",
-            "Hemant wikikosh1",
-            "Vibhijain"
-        ]
-    },
-    "january": "ज्यानुवरी",
-    "february": "फ़रवरी",
-    "march": "मार्च",
-    "april": "अप्रैल",
-    "may_long": "मई",
-    "june": "जून",
-    "july": "जुलाई",
-    "august": "अगस्त",
-    "september": "सेप्टेम्बर",
-    "october": "ओक्टोबर",
-    "november": "नवम्बर",
-    "december": "दिसम्बर",
-    "article": "लेख पत्त",
-    "vector-view-create": "रचेतु",
-    "help": "सहायता",
-    "search": "अन्वेसना",
-    "searchbutton": "खोज",
-    "searcharticle": "गच्छामि",
-    "create": "रचेतु",
-    "talkpagelinktext": "सम्भासनं",
-    "talk": "सम्भासनं",
-    "aboutsite": "{{SITENAME}} इच्चस्स विसये",
-    "disclaimers": "पच्चाक्खानं",
-    "mainpage": "पमुख पत्त",
-    "mainpage-description": "पमुख पत्त",
-    "portal": "समुदायद्वारं",
-    "portal-url": "Project:समुदायद्वारं",
-    "privacy": "गोपनीयता-नीति",
-    "editsection": "सम्पादेतु",
-    "editsectionhint": "एतं विभागं सम्पादेतु",
-    "red-link-title": "$1 (पिट्ठं न वत्तति)",
-    "nstab-main": "पिट्ठं",
-    "post-expand-template-inclusion-warning": "'''पबोधो:''' फलकानं योजनस्स आकारो अतिविसालो वत्तति।\nकानिचन फलकानि योजेतुं न सक्कन्ति ।",
-    "currentrev-asof": "वत्तमाना आवुत्ति  $1 इति समये",
-    "previousrevision": "↓← पुरातनं अवतरणं",
-    "searchmenu-new": "अस्मिं विकियं \"[[:$1]]\" इति पिट्ठं रचेतु।",
-    "search-result-size": "$1 ({{PLURAL:$2|1 सद्दो|$2 सद्दा}})",
-    "recentchanges": "सज्जोजातानि परिवत्तनानि",
-    "hide": "गोपेतु",
-    "show": "दस्सेतु",
-    "randompage": "यदिच्छकपिट्ठं",
-    "nbytes": "$1 {{PLURAL:$1|बाइटं|बाइटानि}}",
-    "booksources-go": "गच्छामि",
-    "allarticles": "सब्ब लेखा",
-    "allpagessubmit": "गच्छामि",
-    "contribslink": "योगदानानि",
-    "export": "पिट्ठानं निय्यातं करोतु",
-    "allmessagesname": "नाम",
-    "tooltip-ca-talk": "पिट्ठन्तग्गतविसये सम्भासनं",
-    "tooltip-ca-move": "इदं पिट्ठं चालेतु",
-    "tooltip-ca-watch": "इदं पिट्ठं भवतो अवेक्खणसूचियं योजेतु",
-    "tooltip-search": "{{SITENAME}} इच्चेत्थ अन्विस्सतु",
-    "tooltip-search-fulltext": "एतं वचनं पिट्ठेसु अन्विस्सतु",
-    "tooltip-p-logo": "मुखपिट्ठं गच्छतु",
-    "tooltip-n-recentchanges": "सज्जोजातानं परिवत्तनानं सूची",
-    "tooltip-n-randompage": "यदिच्छकं पिट्ठं गच्छतु",
-    "tooltip-n-help": "अन्वेसनठानं",
-    "tooltip-t-specialpages": "सब्बेसं पमुखानं पिट्ठानं सूची",
-    "tooltip-summary": "संखित्तं सारंसं योजेतु",
-    "exif-gpslatitude": "अक्षांश",
-    "exif-gpslongitude": "देशान्तर",
-    "exif-sensingmethod-1": "अपरिभाषित"
+       "@metadata": {
+               "authors": [
+                       "Eukesh (on pi.wikipedia.org)",
+                       "Hemant wikikosh1",
+                       "Vibhijain"
+               ]
+       },
+       "january": "ज्यानुवरी",
+       "february": "फ़रवरी",
+       "march": "मार्च",
+       "april": "अप्रैल",
+       "may_long": "मई",
+       "june": "जून",
+       "july": "जुलाई",
+       "august": "अगस्त",
+       "september": "सेप्टेम्बर",
+       "october": "ओक्टोबर",
+       "november": "नवम्बर",
+       "december": "दिसम्बर",
+       "article": "लेख पत्त",
+       "help": "सहायता",
+       "search": "अन्वेसना",
+       "searchbutton": "खोज",
+       "searcharticle": "गच्छामि",
+       "create": "रचेतु",
+       "talkpagelinktext": "सम्भासनं",
+       "talk": "सम्भासनं",
+       "aboutsite": "{{SITENAME}} इच्चस्स विसये",
+       "disclaimers": "पच्चाक्खानं",
+       "mainpage": "पमुख पत्त",
+       "mainpage-description": "पमुख पत्त",
+       "portal": "समुदायद्वारं",
+       "portal-url": "Project:समुदायद्वारं",
+       "privacy": "गोपनीयता-नीति",
+       "editsection": "सम्पादेतु",
+       "editsectionhint": "एतं विभागं सम्पादेतु",
+       "red-link-title": "$1 (पिट्ठं न वत्तति)",
+       "nstab-main": "पिट्ठं",
+       "post-expand-template-inclusion-warning": "'''पबोधो:''' फलकानं योजनस्स आकारो अतिविसालो वत्तति।\nकानिचन फलकानि योजेतुं न सक्कन्ति ।",
+       "currentrev-asof": "वत्तमाना आवुत्ति  $1 इति समये",
+       "previousrevision": "↓← पुरातनं अवतरणं",
+       "searchmenu-new": "अस्मिं विकियं \"[[:$1]]\" इति पिट्ठं रचेतु।",
+       "search-result-size": "$1 ({{PLURAL:$2|1 सद्दो|$2 सद्दा}})",
+       "recentchanges": "सज्जोजातानि परिवत्तनानि",
+       "hide": "गोपेतु",
+       "show": "दस्सेतु",
+       "randompage": "यदिच्छकपिट्ठं",
+       "nbytes": "$1 {{PLURAL:$1|बाइटं|बाइटानि}}",
+       "allarticles": "सब्ब लेखा",
+       "allpagessubmit": "गच्छामि",
+       "contribslink": "योगदानानि",
+       "export": "पिट्ठानं निय्यातं करोतु",
+       "allmessagesname": "नाम",
+       "tooltip-ca-talk": "पिट्ठन्तग्गतविसये सम्भासनं",
+       "tooltip-ca-move": "इदं पिट्ठं चालेतु",
+       "tooltip-ca-watch": "इदं पिट्ठं भवतो अवेक्खणसूचियं योजेतु",
+       "tooltip-search": "{{SITENAME}} इच्चेत्थ अन्विस्सतु",
+       "tooltip-search-fulltext": "एतं वचनं पिट्ठेसु अन्विस्सतु",
+       "tooltip-p-logo": "मुखपिट्ठं गच्छतु",
+       "tooltip-n-recentchanges": "सज्जोजातानं परिवत्तनानं सूची",
+       "tooltip-n-randompage": "यदिच्छकं पिट्ठं गच्छतु",
+       "tooltip-n-help": "अन्वेसनठानं",
+       "tooltip-t-specialpages": "सब्बेसं पमुखानं पिट्ठानं सूची",
+       "tooltip-summary": "संखित्तं सारंसं योजेतु",
+       "exif-gpslatitude": "अक्षांश",
+       "exif-gpslongitude": "देशान्तर",
+       "exif-sensingmethod-1": "अपरिभाषित"
 }
index 3aabf75..bfc1a12 100644 (file)
@@ -1,42 +1,42 @@
 {
-    "@metadata": {
-        "authors": [
-            "Pall Mall (on pih.wikipedia.org)"
-        ]
-    },
-    "january": "Jaenyuweri",
-    "february": "Febyuweri",
-    "march": "Maach",
-    "april": "Ieprel",
-    "may_long": "Mieh",
-    "june": "Juun",
-    "july": "Juulai",
-    "january-gen": "Jaenyuweri",
-    "february-gen": "Febyuweri",
-    "march-gen": "Maach",
-    "april-gen": "Ieprel",
-    "may-gen": "Mieh",
-    "june-gen": "Juun",
-    "july-gen": "Juulai",
-    "may": "Mieh",
-    "help": "Hiiwp",
-    "history_short": "Histrei",
-    "edit": "Edet",
-    "talk": "diskushun",
-    "currentevents": "Dem Kurent Iwent",
-    "currentevents-url": "Project:Dem Kurent Iwent",
-    "mainpage": "Mien Paij",
-    "mainpage-description": "Mien Paij",
-    "portal": "Trii'nohlij",
-    "editold": "edet",
-    "nstab-main": "Artikal",
-    "nstab-help": "Hiiwp Paij",
-    "prefs-rc": "Dem Riisent Chayng",
-    "recentchanges": "Dem Riisent Chayng",
-    "recentchangeslinked": "Dem Riilated Chayng",
-    "recentchangeslinked-feed": "Dem Riilated Chayng",
-    "recentchangeslinked-toolbox": "Dem Riilated Chayng",
-    "upload": "Upload Faail",
-    "randompage": "Raandum Paij",
-    "whatlinkshere": "Wata link hiia"
+       "@metadata": {
+               "authors": [
+                       "Pall Mall (on pih.wikipedia.org)"
+               ]
+       },
+       "january": "Jaenyuweri",
+       "february": "Febyuweri",
+       "march": "Maach",
+       "april": "Ieprel",
+       "may_long": "Mieh",
+       "june": "Juun",
+       "july": "Juulai",
+       "january-gen": "Jaenyuweri",
+       "february-gen": "Febyuweri",
+       "march-gen": "Maach",
+       "april-gen": "Ieprel",
+       "may-gen": "Mieh",
+       "june-gen": "Juun",
+       "july-gen": "Juulai",
+       "may": "Mieh",
+       "help": "Hiiwp",
+       "history_short": "Histrei",
+       "edit": "Edet",
+       "talk": "diskushun",
+       "currentevents": "Dem Kurent Iwent",
+       "currentevents-url": "Project:Dem Kurent Iwent",
+       "mainpage": "Mien Paij",
+       "mainpage-description": "Mien Paij",
+       "portal": "Trii'nohlij",
+       "editold": "edet",
+       "nstab-main": "Artikal",
+       "nstab-help": "Hiiwp Paij",
+       "prefs-rc": "Dem Riisent Chayng",
+       "recentchanges": "Dem Riisent Chayng",
+       "recentchangeslinked": "Dem Riilated Chayng",
+       "recentchangeslinked-feed": "Dem Riilated Chayng",
+       "recentchangeslinked-toolbox": "Dem Riilated Chayng",
+       "upload": "Upload Faail",
+       "randompage": "Raandum Paij",
+       "whatlinkshere": "Wata link hiia"
 }
index 99b1600..220b395 100644 (file)
                        "아라",
                        "Matik7",
                        "Vengir",
-                       "Darellur"
+                       "Darellur",
+                       "Michał Sobkowski",
+                       "Py64",
+                       "Nanaki"
                ]
        },
        "tog-underline": "Podkreślenie linków:",
-       "tog-hideminor": "Ukryj drobne edycje w ostatnich zmianach",
+       "tog-hideminor": "Ukryj drobne edycje z ostatnich zmian",
        "tog-hidepatrolled": "Ukryj sprawdzone edycje w ostatnich zmianach",
        "tog-newpageshidepatrolled": "Ukryj sprawdzone strony na liście nowych stron",
        "tog-extendwatchlist": "Pokaż na liście obserwowanych wszystkie zmiany, nie tylko ostatnie",
        "category_header": "Strony w kategorii „$1”",
        "subcategories": "Podkategorie",
        "category-media-header": "Pliki w kategorii „$1”",
-       "category-empty": "<em>Obecnie w tej kategorii brak stron oraz plików.</em>",
+       "category-empty": "<em>Obecnie w tej kategorii nie ma stron ani plików.</em>",
        "hidden-categories": "{{PLURAL:$1|Ukryta kategoria|Ukryte kategorie}}",
        "hidden-category-category": "Ukryte kategorie",
        "category-subcat-count": "{{PLURAL:$2|Ta kategoria ma tylko jedną podkategorię.|Poniżej wyświetlono $1 spośród wszystkich $2 podkategorii tej kategorii.}}",
        "personaltools": "Osobiste",
        "articlepage": "Artykuł",
        "talk": "Dyskusja",
-       "views": "Widok",
+       "views": "Wyświetleń",
        "toolbox": "Narzędzia",
        "userpage": "Strona użytkownika",
        "projectpage": "Strona projektu",
        "viewcount": "Tę stronę obejrzano {{PLURAL:$1|tylko raz|$1 razy}}.",
        "protectedpage": "Strona zabezpieczona",
        "jumpto": "Skocz do:",
-       "jumptonavigation": "nawigacji",
-       "jumptosearch": "wyszukiwania",
+       "jumptonavigation": "nawigacja",
+       "jumptosearch": "szukaj",
        "view-pool-error": "Niestety w chwili obecnej serwery są przeciążone.\nZbyt wielu użytkowników próbuje wyświetlić tę stronę.\nPoczekaj chwilę przed ponowną próbą dostępu do tej strony.\n\n$1",
        "generic-pool-error": "Niestety w chwili obecnej serwery są przeciążone.\nZbyt wielu użytkowników próbuje wyświetlić tę stronę.\nPoczekaj chwilę przed ponowną próbą dostępu do tej strony.",
        "pool-timeout": "Zbyt długi czas oczekiwania na blokadę",
        "no-null-revision": "Nie można utworzyć zerowej wersji strony \"$1\"",
        "badtitle": "Niepoprawny tytuł",
        "badtitletext": "Podano niepoprawny tytuł strony. Prawdopodobnie jest pusty lub zawiera znaki, których użycie jest zabronione.",
-       "perfcached": "Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. Maksymalnie {{PLURAL:$1|jeden wynik jest|$1 wyniki są|$1 wyników jest}} w pamięci podręcznej.",
-       "perfcachedts": "Poniższe dane są kopią z pamięci podręcznej. Ostatnia aktualizacja odbyła się $1. Maksymalnie {{PLURAL:$4|jeden wynik jest|$4 wyniki są|$4 wyników jest}} w pamięci podręcznej.",
+       "perfcached": "Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. W pamięci podręcznej {{PLURAL:$1|znajduje|znajdują|znajduje}} się maksymalnie {{PLURAL:$1|jeden wynik|$1 wyniki|$1 wyników}}.",
+       "perfcachedts": "Poniższe dane są kopią z pamięci podręcznej. Ostatnia aktualizacja odbyła się $1. W pamięci podręcznej {{PLURAL:$4|znajduje|znajdują|znajduje}} się maksymalnie {{PLURAL:$4|jeden wynik|$4 wyniki|$4 wyników}}.",
        "querypage-no-updates": "Uaktualnienia dla tej strony są obecnie wyłączone. Znajdujące się tutaj dane nie zostaną odświeżone.",
        "viewsource": "Tekst źródłowy",
        "viewsource-title": "Tekst źródłowy strony $1",
        "viewsourcetext": "Tekst źródłowy strony można podejrzeć i skopiować.",
        "viewyourtext": "Tekst źródłowy '''zmodyfikowanej''' przez Ciebie strony możesz podejrzeć i skopiować",
        "protectedinterface": "Ta strona zawiera tekst interfejsu oprogramowania wiki i jest zabezpieczona przed nadużyciami.\nBy dodać lub zmienić tłumaczenia wszystkich serwisów wiki, użyj [//translatewiki.net/ translatewiki.net], projektu lokalizacji MediaWiki.",
-       "editinginterface": "'''Ostrzeżenie:''' Edytujesz stronę, która zawiera tekst interfejsu oprogramowania.\nZmiany na tej stronie zmienią wygląd interfejsu dla innych użytkowników tej wiki.\nBy dodać lub zmienić tłumaczenia wszystkich wiki, użyj [//translatewiki.net/wiki/Main_Page?setlang=pl translatewiki.net], specjalizowany projekt lokalizacji oprogramowania MediaWiki.",
+       "editinginterface": "<strong>Ostrzeżenie:</strong> Edytujesz stronę, która zawiera tekst interfejsu oprogramowania.\nZmiany na tej stronie zmienią wygląd interfejsu dla innych użytkowników tej wiki.",
+       "translateinterface": "Aby dodać lub zmienić tłumaczenia wszystkich wiki, użyj [//translatewiki.net/ translatewiki.net], projekt lokalizacji oprogramowania MediaWiki.",
        "cascadeprotected": "Ta strona została zabezpieczona przed edycją, ponieważ jest ona zawarta na {{PLURAL:$1|następującej stronie, która została zabezpieczona|następujących stronach, które zostały zabezpieczone}} z włączoną opcją dziedziczenia:\n$2",
        "namespaceprotected": "Nie masz uprawnień do edytowania stron w przestrzeni nazw '''$1'''.",
        "customcssprotected": "Nie jesteś uprawniony do edytowania tej strony CSS, ponieważ zawiera ona ustawienia osobiste innego użytkownika.",
        "showpreview": "Pokaż podgląd",
        "showdiff": "Podgląd zmian",
        "blankarticle": "<strong>Uwaga:</strong> Strona, którą masz zamiar utworzyć jest pusta.\nJeżeli klikniesz \"{{int:savearticle}}\" ponownie, strona zostanie utworzona bez jakiejkolwiek treści.",
-       "anoneditwarning": "'''Uwaga:''' Nie jesteś {{GENDER:|zalogowany|zalogowana}}.\nTwój adres IP zostanie zapisany w historii edycji strony.",
+       "anoneditwarning": "<strong>Uwaga:</strong> Nie jesteś zalogowany. Twój adres IP będzie publicznie widoczny jeśli zrobisz dowolną zmianę. Jeśli <strong>[$1 zalogujesz się]</strong> lub <strong>[$2 stworzysz konto]</strong>, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.",
        "anonpreviewwarning": "''Nie jesteś zalogowany. Jeśli zapiszesz zmiany, w historii edycji strony zostanie umieszczony Twój adres IP.''",
        "missingsummary": "'''Uwaga:''' Nie wprowadz{{GENDER:|iłeś|iłaś|ono}} opisu zmian.\nJeżeli nie chcesz go wprowadzać, naciśnij przycisk „Zapisz” jeszcze raz.",
        "missingcommenttext": "Wprowadź komentarz poniżej.",
        "content-model-text": "zwykły tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Strony zawierające duplikaty parametrów w wywołaniach szablonów",
+       "duplicate-args-category-desc": "Strona zawiera szablony, które używają duplikatów argumentów, jak <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> lub <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Uwaga! Ta strona zawiera zbyt wiele wywołań złożonych obliczeniowo funkcji parsera.\n\nPowinno być mniej niż $2 {{PLURAL:$2|wywołanie|wywołania|wywołań}}, a obecnie {{PLURAL:$1|jest $1 wywołanie|są $1 wywołania|jest $1 wywołań}}.",
        "expensive-parserfunction-category": "Strony ze zbyt dużą liczbą wywołań kosztownych funkcji parsera",
        "post-expand-template-inclusion-warning": "Uwaga – zbyt duża wielkość wykorzystanych szablonów.\nNiektóre szablony nie zostaną użyte.",
        "mergehistory-same-destination": "Strona źródłowa i docelowa nie mogą być takie same",
        "mergehistory-reason": "Powód",
        "mergelog": "Scalone",
-       "pagemerge-logentry": "scala [[$1]] z [[$2]] (historia zmian aż do $3)",
        "revertmerge": "Rozdziel",
        "mergelogpagetext": "Poniżej znajduje się lista ostatnich scaleń historii zmian stron.",
        "history-title": "$1: Historia wersji",
        "search-result-category-size": "{{PLURAL:$1|1 element|$1 elementy|$1 elementów}} ({{PLURAL:$2|1 kategoria|$2 kategorie|$2 kategorii}}, {{PLURAL:$3|1 plik|$3 pliki|$3 plików}})",
        "search-redirect": "(przekierowanie $1)",
        "search-section": "(sekcja $1)",
+       "search-category": "(kategoria $1)",
        "search-file-match": "(odpowiada zawartości pliku)",
        "search-suggest": "Czy chodziło Ci o: $1",
        "search-interwiki-caption": "Projekty siostrzane",
        "powersearch-remember": "Zapamiętaj wybór dla kolejnych wyszukiwań",
        "search-external": "Wyszukiwanie zewnętrzne",
        "searchdisabled": "Wyszukiwanie w {{GRAMMAR:MS.lp|{{SITENAME}}}} zostało wyłączone.\nW międzyczasie możesz skorzystać z wyszukiwania Google.\nJednak informacje o treści {{GRAMMAR:D.lp|{{SITENAME}}}} mogą być w Google nieaktualne.",
-       "search-error": "Wystąpił błąd podczas wyszukiwania:$1",
+       "search-error": "Wystąpił błąd podczas wyszukiwania: $1",
        "preferences": "Preferencje",
        "mypreferences": "Preferencje",
        "prefs-edits": "Liczba edycji:",
        "gender-female": "kobieta",
        "prefs-help-gender": "Podanie płci nie jest obowiązkowe. Jeśli zdecydujesz się ją określić, oprogramowanie dostosuje do niej interfejs. Informacja o Twojej płci będzie widoczna dla wszystkich.",
        "email": "E‐mail",
-       "prefs-help-realname": "Wpisanie imienia i nazwiska nie jest obowiązkowe.\nJeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje autorstwo.",
+       "prefs-help-realname": "Imię i nazwisko jest opcjonalne.\nJeśli je podasz, to może być stosowane w celu przypisania Twojej pracy.",
        "prefs-help-email": "Podanie adresu e‐mail nie jest obowiązkowe, lecz jest konieczne do zresetowania zapomnianego hasła.",
        "prefs-help-email-others": "Możesz również umożliwić innym użytkownikom wysłanie do Ciebie e‐maila poprzez Twoją stronę użytkownika lub stronę dyskusji (bez ujawniania Twojego adresu).",
        "prefs-help-email-required": "Wymagany jest adres e‐mail.",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Zmiany",
        "prefs-help-prefershttps": "Ta opcja zacznie działać przy twoim następnym zalogowaniu.",
+       "prefswarning-warning": "Niektóre z dokonanych zmian w preferencjach nie zostały jeszcze zapisane. Jeśli wyjdziesz bez wciśnięcia „$1”, Twoje zmiany zostaną utracone.",
        "prefs-tabs-navigation-hint": "Wskazówka: do poruszania się między zakładkami możesz użyć klawiszy strzałek w lewo i w prawo",
        "email-address-validity-valid": "Wygląda na prawidłowy",
        "email-address-validity-invalid": "Wymagany jest prawidłowy adres!",
-       "userrights": "Zarządzaj uprawnieniami użytkowników",
+       "userrights": "Zarządzanie uprawnieniami użytkowników",
        "userrights-lookup-user": "Zarządzaj grupami użytkownika",
        "userrights-user-editname": "Wprowadź nazwę użytkownika",
        "editusergroup": "Edytuj grupy użytkownika",
        "right-deletedtext": "Podgląd usuniętego tekstu i zmian pomiędzy usuniętymi wersjami",
        "right-browsearchive": "Przeszukiwanie usuniętych stron",
        "right-undelete": "Odtwarzanie usuniętych stron",
-       "right-suppressrevision": "Podgląd i odtwarzanie wersji ukrytych przed administratorami",
+       "right-suppressrevision": "Podgląd, ukrywanie i odkrywanie wersji ukrytych przed wszystkimi",
        "right-viewsuppressed": "Umożliwia zobaczenie wersji ukrytych przed każdym użytkownikiem",
        "right-suppressionlog": "Podgląd rejestru ukrywania",
        "right-block": "Blokowanie użytkownikom możliwości edycji",
        "recentchanges-legend-heading": "'''Legenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (zobacz też [[Special:NewPages|listę nowych stron]])",
        "recentchanges-legend-plusminus": "(''±123'')",
-       "rcnotefrom": "Poniżej {{PLURAL:$5|pokazano zmianę|pokazano zmiany}} wykonane po <strong>$3, $4</strong> (nie więcej niż '''$1''' pozycji).",
+       "rcnotefrom": "Poniżej {{PLURAL:$5|pokazano zmianę|pokazano zmiany}} {{PLURAL:$5|wykonaną|wykonane}} po <strong>$3, $4</strong> (nie więcej niż '''$1''' pozycji).",
        "rclistfrom": "Pokaż nowe zmiany od $3 $2",
        "rcshowhideminor": "$1 drobne zmiany",
        "rcshowhideminor-show": "Pokaż",
        "illegalfilename": "Nazwa pliku „$1” zawiera znaki niedozwolone w tytułach stron.\nZmień nazwę pliku i prześlij go ponownie.",
        "filename-toolong": "Nazwy plików nie mogą być dłuższe niż 240 bajtów.",
        "badfilename": "Nazwa pliku została zmieniona na „$1”.",
-       "filetype-mime-mismatch": "Rozszerzenie pliku â\80\9e.$1â\80\9c nie pasuje do wykrytego typu MIME $2.",
+       "filetype-mime-mismatch": "Rozszerzenie pliku â\80\9e.$1â\80\9d nie pasuje do wykrytego typu MIME $2.",
        "filetype-badmime": "Przesyłanie plików z typem MIME „$1” jest niedozwolone.",
        "filetype-bad-ie-mime": "Nie można załadować tego pliku, ponieważ Internet Explorer wykryje go jako „$1”, a taki typ pliku jest zabronioniony jako potencjalnie niebezpieczny.",
        "filetype-unwanted-type": "'''„.$1”''' nie jest zalecanym typem pliku. Pożądane są pliki w {{PLURAL:$3|formacie|formatach}} $2.",
        "statistics": "Statystyki",
        "statistics-header-pages": "Statystyka stron",
        "statistics-header-edits": "Statystyka edycji",
-       "statistics-header-views": "Statystyka odwiedzin",
        "statistics-header-users": "Statystyka użytkowników",
        "statistics-header-hooks": "Inne statystyki",
        "statistics-articles": "Strony",
        "statistics-files": "Przesłane pliki",
        "statistics-edits": "Edycje wykonane od powstania {{GRAMMAR:D.lp|{{SITENAME}}}}",
        "statistics-edits-average": "Średnia liczba edycji na stronę",
-       "statistics-views-total": "Całkowita liczba odwiedzin",
-       "statistics-views-total-desc": "Odsłony stron nieistniejących oraz specjalnych nie zostały uwzględnione.",
-       "statistics-views-peredit": "Liczba odwiedzin na edycję",
        "statistics-users": "Zarejestrowanych [[Special:ListUsers|użytkowników]]",
        "statistics-users-active": "Aktywnych użytkowników",
        "statistics-users-active-desc": "Użytkownicy, którzy byli aktywni w ciągu {{PLURAL:$1|ostatniego dnia|ostatnich $1 dni}}",
-       "statistics-mostpopular": "Najczęściej odwiedzane strony",
        "pageswithprop": "Strony z właściwościami",
        "pageswithprop-legend": "Strony z właściwościami",
        "pageswithprop-text": "Ta strona zawiera listę stron korzystających z właściwości.",
        "uncategorizedtemplates": "Nieskategoryzowane szablony",
        "unusedcategories": "Puste kategorie",
        "unusedimages": "Nieużywane pliki",
-       "popularpages": "Najpopularniejsze strony",
        "wantedcategories": "Brakujące kategorie",
        "wantedpages": "Najpotrzebniejsze strony",
        "wantedpages-badtitle": "Nieprawidłowy tytuł wśród wyników – $1",
        "pager-older-n": "{{PLURAL:$1|1 starszy|$1 starsze|$1 starszych}}",
        "suppress": "Rewizor",
        "querypage-disabled": "Ta strona specjalna została wyłączona ze względu na ograniczenia wydajności.",
+       "apihelp": "Pomoc API",
+       "apihelp-no-such-module": "Moduł \"$1\" nie znaleziony.",
        "booksources": "Książki",
        "booksources-search-legend": "Szukaj informacji o książkach",
        "booksources-search": "Szukaj",
        "wlheader-enotif": "Wysyłanie powiadomień na adres e‐mail jest włączone.",
        "wlheader-showupdated": "'''Wytłuszczone''' zostały strony, które zostały zmodyfikowane od Twojej ostatniej wizyty na nich.",
        "wlnote": "Poniżej pokazano {{PLURAL:$1|zmianę wykonaną|<strong>$1</strong> zmiany wykonane|<strong>$1</strong> zmian wykonanych}} w ciągu {{PLURAL:$2|ostatniej godziny|ostatnich <strong>$2</strong> godzin}}, licząc od $4 dnia $3.",
-       "wlshowlast": "Pokaż ostatnie $1 godzin, $2 dni ()",
+       "wlshowlast": "Pokaż ostatnie $1 godzin, $2 dni",
        "watchlist-options": "Opcje obserwowanych",
        "watching": "Dodaję do obserwowanych...",
        "unwatching": "Przestaję obserwować...",
        "tooltip-pt-mycontris": "Lista moich edycji",
        "tooltip-pt-login": "Zachęcamy do zalogowania się, choć nie jest to obowiązkowe.",
        "tooltip-pt-logout": "Wyloguj",
+       "tooltip-pt-createaccount": "Zachęcamy do stworzenia konta i zalogowania, ale nie jest to konieczne.",
        "tooltip-ca-talk": "Dyskusja o zawartości tej strony",
        "tooltip-ca-edit": "Możesz edytować tę stronę. Przed zapisaniem zmian użyj przycisku podgląd.",
        "tooltip-ca-addsection": "Dodaj nowy wątek.",
        "tooltip-feed-atom": "Kanał Atom dla tej strony",
        "tooltip-t-contributions": "Pokaż listę edycji tego użytkownika",
        "tooltip-t-emailuser": "Wyślij e‐mail do tego użytkownika",
+       "tooltip-t-info": "Więcej informacji na temat tej strony",
        "tooltip-t-upload": "Prześlij plik",
        "tooltip-t-specialpages": "Lista wszystkich specjalnych stron",
        "tooltip-t-print": "Wersja do wydruku",
        "pageinfo-robot-policy": "Indeksowanie przez roboty",
        "pageinfo-robot-index": "Dozwolone",
        "pageinfo-robot-noindex": "Niedozwolone",
-       "pageinfo-views": "Odsłon",
        "pageinfo-watchers": "Liczba obserwujących",
        "pageinfo-few-watchers": "Mniej niż $1 {{PLURAL:$1|obserwujący|obserwujących}}",
        "pageinfo-redirects-name": "Liczba przekierowań do tej strony",
        "searchsuggest-search": "Szukaj",
        "searchsuggest-containing": "zawierające...",
        "api-error-badaccess-groups": "Nie masz uprawnień aby przesyłać pliki do tej wiki.",
-       "api-error-badtoken": "Błąd wewnętrzny – żeton wykorzystywany do identyfikacji użytkownika jest nieprawidłowy.",
+       "api-error-badtoken": "Błąd wewnętrzny – nieprawidłowy kod weryfikacyjny (token).",
        "api-error-copyuploaddisabled": "Przesyłanie poprzez podanie adresu URL zostało na tym serwerze wyłączone.",
        "api-error-duplicate": "{{PLURAL:$1|Jest już [$2 inny plik]|Są już [$2 inne pliki]}} o tej samej zawartości",
        "api-error-duplicate-archive": "{{PLURAL:$1|Był już [$2 inny plik]|Były już [$2 inne pliki]}} o takiej samej zawartości, ale {{PLURAL:$1|został usunięty|zostały usunięte}}.",
index b017e4b..0ef1b48 100644 (file)
        "viewsourcetext": "A peul vardé e copié la sorgiss dë sta pàgina:",
        "viewyourtext": "A peul vëdde e copié la sorgiss ëd '''soe modìfiche''' a costa pàgina-sì:",
        "protectedinterface": "Costa pàgina-sì a l'ha andrinta un cheicòs che a fa part dl'antërfacia dël programa che a deuvro tùit; donca a l'é proteta për evité che a-i rivo dle ròbe brute.\nPër gionté o modifiché dle tradussion për tute le wiki, për piasì ch'a deuvra [//translatewiki.net/ translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
-       "editinginterface": "'''Dossman!''' A l'é dapress ch'a modìfica na pàgina ch'as deuvra për generé ël test dl'antërfacia dël programa. \nLe modìfiche a sta pàgina a toco l'aparensa ëd l'antërfacia utent a tuti j'utent dzora a sta wiki. \nPër gionté o cangé dle tradussion për tute le wiki, për piasì ch'a deuvra [//translatewiki.net/translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
+       "editinginterface": "<strong>Dossman!</strong> A l'é dapress ch'a modìfica na pàgina ch'as deuvra për generé ël test dl'antërfacia dël programa. \nLe modìfiche a sta pàgina a toco l'aparensa ëd l'antërfacia utent a tuti j'utent dzora a sta wiki.",
+       "translateinterface": "Për gionté o modifiché le tradussion për tute le wiki, për piasì ch'a deuvra [//translatewiki.net/ translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
        "cascadeprotected": "Ant sta pàgina-sì as peulo pa fé ëd modìfiche, përché a-i intra ant {{PLURAL:$1|la pàgina|le pàgine}} butà sot a protession con la fonsion «a tombé» viscà ansima a: $2",
        "namespaceprotected": "A l'ha nen ël përmess dë feje dle modìfiche a le pàgine dlë spassi nominal '''$1'''.",
        "customcssprotected": "Ch'a varda ch'a l'ha pa ël përmess ëd modifiché sta pàgina ëd CSS, për via ch'a l'ha andrinta ij gust ëd n'àutr utent.",
        "content-model-text": "mach test",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Pàgine ch'a deuvro d'argoment dobi ant j'arceste dë stamp",
+       "duplicate-args-category-desc": "La pàgina a conten cj'arceste dë stamp che deuvro ëd duplicà d'argoment, tanme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Atension:''' Costa pàgina a l'ha tròpe ciamà costose a le fonsions d'anàlisi sintàtica.\n\nA dovrìa essnie men che {{PLURAL:$2|$2}}, adess a-i na j'é {{PLURAL:$1|$1}}.",
        "expensive-parserfunction-category": "Pàgine con tròpe ciamà costose ëd fonsion ëd l'analisator sintàtich",
        "post-expand-template-inclusion-warning": "'''Atension:''' La dimension dj'anseriment dë stamp a l'é tròp gròssa.\nChèich stamp a saran nen anserì.",
        "mergehistory-same-destination": "La pagina ëd partensa e cola d'ariv a peulo nen esse le mideme",
        "mergehistory-reason": "Rason:",
        "mergelog": "Registr dj'union",
-       "pagemerge-logentry": "a l'ha butà [[$1]] ansema a [[$2]] (revision fin-a a la $3)",
        "revertmerge": "Gavé da ansema",
        "mergelogpagetext": "Ambelessì sota a-i é na lista dj'ùltime vire che la stòria ëd na pàgina a l'é stàita butà ansema a cola 'd n'àutra.",
        "history-title": "$1: Cronologìa dle modìfiche",
        "search-result-category-size": "{{PLURAL:$1|1 mèmber|$1 mèmber}} ({{PLURAL:$2|1 sot-categorìa|$2 sot-categorìe}}, {{PLURAL:$3|1 archivi|$3 archivi}})",
        "search-redirect": "(ridiression $1)",
        "search-section": "(session $1)",
+       "search-category": "(categorìa $1)",
        "search-file-match": "(a corëspond al contnù d'archivi)",
        "search-suggest": "Vorìi-lo pa dì: $1",
        "search-interwiki-caption": "Proget frej",
        "gender-female": "Chila a modìfica dle pàgine dla wiki",
        "prefs-help-gender": "Definì coste preferense a l'é opsional.\nËl programa a deuvra sò valor për adressesse a chiel e massionelo a j'àutri an dovrand ël géner gramatical giust.\nCosta anformassion a sarà pùblica.",
        "email": "Pòsta eletrònica",
-       "prefs-help-realname": "* Nòm vèir (opsional): se i sërne da butelo ambelessì a sarà dovrà për deve mérit ëd vòstr travaj.",
+       "prefs-help-realname": "Ël nòm ver a l'é opsional).\nSe a l'é butà, a podrà esse dovrà për deje mérit ëd sò travaj.",
        "prefs-help-email": "L'adrëssa ëd pòsta eletrònica a l'é opsional, ma a-i n'a j'é dabzògn për torna amposté la ciav, s'a dovèissa dësmentié soa ciav.",
        "prefs-help-email-others": "A peul ëdcò serne ëd lassé che j'àutri a lo contato a travers soa pàgina utent o ëd ciaciarada sensa ch'a-i sia da manca d'arvelé soa identità.",
        "prefs-help-email-required": "A-i va l'adrëssa ëd pòsta eletrònica.",
        "statistics": "Statìstiche",
        "statistics-header-pages": "Statìstiche dla pàgina",
        "statistics-header-edits": "Statìstiche dle modìfiche",
-       "statistics-header-views": "Statìstiche dle visualisassion",
        "statistics-header-users": "Statìstiche ëd {{SITENAME}}",
        "statistics-header-hooks": "Àutre statìstiche",
        "statistics-articles": "Pàgine ëd contnù",
        "statistics-files": "Archivi carià",
        "statistics-edits": "Pàgine modificà da quand ël {{SITENAME}} a l'é stàit tirà su",
        "statistics-edits-average": "Media dle modìfiche për pàgina",
-       "statistics-views-total": "Total dle visualisassion",
-       "statistics-views-total-desc": "Le visualisassion ëd le pàgine pa esistente e ëd le pàgine speciaj a son nen comprèise",
-       "statistics-views-peredit": "Visualisassion për modìfica",
        "statistics-users": "[[Special:ListUsers|Utent]] argistrà",
        "statistics-users-active": "Utent ativ",
        "statistics-users-active-desc": "Utent che a l'han fàit n'assion ant {{PLURAL:$1|l'ùltim di|j'ùltim $1 di}}",
-       "statistics-mostpopular": "Pàgine ch'a 'ncontro dë pì",
        "pageswithprop": "Pàgine con na propietà ëd pàgina",
        "pageswithprop-legend": "Pàgine con na propietà ëd pàgina",
        "pageswithprop-text": "Costa pàgina a lista le pàgine ch'a deuvro na propietà 'd pàgina particolar.",
        "uncategorizedtemplates": "Stamp sensa pa 'd categorìe",
        "unusedcategories": "Categorìe nen dovrà",
        "unusedimages": "Figure nen dovrà",
-       "popularpages": "Pàgine pì s-ciairà",
        "wantedcategories": "Categorìe dont a fa da manca",
        "wantedpages": "Artìcoj pì ciamà",
        "wantedpages-badtitle": "Tìtol nen vàlid ant l'ansema dj'arzultà: $1",
        "pager-older-n": "{{PLURAL:$1|1|$1}} pì vej",
        "suppress": "Supervisor",
        "querypage-disabled": "Sta pàgina special a l'é disabilità për dle rason ëd prestassion.",
+       "apihelp": "Agiut ëd l'API",
+       "apihelp-no-such-module": "Ël mòdol «$1» as treuva nen.",
        "booksources": "Andoa trové dij lìber",
        "booksources-search-legend": "Sërché antra ij lìber d'arferiment",
        "booksources-search": "Arserché",
        "tooltip-pt-mycontris": "Lista ëd soe contribussion",
        "tooltip-pt-login": "Un a l'é nen obligà a rintré ant al sistema, ma se a lo fa a l'é mej",
        "tooltip-pt-logout": "Seurte da",
+       "tooltip-pt-createaccount": "I-j consejoma ëd creé un cont e ëd rintré ant ël sistema; però a l'é nen obligatòri",
        "tooltip-ca-talk": "Discussion ansima a sta pàgina ëd contnù.",
        "tooltip-ca-edit": "A peul modifiché sa pàgina-sì. Për piasì, che as fasa na preuva anans che salvé.",
        "tooltip-ca-addsection": "Ancaminé na neuva session",
        "tooltip-feed-atom": "Fluss Atom për costa pàgina.",
        "tooltip-t-contributions": "Vardé la lista dle contribussion ëd cost utent",
        "tooltip-t-emailuser": "Mandeje un mëssagi ëd pòsta a st'utent",
+       "tooltip-t-info": "Pi d'anformassio su costa pàgina",
        "tooltip-t-upload": "Carié n'archivi ëd figure ò son.",
        "tooltip-t-specialpages": "Lista ëd tute le pàgine speciaj.",
        "tooltip-t-print": "Version bon-a da stampé dë sta pàgina",
        "pageinfo-robot-policy": "Indicisassion con robò",
        "pageinfo-robot-index": "Autorisà",
        "pageinfo-robot-noindex": "Vietà",
-       "pageinfo-views": "Nùmer ëd vìsite",
        "pageinfo-watchers": "Vàire utent ch'a ten-o sot-euj la pàgina",
        "pageinfo-few-watchers": "Men ëd $1 {{PLURAL:$1|osservator}}",
        "pageinfo-redirects-name": "Nùmer ëd ridiression vers costa pàgina-sì",
        "unknown_extension_tag": "Tichëtta d'estension «$1» pa conossùa",
        "duplicate-defaultsort": "'''Atension:''' La ciav d'ordinament ëstàndard «$2» a pija ël pòst ëd cola ëd prima «$1».",
        "duplicate-displaytitle": "<strong>Warning:</strong> ël tìtol ëd visualisassion «$2» a rampiassa ëd vej tìtol ëd visualisassion «$1».",
+       "invalid-indicator-name": "<strong>Eror:</strong> l'atribù <code>name</code> dj'andicator dlë statù dla pàgina a peul nen esse veuid.",
        "version": "Version",
        "version-extensions": "Estension anstalà",
        "version-skins": "Pel anstalà",
        "revdelete-uname-unhid": "stranòm dëscoatà",
        "revdelete-restricted": "restrission aplicà a j'aministrator",
        "revdelete-unrestricted": "restrission për j'aministrator gavà",
+       "logentry-merge-merge": "$1 {{GENDER:$2|a l'ha gionzù}} $3 an $4 (revision fin-a a $5)",
        "logentry-move-move": "$1 {{GENDER:$2|a l'ha tramudà}} la pàgina $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a l'ha tramudà}} la pàgina $3 a $4 sensa lassé na ridiression",
        "logentry-move-move_redir": "$1 {{GENDER:$2|a l'ha tramudà}} la pàgina $3 a $4 ansima a na ridiression",
        "api-error-stashfailed": "Eror antern: ël servent a l'ha pa podù memorisé l'archivi a temp.",
        "api-error-publishfailed": "Eror antern: Ël servent a l'ha pa podù publiché l'archivi provisòri.",
        "api-error-stasherror": "A-i é staje n'eror durant ël cariament dl'archivi da stërmé.",
+       "api-error-stashedfilenotfound": "L'archivi stërmà a l'é nen trovasse durant ël tentativ ëd carielo da sò strem.",
+       "api-error-stashpathinvalid": "Ël përcors anté ch'a l'avrìa dovù trovesse l'archivi stërmà a l'era nen bon.",
+       "api-error-stashfilestorage": "A-ié staje n'eror an rangiand l'archivi an sò strem.",
+       "api-error-stashzerolength": "Ël servent a l'ha nen podù stërmé l'archivi, përchè a l'era ëd taja nula.",
+       "api-error-stashnotloggedin": "A dev esse rintrà ant ël sistema për argistré dj'archivi ant lë strem ëd cariament.",
+       "api-error-stashwrongowner": "L'archivi al qual a sërcava d'acede ant lë strem a l'é nen sò.",
+       "api-error-stashnosuchfilekey": "La ciav dl'archivi al qual a sërcava d'acede ant lë strem a esist pa.",
        "api-error-timeout": "Ël servent a l'ha pa rëspondù ant ël temp ëspetà.",
        "api-error-unclassified": "A l'é capitaje n'eror nen conossù.",
        "api-error-unknown-code": "Eror sconossù: «$1».",
        "action-pagelang": "cangé la lenga dla pàgina",
        "log-name-pagelang": "Argistr dij cangiament ëd lenga",
        "log-description-pagelang": "Cost-sì a l'é n'argistr dij cangiament ant le lenghe dle pàgine.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a l'ha cangià}} la lenga dla pàgina $3 da $4 a $5."
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a l'ha cangià}} la lenga dla pàgina $3 da $4 a $5.",
+       "default-skin-not-found": "Tension! La pel predeterminà për soa wiki, definìa an <code dir=\"ltr\">$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nSoa anstalassion a smija anclude le pel sì-dapress. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration ël manual ëd configurassion dle pel] për d'anformassion su coma abiliteje e serne col apredefinìa.\n\n$2\n\n; S'a l'ha pen-a anstalà MediaWiki:\n: A l'é probàbil che a l'abia anstalalo da git, o diretaman dal còdes sorgiss an n'àutra manera. A l'é normal. Ch'a preuva a anstalé dle pej da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel Ëd mediawiki.org], parèj:\n:* Dëscariand l' [https://www.mediawiki.org/wiki/Download archivi tar ëd l'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista dle <code>pel/</code> d'ambelelà.\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Sòn a dovrìa nen antërferì con sò depòsit git si chiel a l'é un dësvlupador ëd MediaWiki.\n\n; S'a l'ha pen-a agiornà MediaWiki:\n: MediaWiki 1.24 e pi neuv a përmet pi nen an automàtich le pel anstalà (ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery manual an sla dëscuverta automàtica dle pel). A peul copié le linie sì-dapress an <code>LocalSettings.php</code> për abilité tute le pel ch'a son anstalà al moment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; S'a l'ha pen-a modifivà <code>LocalSettings.php</code>:\n: Ch'a verìfica torna ël nòm ëd dle pej për evité ij boro.",
+       "default-skin-not-found-no-skins": "Darmagi! La pel dë stàndard për soa wiki, definìa da <code>$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nChiel a l'ha gnun-a pel anstalà.\n\n; S'a l'ha pen-a anstalà o agiornà MediaWiki:\n: A l'é probàbil ch'a l'abia falo da git, o diret dal còdes sorgiss an n'àutra manera. A l'é normal. MediaWiki 1.24 e pi recent doesn't a ancludo gnun-a pel ant ël depòsit prinsipal. Ch'a preuva a anstalé chèiche pel da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel ëd mediawiki.org]:\n:* Dëscariand [https://www.mediawiki.org/wiki/Download l'archivi tar dl'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista <code>skins/</code> da là.\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Fé sòn a dovrìa nen antërferì con sò depòsit git se chiel a l'é un dësvlupador ëd MediaWiki. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: ël manual dla configurassion dle pel] për d'anformassion su coma ativé le pel e serne cola predefinìa.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (abilità)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabilità''')",
+       "mediastatistics": "Statìstiche an sij mojen",
+       "mediastatistics-summary": "Statìstiche an sle sòrt d'archivi carià. A ancludo mach la version pi recent ëd n'archivi. Le version veje o dëscancelà dj'archivi a son escludùe.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 otet}} ($2 ; $3%)",
+       "mediastatistics-table-mimetype": "Sòrt MIME",
+       "mediastatistics-table-extensions": "Estension possìbij",
+       "mediastatistics-table-count": "Nùmer d'archivi",
+       "mediastatistics-table-totalbytes": "Taja combinà",
+       "mediastatistics-header-unknown": "Nen conossù",
+       "mediastatistics-header-bitmap": "Plance bitmap",
+       "mediastatistics-header-drawing": "Dissegn (plance vetoriaj)",
+       "mediastatistics-header-audio": "Sonor",
+       "mediastatistics-header-video": "Filmà",
+       "mediastatistics-header-multimedia": "Mojen rich",
+       "mediastatistics-header-office": "Ufissi",
+       "mediastatistics-header-text": "Testual",
+       "mediastatistics-header-executable": "Eseguìbij",
+       "mediastatistics-header-archive": "Formà compress",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|coma final a l'é stàita|còme finaj a son ëstàite}} gavà dal JSON",
+       "json-error-unknown": "A-i é staje un problema con ël JSON. Eror: $1"
 }
index e7e535a..9a79230 100644 (file)
        "mergehistory-same-destination": "سورس تے لبن والے صفے اک نئیں ہوسکدے۔",
        "mergehistory-reason": "وجہ:",
        "mergelog": "لاگ رلاؤ",
-       "pagemerge-logentry": "[[$1]] رلایا [[$2]] چ  (ریوین  $3)",
        "revertmerge": "وکھریاں کرو",
        "mergelogpagetext": "تھلے اک صفے والے کٹھے کیتے گۓ صفے دی لسٹ اے۔",
        "history-title": "\"$1\" دا ریکارڈ",
        "statistics": "آنکڑے",
        "statistics-header-pages": "صفے دے آنکڑے",
        "statistics-header-edits": "تبدیلیاں دا آنکڑہ",
-       "statistics-header-views": "ویکھن دا سعاب کتاب",
        "statistics-header-users": "ورتن آلیاں دا سعاب کتاب",
        "statistics-header-hooks": "دوجے سعاب کتاب",
        "statistics-articles": "لسٹ صفے",
        "statistics-files": "اتے چڑھائیاں گئیاں فائلاں",
        "statistics-edits": "صفہ تبدیلیاں {{سائٹناں}} تون بنائی گئی۔",
        "statistics-edits-average": "اوسط تبدیلی اک صفے تے۔",
-       "statistics-views-total": "کل وکھالے۔",
-       "statistics-views-total-desc": "ناں ہون والے صفیاں تے خاص صفیاں دے وکھالے نئیں ہیگے۔",
-       "statistics-views-peredit": "تبدیلی سعاب نال وکھالے",
        "statistics-users": "رجسٹر [[Special:ListUsers|ورتنوالا]]",
        "statistics-users-active": "اجکل دے کامے",
        "statistics-users-active-desc": "ورتنوالے جناں نیں پچھلے {{PLURAL:$1|دن|$1 دناں}}  چ کم کیتا اے۔",
-       "statistics-mostpopular": "سب توں بوتے ویکھے گۓ صفے",
        "doubleredirects": "دوہری ریڈیرکٹس",
        "doubleredirectstext": "ایس صفے تے اوناں صفیاں دی لسٹ اے جیہڑے ریڈائرکٹ کردے نیں دوجے ریڈائرکٹ صفیاں ول۔\nہر قطار چ جوڑ نیں  پہلے تے دوجے ریڈائرکٹ نال ، نال دوجے دیڑائرکٹ ول دا تارگٹ نیں جیہڑا کے ٹھیک تارگٹ صفہ ہوندا اے جیہڑا کہ پہلے ریڈائرکٹ نوں اشارہ کرنا چائیدا اے۔\n<del>کراسڈ</del> اینٹریاں حل ہوگیاں نیں۔",
        "double-redirect-fixed-move": "[[$1]] نوں بدل دتا گیا اے۔\nاے ہن [[$2]] نوں ریڈائرکٹ اے۔",
        "uncategorizedtemplates": "بغیر کیٹاگریاں آلے سچے",
        "unusedcategories": "نا استعمال ہوئیاں کیٹاگریاں",
        "unusedimages": "نا استعمال ہوئیاں فائلاں",
-       "popularpages": "مشہور صفے",
        "wantedcategories": "چاھیدیاں کیٹاگریاں",
        "wantedpages": "چائیدے صفحے",
        "wantedpages-badtitle": "ناں منیا جان والا سرناواں رزلٹ سیٹ چ:$1",
        "simpleantispam-label": "سپام روک پھاٹک\nایدے تے ناں لکھو۔",
        "pageinfo-title": "\"$1\" لئی جانکاری",
        "pageinfo-header-edits": "تبدیلیاں",
-       "pageinfo-views": "را‎ ۓ گنتی",
        "pageinfo-watchers": "ویکھن والے",
        "pageinfo-edits": "تبدیلیاں گنتی",
        "pageinfo-authors": "وکھرے لکھاریاں دی گنتی",
index 66df5cc..229f422 100644 (file)
        "mergehistory-same-destination": "Kakīnslis be appus pāusan ni mazzi būtwei ainawīdan",
        "mergehistory-reason": "Brewīnsli:",
        "mergelog": "Senlaītan istōrija",
-       "pagemerge-logentry": "senlīja [[$1]] sen [[$2]] (kitawīdinsnan istōrija ērgi $3)",
        "revertmerge": "Etwārtai padelīs",
        "mergelogpagetext": "Zemmais ast listi stēisan panzdauman senlaīsenin stēisan kitawīdinsnan istōrijan.",
        "history-title": "Redigīsnas istōrija stesse \"$1\"",
        "statistics": "Statistiki",
        "statistics-header-pages": "Pāusan statistiki",
        "statistics-header-edits": "Redigīsenin statistiki",
-       "statistics-header-views": "Kāimalukisenin statistiki",
        "statistics-header-users": "Tērpautajan statistiki",
        "statistics-header-hooks": "Kitā statistiki",
        "statistics-articles": "Ēnturas pāusai",
        "statistics-files": "Enkraūtai zūrbrukei",
        "statistics-edits": "Pāusas redigīsnas ezze tikseņu stesse {{SITENAME}}",
        "statistics-edits-average": "Sirzds gīrbis stēisan redigīsenin per pāusan",
-       "statistics-views-total": "Gīrbis wisēisan kāimalukisenei:",
-       "statistics-views-peredit": "Gīrbis stēisan kāimalukisenin per redigīsenin",
        "statistics-users": "Registrītai [[Special:ListUsers|tērpautajai]]",
        "statistics-users-active": "Aktīwai tērpautajai",
        "statistics-users-active-desc": "Tērpautajai sēntei aktīwai en {{PLURAL:$1|panzdauman dēinan|panzdaumans dēinans}}",
-       "statistics-mostpopular": "Ukadeznimai kāimalukitai pāusai",
        "doubleredirects": "Dwigubbai prawessenei",
        "doubleredirectstext": "Zemmais ast listi wisēisan pāusan sen prawessenins en pāusans, kawīdai prawedda en kittan pāusan.\nErainā rindā turri ēn sen autengīnsenins en pirman be āntran prawessenin, tīt dīgi autengīnsenin kwēi wedda āntars prawessenis. Jāuku panzdaums autengīnsenin wedda en pāusan, en kawīdan prawerru prawestun pirmasmu pāusan.\n<del>Praglaubātai</del> prawessenei ast reparītan.",
        "double-redirect-fixed-move": "pāusan [[$1]] pastāi praskajjintan.\nTeinū tennan prawedda prei [[$2]].",
        "uncategorizedtemplates": "Nikategōrizitas šablōnis",
        "unusedcategories": "Nitērpautas kategōrijas",
        "unusedimages": "Nitērpautai zūrbrukei",
-       "popularpages": "Ukapōpularai pāusai",
        "wantedcategories": "Palaipsītas kategōrijas",
        "wantedpages": "Palaipsītai pāusai",
        "wantedpages-badtitle": "Nitikrōmiskas tītels sirzdau rezultātans: $1",
index b214e7b..e19a2b2 100644 (file)
        "statistics": "شمار",
        "statistics-header-pages": "د مخونو شمار",
        "statistics-header-edits": "د سمونو شمار",
-       "statistics-header-views": "د کتنو شمار",
        "statistics-header-users": "د کارنانو شمار",
        "statistics-header-hooks": "بل شمار",
        "statistics-articles": "مېنځپانگيز مخونه",
        "statistics-files": "پورته شوې دوتنې",
        "statistics-edits": "د {{SITENAME}} د جوړېدو راهيسې د مخونو سمون",
        "statistics-edits-average": "پر يوه مخ د سمون منځوۍ کچه",
-       "statistics-views-total": "ټولټال کتنې",
-       "statistics-views-peredit": "د هر سمون په سر کتنې",
        "statistics-users": "ثبت شوي [[Special:ListUsers|کارنان]]",
        "statistics-users-active": "فعاله کارنان",
        "statistics-users-active-desc": "هغه کارنان چې په {{PLURAL:$1|وروستۍ ورځ|وروستيو $1 ورځو}} کې فعاله ونډه لرلې",
-       "statistics-mostpopular": "ډېر کتل شوي مخونه",
        "pageswithprop": "د مخ ځانتياو څخه برخمن مخونه",
        "pageswithprop-legend": "د مخ ځانتياو څخه برخمن مخونه",
        "pageswithprop-prop": "د ځانتيا نوم:",
        "uncategorizedtemplates": "ناوېشلې کينډۍ",
        "unusedcategories": "ناکارېدلې وېشنيزې",
        "unusedimages": "ناکارېدلې دوتنې",
-       "popularpages": "نامتو مخونه",
        "wantedcategories": "غوښتلې وېشنيزې",
        "wantedpages": "غوښتلي مخونه",
        "wantedfiles": "غوښتلې دوتنې",
        "pageinfo-robot-policy": "ليکلړ اوډنه د روباټونو لخوا",
        "pageinfo-robot-index": "پرېښل",
        "pageinfo-robot-noindex": "ناپرېښل",
-       "pageinfo-views": "د کتنو شمېر",
        "pageinfo-watchers": "د مخ د کتونکو شمېر",
        "pageinfo-redirects-name": "دې مخ ته د ورگرځونو شمېر",
        "pageinfo-subpages-name": "دې مخ ته څېرمه مخونه",
index f558d00..88545d5 100644 (file)
@@ -72,7 +72,9 @@
                        "555",
                        "Fabsouza1",
                        "아라",
-                       "Jefersonmoraes"
+                       "Jefersonmoraes",
+                       "Marcos dias de oliveira",
+                       "He7d3r"
                ]
        },
        "tog-underline": "Sublinhar links:",
        "otherlanguages": "Em outros idiomas",
        "redirectedfrom": "(Redirecionado de $1)",
        "redirectpagesub": "Página de redirecionamento",
+       "redirectto": "Redirecionar para:",
        "lastmodifiedat": "Esta página foi modificada pela última vez à(s) $2 de $1.",
        "viewcount": "Esta página foi acessada {{PLURAL:$1|uma vez|$1 vezes}}.",
        "protectedpage": "Página protegida",
        "createaccount-text": "Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha \"$3\".\nVocê deve se autenticar e alterar sua senha.\n\nIgnore esta mensagem caso a conta tenha sido criada por engano.",
        "login-throttled": "Você recentemente tentou iniciar sessão muitas vezes.\nPor favor aguarde $1 antes de tentar novamente.",
        "login-abort-generic": "A sua autenticação não teve êxito - Abortada",
+       "login-migrated-generic": "A sua conta foi migrada e o seu nome de usuário já não existe nesta wiki.",
        "loginlanguagelabel": "Idioma: $1",
        "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.\nSe você optar por fornecê-lo, este nome será utilizado para dar ao usuário a atribuição de seu trabalho.",
        "content-model-text": "texto simples",
        "content-model-javascript": "Javascript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Páginas que utilizam argumentos duplicados ao chamar predefinições",
        "expensive-parserfunction-warning": "Aviso: Esta página contém muitas chamadas a funções do analisador \"parser\".\n\nDeveria ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento {{PLURAL:$1|há $1 chamada|existem $1 chamadas}}.",
        "expensive-parserfunction-category": "Páginas com muitas chamadas a funções do analisador \"parser\"",
        "post-expand-template-inclusion-warning": "'''Aviso''': a soma do tamanho de inclusão de predefinições é muito grande.\nAlgumas predefinições não serão processadas.",
        "mergehistory-same-destination": "As páginas de origem e de destino não podem ser as mesmas",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Registro de fusão de históricos",
-       "pagemerge-logentry": "[[$1]] foi fundida em [[$2]] (até a edição $3)",
        "revertmerge": "Desfazer fusão",
        "mergelogpagetext": "Segue-se um registro das mais recentes fusões de históricos de páginas.",
        "history-title": "Histórico de edições de \"$1\"",
        "statistics": "Estatísticas",
        "statistics-header-pages": "Estatísticas de páginas",
        "statistics-header-edits": "Estatísticas de edições",
-       "statistics-header-views": "Ver estatísticas",
        "statistics-header-users": "Estatísticas dos usuários",
        "statistics-header-hooks": "Outras estatísticas",
        "statistics-articles": "Páginas de conteúdo",
        "statistics-files": "Arquivos carregados",
        "statistics-edits": "Edições de página desde que {{SITENAME}} foi instalado",
        "statistics-edits-average": "Média de edições por página",
-       "statistics-views-total": "Total de visualizações",
-       "statistics-views-total-desc": "Visualizações de páginas não existentes e páginas especiais não estão incluídas",
-       "statistics-views-peredit": "Visualizações por edição",
        "statistics-users": "[[Special:ListUsers|Usuários]] registrados",
        "statistics-users-active": "Usuários ativos",
        "statistics-users-active-desc": "Usuários que efetuaram uma ação {{PLURAL:$1|no último dia|nos últimos $1 dias}}",
-       "statistics-mostpopular": "Páginas mais visitadas",
        "pageswithprop": "Páginas com uma propriedade de página",
        "pageswithprop-legend": "Páginas com uma propriedade de página",
        "pageswithprop-text": "Esta página lista as páginas que usam uma determinada propriedade de página.",
        "uncategorizedtemplates": "Predefinições não categorizadas",
        "unusedcategories": "Categorias não utilizadas",
        "unusedimages": "Arquivos não utilizados",
-       "popularpages": "Páginas populares",
        "wantedcategories": "Categorias pedidas",
        "wantedpages": "Páginas pedidas",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "pageinfo-robot-policy": "Indexado por robôs",
        "pageinfo-robot-index": "Autorizado",
        "pageinfo-robot-noindex": "Desautorizado",
-       "pageinfo-views": "Número de visitas",
        "pageinfo-watchers": "Número de vigilantes da página",
        "pageinfo-few-watchers": "Menos de  $1  {{PLURAL:$1|vigilante|vigilantes}}",
        "pageinfo-redirects-name": "Número de redirecionamentos para esta página",
index 9acfc28..4747ded 100644 (file)
@@ -62,7 +62,8 @@
                        "555",
                        "아라",
                        "Leon saudanha",
-                       "Macofe"
+                       "Macofe",
+                       "He7d3r"
                ]
        },
        "tog-underline": "Sublinhar ligações:",
        "viewsourcetext": "Pode ver e copiar o conteúdo desta página:",
        "viewyourtext": "Pode ver e copiar o código-fonte das '''suas edições''' desta página:",
        "protectedinterface": "Esta página fornece o texto da interface ao software, e está protegida para prevenir abusos.",
-       "editinginterface": "'''Aviso:''' Está a editar uma página usada para fornecer texto de interface ao software. Alterações a esta página afetarão a aparência da interface de utilizador para os outros utilizadores. Para traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt translatewiki.net], um projeto destinado à tradução do MediaWiki.",
+       "editinginterface": "<strong>Aviso:</strong> Está a editar uma página usada para fornecer texto de interface ao software. Alterações a esta página afetarão a aparência da interface de utilizador para os outros utilizadores.",
+       "translateinterface": "Para traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt translatewiki.net], um projeto destinado à tradução do MediaWiki.",
        "cascadeprotected": "Esta página foi protegida contra edições por estar incluída {{PLURAL:$1|na página listada|nas páginas listadas}} a seguir, ({{PLURAL:$1|página essa que está protegida|páginas essas que estão protegidas}} com a opção de proteção \"em cascata\" ativada):\n$2",
        "namespaceprotected": "Não tem permissão para editar páginas no domínio '''$1'''.",
        "customcssprotected": "Não tem permissão para editar esta página de CSS porque esta contém as configurações pessoais de outro utilizador.",
        "content-model-text": "texto simples",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Páginas que utilizam argumentos duplicados ao chamar predefinições",
        "expensive-parserfunction-warning": "'''Aviso:''' Esta página contém demasiadas chamadas de funções exigentes do analisador sintático.\n\nDevia ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento tem $1 {{PLURAL:$1|chamada|chamadas}}.",
        "expensive-parserfunction-category": "Páginas com demasiadas chamadas a funções exigentes",
        "post-expand-template-inclusion-warning": "Aviso: O tamanho de inclusão de predefinições é demasiado grande, algumas predefinições não serão incluídas.",
        "mergehistory-same-destination": "As páginas de origem e de destino não podem ser a mesma",
        "mergehistory-reason": "Motivo:",
        "mergelog": "Registo de fusão de históricos",
-       "pagemerge-logentry": "[[$1]] foi fundida em [[$2]] (até a edição $3)",
        "revertmerge": "Desfazer fusão",
        "mergelogpagetext": "Segue-se um registo das mais recentes fusões de históricos de páginas.",
        "history-title": "Histórico de edições de \"$1\"",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoria|$2 subcategorias}}, {{PLURAL:$3|1 ficheiro|$3 ficheiros}})",
        "search-redirect": "(redirecionamento de $1)",
        "search-section": "(seção $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(coincide com o conteúdo do ficheiro)",
        "search-suggest": "Será que quis dizer: $1",
        "search-interwiki-caption": "Projetos irmãos",
        "gender-female": "Ela edita páginas wiki",
        "prefs-help-gender": "Esta preferência é opcional.\nO software usa o seu valor para o endereçar e para o mencionar a outros usando o género gramatical apropriado.\nEsta informação será pública.",
        "email": "Correio eletrónico",
-       "prefs-help-realname": "O fornecimento do nome verdadeiro é opcional.\nSe optar por revelá-lo, ele será utilizado para atribuir-lhe crédito pelo seu trabalho.",
+       "prefs-help-realname": "O fornecimento do nome verdadeiro é opcional.\nSe optar por revelá-lo, será utilizado para atribuir-lhe crédito pelo seu trabalho.",
        "prefs-help-email": "Opcional: o endereço de correio eletrónico é opcional, mas será necessário para redefinir a palavra-passe caso esqueça a antiga.",
        "prefs-help-email-others": "Também pode optar por permitir que outros entrem em contacto consigo por correio eletrónico, através de uma ligação nas suas páginas de utilizador ou de discussão, sem revelar o seu endereço de correio eletrónico.",
        "prefs-help-email-required": "É necessário o endereço de correio eletrónico.",
        "statistics": "Estatísticas",
        "statistics-header-pages": "Estatísticas de páginas",
        "statistics-header-edits": "Estatísticas de edições",
-       "statistics-header-views": "Ver estatísticas",
        "statistics-header-users": "Estatísticas de utilizadores",
        "statistics-header-hooks": "Outras estatísticas",
        "statistics-articles": "Páginas de conteúdo",
        "statistics-files": "Ficheiros carregados",
        "statistics-edits": "Edições de páginas desde que a {{SITENAME}} foi instalada",
        "statistics-edits-average": "Média de edições por página",
-       "statistics-views-total": "Total de visionamentos",
-       "statistics-views-total-desc": "Não estão incluídos os visionamentos de páginas inexistentes e páginas especiais",
-       "statistics-views-peredit": "Visionamentos por edição",
        "statistics-users": "[[Special:ListUsers|Utilizadores]] registados",
        "statistics-users-active": "Utilizadores ativos",
        "statistics-users-active-desc": "Utilizadores que efectuaram uma operação {{PLURAL:$1|no último dia|nos últimos $1 dias}}",
-       "statistics-mostpopular": "Páginas mais vistas",
        "pageswithprop": "Páginas com uma propriedade",
        "pageswithprop-legend": "Páginas com uma propriedade",
        "pageswithprop-text": "Esta página lista páginas que usam uma propriedade em particular.",
        "uncategorizedtemplates": "Predefinições não categorizadas",
        "unusedcategories": "Categorias não utilizadas",
        "unusedimages": "Ficheiros não utilizados",
-       "popularpages": "Páginas populares",
        "wantedcategories": "Categorias desejadas",
        "wantedpages": "Páginas desejadas",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "pager-older-n": "{{PLURAL:$1|1 anterior|$1 anteriores}}",
        "suppress": "Supervisor",
        "querypage-disabled": "Esta página especial está desativada para não prejudicar o desempenho.",
+       "apihelp": "Ajuda API",
+       "apihelp-no-such-module": "Módulo \"$1\" não encontrado.",
        "booksources": "Fontes bibliográficas",
        "booksources-search-legend": "Pesquisar referências bibliográficas",
        "booksources-search": "Pesquisar",
        "listgrouprights-namespaceprotection-header": "Restrições do domínio",
        "listgrouprights-namespaceprotection-namespace": "Domínio",
        "listgrouprights-namespaceprotection-restrictedto": "Direito(s) do utilizador para editar",
-       "trackingcategories": "Monitoramento de categorias",
+       "trackingcategories": "Categorias de monitoramento",
        "trackingcategories-summary": "Esta página lista as categorias monitoradas que foram geradas automaticamente pelo software MediaWiki. Os seus nomes podem ser alterados ao editar sua mensagem correspondente no domínio {{ns:8}}.",
        "trackingcategories-msg": "Categoria monitorada",
        "trackingcategories-name": "Nome da mensagem",
        "sp-contributions-blocked-notice-anon": "Este endereço IP está bloqueado neste momento.\nPara referência é apresentado abaixo o último registo de bloqueio:",
        "sp-contributions-search": "Pesquisar contribuições",
        "sp-contributions-username": "Endereço de IP ou utilizador(a):",
-       "sp-contributions-toponly": "Mostrar somente as revisões mais recentes",
+       "sp-contributions-toponly": "Mostrar apenas as edições mais recentes",
        "sp-contributions-newonly": "Mostrar só edições que são criações de páginas",
        "sp-contributions-submit": "Pesquisar",
        "whatlinkshere": "Páginas afluentes",
        "tooltip-pt-mycontris": "Lista das suas contribuições",
        "tooltip-pt-login": "É encorajado que inicie sessão, apesar de não ser obrigatório.",
        "tooltip-pt-logout": "Sair da conta",
+       "tooltip-pt-createaccount": "É encorajado a criar uma conta e iniciar sessão; no entanto, não é obrigatório",
        "tooltip-ca-talk": "Discussão sobre o conteúdo da página",
        "tooltip-ca-edit": "Pode editar esta página.\nUtilize o botão de antevisão do resultado antes de gravar, por favor.",
        "tooltip-ca-addsection": "Iniciar uma nova seção",
        "tooltip-feed-atom": "''Feed'' Atom desta página",
        "tooltip-t-contributions": "Ver as contribuições deste utilizador",
        "tooltip-t-emailuser": "Enviar uma mensagem de correio a este utilizador",
+       "tooltip-t-info": "Mais informações sobre esta página",
        "tooltip-t-upload": "Carregar ficheiros",
        "tooltip-t-specialpages": "Lista de páginas especiais",
        "tooltip-t-print": "Versão para impressão desta página",
        "pageinfo-robot-policy": "Indexação por robôs",
        "pageinfo-robot-index": "Permitida",
        "pageinfo-robot-noindex": "Não permitida",
-       "pageinfo-views": "Número de visitas",
        "pageinfo-watchers": "Número de vigilantes da página",
        "pageinfo-few-watchers": "Menos do que $1 {{PLURAL:$1|vigilante|vigilantes}}",
        "pageinfo-redirects-name": "Número de redirecionamentos para esta página",
index 63ff88b..b9d586c 100644 (file)
@@ -75,6 +75,7 @@
                        "MIKHEIL",
                        "Malafaya",
                        "MarkvA",
+                       "marktraceur",
                        "Matma Rex",
                        "MaxSem",
                        "McDutchie",
                        "פוילישער",
                        "គីមស៊្រុន",
                        "아라",
-                       "Jdforrester"
+                       "Jdforrester",
+                       "Mar(c)"
                ]
        },
        "sidebar": "{{notranslate}}",
        "viewyourtext": "Same as {{msg-mw|viewsourcetext}} but when showing the text submitted by the user, this happens e.g. when the user was blocked while he is editing the page",
        "protectedinterface": "Message shown if a user without the \"editinterface\" right tries to edit a page in the MediaWiki namespace.\n\nSee also {{msg-mw|editinginterface}}. Parameters:\n* $1 - (Unused) the action the user attempted to perform",
        "editinginterface": "A message shown when editing pages in the namespace MediaWiki:.\n\nSee also {{msg-mw|protectedinterface}}.",
+       "translateinterface": "A message shown when editing pages in the namespace MediaWiki:, which have a default message text.\n\nSee also:\n* {{msg-mw|Protectedinterface}}\n* {{msg-mw|Editinginterface}}",
        "cascadeprotected": "Parameters:\n* $1 - number of cascade-protected pages, used for PLURAL\n* $2 - list of cascade-protected pages\n* $3 - (Unused) the action the user attempted to perform",
        "namespaceprotected": "Parameters:\n* $1 - namespace name\n* $2 - (Unused) the action the user attempted to perform",
        "customcssprotected": "Used as error message. Parameters:\n* $1 - (Unused) the action the user attempted to perform",
        "userlogin-resetpassword-link": "Used as link text in the login form.\n\nThe link points to the local page [[Special:PasswordReset]].\n\nSee example: [[Special:UserLogin]]\n\nuserlogin-resetpassword-link may have to be shorter than the old {{msg-mw|userlogin-resetlink}}.\n{{Identical|Forgot your password}}",
        "helplogin-url": "{{doc-important|Do not translate the namespace name <code>Help</code>.}}\nUsed as name of the page that provides information about logging into the wiki.\n\nUsed as a link target in the message {{msg-mw|Userlogin-helplink}}.",
        "userlogin-helplink2": "Label for a link to login help.\n\nSee example: [[Special:UserLogin]]\n\nSee also:\n* {{msg-mw|Helplogin-url}}",
-       "userlogin-loggedin": "Used as warning on [[Special:UserLogin]] when the current user is already logged in.\n\nFollowed by the Login form.\n\nSee example: [[Special:UserLogin]].\n\nParameters:\n* $1 - user name (used for display and for gender support)",
+       "userlogin-loggedin": "Used as warning on [[Special:UserLogin]] when the current user is already logged in.\n\nFollowed by the Login form.\n\nSee example: [[Special:UserLogin]].\n\nParameters:\n* $1 - user name (used for display and for gender support)\nSee also:\n* {{msg-mw|Mobile-frontend-userlogin-loggedin-register}}",
        "userlogin-createanother": "Used as label for the button on [[Special:UserLogin]] shown when the current user is already logged in.\n{{Identical|Create another account}}",
        "createacct-emailrequired": "Label in create account form for email field when it is required.\n\nSee also:\n* {{msg-mw|Createacct-emailoptional}}\n{{Identical|E-mail address}}",
        "createacct-emailoptional": "Label in vertical-layout create account form for email field when it is optional.\n\nSee example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]\n\nSee also:\n* {{msg-mw|Createacct-emailrequired}}",
        "content-model-text": "Name for the plain text content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}\n{{Identical|Plain text}}",
        "content-model-javascript": "Name for the JavaScript content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
        "content-model-css": "Name for the CSS content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
+       "duplicate-args-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if they contain template calls that use duplicates of arguments, such as <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "duplicate-args-category-desc": "Duplicate arguments category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Duplicate-args-category}}",
        "expensive-parserfunction-warning": "On some (expensive) [[MetaWikipedia:Help:ParserFunctions|parser functions]] (e.g. <code><nowiki>{{#ifexist:}}</nowiki></code>) there is a limit of how many times it may be used. This is an error message shown when the limit is exceeded.\n\nParameters:\n* $1 - the current number of parser function calls\n* $2 - the allowed number of parser function calls\nSee also [[:mw:Manual:$wgExpensiveParserFunctionLimit|$wgExpensiveParserFunctionLimit in the MediaWiki manual]].\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-category}}",
        "expensive-parserfunction-category": "This message is used as a category name for a [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]] where pages are placed automatically if they contain too many calls to expensive parser functions.\n\nSee also:\n* {{msg-mw|Expensive-parserfunction-category-desc}}\n* {{msg-mw|Expensive-parserfunction-warning}}",
        "post-expand-template-inclusion-warning": "When templates are expanded, there is a size limit for the number of bytes yielded. Usually that occurs from excessively nested templates, recursive templates, or ones having x-zillion of #if #case or similar contructs in them. When the wikicode parser detects this, it outputs a red warning message to the page.\n\n\nSee also:\n* {{msg-mw|Post-expand-template-inclusion-category}}",
        "mergehistory-reason": "{{Identical|Reason}}",
        "mergehistory-revisionrow": "{{Optional}}\nA revision row in the merge history page. Parameters:\n* $1 - a radio button to indicate a merge point\n* $2 - a link to the last revision of a page ({{msg-mw|Last}})\n* $3 - a page link\n* $4 - a user link\n* $5 - a revision size\n* $6 - a revision comment",
        "mergelog": "{{doc-logpage}}\n\nThis is the name of a log of merge actions done on [[Special:MergeHistory]]. This special page and this log is not enabled by default.",
-       "pagemerge-logentry": "This log message is used in a merge log entry.\n\nParameters:\n* $1 - the page name of the source of the content to be merged\n* $2 - the page into which the content is merged\n* $3 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
+       "pagemerge-logentry": "{{ignored}}This is ''logentry'' message only used on IRC.\n\nParameters:\n* $1 - the page name of the source of the content to be merged\n* $2 - the page into which the content is merged\n* $3 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
        "revertmerge": "Used as link text",
        "mergelogpagetext": "Description of the [{{canonicalurl:Special:Log|type=merge&user=&page=&year=&month=-1}} merge log], on the log. The associated [[Special:MergeHistory|Merge]] special page is not enabled by default.",
        "history-title": "Displayed as page title when you click on the \"history\" tab. Parameters:\n* $1 - the normal page title",
        "search-result-category-size": "Parameters:\n* $1 - number of members in this category. $1 is equal to $2+$3.\n* $2 - number of subcategories\n* $3 - number of files",
        "search-redirect": "\"Redirect\" is a noun here, not a verb.\n\nParameters:\n* $1 - a link to the redirect to the page (so, $1 is the page that the search result is redirected '''from''')",
        "search-section": "This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that section is more relevant than the rest of the page. $1 is a section title.\n{{Identical|Section}}",
+       "search-category": "This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that the page being in a particular category is relevant.\n\nParameters:\n* $1 - the category's name with any matching portion highlighted\n{{Identical|Category}}",
        "search-file-match": "This text will be shown on the search result listing after the page title of a result if the search engine got search results from the contents of files, rather than the pages.",
        "search-suggest": "Used for \"Did you mean\" suggestions:\n* $1 - suggested link",
        "search-interwiki-caption": "Used in [[Special:Search]], when showing search results from other wikis.",
        "prefs-displayrc": "\"Display\" is a noun that specifies the kind of \"options\". So translate as \"options about display\", not as \"display the options\".\n\nUsed in [[Special:Preferences]], tab \"Recent changes\". The display options refer to:\n* {{msg-mw|Recentchangesdays}}\n* {{msg-mw|Recentchangescount}}",
        "prefs-displaywatchlist": "\"Display\" is a noun that specifies the kind of \"options\". So translate as \"options about display\", not as \"display the options\".\n\nUsed in [[Special:Preferences]], tab \"Watchlist\". The display options refer to:\n* {{msg-mw|Prefs-watchlist-days}}\n* {{msg-mw|Prefs-watchlist-edits}}",
        "prefs-tokenwatchlist": "Section heading.\nUsed in [[Special:Preferences]], tab \"Watchlist\".\n{{Identical|Token}}",
-       "prefs-diffs": "Used in [[Special:Preferences]], tab \"Misc\".",
+       "prefs-diffs": "Used in [[Special:Preferences]], tab \"Misc\".\n{{Identical|Diff}}",
        "prefs-help-prefershttps": "Used as help text for the checkbox in [[Special:Preferences]].\n\nThe checkbox has the label {{msg-mw|Tog-prefershttps}}.\n\nSee example: [[mw:Special:Preferences]].",
        "prefswarning-warning": "Warning shown (except in Firefox) when attempting to leave [[Special:Preferences]] with unsaved changes.\n\nParameters:\n* $1 - Text of {{msg-mw|saveprefs}}, as <nowiki>{{int:saveprefs}}</nowiki> cannot be used directly.",
        "prefs-tabs-navigation-hint": "Hint message that explains the arrow key navigation for the tabs on [[Special:Preferences]] to screenreader users.",
        "action-userrights": "{{Doc-action|userrights}}\n\nThis action allows editing of all of the \"user rights\", not just the rights of the group \"all users\".",
        "action-userrights-interwiki": "{{Doc-action|userrights-interwiki}}",
        "action-siteadmin": "{{Doc-action|siteadmin}}",
-       "action-sendemail": "{{doc-action|sendemail}}",
+       "action-sendemail": "{{doc-action|sendemail}}\n{{Identical|E-mail}}",
        "action-editmywatchlist": "{{doc-action|editmywatchlist}}\n{{Identical|Edit your watchlist}}",
        "action-viewmywatchlist": "{{doc-action|viewmywatchlist}}\n{{Identical|View your watchlist}}",
        "action-viewmyprivateinfo": "{{doc-action|viewmyprivateinfo}}",
        "rcshowhidebots": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|rcshowhidebots-show}} or {{msg-mw|rcshowhidebots-hide}}\n{{Identical|$1 bots}}",
        "rcshowhidebots-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidebots}}.\n\nSee also:\n* {{msg-mw|rcshowhidebots-show}}\n{{Identical|Show}}",
        "rcshowhidebots-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidebots}}.\n\nSee also:\n* {{msg-mw|rcshowhidebots-hide}}\n{{Identical|Hide}}",
-       "rcshowhideliu": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - any one of the following messages:\n** {{msg-mw|rcshowhideliu-show}}\n** {{msg-mw|rcshowhideliu-hide}}",
+       "rcshowhideliu": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - any one of the following messages:\n** {{msg-mw|rcshowhideliu-show}}\n** {{msg-mw|rcshowhideliu-hide}}\n{{Identical|Registered user}}",
        "rcshowhideliu-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhideliu}}.\n\nSee also:\n* {{msg-mw|rcshowhideliu-hide}}\n{{Identical|Show}}",
        "rcshowhideliu-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhideliu}}.\n\nSee also:\n* {{msg-mw|rcshowhideliu-show}}\n{{Identical|Hide}}",
        "rcshowhideanons": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|Rcshowhideanons-show}} or {{msg-mw|Rcshowhideanons-hide}}\n{{Identical|Anonymous user}}",
        "rcshowhidemine-show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidemine}}.\n\nSee also:\n* {{msg-mw|rcshowhidemine-hide}}\n{{Identical|show}}",
        "rcshowhidemine-hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]] in conjunction with {{msg-mw|rcshowhidemine}}.\n\nSee also:\n* {{msg-mw|rcshowhidemine-show}}\n{{Identical|hide}}",
        "rclinks": "Used on [[Special:RecentChanges]].\n* $1 - a list of different choices with number of pages to be shown.<br />&nbsp;Example: \"''50{{int:pipe-separator}}100{{int:pipe-separator}}250{{int:pipe-separator}}500\".\n* $2 - a list of clickable links with a number of days for which recent changes are to be displayed.<br />&nbsp;Example: \"''1{{int:pipe-separator}}3{{int:pipe-separator}}7{{int:pipe-separator}}14{{int:pipe-separator}}30''\".\n* $3 - a block of text that consists of other messages.<br />&nbsp;Example: \"''Hide minor edits{{int:pipe-separator}}Show bots{{int:pipe-separator}}Hide anonymous users{{int:pipe-separator}}Hide logged-in users{{int:pipe-separator}}Hide patrolled edits{{int:pipe-separator}}Hide my edits''\"\nList elements are separated by {{msg-mw|Pipe-separator}} each. Each list element is, or contains, a link.",
-       "diff": "Short form of \"differences\". Used on [[Special:RecentChanges]], [[Special:Watchlist]], ...",
+       "diff": "Short form of \"differences\". Used on [[Special:RecentChanges]], [[Special:Watchlist]], ...\n{{Identical|Diff}}",
        "hist": "Short form of \"history\". Used on [[Special:RecentChanges]], [[Special:Watchlist]], ...",
        "hide": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]], and in [[Special:WhatLinksHere]].\n\nSee also:\n* {{msg-mw|Show}}\n{{Identical|Hide}}",
        "show": "{{doc-actionlink}}\nOption text in [[Special:RecentChanges]], and in [[Special:WhatLinksHere]].\n\nSee also:\n* {{msg-mw|Hide}}\n{{Identical|Show}}",
        "statistics-summary": "{{doc-specialpagesummary|statistics}}",
        "statistics-header-pages": "Used in [[Special:Statistics]]",
        "statistics-header-edits": "Used in [[Special:Statistics]]",
-       "statistics-header-views": "Used in [[Special:Statistics]]",
        "statistics-header-users": "Used in [[Special:Statistics]].\n{{Identical|User statistics}}",
        "statistics-header-hooks": "Header of a section on [[Special:Statistics]] containing data provided by MediaWiki extensions",
        "statistics-articles": "Used in [[Special:Statistics]].\n\nA 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].\n\nPossible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.\n\n{{Identical|Content page}}",
        "statistics-files": "Used in [[Special:Statistics]].\n{{Identical|Uploaded file}}",
        "statistics-edits": "Used in [[Special:Statistics]]",
        "statistics-edits-average": "Used in [[Special:Statistics]]",
-       "statistics-views-total": "Used in [[Special:Statistics]]",
-       "statistics-views-total-desc": "This message follows the message {{msg-mw|statistics-views-total}}, in [[Special:Statistics]].",
-       "statistics-views-peredit": "Used in [[Special:Statistics]]",
        "statistics-users": "{{doc-important|Do not translate \"Special:ListUsers\"}}\nUsed in [[Special:Statistics]].",
        "statistics-users-active": "Used in [[Special:Statistics]]",
        "statistics-users-active-desc": "Description shown beneath ''Active users'' in [[Special:Statistics]]. Parameters:\n* $1 - Value of <code>$wgRCMaxAge</code> in days",
-       "statistics-mostpopular": "Used in [[Special:Statistics]]",
        "statistics-footer": "{{notranslate}}",
        "pageswithprop": "{{doc-special|PagesWithProp}}\n{{Identical|Page with page property}}",
        "pageswithprop-summary": "{{doc-specialpagesummary|pageswithprop}}",
        "unusedcategories-summary": "{{doc-specialpagesummary|unusedcategories}}",
        "unusedimages": "{{doc-special|UnusedImages}}",
        "unusedimages-summary": "{{doc-specialpagesummary|unusedimages}}",
-       "popularpages": "{{doc-special|PopularPages}}",
-       "popularpages-summary": "{{doc-specialpagesummary|popularpages}}",
        "wantedcategories": "{{doc-special|WantedCategories}}",
        "wantedcategories-summary": "{{doc-specialpagesummary|wantedcategories}}",
        "wantedpages": "{{doc-special|WantedPages}}\n{{Identical|Wanted page}}",
        "pager-older-n": "This is part of the navigation message on the top and bottom of Special pages which are lists of things in date order, e.g. the User's contributions page. It is passed as the first argument of {{msg-mw|Viewprevnext}}. $1 is the number of items shown per page.",
        "suppress": "{{Identical|Oversight}}",
        "querypage-disabled": "On special pages that use expensive database queries but are not cacheable, this message is displayed when 'miser mode' is on (i.e. no expensive queries allowed).",
+       "apihelp": "{{doc-special|ApiHelp}}",
+       "apihelp-summary": "{{doc-specialpagesummary|ApiHelp}}",
+       "apihelp-no-such-module": "Used as an error message if the requested API module is not found.\n\nParameters:\n* $1 - Requested module name",
+       "apihelp-link": "{{notranslate}} Used to construct a link to [[Special:ApiHelp]]\n\nParameters:\n* $1 - module to link\n* $2 - link text",
        "booksources": "{{doc-special|BookSources}}\n\n'''This message shouldn't be changed unless it has serious mistakes.'''\n\nIt's used as the page name of the configuration page of [[Special:BookSources]]. Changing it breaks existing sites using the default version of this message.\n\nSee also:\n* {{msg-mw|Booksources|title}}\n* {{msg-mw|Booksources-text|text}}",
        "booksources-summary": "{{doc-specialpagesummary|booksources}}",
        "booksources-search-legend": "Box heading on [[Special:BookSources|book sources]] special page. The box is for searching for places where a particular book can be bought or viewed.",
        "pubmedurl": "{{notranslate}}\nParameters:\n* $1 - Pubmed number\nSee also:\n* {{msg-mw|Rfcurl}}",
        "specialloguserlabel": "Used in [[Special:Log]] as a label for an input field with which the log can be filtered for entries describing actions ''performed'' by the specified user.  \"Carried out\" and \"done\" are possible alternatives for \"performed\".",
        "speciallogtitlelabel": "Used in [[Special:Log]] as a label for an input field with which the log can be filtered.  This filter selects for pages or users on which a log action was performed.",
-       "log": "{{doc-special|Log}}",
+       "log": "{{doc-special|Log}}\n{{Identical|Log}}",
        "all-logs-page": "{{doc-logpage}}\nTitle of [[Special:Log]].",
        "alllogstext": "Header of [[Special:Log]]",
        "logempty": "Used as warning when there are no items to show.",
        "wlheader-enotif": "Message at the top of [[Special:Watchlist]], after {{msg-mw|watchlist-details}}. Has to be a full sentence.\n\nSee also:\n* {{msg-mw|Watchlist-options|fieldset}}\n* {{msg-mw|enotif reset|Submit button text}}",
        "wlheader-showupdated": "Message at the top of [[Special:Watchlist]], after {{msg-mw|watchlist-details}}. Has to be a full sentence.",
        "wlnote": "Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.\n\nParameters:\n* $1 - the number of changes shown\n* $2 - the number of hours for which the changes are shown\n* $3 - a date alone\n* $4 - a time alone",
-       "wlshowlast": "Appears on [[Special:Watchlist]]. Parameters:\n* $1 - a choice of different numbers of hours (\"1 | 2 | 6 | 12\")\n* $2 - a choice of different numbers of days (\"1 | 3 | 7\")\nClicking on your choice changes the list of changes you see (without changing the default in my preferences).",
+       "wlshowlast": "Appears on [[Special:Watchlist]]. Parameters:\n* $1 - a choice of different numbers of hours (\"1 | 2 | 6 | 12\")\n* $2 - a choice of different numbers of days (\"1 | 3 | 7\" and the maximum number of days available)\nClicking on your choice changes the list of changes you see (without changing the default in my preferences).",
        "watchlist-options": "Legend of the fieldset of [[Special:Watchlist]]\n\nSee also:\n* {{msg-mw|Watchlist-details|watchlist header}}\n* {{msg-mw|Wlheader-enotif|watchlist header}}\n* {{msg-mw|enotif reset|Submit button text}}",
        "watching": "Text displayed when clicked on the watch tab: {{msg-mw|Watch}}. It means the wiki is adding that page to your watchlist.",
        "unwatching": "Text displayed when clicked on the unwatch tab: {{msg-mw|Unwatch}}. It means the wiki is removing that page from your watchlist.",
        "accesskey-pt-mycontris": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Mycontris}}\n* {{msg-mw|Accesskey-pt-mycontris}}\n* {{msg-mw|Tooltip-pt-mycontris}}",
        "accesskey-pt-login": "{{doc-accesskey}}",
        "accesskey-pt-logout": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Logout}}\n* {{msg-mw|Accesskey-pt-logout}}\n* {{msg-mw|Tooltip-pt-logout}}",
+       "accesskey-pt-createaccount": "{{doc-accesskey}}",
        "accesskey-ca-talk": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Talk}}\n* {{msg-mw|Accesskey-ca-talk}}\n* {{msg-mw|Tooltip-ca-talk}}",
        "accesskey-ca-edit": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Edit}}\n* {{msg-mw|Accesskey-ca-edit}}\n* {{msg-mw|Tooltip-ca-edit}}",
        "accesskey-ca-addsection": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Addsection}}\n* {{msg-mw|Accesskey-ca-addsection}}\n* {{msg-mw|Tooltip-ca-addsection}}",
        "accesskey-feed-atom": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Feed-atom}}\n* {{msg-mw|Accesskey-feed-atom}}\n* {{msg-mw|Tooltip-feed-atom}}",
        "accesskey-t-contributions": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Contributions}}\n* {{msg-mw|Accesskey-t-contributions}}\n* {{msg-mw|Tooltip-t-contributions}}",
        "accesskey-t-emailuser": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Emailuser}}\n* {{msg-mw|Accesskey-t-emailuser}}\n* {{msg-mw|Tooltip-t-emailuser}}",
+       "accesskey-t-info": "{{doc-accesskey}}",
        "accesskey-t-permalink": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Permalink}}\n* {{msg-mw|Accesskey-t-permalink}}\n* {{msg-mw|Tooltip-t-permalink}}",
        "accesskey-t-print": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Printableversion}}\n* {{msg-mw|Accesskey-t-print}}\n* {{msg-mw|Tooltip-t-print}}",
        "accesskey-t-upload": "{{doc-accesskey}}\nSee also:\n* {{msg-mw|Upload}}\n* {{msg-mw|Accesskey-t-upload}}\n* {{msg-mw|Tooltip-t-upload}}",
        "tooltip-pt-preferences": "Tooltip shown when hovering over the {{msg-mw|Mypreferences}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Mypreferences}}\n* {{msg-mw|Accesskey-pt-preferences}}\n* {{msg-mw|Tooltip-pt-preferences}}\n{{Identical|Preferences}}",
        "tooltip-pt-watchlist": "Tooltip shown when hovering over the {{msg-mw|Mywatchlist}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Mywatchlist}}\n* {{msg-mw|Accesskey-pt-watchlist}}\n* {{msg-mw|Tooltip-pt-watchlist}}",
        "tooltip-pt-mycontris": "Tooltip shown when hovering over the {{msg-mw|Mycontris}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Mycontris}}\n* {{msg-mw|Accesskey-pt-mycontris}}\n* {{msg-mw|Tooltip-pt-mycontris}}",
-       "tooltip-pt-login": "Tooltip shown when hovering over the link 'Log in / create account' in the upper right corner show on all pages while not logged in.",
+       "tooltip-pt-login": "Tooltip shown when hovering over the link 'Log in' in the upper right corner show on all pages while not logged in.",
        "tooltip-pt-logout": "Tooltip shown when hovering over the {{msg-mw|Logout}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Logout}}\n* {{msg-mw|Accesskey-pt-logout}}\n* {{msg-mw|Tooltip-pt-logout}}\n{{Identical|Log out}}",
+       "tooltip-pt-createaccount": "Tooltip shown when hovering over the link 'Create account' in the upper right corner show on all pages while not logged in.",
        "tooltip-ca-talk": "Tooltip shown when hovering over the {{msg-mw|Talk}} tab.\n\nA 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For a technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].\n\nPossible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.\n\nSee also:\n* {{msg-mw|Talk}}\n* {{msg-mw|Accesskey-ca-talk}}\n* {{msg-mw|Tooltip-ca-talk}}\n{{Identical|Content page}}",
        "tooltip-ca-edit": "The tooltip when hovering over the {{msg-mw|Edit}} tab.\n\nSee also:\n* {{msg-mw|Edit}}\n* {{msg-mw|Accesskey-ca-edit}}\n* {{msg-mw|Tooltip-ca-edit}}",
        "tooltip-ca-addsection": "Tooltip shown when hovering over the \"addsection\" tab (shown on talk pages).\n\nSee also:\n* {{msg-mw|Addsection}}\n* {{msg-mw|Accesskey-ca-addsection}}\n* {{msg-mw|Tooltip-ca-addsection}}",
        "tooltip-ca-move": "See also:\n* {{msg-mw|Move}}\n* {{msg-mw|Accesskey-ca-move}}\n* {{msg-mw|Tooltip-ca-move}}\n{{Identical|Move this page}}",
        "tooltip-ca-watch": "See also:\n* {{msg-mw|Watch}}\n* {{msg-mw|Accesskey-ca-watch}}\n* {{msg-mw|Tooltip-ca-watch}}\n{{Identical|Add this page to your watchlist}}",
        "tooltip-ca-unwatch": "Tooltip shown when hovering over the {{msg-mw|Unwatch}} tab.\n\nSee also:\n* {{msg-mw|Unwatch}}\n* {{msg-mw|Accesskey-ca-unwatch}}\n* {{msg-mw|Tooltip-ca-unwatch}}",
-       "tooltip-search": "The tooltip when hovering over the search menu.\n\nSee also:\n* {{msg-mw|Search}}\n* {{msg-mw|Accesskey-search}}\n* {{msg-mw|Tooltip-search}}",
+       "tooltip-search": "The tooltip when hovering over the search menu.\n\nSee also:\n* {{msg-mw|Search}}\n* {{msg-mw|Accesskey-search}}\n* {{msg-mw|Tooltip-search}}\n{{Identical|Search}}",
        "tooltip-search-go": "This is the text of the tooltip displayed when hovering the mouse over the {{msg-mw|Go}} button next to the search box.\n\nSee also:\n* {{msg-mw|Go}}\n* {{msg-mw|Accesskey-search-go}}\n* {{msg-mw|Tooltip-search-go}}",
        "tooltip-search-fulltext": "This is the text of the tooltip displayed when hovering the mouse over the {{msg-mw|Search}} button under the search box.\n\nSee also:\n* {{msg-mw|Search}}\n* {{msg-mw|Accesskey-search-fulltext}}\n* {{msg-mw|Tooltip-search-fulltext}}",
        "tooltip-p-logo": "Tool tip shown when hovering the mouse over the logo that links to [[Main Page]].\n\nSee also:\n* {{msg-mw|Accesskey-p-logo}}\n* {{msg-mw|Tooltip-p-logo}}\n{{Identical|Visit the main page}}",
        "tooltip-feed-atom": "Used as tooltip for Atom feed link.\n\nSee also:\n* {{msg-mw|Feed-atom}}\n* {{msg-mw|Accesskey-feed-atom}}\n* {{msg-mw|Tooltip-feed-atom}}",
        "tooltip-t-contributions": "Tooltip shown when hovering over {{msg-mw|Contributions}} in the toolbox.\n\nSee also:\n* {{msg-mw|Contributions}}\n* {{msg-mw|Accesskey-t-contributions}}\n* {{msg-mw|Tooltip-t-contributions}}",
        "tooltip-t-emailuser": "Tooltip shown when hovering over the {{msg-mw|Emailuser}} link in the toolbox (sidebar, below).\n\nSee also:\n* {{msg-mw|Emailuser}}\n* {{msg-mw|Accesskey-t-emailuser}}\n* {{msg-mw|Tooltip-t-emailuser}}",
+       "tooltip-t-info": "Tooltip shown when hovering over the {{msg-mw|pageinfo-toolboxlink}} link in the toolbox (sidebar, below).",
        "tooltip-t-upload": "Tooltip shown when hovering over the link to upload files shown in the side bar menu on all pages.\n\nSee also:\n* {{msg-mw|Upload}}\n* {{msg-mw|Accesskey-t-upload}}\n* {{msg-mw|Tooltip-t-upload}}\n{{Identical|Upload file}}",
        "tooltip-t-specialpages": "The tooltip when hovering over the link {{msg-mw|Specialpages}} going to a list of all special pages available in the wiki.\n\nSee also:\n* {{msg-mw|Specialpages}}\n* {{msg-mw|Accesskey-t-specialpages}}\n* {{msg-mw|Tooltip-t-specialpages}}",
        "tooltip-t-print": "Tooltip shown when hovering over the link to printable version shown in the side bar menu on all pages.\n\nSee also:\n* {{msg-mw|Printableversion}}\n* {{msg-mw|Accesskey-t-print}}\n* {{msg-mw|Tooltip-t-print}}",
        "pageinfo-language": "Language in which the page content is written.",
        "pageinfo-content-model": "The model in which the page content is written.\n\nUsed as label at [{{fullurl:Main Page|action=info}} action=info]. Followed by one of the following messages:\n* {{msg-mw|Content-model-wikitext}}\n* {{msg-mw|Content-model-javascript}}\n* {{msg-mw|Content-model-css}}\n* {{msg-mw|Content-model-text}}",
        "pageinfo-robot-policy": "The search engine status of the page.\n\nUsed as label. Followed by any one of the following messages:\n*{{msg-mw|Pageinfo-robot-index}}\n*{{msg-mw|Pageinfo-robot-noindex}}",
-       "pageinfo-robot-index": "An indication that the page is indexable by search engines, that is listed in their search results.\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.",
+       "pageinfo-robot-index": "An indication that the page is indexable by search engines, that is listed in their search results.\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.\n{{Identical|Allowed}}",
        "pageinfo-robot-noindex": "An indication that the page is not indexable (that is, is not listed on the results page of a search engine).\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.",
-       "pageinfo-views": "The number of times the page has been viewed.",
        "pageinfo-watchers": "Header of the row in the first table of the info action.",
        "pageinfo-few-watchers": "Message displayed when there are fewer than $wgUnwatchedPageThreshold watchers. $1 is the value of $wgUnwatchedPageThreshold.",
        "pageinfo-redirects-name": "Header of the row in the first table of the info action.\n\nFollowed by {{msg-mw|Pageinfo-redirects-value}}.\n\nUsed as link text. The link points to \"{{int:Whatlinkshere-title}}\" page ([[Special:WhatLinksHere]]).\n\nSee example: [{{canonicalurl:Main page|action=info}} Main page?action=info]",
        "show-big-image-preview": "Message shown under the image description page thumbnail.\n\nCan be followed by {{msg-mw|Show-big-image-other}}.\n\nParameters:\n* $1 - a link which points to the thumbnail. Its text is {{msg-mw|Show-big-image-size}}",
        "show-big-image-other": "Message shown under the image description page thumbnail.\n\nPreceded by {{msg-mw|Show-big-image-preview}}, if the image is in high resolution.\n\nParameters:\n* $1 - list of resolutions (pipe-separated)\n* $2 - number of resolutions",
        "show-big-image-size": "Parameters:\n* $1 - the width of the image(s) in pixels\n* $2 - the height of the image(s) in pixels",
-       "file-info-gif-looped": "Part of the information provided about a [[w:Gif|.gif file]] on its file description page. Looped means repeating in the context of an animated gif. It is a sequence of images, each displayed after the other, and the first one displayed after the last, in a never ending loop. For example of message in use see [[:File:Mouse10.gif]].",
-       "file-info-gif-frames": "Part of the information provided about a [[w:Gif|.gif file]] on its file description page.\n\nParameters:\n* $1 - number of frames",
-       "file-info-png-looped": "Part of the information provided about a [[w:APNG|.apng file]] on its file description page. Looped means repeating indefinetly in the context of an animated png. It is a sequence of images, each displayed after the other, and the first one displayed after the last, in a never ending loop.",
+       "file-info-gif-looped": "Part of the information provided about a [[w:Gif|.gif file]] on its file description page. Looped means repeating in the context of an animated gif. It is a sequence of images, each displayed after the other, and the first one displayed after the last, in a never ending loop. For example of message in use see [[:File:Mouse10.gif]].\n{{Identical|Looped}}",
+       "file-info-gif-frames": "Part of the information provided about a [[w:Gif|.gif file]] on its file description page.\n\nParameters:\n* $1 - number of frames\n{{Identical|Frame}}",
+       "file-info-png-looped": "Part of the information provided about a [[w:APNG|.apng file]] on its file description page. Looped means repeating indefinetly in the context of an animated png. It is a sequence of images, each displayed after the other, and the first one displayed after the last, in a never ending loop.\n{{Identical|Looped}}",
        "file-info-png-repeat": "Part of the information provided about a [[w:APNG|.apng file]] on its file description page. The sequence of images is repeating a limited amount of time. It is a sequence of images, each displayed after the other, and the first one displayed after the last, for $1 times.",
-       "file-info-png-frames": "Part of the information provided about a [[w:APNG|.apng file]] on its file description page.\n\nThe variable $1 is the number of individual frames in an animated gif file.\n\nFor example of message in use see [[:File:Mouse10.gif]].",
+       "file-info-png-frames": "Part of the information provided about a [[w:APNG|.apng file]] on its file description page.\n\nThe variable $1 is the number of individual frames in an animated gif file.\n\nFor example of message in use see [[:File:Mouse10.gif]].\n{{Identical|Frame}}",
        "file-no-thumb-animation": "We cannot animate thumbnails of this file.\n\nThis notice is shown on the image description page on animated svg files just below {{msg-mw|File-info-size}}.\n\nThis message may be overridden by a more specific message:\n* {{msg-mw|File-no-thumb-animation-gif}}.",
        "file-no-thumb-animation-gif": "Cannot animate thumbnails of this gif file, because it has too big a resolution. The cut off resolution can vary between wikis ([[mw:manual:$wgMaxAnimatedGifArea|$wgMaxAnimatedGifArea]]). Note that resolution is calculated as width times height times number of frames. See {{msg-mw|file-no-thumb-animation}}.",
        "newimages": "Page title of [[Special:NewImages]].",
        "unknown_extension_tag": "This is an error shown when you use an unknown extension tag name.\n\nThis feature allows tags like <code><nowiki><pre></nowiki></code> to be called with a parser like <code><nowiki>{{#tag:pre}}</nowiki></code>.\n\nParameters:\n* $1 - the unknown extension tag name",
        "duplicate-defaultsort": "See definition of [[w:Sorting|sort key]] on Wikipedia. Parameters:\n* $1 - old default sort key\n* $2 - new default sort key",
        "duplicate-displaytitle": "Warning shown when a page has its display title set multiple times. Parameters:\n* $1 - old display title\n* $2 - new display title",
+       "invalid-indicator-name": "Warning shown when the [https://www.mediawiki.org/wiki/Help:Page_status_indicators &lt;indicator name=\"''unique-identifier''\">''content''&lt;/indicator>] parser tag is used incorrectly.",
        "version": "{{doc-special|Version}}\n{{Identical|Version}}",
        "version-summary": "{{doc-specialpagesummary|version}}",
        "version-extensions": "Header on [[Special:Version]].",
        "version-credits-title": "Page title for an about/credits page for a MediaWiki extension.\n\nUsed as heading in credits page. e.g. [[Special:Version/Credits]] and [[Special:Version/Credits/UniversalLanguageSelector]]\n\nParameters:\n* $1 - the name of the extension",
        "version-credits-not-found": "Descriptive error used when detailed about/credits for an extension are not available.\n\nSee example: [[Special:Version/Credits/Foo]]",
        "version-poweredby-credits": "Message shown on [[Special:Version]]. Parameters:\n* $1 - the current year\n* $2 - a list of selected MediaWiki authors",
-       "version-poweredby-others": "Used at the end of {{msg-mw|version-poweredby-credits}} on [[Special:Version]]. First, there's a long list of selected MediaWiki authors, then a comma and then this translation, which is supposed to credit the many other people than developer helping with MediaWiki.",
+       "version-poweredby-others": "Used at the end of {{msg-mw|version-poweredby-credits}} on [[Special:Version]]. First, there's a long list of selected MediaWiki authors, then a comma and then this translation, which is supposed to credit the many other people than developer helping with MediaWiki.\n{{Identical|Other}}",
        "version-poweredby-translators": "Used as label for a link to [[Translating:MediaWiki/Credits]].\n\nPreceded by {{msg-mw|version-poweredby-others}} and {{msg-mw|and}}.\n\nUsed at the end of {{msg-mw|version-poweredby-credits}} on [[Special:Version]].",
        "version-credits-summary": "Summary of the [[Special:Version/Credits]] sub page, which lists all developers etc. who contributed to MediaWiki. Shown at the top.",
        "version-license-info": "[[wikipedia:GNU GPL|GNU GPL]] notice shown at [[Special:Version]]. See //www.gnu.org/licenses/old-licenses/gpl-2.0-translations.html for available translations.",
        "revdelete-uname-unhid": "Used on\n* {{msg-mw|logentry-delete-event}}\n* {{msg-mw|logentry-delete-revision}}\n* {{msg-mw|logentry-suppress-event}}\n* {{msg-mw|logentry-suppress-event}}",
        "revdelete-restricted": "Used as <code>$4</code> in the following messages when setting visibility restrictions for administrators:\n* {{msg-mw|Logentry-delete-event}}\n* {{msg-mw|Logentry-delete-revision}}\n* {{msg-mw|Logentry-suppress-event}}\n* {{msg-mw|Logentry-suppress-event}}",
        "revdelete-unrestricted": "Used as <code>$4</code> in the following messages when setting visibility restrictions for administrators:\n* {{msg-mw|Logentry-delete-event}}\n* {{msg-mw|Logentry-delete-revision}}\n* {{msg-mw|Logentry-suppress-event}}\n* {{msg-mw|Logentry-suppress-event}}",
+       "logentry-merge-merge": "{{Logentry|[[Special:Log/merge]]}}\n* $4 - the page into which the content is merged\n* $5 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
        "logentry-move-move": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
        "logentry-move-move-noredirect": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
        "logentry-move-move_redir": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
        "api-error-stashfailed": "API error message that can be used for client side localisation of API errors.",
        "api-error-publishfailed": "API error message that can be used for client side localisation of API errors.",
        "api-error-stasherror": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashedfilenotfound": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashpathinvalid": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashfilestorage": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashzerolength": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashnotloggedin": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashwrongowner": "API error message that can be used for client side localisation of API errors.",
+       "api-error-stashnosuchfilekey": "API error message that can be used for client side localisation of API errors.",
        "api-error-timeout": "API error message that can be used for client side localisation of API errors.",
        "api-error-unclassified": "API error message that can be used for client side localisation of API errors.",
        "api-error-unknown-code": "API error message that can be used for client side localisation of API errors.\n\nParameters:\n* $1 - may contain more error details\n{{Identical|Unknown error}}",
        "mediastatistics-header-text": "Header on [[Special:MediaStatistics]] for file types that are in the text category. This includes simple text formats, including plain text formats, json, csv, and xml. Source code of compiled programming languages may be included here in the future, but isn't currently.",
        "mediastatistics-header-executable": "Header on [[Special:MediaStatistics]] for file types that are in the executable category. This includes things like source files for interpreted programming language (Shell scripts, javascript, etc).",
        "mediastatistics-header-archive": "Header on [[Special:MediaStatistics]] for file types that are in the archive category. Includes things like tar, zip, gzip etc.",
-       "json-warn-trailing-comma": "A warning message notifying that JSON text was automatically corrected by removing erroneous commas.\n\nParameters:\n* $1 - number of commas that were removed",
-       "json-error-unknown": "User error message when there’s an unknown error.\n{{Identical|Unknown error}}. This error is shown if we received an unexpected value from PHP. See http://php.net/manual/en/function.json-last-error.php\n\nParameters:\n* $1 - integer error code",
-       "json-error-depth": "User error message when the maximum stack depth is exceeded.\nSee http://php.net/manual/en/function.json-last-error.php",
-       "json-error-state-mismatch": "User error message when underflow or the modes mismatch.\n\n'''Underflow''': A data-processing error arising when the absolute value of a computed quantity is smaller than the limits of precision of the computing device, retaining at least one significant digit.\nSee http://php.net/manual/en/function.json-last-error.php",
-       "json-error-ctrl-char": "User error message when an unexpected control character has been found.\nSee http://php.net/manual/en/function.json-last-error.php",
-       "json-error-syntax": "User error message when there is a syntax error; a malformed JSON.\nSee http://php.net/manual/en/function.json-last-error.php",
-       "json-error-utf8": "User error message when there are malformed UTF-8 characters, possibly incorrectly encoded.\nSee http://php.net/manual/en/function.json-last-error.php",
-       "json-error-recursion": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php",
-       "json-error-inf-or-nan": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php",
-       "json-error-unsupported-type": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php"
+       "json-warn-trailing-comma": "A warning message notifying that JSON text was automatically corrected by removing erroneous commas.\n\nParameters:\n* $1 - number of commas that were removed\n{{Related|Json-error}}",
+       "json-error-unknown": "User error message when there’s an unknown error.\n\nThis error is shown if we received an unexpected value from PHP. See http://php.net/manual/en/function.json-last-error.php\n\nParameters:\n* $1 - integer error code\n{{Related|Json-error}}",
+       "json-error-depth": "User error message when the maximum stack depth is exceeded.\nSee http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "json-error-state-mismatch": "User error message when underflow or the modes mismatch.\n\n'''Underflow''': A data-processing error arising when the absolute value of a computed quantity is smaller than the limits of precision of the computing device, retaining at least one significant digit.\n\nSee http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "json-error-ctrl-char": "User error message when an unexpected control character has been found.\nSee http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "json-error-syntax": "User error message when there is a syntax error; a malformed JSON.\nSee http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}\n{{Identical|Syntax error}}",
+       "json-error-utf8": "User error message when there are malformed UTF-8 characters, possibly incorrectly encoded.\nSee http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "json-error-recursion": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "json-error-inf-or-nan": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "json-error-unsupported-type": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}"
 }
index 4f8eb37..32a6b1c 100644 (file)
        "mergehistory-same-destination": "Qallarinapas taripanapas p'anqakunaqa manam kaqlla kayta atinchu",
        "mergehistory-reason": "Kayrayku:",
        "mergelog": "Huñuy hallch'a",
-       "pagemerge-logentry": "[[$1]]-ta [[$2]]-man huñusqa (llamk'apusqakuna $3-kama)",
        "revertmerge": "Huñusqata kutichiy",
        "mergelogpagetext": "Kay qatiqpiqa aswan ñaqha huk p'anqa wiñay kawsaymanta huk p'anqa wiñay kawsayman huñusqakunatam rikunki.",
        "history-title": "«$1» p’anqata hukchasqakunap wiñay kawsaynin",
        "statistics": "Ranuy (kanchachani)",
        "statistics-header-pages": "P'anqakunamanta ranuy (kanchachani)",
        "statistics-header-edits": "Llamk'apuymanta ranuy (kanchachani)",
-       "statistics-header-views": "Qhawaymanta ranuy (kanchachani)",
        "statistics-header-users": "Ruraqmanta ranuy",
        "statistics-header-hooks": "Wakin ranuy (kanchachani)",
        "statistics-articles": "Samiq p'anqakuna",
        "statistics-files": "Churkusqa willañiqikuna",
        "statistics-edits": "P'anqa llamk'apusqakuna {{SITENAME}}-pa paqarisqanmanta",
        "statistics-edits-average": "Kuskanchaku llamk'apusqakuna p'anqaman",
-       "statistics-views-total": "Tukuy qhawasqakuna",
-       "statistics-views-total-desc": "Mana kaq p'anqakunataqa sapaq p'anqakunatapas kaypi manam rikunki",
-       "statistics-views-peredit": "Qhawasqakuna llamk'apusqaman",
        "statistics-users": "Rakiqunayuq [[Special:ListUsers|ruraqkuna]]",
        "statistics-users-active": "Llamk'achkaq ruraqkuna",
        "statistics-users-active-desc": "Ñaqha {{PLURAL:$1|p'unchawpi|$1 p'unchawkunapi}} llamk'apuq ruraqkuna",
-       "statistics-mostpopular": "Lliwmanta astawan rikusqa p'anqakuna",
        "pageswithprop": "Kaqninniyuq p'anqakuna",
        "pageswithprop-legend": "Kaqninniyuq p'anqakuna",
        "pageswithprop-text": "Kay p'anqapiqa sapaq kaqninniyuq p'anqakunatam sutisuyupi rikunki.",
        "uncategorizedtemplates": "Katiguriyannaq plantillakuna",
        "unusedcategories": "Mana llamk'achisqa katiguriyakuna",
        "unusedimages": "Mana llamk'achisqa rikchakuna",
-       "popularpages": "Munasqa p'anqakuna",
        "wantedcategories": "Muchusqa katiguriyakuna",
        "wantedpages": "Muchusqa p'anqakuna",
        "wantedpages-badtitle": "Mana allin p'anqa suti kay taripay tawqapi: $1",
        "pageinfo-robot-policy": "Maskana kuyuchinam yuyarinachan",
        "pageinfo-robot-index": "Saqillasqa",
        "pageinfo-robot-noindex": "Mana saqillasqa",
-       "pageinfo-views": "Hayk'a qhawaykuna",
        "pageinfo-watchers": "P'anqata hayk'a watiqaqkuna",
        "pageinfo-few-watchers": "$1-manta aswan pisi {{PLURAL:$1|qhawaq|qhawaqkuna}}",
        "pageinfo-redirects-name": "Kay p'anqaman hayk'a pusampuqkuna",
index 3e6c421..6d75ded 100644 (file)
        "pager-older-n": "{{PLURAL:$1|é piò vëc|i $1 piò vècc}}",
        "booksources": "Va a truvè dj libar",
        "booksources-search-legend": "A vut zarchè int j livar?",
-       "booksources-go": "Và pu",
        "log": "Regèstar",
        "allpages": "Tot al pàgin",
        "prevpage": "Pàgina prèma d'questa ($1)",
        "watchthispage": "Ten d'öcc sta pagina",
        "unwatch": "T'an stèga piò a t'nì d'öcc",
        "watchlist-details": "J è, int la lèsta dal pàgin da tnì d'öcc, {{PLURAL:$1|$1 pàgina|$1 pàgin}}, senza cuntê al pàgin d'cunversaziòn.",
-       "wlshowlast": "Fam avdé agl'ultum $1 ör $2 dè $3",
+       "wlshowlast": "Fam avdé agl'ultum $1 ör $2 dè",
        "watchlist-options": "Scielt int la lèsta d'pàgin da tnì d'öcc",
        "watching": "Mêt insèn al pàgin da t'nì d'öcc...",
        "unwatching": "Scanzèla dal pàgin da t'nì d'öcc...",
        "metadata-expand": "Fam avdé i particulèr",
        "metadata-collapse": "Nascond i particulèr",
        "metadata-fields": "I chêmp d'j metadata EXIF elenché in ste mesàg, j t' ven presenté int'la pàgina d'la figura, quènd la tabèla d'j metadata l'è ardòta znina. J ètar chèmp j srà nascost.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "tòt",
        "namespacesall": "töt",
        "monthsall": "tòt",
        "watchlisttools-view": "Fam avdè al mudèfich impurtènti",
index 98f2951..8d629e5 100644 (file)
        "pager-newer-n": "{{PLURAL:$1|amynu 1|amynu $1}}",
        "pager-older-n": "{{PLURAL:$1|aqbur 1|aqbur $1}}",
        "booksources": "Ighbula n udlis",
-       "booksources-go": "Uyur",
        "specialloguserlabel": "Aseqdac:",
        "speciallogtitlelabel": "isem:",
        "log": "Aɣmis",
        "watchthispage": "Ḥḍa tasna ya",
        "unwatch": "Ur ḥṭṭa",
        "watchlist-details": "{{PLURAL:$1|$1 n Tasniwin|$1 n Tasniwin}} Twaẓrent bla Tasniwin n usiwl.",
-       "wlshowlast": "Sseml-ad $1 tisεεatin $2 ussan $3 inggura",
+       "wlshowlast": "Sseml-ad $1 tisεεatin $2 ussan  inggura",
        "watching": "Ḥṭṭigh...",
        "unwatching": "Ur ḥṭṭigh...",
        "deletepage": "Kks tasna",
        "metadata-expand": "Sicen-d tilɣa nnumɣarent",
        "metadata-collapse": "Snuffar tilgha innumgharn",
        "metadata-fields": "Igran n EXIF metadata i yllan di tbrat a ad adfn di tasna n twlaft xmnni d-gha twḍa  tflwit n metadata.\nInnḍni ad twaffrn dg umzwar.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "marra",
        "namespacesall": "marra",
        "monthsall": "marra",
        "imgmultigo": "Raḥ ɣa!",
index 000cb9c..753d0c0 100644 (file)
        "mergehistory-same-destination": "Las paginas d'origin e da destinaziun na dastgan betg esser las medemas",
        "mergehistory-reason": "Motiv:",
        "mergelog": "Protocol da fusiuns",
-       "pagemerge-logentry": "unì [[$1]] a [[$2]] (versiuns enfin $3)",
        "revertmerge": "Revocar la fusiun",
        "mergelogpagetext": "Sutvart è ina glista da las ultimas cronologias ch'èn vegnidas unidas cun autras.",
        "history-title": "$1: Cronologia da las versiuns",
        "statistics": "Statisticas",
        "statistics-header-pages": "Statistica da paginas",
        "statistics-header-edits": "Statistica da modificaziuns",
-       "statistics-header-views": "Statistica da las visitas",
        "statistics-header-users": "Statisticas davart ils utilisaders",
        "statistics-header-hooks": "Autras statisticas",
        "statistics-articles": "Paginas da cuntegn",
        "statistics-files": "Datotecas chargiadas si",
        "statistics-edits": "Modificaziuns da paginas dapi l'installaziun da {{SITENAME}}",
        "statistics-edits-average": "Media da modificaziuns per pagina",
-       "statistics-views-total": "Visitas totalmain",
-       "statistics-views-total-desc": "Visitas da paginas ch'existan betg u da paginas spezialas n'èn betg inclusas",
-       "statistics-views-peredit": "Visitas per modificaziun",
        "statistics-users": "[[Special:ListUsers|Utilisaders]] registrads",
        "statistics-users-active": "Utilisaders activs",
        "statistics-users-active-desc": "Utilisaders che han fatg almain ina acziun {{PLURAL:$1|l'ultim di|ils ultims $1 dis}}",
-       "statistics-mostpopular": "Paginas visitadas il pli savens",
        "doubleredirects": "Renviaments dubels",
        "doubleredirectstext": "Questa glista mussa renviaments che mainan puspè a renviaments.\nMintga colonna cuntegna colliaziuns a l'emprim ed al segund renviaments, sco era la pagina finala dal segund renviament che è probablamain la pagina a la quala duess vegnir renvià.\nElements <del>stritgads</del> èn gia eliminads.",
        "double-redirect-fixed-move": "[[$1]] è vegnì spustà.\nI renviescha uss a [[$2]].",
        "uncategorizedtemplates": "Models betg categorisads",
        "unusedcategories": "Categorias betg utilisadas",
        "unusedimages": "Maletgs betg utilisads",
-       "popularpages": "Paginas popularas",
        "wantedcategories": "Categorias giavischadas",
        "wantedpages": "Artitgels giavischads",
        "wantedpages-badtitle": "Titel nunvalid en il resultat: $1",
        "pageinfo-robot-policy": "Status per maschinas da tschertgar",
        "pageinfo-robot-index": "Lubì",
        "pageinfo-robot-noindex": "Betg lubì",
-       "pageinfo-views": "Dumber da visitas",
        "pageinfo-watchers": "Dumber dad observaturs da la pagina",
        "pageinfo-redirects-name": "Dumber da renviaments a questa pagina",
        "pageinfo-subpages-name": "Sutpaginas da questa pagina",
index 48873b6..fe972e0 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Desiphral",
-            "לערי ריינהארט"
-        ]
-    },
-    "underline-always": "Savaxt",
-    "underline-never": "Ni ekhvar",
-    "underline-default": "Browseresko standardo",
-    "sunday": "purano kurko",
-    "monday": "lui",
-    "tuesday": "marci",
-    "wednesday": "tetradī",
-    "thursday": "zhoi",
-    "friday": "parashtui",
-    "saturday": "savato",
-    "january": "pervonai",
-    "february": "duitonai",
-    "march": "tritonai",
-    "april": "shtartonai",
-    "may_long": "panjtonai",
-    "june": "shovtonai",
-    "july": "eftatonai",
-    "august": "oxtotonai",
-    "september": "enyatonai",
-    "october": "deshtonai",
-    "november": "deshuekhtonai",
-    "december": "deshuduitonai",
-    "jan": "perv",
-    "feb": "dui",
-    "mar": "tri",
-    "apr": "shta",
-    "may": "panj",
-    "jun": "shov",
-    "jul": "efta",
-    "aug": "oxt",
-    "sep": "enya",
-    "oct": "desh",
-    "nov": "dekh",
-    "dec": "ddui",
-    "subcategories": "Telekategoriye",
-    "about": "Andar",
-    "article": "Lekh",
-    "newwindow": "(inklel aver filiyastra)",
-    "cancel": "Mekh la",
-    "mypage": "Miri patrin",
-    "mytalk": "Mire vakyarimata",
-    "navigation": "Phiripen",
-    "and": "&#32;thai",
-    "qbedit": "Editisar",
-    "errorpagetitle": "Dosh",
-    "returnto": "Ja palpale kai $1.",
-    "help": "Zhutipen",
-    "search": "Rod",
-    "searchbutton": "Rod",
-    "go": "Ja",
-    "searcharticle": "Ja",
-    "history": "Puraneder versiye",
-    "history_short": "Puranipen",
-    "printableversion": "Printisaripnaski versiya",
-    "permalink": "Savaxtutno phandipen",
-    "print": "Printisaripen",
-    "edit": "Editisar i patrin",
-    "editthispage": "Editisar i patrin",
-    "delete": "Khosipen",
-    "deletethispage": "Khos i patrin",
-    "undelete_short": "Na mai khos le editisarimata $1",
-    "protect": "Brakhipen",
-    "unprotect": "Na mai brakh",
-    "newpage": "Nevi patrin",
-    "specialpage": "Uzalutni patrin",
-    "personaltools": "Mire labne",
-    "articlepage": "Dikh o lekh",
-    "talk": "Vakyarimata",
-    "toolbox": "Labnengo moxton",
-    "userpage": "Dikh i jeneski patrin",
-    "viewtalkpage": "Dikh i diskucia",
-    "otherlanguages": "Avre ćhibande",
-    "lastmodifiedat": "O palutno paruvipen $2, $1.",
-    "viewcount": "Kadaya patrin dikhlilyas {{PLURAL:$1|one time|$1var}}.",
-    "jumpto": "Ja kai:",
-    "jumptonavigation": "phiripen",
-    "jumptosearch": "rodipen",
-    "aboutsite": "Andar {{SITENAME}}",
-    "aboutpage": "Project:Andar",
-    "copyright": "Ander dino tar o $1.",
-    "copyrightpage": "{{ns:project}}:Autorenge xakaya (chachimata)",
-    "currentevents": "Nevimata",
-    "currentevents-url": "Project:Nevimata",
-    "disclaimers": "Termenurya",
-    "disclaimerpage": "Project:Termenurya",
-    "edithelp": "Editisaripnasko zhutipen",
-    "mainpage": "Sherutni patrin",
-    "mainpage-description": "Sherutni patrin",
-    "portal": "Maladipnasko than",
-    "portal-url": "Project:Maladipnasko than",
-    "privacy": "Pativyako forovipen",
-    "retrievedfrom": "Lino katar \"$1\"",
-    "editsection": "editisar",
-    "editsectionhint": "Editisar o kotor: $1",
-    "toc": "Ander",
-    "showtoc": "dikh",
-    "hidetoc": "garav",
-    "nstab-main": "Lekh",
-    "nstab-user": "Jeneski patrin",
-    "nstab-media": "Mediya patrin",
-    "nstab-special": "Uzalutno",
-    "nstab-project": "Projekto",
-    "nstab-image": "Chitro",
-    "nstab-mediawiki": "Duma",
-    "nstab-template": "Sikavno",
-    "nstab-help": "Zhutipen",
-    "nstab-category": "Shopni",
-    "nospecialpagetext": "Manglyas ekh [[Special:SpecialPages|uzalutni patrin]] so na arakhel pes kai {{SITENAME}}.",
-    "viewsource": "Dikh i sursa",
-    "logouttext": "'''Akana san avryal i {{SITENAME}}.'''\n\nShai te labyares {{SITENAME}} sar ekh bijanglo jeno vai shai te prinjares tut palem sar o jeno le kadale navesa vai le aver navesa.",
-    "yourname": "Tiro anav",
-    "yourpassword": "O nakhavipnasko lav",
-    "yourpasswordagain": "O nakhavipnasko lav de nevo",
-    "externaldberror": "Sas ekh dosh kai datengi baza le avrutne prinjaripnyange vai nai tuke drom te akanutnisares o avrutno akonto.",
-    "login": "Prinjaripen",
-    "loginprompt": "Trebul te das drom le phandimatenge ''cookie'' te das andre kai {{SITENAME}}.",
-    "userlogin": "Prinjaripen / Ker ek akount",
-    "logout": "De avri",
-    "userlogout": "De avri",
-    "nologinlink": "Ker ek akount",
-    "createaccount": "Ker ek nevo akount",
-    "gotaccount": "Si tuke akana ekh akonto? '''$1'''.",
-    "gotaccountlink": "De andre",
-    "createaccountmail": "palal o e-mail",
-    "badretype": "Le nakhavipnaske lava so lekhavdyan nai myazutne.",
-    "loginerror": "Prinjaripnaski dosh",
-    "nocookiesnew": "O tiro akont sas kerdo, pale tu nai prinjardo/i. {{SITENAME}} labyarel ''cookies'' te astarel le manusha prinjarde. O tiro browser na astarel le cookies. Si mishto te das les drom te astarel le ''cookies'' thai, palal kodya, te zumaves vi ekh var, labyarindoi o nav thai o nakhavipnaso lav.",
-    "nocookieslogin": "{{SITENAME}} labyarel ''cookies'' te prinjaren le manusha so aven kathe. O tiro browser chi astarel len. Si mishto te das les drom te astarel le ''cookies'' thai, palal kodya, te zumaves vi ekh var.",
-    "loginsuccesstitle": "Prinjaripen kerdo",
-    "loginsuccess": "Akana san prijardo kai {{SITENAME}} sar \"$1\".",
-    "wrongpassword": "O nakhavipnasko lav so thovdyan si doshalo. Mangas tuke te zumaves vi ekvar.",
-    "mailmypassword": "Bichhal ma o nakhavipnasko lav e-mail-estar!",
-    "passwordremindertitle": "Astaripen le tire nakhavipnaske lavesko kai {{SITENAME}}",
-    "passwordremindertext": "Varekon (shai te aves tu, katar i adresa $1)\nmanglyas ek nevo nakahvipnasko lav katar {{SITENAME}}.\nO nakhavipnasko lav le jenesko \"$2\" akana si \"$3\".\nMishto si te jas kai {{SITENAME}} thai te paruves tiro lav sigo.",
-    "noemail": "Nai ni ekh adresa e-mail prinjarde le jeneske \"$1\".",
-    "eauthentsent": "Ekh prinjaripnasko e-mail bichhaldo kai tiri e-maileski adresa. Kashte avel tuke e-mailuya le avre jenendar trebul te prinjares tiri adresa (dikh buteder ando bichhaldo e-mail).",
-    "mailerror": "Dosh kana sas bichhaldo o e-mail: $1",
-    "acct_creation_throttle_hit": "Fal ame nasul, akana si tut $1 akounturya. Nashti te keres aver.",
-    "emailauthenticated": "Tiro e-mail sas prinjardo kai $1.",
-    "emailnotauthenticated": "Tiri e-maileski adresa <strong>nas prinjardi ji akana</strong>. Ni ekh e-mail nashti te avel tuke ji kana prinjares la.",
-    "noemailprefs": "Thov ekh adresa e-mail te keren buti le kadale labne.",
-    "emailconfirmlink": "Prinjar o e-mail",
-    "invalidemailaddress": "Le e-maileski adresa nas lino anda kodoya ke nas lake ekh lachhi forma. Si mishto te thos ekh e-mail le lachhe formasa vai te khoses so lekhvdyas pe kodo than.",
-    "accountcreated": "Akount kerdo",
-    "accountcreatedtext": "Kerdo o akonto le jenesko ko $1.",
-    "changepassword": "Paruv o nakhavipnasko lav",
-    "oldpassword": "Purano nakahvipnasko lav",
-    "newpassword": "Nevo nakhavipnasko lav:",
-    "image_sample": "Misal.jpg",
-    "summary": "Xarno xalyaripen:",
-    "minoredit": "Kadava si ek tikno editisarimos",
-    "watchthis": "Dikh kadaya patrin",
-    "savearticle": "Uxtav i patrin",
-    "showpreview": "Dikh sar avelas i patrin",
-    "showlivepreview": "Jivutno angledikhipen",
-    "showdiff": "Dikh le paruvimata",
-    "whitelistedittext": "Trebul te [[Special:UserLogin|autentifikisares]] kashte editisares artikolurya.",
-    "accmailtitle": "O nakhavipnasko lav bićhaldo.",
-    "accmailtext": "O nakhavipnasko lav andar '$1' bićhaldo ko $2.",
-    "newarticle": "(Nevo)",
-    "newarticletext": "Avilyan kai ek patrin so na si.\nTe keres la, shai te shirdes (astares) te lekhaves ando telutno moxton (dikh [[{{MediaWiki:Helppage}}|zhutipnaski patrin]] te janes buteder).\nKana avilyan kathe doshatar, ja palpale.",
-    "noarticletext": "Andi '''{{SITENAME}}''' nai ji akana ek lekh kadale anavesa.\n* Te shirdes (astares) te keres o lekh, ker klik  '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} kathe]'''.",
-    "editing": "Editisaripen $1",
-    "yourtext": "Tiro teksto",
-    "storedversion": "Akanutni versiya",
-    "yourdiff": "Ververimata",
-    "previousrevision": "← Purano paruvipen",
-    "nextrevision": "Nevi paruvipen →",
-    "cur": "akanutni",
-    "last": "purani",
-    "histlegend": "Xalyaripen: (akanutni) = ververimata mamui i akanutni versiya,\n(purani) = ververimata mamui i puraneder versiya, T = tikno editisaripen",
-    "histfirst": "O mai purano",
-    "histlast": "O mai nevo",
-    "revdelete-submit": "Ker kadya le alosarde paruvimatenge",
-    "compareselectedversions": "Dikh ververimata mashkar alosarde versiye",
-    "prevn": "mai neve {{PLURAL:$1|$1}}",
-    "nextn": "mai purane {{PLURAL:$1|$1}}",
-    "viewprevnext": "Dikh ($1 {{int:pipe-separator}} $2) ($3).",
-    "showingresults": "Tele si <b>$1</b> rezultaturya shirdindoi le ginestar <b>$2</b>.",
-    "showingresultsnum": "Tele si <b>$3</b> rezultaturya shirdindoi le ginestar <b>$2</b>.",
-    "preferences": "Kamimata",
-    "prefs-skin": "Dikhimos",
-    "datedefault": "Ni ekh kamipen",
-    "prefs-datetime": "Dives thai chaso",
-    "prefs-rc": "Neve paruvimata",
-    "saveprefs": "Uxtav le kamimata",
-    "columns": "Uche vortorina:",
-    "localtime": "Thanutno vaxt",
-    "guesstimezone": "Le les katar o browser",
-    "allowemail": "De drom te aven e-mailurya katar aver jene",
-    "defaultns": "Rod savaxt vi kai kadale riga:",
-    "default": "acharuno",
-    "prefs-files": "Failurya",
-    "youremail": "Emailesko adress (kana kames)*",
-    "yourrealname": "Tiro chacho anav*",
-    "yourlanguage": "Ćhib:",
-    "yournick": "I xarni versyunya, le semnaturenge",
-    "badsig": "Bilachhi semnatura; dikh le tagurya HTML.",
-    "editinguser": "Editisaripen '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
-    "group": "Grupo:",
-    "group-bot": "Boturya",
-    "group-sysop": "Administratorurya",
-    "group-bureaucrat": "Birokraturya:",
-    "group-all": "(sa)",
-    "group-sysop-member": "Administratoro",
-    "group-bureaucrat-member": "Birokrato",
-    "grouppage-bot": "{{ns:project}}:Boturya",
-    "grouppage-sysop": "{{ns:project}}:Administratorurya",
-    "grouppage-bureaucrat": "{{ns:project}}:Birokraturya",
-    "recentchanges": "Neve paruvimata",
-    "recentchanges-summary": "Andi kadaya patrin shai te dikhes le neve paruvimata andi romani {{SITENAME}}.",
-    "rcnotefrom": "Tele si le averutnimata katar '''$2''' (inklen '''$1''' averutnimata, shai te paruves o gin alosarindoi aver tele).",
-    "rclistfrom": "Dikh le paruvimata ji kai $1",
-    "rcshowhideminor": "$1 tikne editisaripena",
-    "rcshowhidebots": "$1 (ro)boturya",
-    "rcshowhideliu": "$1 prinjarde jene",
-    "rcshowhideanons": "$1 bijangle jene",
-    "rcshowhidepatr": "$1 dikhle paruvimata",
-    "rcshowhidemine": "$1 mire editisaripena",
-    "rclinks": "Dikh le palutne $1 paruvimata andar le palutne $2 divesa.<br />$3",
-    "diff": "ververipen",
-    "hist": "puranipen",
-    "hide": "garav",
-    "show": "dikh",
-    "minoreditletter": "t",
-    "number_of_watching_users_pageview": "[$1 jeno/e kon len vurma e patrinyaki]",
-    "rc_categories": "Numa le shopnya (rigyarde katar \"|\")",
-    "rc_categories_any": "Savegodi",
-    "recentchangeslinked": "Pashvipnaske paruvimata",
-    "recentchangeslinked-feed": "Pashvipnaske paruvimata",
-    "recentchangeslinked-toolbox": "Pashvipnaske paruvimata",
-    "upload": "Bichhal file",
-    "uploadbtn": "Bichhal file",
-    "filedesc": "Xarno xalyaripen",
-    "badfilename": "O chitrosko anav sas paruvdo; o nevo anav si \"$1\".",
-    "savefile": "Uxtav file",
-    "listfiles": "Patrinipen le chitrengo",
-    "file-anchor-link": "Chitro",
-    "imagelinks": "Chitroske phandimata",
-    "unusedtemplates": "Bilabyarde sikavne",
-    "unusedtemplateswlh": "aver phandimata",
-    "randompage": "Ekh patrin savigodi",
-    "statistics": "Beshimata",
-    "wantedpages": "Kamle pajine",
-    "shortpages": "Xarne patrya",
-    "deadendpages": "Biphandimatenge patrya",
-    "listusers": "Jenengo patrinipen",
-    "newpages": "Neve patrya",
-    "ancientpages": "E puraneder lekha",
-    "move": "Ingerdipen",
-    "allpages": "Savore patrya",
-    "nextpage": "Anglutni patrin ($1)",
-    "allarticles": "Sa le artikolurya",
-    "allpagessubmit": "Ja",
-    "emailuser": "Bichhal les/la e-mail",
-    "emailfrom": "Katar",
-    "emailto": "Karing",
-    "emailsend": "Bichhal",
-    "watchlist": "Dikhipnaske lekha",
-    "mywatchlist": "Dikhipnaske lekha",
-    "addedwatchtext": "I patrin \"[[:$1]]\" sas thovdi andi tiri lista [[Special:Watchlist|le artikolengi so dikhes len]].\nLe neve paruvimata andar kadale patrya thai andar lenge vakyarimatenge patrya thona kathe, vi dikhena pen le <b>thule semnurenca</b> andi patrin le [[Special:RecentChanges|neve paruvimatenge]].\n\nKana kamesa te khoses kadaya patrin andar tiri lista le patryange so arakhes len ker click kai \"Na mai arakh\" (opre, kana i patrin dikhel pes).",
-    "removedwatchtext": "I patrin \"[[:$1]]\" sas khosli katar o patrinipen le dikhipnaske lekhenca (artikolurya).",
-    "watch": "Dikh la",
-    "unwatch": "Na mai dikh",
-    "unwatchthispage": "Na mai dikh",
-    "enotif_reset": "Thov semno kai patrya so dikhlem",
-    "deletepage": "Khos i patrin",
-    "confirm": "Ja",
-    "excontent": "o ander sas: '$1'",
-    "excontentauthor": "o ander sas: '$1' (thai o korkoro butyarno sas '$2')",
-    "exblank": "i patrin sas chuchi",
-    "historywarning": "Dikh! La patrya so kames to khoses la si la puranipen:",
-    "actioncomplete": "Agorisardi buti",
-    "deletedtext": "\"$1\" sas khosli.\nDikh ando $2 ek patrinipen le palutne butyange khosle.",
-    "rollback_short": "Palemavilipen",
-    "rollbacklink": "palemavilipen",
-    "rollbackfailed": "O palemavilipen nashtisardyas te kerel pes.",
-    "prot_1movedto2": "[[$1]] bichhaldo kai [[$2]]",
-    "undelete": "Dikh le khosle patrya",
-    "undeletebtn": "Le palpale",
-    "namespace": "Rig:",
-    "invert": "Bi rigyako:",
-    "contributions": "Jeneske butya",
-    "mycontris": "Mire butya",
-    "contribsub2": "Katar $1 ($2)",
-    "uctop": "(opre)",
-    "whatlinkshere": "So phandel pes kathe",
-    "nolinkshere": "Ni ek patrin phandel pes (avel) kathe.",
-    "blockip": "De avri jenes/IP",
-    "ipbsubmit": "De avri kadava jenes",
-    "ipusubmit": "Na mai brakh i adresa",
-    "contribslink": "butya",
-    "lockbtn": "Brakh i database",
-    "unlockbtn": "Na mai brakh i database",
-    "movearticle": "Inger i patrin",
-    "movepagebtn": "Inger i patrin",
-    "pagemovedsub": "I patrin sas bićhaldi.",
-    "delete_and_move": "Khos thai inger",
-    "export-submit": "Bichhal avri",
-    "allmessages": "Sistemoske duma",
-    "allmessagesname": "Anav",
-    "import-interwiki-submit": "Le andre",
-    "tooltip-pt-userpage": "Miri labyarneski pajina",
-    "tooltip-pt-anonuserpage": "Miri labyarneski pajina ki akanutni IP adress",
-    "tooltip-pt-mytalk": "Miri diskuciyaki pajina",
-    "tooltip-pt-anontalk": "Diskucie le editisarimatenge ki akanutni IP adress",
-    "tooltip-pt-preferences": "Sar kamav te dikhel pes miri pajina",
-    "tooltip-pt-watchlist": "I lista le pajinenge so dikhav lendar (monitorizav).",
-    "tooltip-pt-mycontris": "Le mire editisarimata",
-    "tooltip-pt-login": "Mishto si te identifikares tut, pale na si musai.",
-    "tooltip-pt-logout": "Kathe aćhaves i sesiyunya",
-    "tooltip-ca-talk": "Diskuciya le artikoleske",
-    "tooltip-ca-edit": "Shai te editisares kadaya pajina. Mangas te paledikhes o teksto anglal te uxtaves les.",
-    "tooltip-ca-addsection": "Kathe shai te thos ek komentaryo ki kadaya diskuciya.",
-    "tooltip-ca-viewsource": "Kadaya pajina si brakhli. Shai numa te dikhes o source-code.",
-    "tooltip-ca-history": "Purane versiune le dokumenteske.",
-    "tooltip-ca-protect": "Brakh kadava dokumento.",
-    "tooltip-ca-delete": "Khos kadava dokumento.",
-    "tooltip-ca-undelete": "Palemthav le editisarimata kerdine le kadale dokumenteske sar sas anglal lesko khosipen.",
-    "tooltip-ca-move": "Trade kadava dokumento.",
-    "tooltip-ca-watch": "Thav kadava dokumento andi monitorizaripnaski lista.",
-    "tooltip-ca-unwatch": "Khos kadava dokumento andar i monitorizaripnaski lista.",
-    "tooltip-search": "Rod andi kadaya Wiki",
-    "tooltip-p-logo": "I sherutni pajina",
-    "tooltip-n-mainpage": "Dikh i sherutni pajina",
-    "tooltip-n-portal": "O proyekto, so shai te keres, kai arakhes solucie.",
-    "tooltip-n-currentevents": "Arakh janglimata le akanutne evenimenturenge",
-    "tooltip-n-recentchanges": "I lista le neve paruvimatenge kerdini andi kadaya wiki.",
-    "tooltip-n-randompage": "Ja ki ek aleatori pajina",
-    "tooltip-n-help": "O than kai arakhes zhutipen.",
-    "tooltip-t-whatlinkshere": "I lista sa le wiki pajinenge so aven (si phande) vi kathe",
-    "tooltip-t-recentchangeslinked": "Neve paruvimata andi kadaya pajina",
-    "tooltip-feed-rss": "Kathe te pravares o RSS flukso le kadale pajinyako",
-    "tooltip-feed-atom": "Kathe te pravares o Atom flukso le kadale pajinyako",
-    "tooltip-t-contributions": "Dikh i lista le editisarimatenge le kadale labyaresko",
-    "tooltip-t-emailuser": "Bićhal ek emailo le kadale labyareske",
-    "tooltip-t-upload": "Bićhal imajine vai media files",
-    "tooltip-t-specialpages": "I lista sa le spechiale pajinengi",
-    "tooltip-ca-nstab-main": "Dikh o artikolo",
-    "tooltip-ca-nstab-user": "Dikh i labyarengi pajina",
-    "tooltip-ca-nstab-media": "Dikh i pajina media",
-    "tooltip-ca-nstab-special": "Kadaya si ek spechiali pajina, nashti te editisares la.",
-    "tooltip-ca-nstab-project": "Dikh i pajina le proyekteski",
-    "tooltip-ca-nstab-image": "Dikh i imajinyaki pajina",
-    "tooltip-ca-nstab-mediawiki": "Dikh o mesajo le sistemesko",
-    "tooltip-ca-nstab-template": "Dikh o formato",
-    "tooltip-ca-nstab-help": "Dikh i zhutipnaski pajina",
-    "tooltip-ca-nstab-category": "Dikh i kategoriya",
-    "anonymous": "Bijangle labyarne kai {{SITENAME}}",
-    "siteuser": "Jeno kai {{SITENAME}} $1",
-    "lastmodifiedatby": "Kadaya patrin sas paruvdi agoreste $2, $1 katar $3.",
-    "others": "aver",
-    "siteusers": "Jeno/e kai {{SITENAME}} $1",
-    "deletedrevision": "Khoslo o purano paruvipen $1",
-    "previousdiff": "← Purano ververipen",
-    "nextdiff": "Anglutno paruvipen →",
-    "showhidebots": "($1 boturya)",
-    "ilsubmit": "Rod",
-    "watchlistall2": "savore",
-    "namespacesall": "savore",
-    "deletedwhileediting": "Dikh: Kadaya patrin sas khosli de kana shirdyas (astardyas) te editisares la!",
-    "confirm_purge_button": "Va",
-    "version": "Versiya",
-    "specialpages": "Uzalutne patrya"
+       "@metadata": {
+               "authors": [
+                       "Desiphral",
+                       "לערי ריינהארט",
+                       "아라"
+               ]
+       },
+       "underline-always": "Savaxt",
+       "underline-never": "Ni ekhvar",
+       "underline-default": "Browseresko standardo",
+       "sunday": "purano kurko",
+       "monday": "lui",
+       "tuesday": "marci",
+       "wednesday": "tetradī",
+       "thursday": "zhoi",
+       "friday": "parashtui",
+       "saturday": "savato",
+       "january": "pervonai",
+       "february": "duitonai",
+       "march": "tritonai",
+       "april": "shtartonai",
+       "may_long": "panjtonai",
+       "june": "shovtonai",
+       "july": "eftatonai",
+       "august": "oxtotonai",
+       "september": "enyatonai",
+       "october": "deshtonai",
+       "november": "deshuekhtonai",
+       "december": "deshuduitonai",
+       "jan": "perv",
+       "feb": "dui",
+       "mar": "tri",
+       "apr": "shta",
+       "may": "panj",
+       "jun": "shov",
+       "jul": "efta",
+       "aug": "oxt",
+       "sep": "enya",
+       "oct": "desh",
+       "nov": "dekh",
+       "dec": "ddui",
+       "subcategories": "Telekategoriye",
+       "about": "Andar",
+       "article": "Lekh",
+       "newwindow": "(inklel aver filiyastra)",
+       "cancel": "Mekh la",
+       "mypage": "Miri patrin",
+       "mytalk": "Mire vakyarimata",
+       "navigation": "Phiripen",
+       "and": "&#32;thai",
+       "qbedit": "Editisar",
+       "errorpagetitle": "Dosh",
+       "returnto": "Ja palpale kai $1.",
+       "help": "Zhutipen",
+       "search": "Rod",
+       "searchbutton": "Rod",
+       "go": "Ja",
+       "searcharticle": "Ja",
+       "history": "Puraneder versiye",
+       "history_short": "Puranipen",
+       "printableversion": "Printisaripnaski versiya",
+       "permalink": "Savaxtutno phandipen",
+       "print": "Printisaripen",
+       "edit": "Editisar i patrin",
+       "editthispage": "Editisar i patrin",
+       "delete": "Khosipen",
+       "deletethispage": "Khos i patrin",
+       "undelete_short": "Na mai khos le editisarimata $1",
+       "protect": "Brakhipen",
+       "unprotect": "Na mai brakh",
+       "newpage": "Nevi patrin",
+       "specialpage": "Uzalutni patrin",
+       "personaltools": "Mire labne",
+       "articlepage": "Dikh o lekh",
+       "talk": "Vakyarimata",
+       "toolbox": "Labnengo moxton",
+       "userpage": "Dikh i jeneski patrin",
+       "viewtalkpage": "Dikh i diskucia",
+       "otherlanguages": "Avre ćhibande",
+       "lastmodifiedat": "O palutno paruvipen $2, $1.",
+       "viewcount": "Kadaya patrin dikhlilyas {{PLURAL:$1|one time|$1var}}.",
+       "jumpto": "Ja kai:",
+       "jumptonavigation": "phiripen",
+       "jumptosearch": "rodipen",
+       "aboutsite": "Andar {{SITENAME}}",
+       "aboutpage": "Project:Andar",
+       "copyright": "Ander dino tar o $1.",
+       "copyrightpage": "{{ns:project}}:Autorenge xakaya (chachimata)",
+       "currentevents": "Nevimata",
+       "currentevents-url": "Project:Nevimata",
+       "disclaimers": "Termenurya",
+       "disclaimerpage": "Project:Termenurya",
+       "edithelp": "Editisaripnasko zhutipen",
+       "mainpage": "Sherutni patrin",
+       "mainpage-description": "Sherutni patrin",
+       "portal": "Maladipnasko than",
+       "portal-url": "Project:Maladipnasko than",
+       "privacy": "Pativyako forovipen",
+       "retrievedfrom": "Lino katar \"$1\"",
+       "editsection": "editisar",
+       "editsectionhint": "Editisar o kotor: $1",
+       "toc": "Ander",
+       "showtoc": "dikh",
+       "hidetoc": "garav",
+       "nstab-main": "Lekh",
+       "nstab-user": "Jeneski patrin",
+       "nstab-media": "Mediya patrin",
+       "nstab-special": "Uzalutno",
+       "nstab-project": "Projekto",
+       "nstab-image": "Chitro",
+       "nstab-mediawiki": "Duma",
+       "nstab-template": "Sikavno",
+       "nstab-help": "Zhutipen",
+       "nstab-category": "Shopni",
+       "nospecialpagetext": "Manglyas ekh [[Special:SpecialPages|uzalutni patrin]] so na arakhel pes kai {{SITENAME}}.",
+       "viewsource": "Dikh i sursa",
+       "logouttext": "'''Akana san avryal i {{SITENAME}}.'''\n\nShai te labyares {{SITENAME}} sar ekh bijanglo jeno vai shai te prinjares tut palem sar o jeno le kadale navesa vai le aver navesa.",
+       "yourname": "Tiro anav",
+       "yourpassword": "O nakhavipnasko lav",
+       "yourpasswordagain": "O nakhavipnasko lav de nevo",
+       "externaldberror": "Sas ekh dosh kai datengi baza le avrutne prinjaripnyange vai nai tuke drom te akanutnisares o avrutno akonto.",
+       "login": "Prinjaripen",
+       "userlogin": "Prinjaripen / Ker ek akount",
+       "logout": "De avri",
+       "userlogout": "De avri",
+       "nologinlink": "Ker ek akount",
+       "createaccount": "Ker ek nevo akount",
+       "gotaccount": "Si tuke akana ekh akonto? '''$1'''.",
+       "gotaccountlink": "De andre",
+       "createaccountmail": "palal o e-mail",
+       "badretype": "Le nakhavipnaske lava so lekhavdyan nai myazutne.",
+       "loginerror": "Prinjaripnaski dosh",
+       "nocookiesnew": "O tiro akont sas kerdo, pale tu nai prinjardo/i. {{SITENAME}} labyarel ''cookies'' te astarel le manusha prinjarde. O tiro browser na astarel le cookies. Si mishto te das les drom te astarel le ''cookies'' thai, palal kodya, te zumaves vi ekh var, labyarindoi o nav thai o nakhavipnaso lav.",
+       "nocookieslogin": "{{SITENAME}} labyarel ''cookies'' te prinjaren le manusha so aven kathe. O tiro browser chi astarel len. Si mishto te das les drom te astarel le ''cookies'' thai, palal kodya, te zumaves vi ekh var.",
+       "loginsuccesstitle": "Prinjaripen kerdo",
+       "loginsuccess": "Akana san prijardo kai {{SITENAME}} sar \"$1\".",
+       "wrongpassword": "O nakhavipnasko lav so thovdyan si doshalo. Mangas tuke te zumaves vi ekvar.",
+       "mailmypassword": "Bichhal ma o nakhavipnasko lav e-mail-estar!",
+       "passwordremindertitle": "Astaripen le tire nakhavipnaske lavesko kai {{SITENAME}}",
+       "passwordremindertext": "Varekon (shai te aves tu, katar i adresa $1)\nmanglyas ek nevo nakahvipnasko lav katar {{SITENAME}}.\nO nakhavipnasko lav le jenesko \"$2\" akana si \"$3\".\nMishto si te jas kai {{SITENAME}} thai te paruves tiro lav sigo.",
+       "noemail": "Nai ni ekh adresa e-mail prinjarde le jeneske \"$1\".",
+       "eauthentsent": "Ekh prinjaripnasko e-mail bichhaldo kai tiri e-maileski adresa. Kashte avel tuke e-mailuya le avre jenendar trebul te prinjares tiri adresa (dikh buteder ando bichhaldo e-mail).",
+       "mailerror": "Dosh kana sas bichhaldo o e-mail: $1",
+       "acct_creation_throttle_hit": "Fal ame nasul, akana si tut $1 akounturya. Nashti te keres aver.",
+       "emailauthenticated": "Tiro e-mail sas prinjardo kai $1.",
+       "emailnotauthenticated": "Tiri e-maileski adresa <strong>nas prinjardi ji akana</strong>. Ni ekh e-mail nashti te avel tuke ji kana prinjares la.",
+       "noemailprefs": "Thov ekh adresa e-mail te keren buti le kadale labne.",
+       "emailconfirmlink": "Prinjar o e-mail",
+       "invalidemailaddress": "Le e-maileski adresa nas lino anda kodoya ke nas lake ekh lachhi forma. Si mishto te thos ekh e-mail le lachhe formasa vai te khoses so lekhvdyas pe kodo than.",
+       "accountcreated": "Akount kerdo",
+       "accountcreatedtext": "Kerdo o akonto le jenesko ko $1.",
+       "changepassword": "Paruv o nakhavipnasko lav",
+       "oldpassword": "Purano nakahvipnasko lav",
+       "newpassword": "Nevo nakhavipnasko lav:",
+       "image_sample": "Misal.jpg",
+       "summary": "Xarno xalyaripen:",
+       "minoredit": "Kadava si ek tikno editisarimos",
+       "watchthis": "Dikh kadaya patrin",
+       "savearticle": "Uxtav i patrin",
+       "showpreview": "Dikh sar avelas i patrin",
+       "showdiff": "Dikh le paruvimata",
+       "whitelistedittext": "Trebul te [[Special:UserLogin|autentifikisares]] kashte editisares artikolurya.",
+       "accmailtitle": "O nakhavipnasko lav bićhaldo.",
+       "accmailtext": "O nakhavipnasko lav andar '$1' bićhaldo ko $2.",
+       "newarticle": "(Nevo)",
+       "newarticletext": "Avilyan kai ek patrin so na si.\nTe keres la, shai te shirdes (astares) te lekhaves ando telutno moxton (dikh [$1 zhutipnaski patrin] te janes buteder).\nKana avilyan kathe doshatar, ja palpale.",
+       "noarticletext": "Andi '''{{SITENAME}}''' nai ji akana ek lekh kadale anavesa.\n* Te shirdes (astares) te keres o lekh, ker klik  '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} kathe]'''.",
+       "editing": "Editisaripen $1",
+       "yourtext": "Tiro teksto",
+       "storedversion": "Akanutni versiya",
+       "yourdiff": "Ververimata",
+       "previousrevision": "← Purano paruvipen",
+       "nextrevision": "Nevi paruvipen →",
+       "cur": "akanutni",
+       "last": "purani",
+       "histlegend": "Xalyaripen: (akanutni) = ververimata mamui i akanutni versiya,\n(purani) = ververimata mamui i puraneder versiya, T = tikno editisaripen",
+       "histfirst": "O mai purano",
+       "histlast": "O mai nevo",
+       "revdelete-submit": "Ker kadya le alosarde paruvimatenge",
+       "compareselectedversions": "Dikh ververimata mashkar alosarde versiye",
+       "prevn": "mai neve {{PLURAL:$1|$1}}",
+       "nextn": "mai purane {{PLURAL:$1|$1}}",
+       "viewprevnext": "Dikh ($1 {{int:pipe-separator}} $2) ($3).",
+       "showingresults": "Tele si <b>$1</b> rezultaturya shirdindoi le ginestar <b>$2</b>.",
+       "preferences": "Kamimata",
+       "prefs-skin": "Dikhimos",
+       "datedefault": "Ni ekh kamipen",
+       "prefs-rc": "Neve paruvimata",
+       "saveprefs": "Uxtav le kamimata",
+       "columns": "Uche vortorina:",
+       "localtime": "Thanutno vaxt",
+       "guesstimezone": "Le les katar o browser",
+       "allowemail": "De drom te aven e-mailurya katar aver jene",
+       "default": "acharuno",
+       "prefs-files": "Failurya",
+       "youremail": "Emailesko adress (kana kames)*",
+       "yourrealname": "Tiro chacho anav*",
+       "yourlanguage": "Ćhib:",
+       "yournick": "I xarni versyunya, le semnaturenge",
+       "badsig": "Bilachhi semnatura; dikh le tagurya HTML.",
+       "editinguser": "Editisaripen '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+       "group": "Grupo:",
+       "group-bot": "Boturya",
+       "group-sysop": "Administratorurya",
+       "group-bureaucrat": "Birokraturya:",
+       "group-all": "(sa)",
+       "group-sysop-member": "Administratoro",
+       "group-bureaucrat-member": "Birokrato",
+       "grouppage-bot": "{{ns:project}}:Boturya",
+       "grouppage-sysop": "{{ns:project}}:Administratorurya",
+       "grouppage-bureaucrat": "{{ns:project}}:Birokraturya",
+       "recentchanges": "Neve paruvimata",
+       "recentchanges-summary": "Andi kadaya patrin shai te dikhes le neve paruvimata andi romani {{SITENAME}}.",
+       "rcnotefrom": "Tele si le averutnimata katar '''$2''' (inklen '''$1''' averutnimata, shai te paruves o gin alosarindoi aver tele).",
+       "rclistfrom": "Dikh le paruvimata ji kai $3 $2",
+       "rcshowhideminor": "$1 tikne editisaripena",
+       "rcshowhidebots": "$1 (ro)boturya",
+       "rcshowhideliu": "$1 prinjarde jene",
+       "rcshowhideanons": "$1 bijangle jene",
+       "rcshowhidepatr": "$1 dikhle paruvimata",
+       "rcshowhidemine": "$1 mire editisaripena",
+       "rclinks": "Dikh le palutne $1 paruvimata andar le palutne $2 divesa.<br />$3",
+       "diff": "ververipen",
+       "hist": "puranipen",
+       "hide": "garav",
+       "show": "dikh",
+       "minoreditletter": "t",
+       "number_of_watching_users_pageview": "[$1 jeno/e kon len vurma e patrinyaki]",
+       "rc_categories": "Numa le shopnya (rigyarde katar \"|\")",
+       "rc_categories_any": "Savegodi",
+       "recentchangeslinked": "Pashvipnaske paruvimata",
+       "recentchangeslinked-feed": "Pashvipnaske paruvimata",
+       "recentchangeslinked-toolbox": "Pashvipnaske paruvimata",
+       "upload": "Bichhal file",
+       "uploadbtn": "Bichhal file",
+       "filedesc": "Xarno xalyaripen",
+       "badfilename": "O chitrosko anav sas paruvdo; o nevo anav si \"$1\".",
+       "savefile": "Uxtav file",
+       "listfiles": "Patrinipen le chitrengo",
+       "file-anchor-link": "Chitro",
+       "imagelinks": "Chitroske phandimata",
+       "unusedtemplates": "Bilabyarde sikavne",
+       "unusedtemplateswlh": "aver phandimata",
+       "randompage": "Ekh patrin savigodi",
+       "statistics": "Beshimata",
+       "wantedpages": "Kamle pajine",
+       "shortpages": "Xarne patrya",
+       "deadendpages": "Biphandimatenge patrya",
+       "listusers": "Jenengo patrinipen",
+       "newpages": "Neve patrya",
+       "ancientpages": "E puraneder lekha",
+       "move": "Ingerdipen",
+       "allpages": "Savore patrya",
+       "nextpage": "Anglutni patrin ($1)",
+       "allarticles": "Sa le artikolurya",
+       "allpagessubmit": "Ja",
+       "emailuser": "Bichhal les/la e-mail",
+       "emailfrom": "Katar",
+       "emailto": "Karing",
+       "emailsend": "Bichhal",
+       "watchlist": "Dikhipnaske lekha",
+       "mywatchlist": "Dikhipnaske lekha",
+       "addedwatchtext": "I patrin \"[[:$1]]\" sas thovdi andi tiri lista [[Special:Watchlist|le artikolengi so dikhes len]].\nLe neve paruvimata andar kadale patrya thai andar lenge vakyarimatenge patrya thona kathe, vi dikhena pen le <b>thule semnurenca</b> andi patrin le [[Special:RecentChanges|neve paruvimatenge]].\n\nKana kamesa te khoses kadaya patrin andar tiri lista le patryange so arakhes len ker click kai \"Na mai arakh\" (opre, kana i patrin dikhel pes).",
+       "removedwatchtext": "I patrin \"[[:$1]]\" sas khosli katar o patrinipen le dikhipnaske lekhenca (artikolurya).",
+       "watch": "Dikh la",
+       "unwatch": "Na mai dikh",
+       "unwatchthispage": "Na mai dikh",
+       "wlnote": "Tele si le palutne $1 paruvimata ande palutne <b>$2</b> ore.",
+       "enotif_reset": "Thov semno kai patrya so dikhlem",
+       "deletepage": "Khos i patrin",
+       "confirm": "Ja",
+       "excontent": "o ander sas: '$1'",
+       "excontentauthor": "o ander sas: '$1' (thai o korkoro butyarno sas '$2')",
+       "historywarning": "Dikh! La patrya so kames to khoses la si la puranipen:",
+       "actioncomplete": "Agorisardi buti",
+       "deletedtext": "\"$1\" sas khosli.\nDikh ando $2 ek patrinipen le palutne butyange khosle.",
+       "rollback_short": "Palemavilipen",
+       "rollbacklink": "palemavilipen",
+       "rollbackfailed": "O palemavilipen nashtisardyas te kerel pes.",
+       "prot_1movedto2": "[[$1]] bichhaldo kai [[$2]]",
+       "undelete": "Dikh le khosle patrya",
+       "undeletebtn": "Le palpale",
+       "namespace": "Rig:",
+       "invert": "Bi rigyako:",
+       "contributions": "Jeneske butya",
+       "mycontris": "Mire butya",
+       "contribsub2": "Katar $1 ($2)",
+       "uctop": "(opre)",
+       "whatlinkshere": "So phandel pes kathe",
+       "nolinkshere": "Ni ek patrin phandel pes (avel) kathe.",
+       "blockip": "De avri jenes/IP",
+       "ipbsubmit": "De avri kadava jenes",
+       "ipusubmit": "Na mai brakh i adresa",
+       "contribslink": "butya",
+       "lockbtn": "Brakh i database",
+       "unlockbtn": "Na mai brakh i database",
+       "movearticle": "Inger i patrin",
+       "movepagebtn": "Inger i patrin",
+       "pagemovedsub": "I patrin sas bićhaldi.",
+       "delete_and_move": "Khos thai inger",
+       "export-submit": "Bichhal avri",
+       "allmessages": "Sistemoske duma",
+       "allmessagesname": "Anav",
+       "import-interwiki-submit": "Le andre",
+       "tooltip-pt-userpage": "Miri labyarneski pajina",
+       "tooltip-pt-anonuserpage": "Miri labyarneski pajina ki akanutni IP adress",
+       "tooltip-pt-mytalk": "Miri diskuciyaki pajina",
+       "tooltip-pt-anontalk": "Diskucie le editisarimatenge ki akanutni IP adress",
+       "tooltip-pt-preferences": "Sar kamav te dikhel pes miri pajina",
+       "tooltip-pt-watchlist": "I lista le pajinenge so dikhav lendar (monitorizav).",
+       "tooltip-pt-mycontris": "Le mire editisarimata",
+       "tooltip-pt-login": "Mishto si te identifikares tut, pale na si musai.",
+       "tooltip-pt-logout": "Kathe aćhaves i sesiyunya",
+       "tooltip-ca-talk": "Diskuciya le artikoleske",
+       "tooltip-ca-edit": "Shai te editisares kadaya pajina. Mangas te paledikhes o teksto anglal te uxtaves les.",
+       "tooltip-ca-addsection": "Kathe shai te thos ek komentaryo ki kadaya diskuciya.",
+       "tooltip-ca-viewsource": "Kadaya pajina si brakhli. Shai numa te dikhes o source-code.",
+       "tooltip-ca-history": "Purane versiune le dokumenteske.",
+       "tooltip-ca-protect": "Brakh kadava dokumento.",
+       "tooltip-ca-delete": "Khos kadava dokumento.",
+       "tooltip-ca-undelete": "Palemthav le editisarimata kerdine le kadale dokumenteske sar sas anglal lesko khosipen.",
+       "tooltip-ca-move": "Trade kadava dokumento.",
+       "tooltip-ca-watch": "Thav kadava dokumento andi monitorizaripnaski lista.",
+       "tooltip-ca-unwatch": "Khos kadava dokumento andar i monitorizaripnaski lista.",
+       "tooltip-search": "Rod andi kadaya Wiki",
+       "tooltip-p-logo": "I sherutni pajina",
+       "tooltip-n-mainpage": "Dikh i sherutni pajina",
+       "tooltip-n-portal": "O proyekto, so shai te keres, kai arakhes solucie.",
+       "tooltip-n-currentevents": "Arakh janglimata le akanutne evenimenturenge",
+       "tooltip-n-recentchanges": "I lista le neve paruvimatenge kerdini andi kadaya wiki.",
+       "tooltip-n-randompage": "Ja ki ek aleatori pajina",
+       "tooltip-n-help": "O than kai arakhes zhutipen.",
+       "tooltip-t-whatlinkshere": "I lista sa le wiki pajinenge so aven (si phande) vi kathe",
+       "tooltip-t-recentchangeslinked": "Neve paruvimata andi kadaya pajina",
+       "tooltip-feed-rss": "Kathe te pravares o RSS flukso le kadale pajinyako",
+       "tooltip-feed-atom": "Kathe te pravares o Atom flukso le kadale pajinyako",
+       "tooltip-t-contributions": "Dikh i lista le editisarimatenge le kadale labyaresko",
+       "tooltip-t-emailuser": "Bićhal ek emailo le kadale labyareske",
+       "tooltip-t-upload": "Bićhal imajine vai media files",
+       "tooltip-t-specialpages": "I lista sa le spechiale pajinengi",
+       "tooltip-ca-nstab-main": "Dikh o artikolo",
+       "tooltip-ca-nstab-user": "Dikh i labyarengi pajina",
+       "tooltip-ca-nstab-media": "Dikh i pajina media",
+       "tooltip-ca-nstab-special": "Kadaya si ek spechiali pajina, nashti te editisares la.",
+       "tooltip-ca-nstab-project": "Dikh i pajina le proyekteski",
+       "tooltip-ca-nstab-image": "Dikh i imajinyaki pajina",
+       "tooltip-ca-nstab-mediawiki": "Dikh o mesajo le sistemesko",
+       "tooltip-ca-nstab-template": "Dikh o formato",
+       "tooltip-ca-nstab-help": "Dikh i zhutipnaski pajina",
+       "tooltip-ca-nstab-category": "Dikh i kategoriya",
+       "anonymous": "Bijangle labyarne kai {{SITENAME}}",
+       "siteuser": "Jeno kai {{SITENAME}} $1",
+       "lastmodifiedatby": "Kadaya patrin sas paruvdi agoreste $2, $1 katar $3.",
+       "others": "aver",
+       "siteusers": "Jeno/e kai {{SITENAME}} $1",
+       "deletedrevision": "Khoslo o purano paruvipen $1",
+       "previousdiff": "← Purano ververipen",
+       "nextdiff": "Anglutno paruvipen →",
+       "ilsubmit": "Rod",
+       "namespacesall": "savore",
+       "deletedwhileediting": "Dikh: Kadaya patrin sas khosli de kana shirdyas (astardyas) te editisares la!",
+       "confirm_purge_button": "Va",
+       "version": "Versiya",
+       "specialpages": "Uzalutne patrya"
 }
index 8e10c40..b8e413b 100644 (file)
        "viewsourcetext": "Se poate vizualiza și copia conținutul acestei pagini:",
        "viewyourtext": "Se poate vizualiza și copia conținutul '''modificărilor dumneavoastră''' efectuate asupra acestei pagini:",
        "protectedinterface": "Această pagină asigură textul interfeței pentru software și este protejată pentru a preveni abuzurile.\nPentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [//translatewiki.net/ translatewiki.net], proiectul MediaWiki de localizare.",
-       "editinginterface": "'''Avertizare''': Modificați o pagină care este folosită pentru a furniza textul interfeței software.\nModificările aduse acestei pagini vor afecta aspectul interfeței pentru alți utilizatori ai acestui wiki.\nPentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [//translatewiki.net/ translatewiki.net], proiectul MediaWiki de localizare.",
+       "editinginterface": "<strong>Avertizare</strong>: Modificați o pagină care este folosită pentru a furniza textul interfeței software.\nModificările aduse acestei pagini vor afecta aspectul interfeței pentru alți utilizatori ai acestui wiki.",
+       "translateinterface": "Pentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [//translatewiki.net/ translatewiki.net], proiectul MediaWiki pentru localizare.",
        "cascadeprotected": "Această pagină a fost protejată la scriere deoarece este inclusă în {{PLURAL:$1|următoarea pagină|următoarele pagini}}, care {{PLURAL:$1|este protejată|sunt protejate}} în cascadă:\n$2",
        "namespaceprotected": "Nu aveți permisiunea de a modifica pagini din spațiul de nume '''$1'''.",
        "customcssprotected": "Nu aveți permisiunea de a modifica această pagină CSS, deoarece conține setările personale ale altui utilizator.",
        "content-model-text": "text simplu",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Pagini care folosesc argumente duplicate în apelarea formatelor",
+       "duplicate-args-category-desc": "Pagina conține apelări ale formatelor care folosesc argumente duplicate, cum ar fi <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> sau <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Atenție: Această pagină conține prea multe apelări costisitoare ale funcțiilor parser.\n\nAr trebui să existe mai puțin de $2 {{PLURAL:$2|apelare|apelări}}, acolo există {{PLURAL:$1|$1 apelare|$1 apelări}}.",
        "expensive-parserfunction-category": "Pagini cu prea multe apelări costisitoare de funcții parser",
        "post-expand-template-inclusion-warning": "Atenție: Formatele incluse sunt prea mari.\nUnele formate nu vor fi incluse.",
        "mergehistory-same-destination": "Paginile sursă și destinație nu pot fi identice",
        "mergehistory-reason": "Motiv:",
        "mergelog": "Jurnal unificări",
-       "pagemerge-logentry": "combină [[$1]] cu [[$2]] (versiuni până la $3)",
        "revertmerge": "Anulează îmbinarea",
        "mergelogpagetext": "Mai jos este o listă a celor mai recente combinări ale istoricului unei pagini cu al alteia.",
        "history-title": "Istoricul versiunilor pentru „$1”",
        "search-result-category-size": "$1 {{PLURAL:$1|element|elemente}} ($2 {{PLURAL:$2|categorie|categorii}}, $3 {{PLURAL:$3|fișier|fișiere}})",
        "search-redirect": "(redirecționare de la $1)",
        "search-section": "(secțiunea $1)",
+       "search-category": "(categoria $1)",
        "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",
        "gender-female": "Ea modifică pagini wiki",
        "prefs-help-gender": "Stabilirea acestei preferințe este opțională.\nAcest software folosește datele pentru a vi se adresa și pentru a face referire la dumneavoastră utilizând genul gramatical corespunzător.\nAceastă informație va fi publică.",
        "email": "E-mail",
-       "prefs-help-realname": "Numele real este opțional.\nDacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.",
+       "prefs-help-realname": "Numele real este opțional.\nDacă este furnizat, ar putea fi folosit pentru a vă atribui munca.",
        "prefs-help-email": "Adresa de e-mail este opțională, dar este necesară pentru recuperarea parolei în cazul în care o uitați.",
        "prefs-help-email-others": "Puteți de asemenea permite altora să vă contacteze prin intermediul paginii dumneavoastră de utilizator fără a vă divulga identitatea.",
        "prefs-help-email-required": "Adresa de e-mail este necesară.",
        "statistics": "Statistici",
        "statistics-header-pages": "Statistici pagini",
        "statistics-header-edits": "Statistici modificări",
-       "statistics-header-views": "Vizualizează statisticile",
        "statistics-header-users": "Statistici utilizatori",
        "statistics-header-hooks": "Alte statistici",
        "statistics-articles": "Articole",
        "statistics-files": "Fișiere încărcate",
        "statistics-edits": "Modificări de la instalarea proiectului {{SITENAME}}",
        "statistics-edits-average": "Media editărilor pe pagină",
-       "statistics-views-total": "Număr de vizualizări",
-       "statistics-views-total-desc": "Vizualizările paginilor inexistente și a paginilor speciale nu sunt incluse",
-       "statistics-views-peredit": "Vizualizări pe editare",
        "statistics-users": "[[Special:ListUsers|Utilizatori]] înregistrați",
        "statistics-users-active": "Utilizatori activi",
        "statistics-users-active-desc": "Utilizatori care au efectuat o acțiune în {{PLURAL:$1|ultima zi|ultimele $1 zile}}",
-       "statistics-mostpopular": "Paginile cele mai vizualizate",
        "pageswithprop": "Pagini cu o proprietate de pagină",
        "pageswithprop-legend": "Pagini cu o proprietate de pagină",
        "pageswithprop-text": "Această pagină listează paginile care utilizează o anumită proprietate de pagină.",
        "uncategorizedtemplates": "Formate necategorizate",
        "unusedcategories": "Categorii neutilizate",
        "unusedimages": "Pagini neutilizate",
-       "popularpages": "Pagini populare",
        "wantedcategories": "Categorii dorite",
        "wantedpages": "Pagini dorite",
        "wantedpages-badtitle": "Titlu invalid în rezultatele : $1",
        "pager-older-n": "{{PLURAL:$1|1|$1}} mai vechi",
        "suppress": "Oversight",
        "querypage-disabled": "Această pagină specială este dezactivată din motive de performanță.",
+       "apihelp": "Ajutor API",
+       "apihelp-no-such-module": "Modulul „$1” nu a fost găsit.",
        "booksources": "Surse de cărți",
        "booksources-search-legend": "Căutare surse pentru cărți",
        "booksources-search": "Caută",
        "mywatchlist": "Pagini urmărite",
        "watchlistfor2": "Pentru $1 $2",
        "nowatchlist": "Lista dumneavoastră de pagini urmărite nu conține nici o pagină.",
-       "watchlistanontext": "Vă rugăm să vă autentificați pentru a vizualiza sau modifica elementele din lista dumneavoastră de pagini urmărite.",
+       "watchlistanontext": "Vă rugăm să vă autentificați pentru a consulta și modifica lista de pagini urmărite.",
        "watchnologin": "Nu sunteți autentificat",
        "addwatch": "Adăugă la lista de pagini urmărite",
        "addedwatchtext": "Pagina „[[:$1]]” a fost adăugată în lista dumneavoastră de [[Special:Watchlist|pagini urmărite]].\nModificările viitoare efectuate asupra acestei pagini dar și asupra paginii de discuție asociată vor fi listate acolo.",
        "tooltip-pt-mycontris": "Listă de contribuții",
        "tooltip-pt-login": "Sunteți încurajat să vă autentificați, deși acest lucru nu este obligatoriu.",
        "tooltip-pt-logout": "Închide sesiunea de lucru",
+       "tooltip-pt-createaccount": "Vă încurajăm să vă creați un cont și să vă autentificați; totuși, nu este obligatoriu",
        "tooltip-ca-talk": "Discuții despre această pagină",
        "tooltip-ca-edit": "Puteți modifica această pagină. Înainte de a o salva vă rugăm s-o previzualizați.",
        "tooltip-ca-addsection": "Adaugă o nouă secțiune.",
        "tooltip-feed-atom": "Alimentează fluxul Atom pentru această pagină",
        "tooltip-t-contributions": "Vezi lista de contribuții ale acestui utilizator",
        "tooltip-t-emailuser": "Trimite un e-mail acestui utilizator",
+       "tooltip-t-info": "Mai multe informații despre această pagină",
        "tooltip-t-upload": "Încărcare de fișiere",
        "tooltip-t-specialpages": "Lista tuturor paginilor speciale",
        "tooltip-t-print": "Versiunea de tipărit a acestei pagini",
        "pageinfo-robot-policy": "Indexare de către roboți",
        "pageinfo-robot-index": "Permisă",
        "pageinfo-robot-noindex": "Nepermisă",
-       "pageinfo-views": "Număr de vizualizări",
        "pageinfo-watchers": "Număr de utilizatori care urmăresc pagina",
        "pageinfo-few-watchers": "Mai puțin de {{PLURAL:$1|un urmăritor|$1 urmăritori|$1 de urmăritori}}",
        "pageinfo-redirects-name": "Număr de redirecționări către această pagină",
        "unknown_extension_tag": "Extensie etichetă necunoscută „$1”",
        "duplicate-defaultsort": "'''Atenție:''' Cheia de sortare implicită („$2”) o înlocuiește pe precedenta („$1”).",
        "duplicate-displaytitle": "<strong>Atenție:</strong> Titlul afișat „$2” înlocuieşte titlul afișat anterior, „$1”.",
+       "invalid-indicator-name": "<strong>Eroare:</strong> Parametrul <code>nume</code> al indicatorilor de stare a paginii nu trebuie să fie gol.",
        "version": "Versiune",
        "version-extensions": "Extensii instalate",
        "version-skins": "Aspecte instalate",
        "revdelete-uname-unhid": "numele de utilizator afișat",
        "revdelete-restricted": "restricții aplicate administratorilor",
        "revdelete-unrestricted": "restricții eliminate pentru administratori",
+       "logentry-merge-merge": "$1 {{GENDER:$2|a unificat}} $3 cu $4 (versiuni de până la $5)",
        "logentry-move-move": "$1 {{GENDER:$2|a redenumit}} pagina $3 în $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a redenumit}} pagina $3 în $4 fără a lăsa o redirecționare în loc",
        "logentry-move-move_redir": "$1 {{GENDER:$2|a redenumit}} pagina $3 în $4 înlocuind redirecționarea",
index bc6135f..3e851b8 100644 (file)
        "mergehistory-reason": "Mutive:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "Archivije de le scuagghiaminde",
-       "pagemerge-logentry": "scuagghiate [[$1]] jndr'à [[$2]] (revisiune fine a $3)",
        "revertmerge": "Squascie",
        "mergelogpagetext": "Stte stè 'na liste de le cchiù recende scuagghiaminde de le cunde de le vosce jndr'à 'n'otre.",
        "history-title": "$1: Cunde de le revisiune",
        "statistics": "Statisteche",
        "statistics-header-pages": "Pàgene de le statisteche",
        "statistics-header-edits": "Cange le statisteche",
-       "statistics-header-views": "Vide le statisteche",
        "statistics-header-users": "Statisteche de l'utende",
        "statistics-header-hooks": "Otre statisteche",
        "statistics-articles": "Pàggene de le condenute",
        "statistics-files": "File carechete",
        "statistics-edits": "Cangiaminde de le pàggene da quanne sta {{SITENAME}} ha state ccrejete",
        "statistics-edits-average": "Cangiaminde medie pe pàgene",
-       "statistics-views-total": "Visite totele",
-       "statistics-views-total-desc": "Le viste cu le pàggene inesistende e le pàggene speciale non ge sonde ingluse",
-       "statistics-views-peredit": "Visite pe cangiaminde",
        "statistics-users": "[[Special:ListUsers|Utinde reggistrete]]",
        "statistics-users-active": "Utinde attive",
        "statistics-users-active-desc": "Sonde l'utinde ca onne fatte quacchecose jndr'à l'urteme {{PLURAL:$1|giurne|$1 giurne}}",
-       "statistics-mostpopular": "Pàggene cchiù visitete",
        "pageswithprop": "Pàggene cu 'na probbietà d'a pàgene",
        "pageswithprop-legend": "Pàggene cu 'na probbietà d'a pàgene",
        "pageswithprop-text": "Sta pàgene elenghe le pàggene ca ausane 'na particolare probbietà d'a pàgene.",
        "uncategorizedtemplates": "Template senza categorije",
        "unusedcategories": "Categorije ca non ge sonde ausete",
        "unusedimages": "Fail ca non g'avènene ausete",
-       "popularpages": "Pàggene cchiù canusciute",
        "wantedcategories": "Categorije cerchete",
        "wantedpages": "Pàggene cchiù cerchete",
        "wantedpages-badtitle": "Titele invalide in mmienze a l'inzieme de le resultate: $1",
        "pageinfo-robot-policy": "Indicizzate da le robbot",
        "pageinfo-robot-index": "Permesse",
        "pageinfo-robot-noindex": "Non permesse",
-       "pageinfo-views": "Numere de visite",
        "pageinfo-watchers": "Numere de visitature d'a pàgene",
        "pageinfo-few-watchers": "Mene de $1 {{PLURAL:$1|visitatore|visitature}}",
        "pageinfo-redirects-name": "Numere de redirezionaminde a sta pàgene",
        "compare-invalid-title": "'U titele ca è specificate jè invalide.",
        "compare-title-not-exists": "'U titele ca è specificate non g'esiste.",
        "compare-revision-not-exists": "'A revisione ca è specificate non g'esiste.",
-       "dberr-problems": "Simw spiacende! Stu site stè 'ngondre de le diffcoltà tecniche.",
+       "dberr-problems": "Sime spiacende! Stu site stè 'ngondre de le difficoltà tecniche.",
        "dberr-again": "Aspitte quacche minute e pò recareche.",
        "dberr-info": "(Non ge riuscime a condattà 'u server d'u database: $1)",
        "dberr-info-hidden": "(Non ge pozze condattà 'u server d'u database)",
index a7f8545..1708443 100644 (file)
@@ -69,7 +69,9 @@
                        "Niklem",
                        "Agilight",
                        "Oleg3280",
-                       "Nirovulf"
+                       "Nirovulf",
+                       "Striking Blue",
+                       "Fitoschido"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "hidden-categories": "{{PLURAL:$1|1=Скрытая категория|Скрытые категории}}",
        "hidden-category-category": "Скрытые категории",
        "category-subcat-count": "{{PLURAL:$2|1=Эта категория содержит только следующую подкатегорию.|В этой категории отображается $1 {{PLURAL:$1|подкатегория|подкатегорий|подкатегории}} из имеющихся $2.}}",
-       "category-subcat-count-limited": "Ð\92 Ñ\8dÑ\82ой ÐºÐ°Ñ\82егоÑ\80ии {{PLURAL:$1|$1 Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80иÑ\8f|$1 Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80ий|$1 Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80ии}}.",
+       "category-subcat-count-limited": "Ð\92 Ñ\8dÑ\82ой ÐºÐ°Ñ\82егоÑ\80ии {{PLURAL:$1|$1 Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80иÑ\8f|$1 Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80ии|$1 Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80ий}}.",
        "category-article-count": "{{PLURAL:$2|1=Эта категория содержит единственную страницу.|{{PLURAL:$1|Показана $1 страница|Показано $1 страниц|Показаны $1 страницы}} из $2, {{PLURAL:$2|находящейся|находящихся}} в данной категории.}}",
-       "category-article-count-limited": "В этой категории {{PLURAL:$1|$1 страница|$1 страниц|$1 страницы|1=только одна страница}}.",
+       "category-article-count-limited": "В этой категории {{PLURAL:$1|$1 страница|$1 страницы|$1 страниц|1=только одна страница}}.",
        "category-file-count": "{{PLURAL:$2|1=Эта категория содержит единственный файл.|{{PLURAL:$1|Показан $1 файл|Показано $1 файлов|Показаны $1 файла}} из $2, {{PLURAL:$2|находящегося|находящихся}} в данной категории.}}",
-       "category-file-count-limited": "Ð\92 Ñ\8dÑ\82ой ÐºÐ°Ñ\82егоÑ\80ии {{PLURAL:$1|$1 Ñ\84айл|$1 Ñ\84айлов|$1 Ñ\84айла|1=только один файл}}.",
+       "category-file-count-limited": "Ð\92 Ñ\8dÑ\82ой ÐºÐ°Ñ\82егоÑ\80ии {{PLURAL:$1|$1 Ñ\84айл|$1 Ñ\84айла|$1 Ñ\84айлов|1=только один файл}}.",
        "listingcontinuesabbrev": "(продолжение)",
        "index-category": "Индексируемые страницы",
        "noindex-category": "Неиндексируемые страницы",
        "delete": "Удалить",
        "deletethispage": "Удалить эту страницу",
        "undeletethispage": "Восстановить эту страницу",
-       "undelete_short": "Ð\92оÑ\81Ñ\81Ñ\82ановиÑ\82Ñ\8c {{PLURAL:$1|$1 Ð¿Ñ\80авкÑ\83|$1 Ð¿Ñ\80авок|$1 Ð¿Ñ\80авки|1=правку}}",
-       "viewdeleted_short": "Просмотр {{PLURAL:$1|$1 удалённой правки|$1 удалённых правок|удалённой правки}}",
+       "undelete_short": "Ð\92оÑ\81Ñ\81Ñ\82ановиÑ\82Ñ\8c {{PLURAL:$1|$1 Ð¿Ñ\80авкÑ\83|$1 Ð¿Ñ\80авки|$1 Ð¿Ñ\80авок|1=правку}}",
+       "viewdeleted_short": "Просмотр {{PLURAL:$1|$1 удалённой правки|удалённой правки|$1 удалённых правок}}",
        "protect": "Защитить",
        "protect_change": "изменить",
        "protectthispage": "Защитить эту страницу",
        "redirectpagesub": "Страница-перенаправление",
        "redirectto": "Перенаправление на:",
        "lastmodifiedat": "Последнее изменение этой страницы: $2, $1.",
-       "viewcount": "К этой странице обращались $1 {{PLURAL:$1|раз|раз|раза}}.",
+       "viewcount": "К этой странице обращались $1 {{PLURAL:$1|раз|раза|раз}}.",
        "protectedpage": "Защищённая страница",
        "jumpto": "Перейти к:",
        "jumptonavigation": "навигация",
        "confirmable-no": "Нет",
        "thisisdeleted": "Просмотреть или восстановить $1?",
        "viewdeleted": "Просмотреть $1?",
-       "restorelink": "{{PLURAL:$1|$1 удалённую правку|$1 удалённых правок|$1 удалённые правки|1=удалённую правку}}",
+       "restorelink": "{{PLURAL:$1|$1 удалённую правку|$1 удалённые правки|$1 удалённых правок|1=удалённую правку}}",
        "feedlinks": "В виде:",
        "feed-invalid": "Неправильный тип канала для подписки.",
        "feed-unavailable": "Ленты синдикации недоступны",
        "viewsourcetext": "Вы можете просмотреть и скопировать исходный текст этой страницы:",
        "viewyourtext": "Вы можете просмотреть и скопировать исходный текст '''ваших правок''' на этой странице:",
        "protectedinterface": "Эта страница содержит интерфейсное сообщение программного обеспечения. Во избежание вандализма её изменение запрещено.\nЧтобы добавить или изменить перевод этого сообщения во всех вики, пожалуйста, используйте сайт локализации MediaWiki [//translatewiki.net/ translatewiki.net]",
-       "editinginterface": "'''Внимание:''' Вы редактируете страницу, содержащую текст интерфейса программного обеспечения.\nЕё изменение повлияет на внешний вид интерфейса для других пользователей этой вики.\nЧтобы добавить или изменить перевод этого сообщения, пожалуйста, используйте сайт локализации MediaWiki [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "<strong>Внимание:</strong> Вы редактируете страницу, содержащую текст интерфейса программного обеспечения.\nЕё изменение повлияет на внешний вид интерфейса для других пользователей этой вики.",
+       "translateinterface": "Чтобы добавить или изменить перевод этого сообщения, пожалуйста, используйте сайт локализации MediaWiki [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Страница защищена от изменений, поскольку она включена в {{PLURAL:$1|1=следующую страницу, для которой|следующие страницы, для которых}} включена каскадная защита:\n$2",
        "namespaceprotected": "У вас нет разрешения редактировать страницы в пространстве имён «$1».",
        "customcssprotected": "У вас нет разрешения редактировать эту CSS-страницу, так как она содержит личные настройки другого участника.",
        "createacct-submit": "Создать учётную запись",
        "createacct-another-submit": "Создать ещё одну запись",
        "createacct-benefit-heading": "{{SITENAME}} — совместный труд таких же людей, как вы.",
-       "createacct-benefit-body1": "{{PLURAL:$1|пÑ\80авка|пÑ\80авок|пÑ\80авки}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|статья|статей|статьи}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|Ñ\83Ñ\87аÑ\81Ñ\82ник|Ñ\83Ñ\87аÑ\81Ñ\82ников|Ñ\83Ñ\87аÑ\81Ñ\82ника}} за последнее время",
+       "createacct-benefit-body1": "{{PLURAL:$1|пÑ\80авка|пÑ\80авки|пÑ\80авок}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|статья|статьи|статей}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|Ñ\83Ñ\87аÑ\81Ñ\82ник|Ñ\83Ñ\87аÑ\81Ñ\82ника|Ñ\83Ñ\87аÑ\81Ñ\82ников}} за последнее время",
        "badretype": "Введённые вами пароли не совпадают.",
        "userexists": "Введённое имя участника уже используется.\nПожалуйста, выберите другое имя.",
        "loginerror": "Ошибка опознавания участника",
        "yourdiff": "Различия",
        "copyrightwarning": "Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии $2 (см. $1).\nЕсли вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.<br />\nВы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из\nисточника, допускающего свободное распространение и изменение своего содержимого.<br />\n'''НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!'''",
        "copyrightwarning2": "Пожалуйста, учтите, что любой ваш вклад в проект «{{SITENAME}}» может быть отредактирован или удалён другими участниками.\nЕсли вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.<br />\nВы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. $1).\n'''НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!'''",
-       "longpageerror": "'''ОШИБКА: записываемый вами текст имеет размер $1 {{PLURAL:$1|килобайт|килобайт|килобайта}}, что больше, чем установленный предел в $2 {{PLURAL:$2|килобайт|килобайт|килобайта}}. Страница не может быть сохранена.'''",
+       "longpageerror": "'''ОШИБКА: записываемый вами текст имеет размер $1 {{PLURAL:$1|килобайт|килобайта|килобайт}}, что больше, чем установленный предел в $2 {{PLURAL:$2|килобайт|килобайта|килобайт}}. Страница не может быть сохранена.'''",
        "readonlywarning": "'''Предупреждение. База данных заблокирована в связи с процедурами обслуживания, поэтому вы не можете записать ваши изменения прямо сейчас.'''\nВозможно, вам следует скопировать этот текст в текстовый файл, чтобы сохранить его на будущее.\n\nАдминистратор, заблокировавший базу данных, оставил следующее объяснение: $1",
        "protectedpagewarning": "'''Предупреждение. Эта страница защищена от изменений, её могут редактировать только участники с полномочиями администраторов.'''\nНиже для справки приведена последняя запись журнала:",
        "semiprotectedpagewarning": "'''Замечание.''' Эта страница была защищена; редактировать её могут только зарегистрированные участники.\nНиже для справки приведена последняя запись журнала:",
        "content-model-text": "обычный текст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Страницы, использующие повторяющиеся аргументы в вызовах шаблонов",
+       "duplicate-args-category-desc": "Страницы, содержащие вызовы шаблонов, использующие повторяющиеся аргументы, такие как <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> или <code><nowiki>{{foo|bar|1=bar}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Внимание!''' Эта страница содержит слишком много вызовов ресурсоёмких функций.\n\nДолжно быть не более {{PLURAL:$2|$2 вызова|$2 вызовов|1=одного вызова}}, в то время как сейчас здесь $1 {{PLURAL:$1|вызов|вызовов|вызова}}.",
        "expensive-parserfunction-category": "Страницы со слишком большим количеством вызовов ресурсоёмких функций",
        "post-expand-template-inclusion-warning": "Предупреждение: суммарный размер включаемых шаблонов слишком велик.\nНекоторые шаблоны не будут включены.",
        "history-show-deleted": "Только удалённые",
        "histfirst": "старейшие",
        "histlast": "новейшие",
-       "historysize": "($1 {{PLURAL:$1|байт|байт|байта}})",
+       "historysize": "($1 {{PLURAL:$1|байт|байта|байт}})",
        "historyempty": "(пусто)",
        "history-feed-title": "История изменений",
        "history-feed-description": "История изменений этой страницы в вики",
        "mergehistory-empty": "Не найдены правки для объединения.",
        "mergehistory-success": "$3 {{PLURAL:$3|правка|правок|правки}} из [[:$1]] успешно {{PLURAL:$3|перенесена|перенесены}} в [[:$2]].",
        "mergehistory-fail": "Не удалось произвести объединение историй страниц, пожалуйста, проверьте параметры страницы и времени.",
-       "mergehistory-fail-toobig": "Ð\9dе Ñ\83даÑ\91Ñ\82Ñ\81Ñ\8f Ð²Ñ\8bполниÑ\82Ñ\8c Ñ\81лиÑ\8fние Ð¸Ñ\81Ñ\82оÑ\80ии, Ñ\82ак ÐºÐ°Ðº Ð½ÐµÐ¾Ð±Ñ\85одимо Ð¿ÐµÑ\80енеÑ\81Ñ\82и Ð±Ð¾Ð»Ñ\8cÑ\88е Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82имого Ð»Ð¸Ð¼Ð¸Ñ\82а Ð² $1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8e|веÑ\80Ñ\81ий|веÑ\80Ñ\81ии}}.",
+       "mergehistory-fail-toobig": "Ð\9dе Ñ\83даÑ\91Ñ\82Ñ\81Ñ\8f Ð²Ñ\8bполниÑ\82Ñ\8c Ñ\81лиÑ\8fние Ð¸Ñ\81Ñ\82оÑ\80ии, Ñ\82ак ÐºÐ°Ðº Ð½ÐµÐ¾Ð±Ñ\85одимо Ð¿ÐµÑ\80енеÑ\81Ñ\82и Ð±Ð¾Ð»Ñ\8cÑ\88е Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82имого Ð»Ð¸Ð¼Ð¸Ñ\82а Ð² $1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8e|веÑ\80Ñ\81ии|веÑ\80Ñ\81ий}}.",
        "mergehistory-no-source": "Исходная страница «$1» не существует.",
        "mergehistory-no-destination": "Целевая страница «$1» не существует.",
        "mergehistory-invalid-source": "Источник должен иметь правильный заголовок.",
        "mergehistory-same-destination": "Исходная и целевая страницы должны различаться",
        "mergehistory-reason": "Причина:",
        "mergelog": "Журнал объединений",
-       "pagemerge-logentry": "объединена [[$1]] и [[$2]] (версии вплоть до $3)",
        "revertmerge": "Разделить",
        "mergelogpagetext": "Ниже приведён список последних объединений историй страниц.",
        "history-title": "$1 — история изменений",
        "showhideselectedversions": "Показать/скрыть выбранные версии",
        "editundo": "отменить",
        "diff-empty": "(нет различий)",
-       "diff-multi-sameuser": "(не {{PLURAL:$1|показана одна промежуточная версия|показано $1 промежуточных версии|показаны $1 промежуточные версии}} этого же участника)",
+       "diff-multi-sameuser": "(не {{PLURAL:$1|показана одна промежуточная версия|показаны $1 промежуточные версии|показано $1 промежуточных версии}} этого же участника)",
        "diff-multi-otherusers": "(не {{PLURAL:$1|показана одна промежуточная версия|показано $1 промежуточных версии|показаны $1 промежуточные версии}} {{PLURAL:$2|ещё одного участника|$2 участников}})",
        "diff-multi-manyusers": "({{PLURAL:$1|не показана $1 промежуточная версия, сделанная|не показаны $1 промежуточных версий, сделанных|не показаны $1 промежуточные версии, сделанные}} более чем {{PLURAL:$2|$2 участником|$2 участниками}})",
        "difference-missing-revision": "Не {{PLURAL:$2|1=найдена|найдены}} {{PLURAL:$2|$2 версия|$2 версий|$2 версии|1=одна из версий}} для этого сравнения ($1).\n\nТакое обычно случается при переходе по устаревшей ссылке сравнения версий для страницы, которая была удалена.\nПодробности могут быть в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
        "notextmatches": "Нет совпадений в текстах страниц",
        "prevn": "{{PLURAL:$1|1=предыдущая|предыдущие}} $1",
        "nextn": "{{PLURAL:$1|1=следующая|следующие}} $1",
-       "prevn-title": "{{PLURAL:$1|Ð\9fÑ\80едÑ\8bдÑ\83Ñ\89аÑ\8f $1 Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c\9fÑ\80едÑ\8bдÑ\83Ñ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81ей|Ð\9fÑ\80едÑ\8bдÑ\83Ñ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81и}}",
-       "nextn-title": "{{PLURAL:$1|СледÑ\83Ñ\8eÑ\89аÑ\8f $1 Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c|СледÑ\83Ñ\8eÑ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81ей|СледÑ\83Ñ\8eÑ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81и}}",
-       "shown-title": "Ð\9fоказÑ\8bваÑ\82Ñ\8c $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81и|запиÑ\81ей}} на странице",
+       "prevn-title": "{{PLURAL:$1|Ð\9fÑ\80едÑ\8bдÑ\83Ñ\89аÑ\8f $1 Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c\9fÑ\80едÑ\8bдÑ\83Ñ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81и|Ð\9fÑ\80едÑ\8bдÑ\83Ñ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81ей}}",
+       "nextn-title": "{{PLURAL:$1|СледÑ\83Ñ\8eÑ\89аÑ\8f $1 Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c|СледÑ\83Ñ\8eÑ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81и|СледÑ\83Ñ\8eÑ\89ие $1 Ð·Ð°Ð¿Ð¸Ñ\81ей}}",
+       "shown-title": "Ð\9fоказÑ\8bваÑ\82Ñ\8c $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81ей|запиÑ\81и}} на странице",
        "viewprevnext": "Просмотреть ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''В этой вики есть страница «[[:$1]]»'''",
        "searchmenu-new": "<strong>Создать страницу «[[:$1]]» в этом вики-проекте!</strong>\n{{PLURAL:$2|0=|См. также страницу, найденную по результатами вашего поиска.|См. также найденные результаты поиска.}}",
        "searchprofile-images-tooltip": "Поиск файлов",
        "searchprofile-everything-tooltip": "Поиск на всех страницах (включая страницы обсуждений)",
        "searchprofile-advanced-tooltip": "Искать в заданных пространствах имён",
-       "search-result-size": "$1 ({{PLURAL:$2|$2 слово|$2 слов|$2 слова}})",
-       "search-result-category-size": "$1 {{PLURAL:$1|вхождение|вхождений|вхождения}} ($2 {{PLURAL:$2|подкатегория|подкатегорий|подкатегории}}, $3 {{PLURAL:$3|файл|файлов|файла}})",
+       "search-result-size": "$1 ({{PLURAL:$2|$2 слово|$2 слова|$2 слов}})",
+       "search-result-category-size": "$1 {{PLURAL:$1|вхождение|вхождения|вхождений}} ($2 {{PLURAL:$2|подкатегория|подкатегории|подкатегорий}}, $3 {{PLURAL:$3|файл|файла|файлов}})",
        "search-redirect": "(перенаправление с $1)",
        "search-section": "(раздел «$1»)",
+       "search-category": "(категория $1)",
        "search-file-match": "(совпадает с содержимым файла)",
        "search-suggest": "Возможно, вы имели в виду «$1».",
        "search-interwiki-caption": "Родственные проекты",
        "searchrelated": "связанный",
        "searchall": "все",
        "showingresults": "Ниже {{PLURAL:$1|1=показан результат|показаны  результаты}} с № '''$2''' и вплоть до № '''$1'''.",
-       "showingresultsinrange": "Ð\9dиже Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾ {{PLURAL:$1|<strong>1</strong> Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82а|<strong>$1</strong> Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82ов|<strong>$1</strong> Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82а}} в диапазоне от <strong>$2</strong> до <strong>$3</strong>.",
+       "showingresultsinrange": "Ð\9dиже Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾ {{PLURAL:$1|<strong>1</strong> Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82а|<strong>$1</strong> Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82а|<strong>$1</strong> Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82ов}} в диапазоне от <strong>$2</strong> до <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Результат <strong>$1</strong> из <strong>$3</strong>|Результаты <strong>$1 — $2</strong> из <strong>$3</strong>}}",
        "search-nonefound": "Соответствий запросу не найдено.",
        "powersearch-legend": "Расширенный поиск",
        "yournick": "Новая подпись:",
        "prefs-help-signature": "Комментарии на страницах обсуждений должны быть подписаны посредством добавления символов «<nowiki>~~~~</nowiki>», которые будут преобразованы в вашу подпись и время.",
        "badsig": "Неверная подпись. Проверьте корректность HTML-тегов.",
-       "badsiglength": "СлиÑ\88ком Ð´Ð»Ð¸Ð½Ð½Ð°Ñ\8f Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81Ñ\8c.\nÐ\9fодпиÑ\81Ñ\8c Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ð° Ð¿Ñ\80евÑ\8bÑ\88аÑ\82Ñ\8c $1 {{PLURAL:$1|Ñ\81имвола|Ñ\81имволов|Ñ\81имвола}}.",
+       "badsiglength": "СлиÑ\88ком Ð´Ð»Ð¸Ð½Ð½Ð°Ñ\8f Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81Ñ\8c.\nÐ\9fодпиÑ\81Ñ\8c Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ð° Ð¿Ñ\80евÑ\8bÑ\88аÑ\82Ñ\8c $1 {{PLURAL:$1|Ñ\81имвола|Ñ\81имвола|Ñ\81имволов}}.",
        "yourgender": "Какое описание вам более подходит?",
        "gender-unknown": "Я предпочитаю не указывать",
        "gender-male": "Он редактирует страницы вики",
        "gender-female": "Онa редактирует страницы вики",
-       "prefs-help-gender": "Установка этой настройки необязательна.\nПрограммное обеспечение использует эту информацию, чтобы обращаться к вам и упоминать вас в правильном грамматическом роде.\nЭта информация будет общедоступной.",
+       "prefs-help-gender": "Установка этой настройки необязательна.\nПО использует это значение, чтобы обращаться к вам и упоминать вас в правильном грамматическом роде.\nЭта информация будет общедоступной.",
        "email": "Электронная почта",
-       "prefs-help-realname": "Ð\9dаÑ\81Ñ\82оÑ\8fÑ\89ее Ð¸Ð¼Ñ\8f (необÑ\8fзаÑ\82елÑ\8cное Ð¿Ð¾Ð»Ðµ).\nÐ\95Ñ\81ли Ð²Ñ\8b Ñ\83кажеÑ\82е ÐµÐ³Ð¾, Ñ\82о Ð¾Ð½Ð¾ Ð±Ñ\83деÑ\82 Ð¸Ñ\81полÑ\8cзовано Ð´Ð»Ñ\8f Ñ\82ого, Ñ\87Ñ\82обÑ\8b Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ\82Ñ\8c, ÐºÐµÐ¼ Ð±Ñ\8bла Ð²Ð½ÐµÑ\81ена Ð¿Ñ\80авка Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b.",
+       "prefs-help-realname": "Ð\92водиÑ\82Ñ\8c Ð½Ð°Ñ\81Ñ\82оÑ\8fÑ\89ее Ð¸Ð¼Ñ\8f Ð½ÐµÐ¾Ð±Ñ\8fзаÑ\82елÑ\8cно.\nÐ\95Ñ\81ли Ð²Ñ\8b Ð·Ð°Ð¿Ð¾Ð»Ð½Ð¸Ñ\82е ÐµÐ³Ð¾, Ð¾Ð½Ð¾ Ð¼Ð¾Ð¶ÐµÑ\82 Ð±Ñ\8bÑ\82Ñ\8c Ð¸Ñ\81полÑ\8cзовано Ð´Ð»Ñ\8f Ñ\83казаниÑ\8f Ð°Ð²Ñ\82оÑ\80Ñ\81Ñ\82ва Ð²Ð°Ñ\88иÑ\85 Ñ\80абоÑ\82.",
        "prefs-help-email": "Адрес электронной почты указывать необязательно, но он будет необходим в том случае, если вы забудете пароль.",
        "prefs-help-email-others": "Он также позволит другим участникам связаться с вами по электронной почте с помощью ссылки на вашей персональной странице или на вашей странице обсуждения. При этом ваш адрес электронной почты не будет никому раскрыт.",
        "prefs-help-email-required": "Необходимо указать адрес электронной почты.",
        "action-viewmywatchlist": "просмотр вашего списка наблюдения",
        "action-viewmyprivateinfo": "просмотр вашей частной информации",
        "action-editmyprivateinfo": "редактирование вашей частной информации",
-       "nchanges": "$1 {{PLURAL:$1|изменение|изменений|изменения}}",
+       "nchanges": "$1 {{PLURAL:$1|изменение|изменения|изменений}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|с последнего посещения}}",
        "enhancedrc-history": "история",
        "recentchanges": "Свежие правки",
        "newpageletter": "Н",
        "boteditletter": "б",
        "unpatrolledletter": "!",
-       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|наблÑ\8eдаÑ\8eÑ\89ий Ñ\83Ñ\87аÑ\81Ñ\82ник|наблÑ\8eдаÑ\8eÑ\89иÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ников|наблÑ\8eдаÑ\8eÑ\89иÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ника}}]",
+       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|наблÑ\8eдаÑ\8eÑ\89ий Ñ\83Ñ\87аÑ\81Ñ\82ник|наблÑ\8eдаÑ\8eÑ\89иÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ника|наблÑ\8eдаÑ\8eÑ\89иÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ников}}]",
        "rc_categories": "Только из категорий (разделитель «|»)",
        "rc_categories_any": "Любой",
-       "rc-change-size-new": "Размер после изменения: $1 {{PLURAL:$1|байт|байт|байта}}",
+       "rc-change-size-new": "Размер после изменения: $1 {{PLURAL:$1|байт|байта|байт}}",
        "newsectionsummary": "/* $1 */ новая тема",
        "rc-enhanced-expand": "Показать подробности",
        "rc-enhanced-hide": "Скрыть подробности",
        "backend-fail-closetemp": "Не удаётся закрыть временный файл.",
        "backend-fail-read": "Не удалось прочитать файл $1.",
        "backend-fail-create": "Не удалось записать файл $1.",
-       "backend-fail-maxsize": "Не удалось записать файл $1, так как его размер превышает $2 {{PLURAL:$2|байт|байт|байта}}.",
+       "backend-fail-maxsize": "Не удалось записать файл $1, так как его размер превышает $2 {{PLURAL:$2|байт|байта|байт}}.",
        "backend-fail-readonly": "Хранилище «$1» сейчас находится в режиме «только чтение». Причина: «$2»",
        "backend-fail-synced": "Файл «$1» находится в несогласованном состоянии во внутреннем хранилище",
        "backend-fail-connect": "Не удалось подключиться к хранилищу «$1».",
        "filehist-filesize": "Размер файла",
        "filehist-comment": "Примечание",
        "imagelinks": "Использование файла",
-       "linkstoimage": "{{PLURAL:$1|Следующая $1 страница ссылается|Следующие $1 страниц ссылаются|Следующие $1 страницы ссылаются}} на данный файл:",
+       "linkstoimage": "{{PLURAL:$1|Следующая $1 страница ссылается|Следующие $1 страницы ссылаются|Следующие $1 страниц ссылаются}} на данный файл:",
        "linkstoimage-more": "Более $1 {{PLURAL:$1|страницы|страниц}} ссылаются на этот файл.\nВ данном списке {{PLURAL:$1|представлена только $1 ссылка|представлены только $1 ссылок|представлены только $1 ссылки}} на этот файл.\nДоступен также [[Special:WhatLinksHere/$2|полный список]].",
        "nolinkstoimage": "Нет страниц, ссылающихся на данный файл.",
        "morelinkstoimage": "Просмотреть [[Special:WhatLinksHere/$1|остальные ссылки]] на этот файл.",
        "linkstoimage-redirect": "$1 (файловое перенаправление) $2",
-       "duplicatesoffile": "{{PLURAL:$1|СледÑ\83Ñ\8eÑ\89ий Ñ\84айл Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ð´Ñ\83бликаÑ\82ом|СледÑ\83Ñ\8eÑ\89ие $1 Ñ\84айлов Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f Ð´Ñ\83бликаÑ\82ами|СледÑ\83Ñ\8eÑ\89ие $1 Ñ\84айла являются дубликатами}} этого файла ([[Special:FileDuplicateSearch/$2|подробности]]):",
+       "duplicatesoffile": "{{PLURAL:$1|СледÑ\83Ñ\8eÑ\89ий Ñ\84айл Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ð´Ñ\83бликаÑ\82ом|СледÑ\83Ñ\8eÑ\89ие $1 Ñ\84айла Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f Ð´Ñ\83бликаÑ\82ами|СледÑ\83Ñ\8eÑ\89ие $1 Ñ\84айлов являются дубликатами}} этого файла ([[Special:FileDuplicateSearch/$2|подробности]]):",
        "sharedupload": "Этот файл из $1 и может использоваться в других проектах.",
        "sharedupload-desc-there": "Этот файл из $1 и может использоваться в других проектах.\nДополнительную информацию можно найти на [$2 странице описания файла].",
        "sharedupload-desc-here": "Этот файл из $1 и может использоваться в других проектах.\nИнформация с его [$2 страницы описания] приведена ниже.",
        "listredirects": "Список перенаправлений",
        "listduplicatedfiles": "Список файлов с дубликатами",
        "listduplicatedfiles-summary": "Это список файлов, где самая последняя версия файла считается дубликатом последней версии некоторых других файлов. Учитываются только локальные файлы.",
-       "listduplicatedfiles-entry": "У Ñ\84айла [[:File:$1|$1]] â\80\94 [[$3|{{PLURAL:$2|один Ð´Ñ\83бликаÑ\82|$2 Ð´Ñ\83бликаÑ\82ов|$2 Ð´Ñ\83бликаÑ\82а}}]].",
+       "listduplicatedfiles-entry": "У Ñ\84айла [[:File:$1|$1]] â\80\94 [[$3|{{PLURAL:$2|один Ð´Ñ\83бликаÑ\82|$2 Ð´Ñ\83бликаÑ\82а|$2 Ð´Ñ\83бликаÑ\82ов}}]].",
        "unusedtemplates": "Неиспользуемые шаблоны",
        "unusedtemplatestext": "Здесь перечислены все страницы пространства имён «{{ns:template}}», не включённые ни в какие другие страницы.\nНе забывайте проверять отсутствие ссылок на шаблон перед его удалением.",
        "unusedtemplateswlh": "другие ссылки",
        "statistics": "Статистика",
        "statistics-header-pages": "Статистика по страницам",
        "statistics-header-edits": "Статистика правок",
-       "statistics-header-views": "Статистика просмотров",
        "statistics-header-users": "Статистика по участникам",
        "statistics-header-hooks": "Другая статистика",
        "statistics-articles": "Статей",
        "statistics-files": "Загружено файлов",
        "statistics-edits": "Число правок с момента установки {{grammar:genitive|{{SITENAME}}}}",
        "statistics-edits-average": "Среднее число правок на страницу",
-       "statistics-views-total": "Всего просмотров",
-       "statistics-views-total-desc": "Не учитываются просмотры несуществующих и служебных страниц.",
-       "statistics-views-peredit": "Просмотров на правку",
        "statistics-users": "Зарегистрированные [[Special:ListUsers|участники]]",
        "statistics-users-active": "Активные участники",
-       "statistics-users-active-desc": "Участники, совершившие какое-либо действие за {{PLURAL:$1|последний $1 день|последние $1 дней|последние $1 дня}}",
-       "statistics-mostpopular": "Наиболее часто просматриваемые страницы",
+       "statistics-users-active-desc": "Участники, совершившие какое-либо действие за {{PLURAL:$1|последний $1 день|последние $1 дня|последние $1 дней}}",
        "pageswithprop": "Страницы с переопределёнными свойствами",
        "pageswithprop-legend": "Страницы с переопределёнными свойствами",
        "pageswithprop-text": "Здесь перечислены страницы, у которых были вручную переопределены отдельные свойства.",
        "withoutinterwiki-legend": "Префикс",
        "withoutinterwiki-submit": "Показать",
        "fewestrevisions": "Страницы с наименьшим количеством версий",
-       "nbytes": "$1 {{PLURAL:$1|байÑ\82|байÑ\82ов|байÑ\82а}}",
-       "ncategories": "$1 {{PLURAL:$1|каÑ\82егоÑ\80иÑ\8f|каÑ\82егоÑ\80ий|каÑ\82егоÑ\80ии}}",
-       "ninterwikis": "$1 {{PLURAL:$1|инÑ\82еÑ\80вики-Ñ\81Ñ\81Ñ\8bлка|инÑ\82еÑ\80вики-Ñ\81Ñ\81Ñ\8bлок|инÑ\82еÑ\80вики-Ñ\81Ñ\81Ñ\8bлки}}",
-       "nlinks": "$1 {{PLURAL:$1|Ñ\81Ñ\81Ñ\8bлка|Ñ\81Ñ\81Ñ\8bлок|Ñ\81Ñ\81Ñ\8bлки}}",
-       "nmembers": "$1 {{PLURAL:$1|обÑ\8aекÑ\82|обÑ\8aекÑ\82ов|обÑ\8aекÑ\82а}}",
-       "nmemberschanged": "$1 â\86\92 $2 {{PLURAL:$2|обÑ\8aекÑ\82|обÑ\8aекÑ\82ов|обÑ\8aекÑ\82а}}",
-       "nrevisions": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f|веÑ\80Ñ\81ий|веÑ\80Ñ\81ии}}",
-       "nviews": "$1 {{PLURAL:$1|пÑ\80оÑ\81моÑ\82Ñ\80|пÑ\80оÑ\81моÑ\82Ñ\80ов|пÑ\80оÑ\81моÑ\82Ñ\80а}}",
+       "nbytes": "$1 {{PLURAL:$1|байÑ\82|байÑ\82а|байÑ\82ов}}",
+       "ncategories": "$1 {{PLURAL:$1|каÑ\82егоÑ\80иÑ\8f|каÑ\82егоÑ\80ии|каÑ\82егоÑ\80ий}}",
+       "ninterwikis": "$1 {{PLURAL:$1|инÑ\82еÑ\80вики-Ñ\81Ñ\81Ñ\8bлка|инÑ\82еÑ\80вики-Ñ\81Ñ\81Ñ\8bлки|инÑ\82еÑ\80вики-Ñ\81Ñ\81Ñ\8bлок}}",
+       "nlinks": "$1 {{PLURAL:$1|Ñ\81Ñ\81Ñ\8bлка|Ñ\81Ñ\81Ñ\8bлки|Ñ\81Ñ\81Ñ\8bлок}}",
+       "nmembers": "$1 {{PLURAL:$1|обÑ\8aекÑ\82|обÑ\8aекÑ\82а|обÑ\8aекÑ\82ов}}",
+       "nmemberschanged": "$1 â\86\92 $2 {{PLURAL:$2|обÑ\8aекÑ\82|обÑ\8aекÑ\82а|обÑ\8aекÑ\82ов}}",
+       "nrevisions": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f|веÑ\80Ñ\81ии|веÑ\80Ñ\81ий}}",
+       "nviews": "$1 {{PLURAL:$1|пÑ\80оÑ\81моÑ\82Ñ\80|пÑ\80оÑ\81моÑ\82Ñ\80а|пÑ\80оÑ\81моÑ\82Ñ\80ов}}",
        "nimagelinks": "Используется на $1 {{PLURAL:$1|странице|страницах}}",
        "ntransclusions": "используется на $1 {{PLURAL:$1|странице|страницах}}",
        "specialpage-empty": "Запрос не дал результатов.",
        "uncategorizedtemplates": "Некатегоризованные шаблоны",
        "unusedcategories": "Неиспользуемые категории",
        "unusedimages": "Неиспользуемые файлы",
-       "popularpages": "Популярные страницы",
        "wantedcategories": "Требуемые категории",
        "wantedpages": "Требуемые страницы",
        "wantedpages-badtitle": "Ошибочный заголовок в результатах запроса: $1",
        "listusers-editsonly": "Показать только тех участников, кто сделал хотя бы одну правку",
        "listusers-creationsort": "Упорядочить по дате создания",
        "listusers-desc": "Сортировать по убыванию",
-       "usereditcount": "$1 {{PLURAL:$1|пÑ\80авка|пÑ\80авок|пÑ\80авки}}",
+       "usereditcount": "$1 {{PLURAL:$1|пÑ\80авка|пÑ\80авки|пÑ\80авок}}",
        "usercreated": "{{GENDER:$3|зарегистрировался|зарегистрировалась}} $1 в $2",
        "newpages": "Новые страницы",
        "newpages-username": "Участник:",
        "notargettext": "Вы не указали целевую страницу или участника для этого действия.",
        "nopagetitle": "Нет такой целевой страницы",
        "nopagetext": "Указанной целевой страницы не существует.",
-       "pager-newer-n": "$1 более {{PLURAL:$1|новая|новых|новые}}",
-       "pager-older-n": "$1 более {{PLURAL:$1|старая|старых|старые}}",
+       "pager-newer-n": "$1 более {{PLURAL:$1|новая|новые|новых}}",
+       "pager-older-n": "$1 более {{PLURAL:$1|старая|старые|старых}}",
        "suppress": "Сокрытие",
        "querypage-disabled": "Эта спецстраница отключена для повышения производительности.",
+       "apihelp": "Справка по API",
+       "apihelp-no-such-module": "Модуль «$1» не найден.",
        "booksources": "Источники книг",
        "booksources-search-legend": "Поиск информации о книге",
        "booksources-isbn": "ISBN:",
        "listusers-noresult": "Не найдено участников.",
        "listusers-blocked": "(заблокирован{{GENDER:$1||а}})",
        "activeusers": "Список активных участников",
-       "activeusers-intro": "Это список участников, совершавших какие-либо действия за {{PLURAL:$1|последний $1 день|последние $1 дней|последние $1 дня|1=последний день}}.",
-       "activeusers-count": "$1 {{PLURAL:$1|пÑ\80авка|пÑ\80авок|пÑ\80авки}} Ð·Ð° {{PLURAL:$3|$3 Ð¿Ð¾Ñ\81ледний Ð´ÐµÐ½Ñ\8c|поÑ\81ледние $3 Ð´Ð½ÐµÐ¹|поÑ\81ледние $3 Ð´Ð½Ñ\8f|1=последний день}}",
+       "activeusers-intro": "Это список участников, совершавших какие-либо действия за {{PLURAL:$1|последний $1 день|последние $1 дня|последние $1 дней|1=последний день}}.",
+       "activeusers-count": "$1 {{PLURAL:$1|пÑ\80авка|пÑ\80авки|пÑ\80авок}} Ð·Ð° {{PLURAL:$3|$3 Ð¿Ð¾Ñ\81ледний Ð´ÐµÐ½Ñ\8c|поÑ\81ледние $3 Ð´Ð½Ñ\8f|поÑ\81ледние $3 Ð´Ð½ÐµÐ¹|1=последний день}}",
        "activeusers-from": "Показать участников, начиная с:",
        "activeusers-hidebots": "Скрыть ботов",
        "activeusers-hidesysops": "Скрыть администраторов",
        "mywatchlist": "Список наблюдения",
        "watchlistfor2": "Для $1 $2",
        "nowatchlist": "Ваш список наблюдения пуст.",
-       "watchlistanontext": "Ð\92Ñ\8b Ð´Ð¾Ð»Ð¶Ð½Ñ\8b Ð²Ð¾Ð¹Ñ\82и, чтобы просмотреть или отредактировать элементы в списке наблюдения.",
+       "watchlistanontext": "Ð\9fожалÑ\83йÑ\81Ñ\82а, Ð²Ð¾Ð¹Ð´Ð¸Ñ\82е, чтобы просмотреть или отредактировать элементы в списке наблюдения.",
        "watchnologin": "Нужно представиться системе",
        "addwatch": "Добавить в список наблюдения",
        "addedwatchtext": "Страница «[[:$1]]» была добавлена в ваш [[Special:Watchlist|список наблюдения]].\nТам будут отмечаться последующие изменения этой страницы, а также связанной с ней страницы обсуждения.",
        "unwatchthispage": "Прекратить наблюдение",
        "notanarticle": "Не статья",
        "notvisiblerev": "Версия была удалена",
-       "watchlist-details": "В вашем списке наблюдения $1 {{PLURAL:$1|страница|страниц|страницы}}, не считая страниц обсуждений.",
+       "watchlist-details": "В вашем списке наблюдения $1 {{PLURAL:$1|страница|страницы|страниц}}, не считая страниц обсуждений.",
        "wlheader-enotif": "Уведомления по эл. почте включены.",
        "wlheader-showupdated": "Страницы, изменившиеся с вашего последнего их посещения, выделены '''жирным''' шрифтом.",
-       "wlnote": "Ниже {{PLURAL:$1|показано последнее изменение|показаны <strong>$1</strong> последних изменений|показаны <strong>$1</strong> последние изменения}} за {{PLURAL:$2|последний час|последние <strong>$2</strong> часов|последние <strong>$2</strong> часа}}, по состоянию на $3 $4.",
+       "wlnote": "Ниже {{PLURAL:$1|показано последнее изменение|показаны <strong>$1</strong> последние изменения|показаны <strong>$1</strong> последних изменений}} за {{PLURAL:$2|последний час|последние <strong>$2</strong> часа|последние <strong>$2</strong> часов}}, по состоянию на $3 $4.",
        "wlshowlast": "Показать за последние $1 часов $2 дней",
        "watchlist-options": "Настройки списка наблюдения",
        "watching": "Добавление в список наблюдения…",
        "rollback": "Откатить изменения",
        "rollback_short": "Откат",
        "rollbacklink": "откатить",
-       "rollbacklinkcount": "оÑ\82каÑ\82иÑ\82Ñ\8c $1 {{PLURAL:$1|пÑ\80авкÑ\83|пÑ\80авок|пÑ\80авки}}",
-       "rollbacklinkcount-morethan": "оÑ\82каÑ\82иÑ\82Ñ\8c Ð±Ð¾Ð»Ñ\8cÑ\88е, Ñ\87ем $1 {{PLURAL:$1|пÑ\80авкÑ\83|пÑ\80авок|пÑ\80авки}}",
+       "rollbacklinkcount": "оÑ\82каÑ\82иÑ\82Ñ\8c $1 {{PLURAL:$1|пÑ\80авкÑ\83|пÑ\80авки|пÑ\80авок}}",
+       "rollbacklinkcount-morethan": "оÑ\82каÑ\82иÑ\82Ñ\8c Ð±Ð¾Ð»Ñ\8cÑ\88е, Ñ\87ем $1 {{PLURAL:$1|пÑ\80авкÑ\83|пÑ\80авки|пÑ\80авок}}",
        "rollbackfailed": "Ошибка при совершении отката",
        "cantrollback": "Невозможно откатить изменения. Последний, кто вносил изменения, является единственным автором этой страницы.",
        "alreadyrolled": "Невозможно откатить последние изменения страницы «[[:$1]]», совершённые [[User:$2|$2]] ([[User talk:$2|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]),\nпоскольку кто-то другой уже успел откатить эти правки или отредактировать страницу.\n\nПоследние изменения {{GENDER:$3|внёс|внесла}} [[User:$3|$3]] ([[User talk:$3|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "undeleteinvert": "Обратить выделение",
        "undeletecomment": "Причина:",
        "undeletedrevisions": "{{PLURAL:$1|восстановлено|восстановлены}} $1 {{PLURAL:$1|изменение|изменений|изменения}}",
-       "undeletedrevisions-files": "воÑ\81Ñ\81Ñ\82ановленÑ\8b $1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f|веÑ\80Ñ\81ий|веÑ\80Ñ\81ии}} Ð¸ $2 {{PLURAL:$2|Ñ\84айл|Ñ\84айлов|Ñ\84айла}}",
+       "undeletedrevisions-files": "воÑ\81Ñ\81Ñ\82ановленÑ\8b $1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f|веÑ\80Ñ\81ии|веÑ\80Ñ\81ий}} Ð¸ $2 {{PLURAL:$2|Ñ\84айл|Ñ\84айла|Ñ\84айлов}}",
        "undeletedfiles": "{{PLURAL:$1|восстановлен|восстановлены}} $1 {{PLURAL:$1|файл|файлов|файла}}",
        "cannotundelete": "Ошибка восстановления:\n$1",
        "undeletedpage": "'''Страница «$1» была восстановлена.'''\n\nДля просмотра списка последних удалений и восстановлений см. [[Special:Log/delete|журнал удалений]].",
        "change-blocklink": "изменить блокировку",
        "contribslink": "вклад",
        "emaillink": "отправить письмо",
-       "autoblocker": "Автоблокировка из-за того, что ваш IP-адрес недавно использовал «[[User:$1|$1]]».\nПричина блокировки $1ː «$2»",
+       "autoblocker": "Автоблокировка из-за того, что ваш IP-адрес недавно использовал «[[User:$1|$1]]».\nПричина блокировки $1: «$2»",
        "blocklogpage": "Журнал блокировок",
        "blocklog-showlog": "{{GENDER:$1|Этот участник уже блокировался|Эта участница уже блокировалась}} ранее.\nНиже приведён журнал блокировок:",
        "blocklog-showsuppresslog": "{{GENDER:$1|Этот участник уже заблокирован и скрыт|Эта участница уже заблокирована и скрыта}}. Журнал сокрытий приведён ниже:",
        "movepage-page-exists": "Страница $1 уже существует и не может быть автоматически перезаписана.",
        "movepage-page-moved": "Страница $1 была переименована в $2.",
        "movepage-page-unmoved": "Страница $1 не может быть переименована в $2.",
-       "movepage-max-pages": "{{PLURAL:$1|Ð\91Ñ\8bла Ð¿ÐµÑ\80еименована|Ð\91Ñ\8bли Ð¿ÐµÑ\80еименованÑ\8b\91Ñ\8bло Ð¿ÐµÑ\80еименовано}} $1 {{PLURAL:$1|Ñ\81Ñ\82Ñ\80аниÑ\86а|Ñ\81Ñ\82Ñ\80аниÑ\86\81Ñ\82Ñ\80аниÑ\86Ñ\8b}} — это максимум; большее число страниц автоматически переименовать нельзя.",
+       "movepage-max-pages": "{{PLURAL:$1|Ð\91Ñ\8bла Ð¿ÐµÑ\80еименована|Ð\91Ñ\8bло Ð¿ÐµÑ\80еименовано|Ð\91Ñ\8bли Ð¿ÐµÑ\80еименованÑ\8b}} $1 {{PLURAL:$1|Ñ\81Ñ\82Ñ\80аниÑ\86а|Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b\81Ñ\82Ñ\80аниÑ\86}} — это максимум; большее число страниц автоматически переименовать нельзя.",
        "movelogpage": "Журнал переименований",
        "movelogpagetext": "Ниже представлен список переименованных страниц.",
        "movesubpage": "{{PLURAL:$1|1=Подстраница|Подстраницы}}",
-       "movesubpagetext": "У этой страницы $1 {{PLURAL:$1|подстраница|подстраниц|подстраницы}}.",
+       "movesubpagetext": "У этой страницы $1 {{PLURAL:$1|подстраница|подстраницы|подстраниц}}.",
        "movenosubpage": "У этой страницы нет подстраниц.",
        "movereason": "Причина:",
        "revertmove": "возврат",
        "import-comment": "Примечание:",
        "importtext": "Пожалуйста, экспортируйте страницу из исходной вики, используя [[Special:Export|соответствующий инструмент]]. Сохраните файл на диск, а затем загрузите его сюда.",
        "importstart": "Импортирование страниц…",
-       "import-revision-count": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f|веÑ\80Ñ\81ий|веÑ\80Ñ\81ии}}",
+       "import-revision-count": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f|веÑ\80Ñ\81ии|веÑ\80Ñ\81ий}}",
        "importnopages": "Нет страниц для импортирования.",
-       "imported-log-entries": "{{PLURAL:$1|Импортирована $1 запись|Импортировано $1 записей|Импортированы $1 записи}} журнала.",
+       "imported-log-entries": "{{PLURAL:$1|Импортирована $1 запись|Импортированы $1 записи|Импортировано $1 записей}} журнала.",
        "importfailed": "Не удалось импортировать: $1",
        "importunknownsource": "Неизвестный тип импортируемой страницы",
        "importcantopen": "Невозможно открыть импортируемый файл",
        "importlogpage": "Журнал импорта",
        "importlogpagetext": "Импортирование администраторами страниц с историей изменений из других вики.",
        "import-logentry-upload": "«[[$1]]» — импорт из файла",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ована|веÑ\80Ñ\81ий Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80овано|веÑ\80Ñ\81ии импортировано}}",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ована|веÑ\80Ñ\81ии Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80овано|веÑ\80Ñ\81ий импортировано}}",
        "import-logentry-interwiki": "«$1» — межвики импорт",
-       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ована|веÑ\80Ñ\81ий  Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80овано|веÑ\80Ñ\81ии импортировано}} из $2",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|веÑ\80Ñ\81иÑ\8f Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80ована|веÑ\80Ñ\81ии Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80овано|веÑ\80Ñ\81ий  импортировано}} из $2",
        "javascripttest": "Проверка JavaScript",
        "javascripttest-title": "Проводится проверка $1",
        "javascripttest-pagetext-noframework": "Эта страница зарезервирована для запуска JavaScript-тестов.",
        "tooltip-pt-mycontris": "Список ваших правок",
        "tooltip-pt-login": "Здесь можно зарегистрироваться в системе, но это необязательно.",
        "tooltip-pt-logout": "Завершить сеанс работы",
+       "tooltip-pt-createaccount": "Мы предлагаем вам создать учётную запись и войти в систему, хотя это и не обязательно.",
        "tooltip-ca-talk": "Обсуждение основной страницы",
        "tooltip-ca-edit": "Вы можете редактировать эту страницу. Перед тем, как записать свои изменения, воспользуйтесь, пожалуйста, кнопкой предварительного просмотра.",
        "tooltip-ca-addsection": "Создать новый раздел",
        "tooltip-feed-atom": "Трансляция в Atom для этой страницы",
        "tooltip-t-contributions": "Список страниц, которые изменял этот участник",
        "tooltip-t-emailuser": "Отправить письмо этому участнику",
+       "tooltip-t-info": "Подробнее об этой странице",
        "tooltip-t-upload": "Загрузить файлы",
        "tooltip-t-specialpages": "Список служебных страниц",
        "tooltip-t-print": "Версия этой страницы для печати",
        "pageinfo-robot-policy": "Индексация поисковыми роботами",
        "pageinfo-robot-index": "Разрешено",
        "pageinfo-robot-noindex": "Не разрешено",
-       "pageinfo-views": "Количество просмотров",
        "pageinfo-watchers": "Число наблюдающих",
        "pageinfo-few-watchers": "Менее $1 {{PLURAL:$1|следящего|следящих}}",
        "pageinfo-redirects-name": "Количество перенаправлений на эту страницу",
        "pageinfo-redirects-value": "$1",
        "pageinfo-subpages-name": "Подстраницы данной страницы",
-       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|перенаправление|перенаправлений|перенаправления}}; $3 {{PLURAL:$3|обычная|обычных|обычные}})",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|перенаправление|перенаправления|перенаправлений}}; $3 {{PLURAL:$3|обычная|обычные|обычных}})",
        "pageinfo-firstuser": "Создатель страницы",
        "pageinfo-firsttime": "Дата создания страницы",
        "pageinfo-lastuser": "Последний редактор",
        "imagemaxsize": "Ограничение на размер изображения:<br />''(для страницы описания файла)''",
        "thumbsize": "Размер уменьшенной версии изображения:",
        "widthheight": "$1 × $2",
-       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|страница|страниц|страницы}}",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|страница|страницы|страниц}}",
        "file-info": "размер файла: $1, MIME-тип: $2",
-       "file-info-size": "$1 × $2 {{PLURAL:$2|пиксель|пикселей|пикселя}}, размер файла: $3, MIME-тип: $4",
-       "file-info-size-pages": "$1 × $2 пикселей, размер файла: $3, MIME-тип: $4, $5 {{PLURAL:$5|страница|страниц|страницы}}",
+       "file-info-size": "$1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3, MIME-тип: $4",
+       "file-info-size-pages": "$1 × $2 пикселей, размер файла: $3, MIME-тип: $4, $5 {{PLURAL:$5|страница|страницы|страниц}}",
        "file-nohires": "Нет версии с бо́льшим разрешением.",
-       "svg-long-desc": "SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселей|пикселя}}, размер файла: $3",
-       "svg-long-desc-animated": "Анимированный SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселей|пикселя}}, размер файла: $3",
+       "svg-long-desc": "SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3",
+       "svg-long-desc-animated": "Анимированный SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3",
        "svg-long-error": "неправильный SVG-файл: $1",
        "show-big-image": "Исходный файл",
        "show-big-image-preview": "Размер при предпросмотре: $1.",
        "show-big-image-other": "{{PLURAL:$2|1=Другое разрешение|Другие разрешения}}: $1.",
        "show-big-image-size": "$1 × $2 пикселей",
        "file-info-gif-looped": "закольцованный",
-       "file-info-gif-frames": "$1 {{PLURAL:$1|Ñ\84Ñ\80ейм|Ñ\84Ñ\80еймов|Ñ\84Ñ\80ейма}}",
+       "file-info-gif-frames": "$1 {{PLURAL:$1|Ñ\84Ñ\80ейм|Ñ\84Ñ\80ейма|Ñ\84Ñ\80еймов}}",
        "file-info-png-looped": "закольцованный",
-       "file-info-png-repeat": "проигрывается $1 {{PLURAL:$1|раз|раз|раза}}",
-       "file-info-png-frames": "$1 {{PLURAL:$1|кадÑ\80|кадÑ\80ов|кадÑ\80а}}",
+       "file-info-png-repeat": "проигрывается $1 {{PLURAL:$1|раз|раза|раз}}",
+       "file-info-png-frames": "$1 {{PLURAL:$1|кадÑ\80|кадÑ\80а|кадÑ\80ов}}",
        "file-no-thumb-animation": "'''Примечание. По техническим причинам миниатюры этого файла не будет анимироваться.'''",
        "file-no-thumb-animation-gif": "'''Примечание. По техническим причинам миниатюры подобных GIF-изображений высокого разрешения не анимируются.'''",
        "newimages": "Галерея новых файлов",
        "minutes-abbrev": "$1 м",
        "hours-abbrev": "$1 ч",
        "days-abbrev": "$1 д",
-       "seconds": "{{PLURAL:$1|$1 секунда|$1 секунд|$1 секунды}}",
-       "minutes": "{{PLURAL:$1|$1 минута|$1 минут|$1 минуты}}",
-       "hours": "{{PLURAL:$1|$1 Ñ\87аÑ\81|$1 Ñ\87аÑ\81ов|$1 Ñ\87аÑ\81а}}",
-       "days": "{{PLURAL:$1|$1 день|$1 дней|$1 дня}}",
-       "weeks": "{{PLURAL:$1|$1 неделя|$1 недель|$1 недели}}",
-       "months": "{{PLURAL:$1|$1 Ð¼ÐµÑ\81Ñ\8fÑ\86|$1 Ð¼ÐµÑ\81Ñ\8fÑ\86ев|$1 Ð¼ÐµÑ\81Ñ\8fÑ\86а}}",
-       "years": "{{PLURAL:$1|$1 Ð³Ð¾Ð´|$1 Ð»ÐµÑ\82|$1 Ð³Ð¾Ð´Ð°}}",
+       "seconds": "{{PLURAL:$1|$1 секунда|$1 секунды|$1 секунд}}",
+       "minutes": "{{PLURAL:$1|$1 минута|$1 минуты|$1 минут}}",
+       "hours": "{{PLURAL:$1|$1 Ñ\87аÑ\81|$1 Ñ\87аÑ\81а|$1 Ñ\87аÑ\81ов}}",
+       "days": "{{PLURAL:$1|$1 день|$1 дня|$1 дней}}",
+       "weeks": "{{PLURAL:$1|$1 неделя|$1 недели|$1 недель}}",
+       "months": "{{PLURAL:$1|$1 Ð¼ÐµÑ\81Ñ\8fÑ\86|$1 Ð¼ÐµÑ\81Ñ\8fÑ\86а|$1 Ð¼ÐµÑ\81Ñ\8fÑ\86ев}}",
+       "years": "{{PLURAL:$1|$1 Ð³Ð¾Ð´|$1 Ð³Ð¾Ð´Ð°|$1 Ð»ÐµÑ\82}}",
        "ago": "$1 назад",
        "just-now": "только что",
-       "hours-ago": "$1 {{PLURAL:$1|Ñ\87аÑ\81\87аÑ\81ов|Ñ\87аÑ\81а}} назад",
-       "minutes-ago": "$1 {{PLURAL:$1|минуту|минут|минуты}} назад",
-       "seconds-ago": "$1 {{PLURAL:$1|секунду|секунд|секунды}} назад",
+       "hours-ago": "$1 {{PLURAL:$1|Ñ\87аÑ\81\87аÑ\81а|Ñ\87аÑ\81ов}} назад",
+       "minutes-ago": "$1 {{PLURAL:$1|минуту|минуты|минут}} назад",
+       "seconds-ago": "$1 {{PLURAL:$1|секунду|секунды|секунд}} назад",
        "monday-at": "в понедельник в $1",
        "tuesday-at": "во вторник в $1",
        "wednesday-at": "в среду в $1",
        "exif-exposureprogram-6": "Спортивный режим (с минимальной выдержкой)",
        "exif-exposureprogram-7": "Портретный режим (для снимков на близком расстоянии, с фоном не в фокусе)",
        "exif-exposureprogram-8": "Пейзажный режим (для пейзажных снимков, с фоном в фокусе)",
-       "exif-subjectdistance-value": "$1 {{PLURAL:$1|меÑ\82Ñ\80|меÑ\82Ñ\80ов|меÑ\82Ñ\80а}}",
+       "exif-subjectdistance-value": "$1 {{PLURAL:$1|меÑ\82Ñ\80|меÑ\82Ñ\80а|меÑ\82Ñ\80ов}}",
        "exif-meteringmode-0": "Неизвестно",
        "exif-meteringmode-1": "Средний",
        "exif-meteringmode-2": "Центровзвешенный",
        "exif-gpslatitude-s": "южной широты",
        "exif-gpslongitude-e": "восточной долготы",
        "exif-gpslongitude-w": "западной долготы",
-       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|меÑ\82Ñ\80|меÑ\82Ñ\80ов|меÑ\82Ñ\80а}} над уровнем моря",
-       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|меÑ\82Ñ\80|меÑ\82Ñ\80ов|меÑ\82Ñ\80а}} ниже уровня моря",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|меÑ\82Ñ\80|меÑ\82Ñ\80а|меÑ\82Ñ\80ов}} над уровнем моря",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|меÑ\82Ñ\80|меÑ\82Ñ\80а|меÑ\82Ñ\80ов}} ниже уровня моря",
        "exif-gpsstatus-a": "Измерение не закончено",
        "exif-gpsstatus-v": "Готов к передаче данных",
        "exif-gpsmeasuremode-2": "Измерение 2-х координат",
        "watchlistedit-normal-legend": "Удаление записей из списка наблюдения",
        "watchlistedit-normal-explain": "Ниже перечислены страницы, находящиеся в вашем списке наблюдения.\nДля удаления записей отметьте соответствующие позиции и нажмите кнопку «{{int:Watchlistedit-normal-submit}}».\nВы также можете [[Special:EditWatchlist/raw|править список как текст]].",
        "watchlistedit-normal-submit": "Удалить записи",
-       "watchlistedit-normal-done": "Ð\98з Ð²Ð°Ñ\88его Ñ\81пиÑ\81ка Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f {{PLURAL:$1|бÑ\8bла Ñ\83далена|бÑ\8bло Ñ\83далено|бÑ\8bли Ñ\83даленÑ\8b}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81ей|запиÑ\81и}}:",
+       "watchlistedit-normal-done": "Ð\98з Ð²Ð°Ñ\88его Ñ\81пиÑ\81ка Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f {{PLURAL:$1|бÑ\8bла Ñ\83далена|бÑ\8bли Ñ\83даленÑ\8b|бÑ\8bло Ñ\83далено}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81и|запиÑ\81ей}}:",
        "watchlistedit-raw-title": "Редактирование списка наблюдения как текста",
        "watchlistedit-raw-legend": "Редактирование списка наблюдения",
        "watchlistedit-raw-explain": "Ниже перечислены страницы, находящиеся в вашем списке наблюдения. Вы можете изменять этот список, добавляя и удаляя из него строки с названиями, по одному названию на строке.\nПосле завершения правок нажмите кнопку «{{int:Watchlistedit-raw-submit}}».\nВы также можете [[Special:EditWatchlist|использовать стандартный редактор]].",
        "watchlistedit-raw-titles": "Записи:",
        "watchlistedit-raw-submit": "Сохранить список",
        "watchlistedit-raw-done": "Ваш список наблюдения сохранён.",
-       "watchlistedit-raw-added": "{{PLURAL:$1|Ð\91Ñ\8bла Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð°|Ð\91Ñ\8bло Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾|Ð\91Ñ\8bли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ\8b}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81ей|запиÑ\81и}}:",
-       "watchlistedit-raw-removed": "{{PLURAL:$1|Ð\91Ñ\8bла Ñ\83далена|Ð\91Ñ\8bло Ñ\83далено|Ð\91Ñ\8bли Ñ\83даленÑ\8b}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81ей|запиÑ\81и}}:",
+       "watchlistedit-raw-added": "{{PLURAL:$1|Ð\91Ñ\8bла Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð°|Ð\91Ñ\8bли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ\8b\91Ñ\8bло Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81и|запиÑ\81ей}}:",
+       "watchlistedit-raw-removed": "{{PLURAL:$1|Ð\91Ñ\8bла Ñ\83далена|Ð\91Ñ\8bли Ñ\83даленÑ\8b\91Ñ\8bло Ñ\83далено}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81и|запиÑ\81ей}}:",
        "watchlistedit-clear-title": "Очищение списка наблюдения",
        "watchlistedit-clear-legend": "Очистить список наблюдения",
        "watchlistedit-clear-explain": "Все записи будут удалены из вашего списка наблюдения",
        "watchlistedit-clear-titles": "Заголовки:",
        "watchlistedit-clear-submit": "Очистить список наблюдения (это необратимо!)",
        "watchlistedit-clear-done": "Ваш список наблюдения очищен.",
-       "watchlistedit-clear-removed": "{{PLURAL:$1|Ð\91Ñ\8bла Ñ\83далена|Ð\91Ñ\8bло Ñ\83далено|Ð\91Ñ\8bли Ñ\83даленÑ\8b}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81ей|запиÑ\81и}}:",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Ð\91Ñ\8bла Ñ\83далена|Ð\91Ñ\8bли Ñ\83даленÑ\8b\91Ñ\8bло Ñ\83далено}} $1 {{PLURAL:$1|запиÑ\81Ñ\8c|запиÑ\81и|запиÑ\81ей}}:",
        "watchlistedit-too-many": "Слишком много страниц для того, чтобы показать их здесь.",
        "watchlisttools-clear": "Очистить список наблюдения",
        "watchlisttools-view": "Изменения на страницах из списка",
        "unknown_extension_tag": "Неизвестный тег расширения «$1»",
        "duplicate-defaultsort": "Внимание. Ключ сортировки по умолчанию «$2» переопределяет прежний ключ сортировки по умолчанию «$1».",
        "duplicate-displaytitle": "<strong>Внимание:</strong> Отображаемое название «$2» переопределяет ранее заданное отображаемое название «$1».",
+       "invalid-indicator-name": "<strong>Ошибка:</strong> Атрибут <code>name</code> индикаторов состояния страницы не должен быть пустым.",
        "version": "Версия",
        "version-extensions": "Установленные расширения",
        "version-skins": "Установленные темы оформления",
        "fileduplicatesearch-legend": "Поиск дубликатов",
        "fileduplicatesearch-filename": "Имя файла:",
        "fileduplicatesearch-submit": "Найти",
-       "fileduplicatesearch-info": "$1 × $2 {{PLURAL:$2|пиксель|пикселей|пикселя}}<br />Размер файла: $3<br />MIME-тип: $4",
+       "fileduplicatesearch-info": "$1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}<br />Размер файла: $3<br />MIME-тип: $4",
        "fileduplicatesearch-result-1": "Файл «$1» не имеет идентичных дубликатов.",
-       "fileduplicatesearch-result-n": "Файл Â«$1» Ð¸Ð¼ÐµÐµÑ\82 $2 {{PLURAL:$2|иденÑ\82иÑ\87нÑ\8bй Ð´Ñ\83бликаÑ\82|иденÑ\82иÑ\87нÑ\8bÑ\85 Ð´Ñ\83бликаÑ\82ов|иденÑ\82иÑ\87нÑ\8bÑ\85 Ð´Ñ\83бликаÑ\82а}}.",
+       "fileduplicatesearch-result-n": "Файл Â«$1» Ð¸Ð¼ÐµÐµÑ\82 $2 {{PLURAL:$2|иденÑ\82иÑ\87нÑ\8bй Ð´Ñ\83бликаÑ\82|иденÑ\82иÑ\87нÑ\8bÑ\85 Ð´Ñ\83бликаÑ\82а|иденÑ\82иÑ\87нÑ\8bÑ\85 Ð´Ñ\83бликаÑ\82ов}}.",
        "fileduplicatesearch-noresults": "Не найден файл с именем «$1».",
        "specialpages": "Спецстраницы",
        "specialpages-note-top": "Легенда",
        "tags-active-yes": "Да",
        "tags-active-no": "Нет",
        "tags-edit": "править",
-       "tags-hitcount": "$1 {{PLURAL:$1|изменение|изменений|изменения}}",
+       "tags-hitcount": "$1 {{PLURAL:$1|изменение|изменения|изменений}}",
        "comparepages": "Сравнение страниц",
        "compare-page1": "Первая страница",
        "compare-page2": "Вторая страница",
        "revdelete-uname-unhid": "имя участника раскрыто",
        "revdelete-restricted": "ограничения применяются к администраторам",
        "revdelete-unrestricted": "ограничения сняты для администраторов",
+       "logentry-merge-merge": "$1 объедининил{{GENDER:$2||а}} $3 в $4 (версии до $5)",
        "logentry-move-move": "$1 {{GENDER:$2|переименовал|переименовала}} страницу $3 в $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|переименовал|переименовала}} страницу $3 в $4 без оставления перенаправления",
        "logentry-move-move_redir": "$1 {{GENDER:$2|переименовал|переименовала}} страницу $3 в $4 поверх перенаправления",
        "api-error-unknownerror": "Неизвестная ошибка: «$1».",
        "api-error-uploaddisabled": "В этой вики отключена возможность загрузки файлов.",
        "api-error-verification-error": "Возможно, этот файл повреждён или имеет неправильное расширение.",
-       "duration-seconds": "$1 {{PLURAL:$1|секунда|секунд|секунды}}",
-       "duration-minutes": "$1 {{PLURAL:$1|минута|минут|минуты}}",
-       "duration-hours": "$1 {{PLURAL:$1|Ñ\87аÑ\81\87аÑ\81ов|Ñ\87аÑ\81а}}",
-       "duration-days": "$1 {{PLURAL:$1|день|дней|дня}}",
-       "duration-weeks": "$1 {{PLURAL:$1|неделя|недель|недели}}",
-       "duration-years": "$1 {{PLURAL:$1|год|леÑ\82|года}}",
-       "duration-decades": "$1 {{PLURAL:$1|десятилетие|десятилетий|десятилетия}}",
-       "duration-centuries": "$1 {{PLURAL:$1|век|веков|века}}",
-       "duration-millennia": "$1 {{PLURAL:$1|тысячелетие|тысячелетий|тысячелетия}}",
-       "rotate-comment": "Ð\98зобÑ\80ажение Ð¿Ð¾Ð²Ñ\91Ñ\80нÑ\83Ñ\82о Ð½Ð° $1 Ð³Ñ\80адÑ\83Ñ\81{{PLURAL:$1||ов|а}} по часовой стрелке",
+       "duration-seconds": "$1 {{PLURAL:$1|секунда|секунды|секунд}}",
+       "duration-minutes": "$1 {{PLURAL:$1|минута|минуты|минут}}",
+       "duration-hours": "$1 {{PLURAL:$1|Ñ\87аÑ\81\87аÑ\81а|Ñ\87аÑ\81ов}}",
+       "duration-days": "$1 {{PLURAL:$1|день|дня|дней}}",
+       "duration-weeks": "$1 {{PLURAL:$1|неделя|недели|недель}}",
+       "duration-years": "$1 {{PLURAL:$1|год|года|леÑ\82}}",
+       "duration-decades": "$1 {{PLURAL:$1|десятилетие|десятилетия|десятилетий}}",
+       "duration-centuries": "$1 {{PLURAL:$1|век|века|веков}}",
+       "duration-millennia": "$1 {{PLURAL:$1|тысячелетие|тысячелетия|тысячелетий}}",
+       "rotate-comment": "Ð\98зобÑ\80ажение Ð¿Ð¾Ð²Ñ\91Ñ\80нÑ\83Ñ\82о Ð½Ð° $1 Ð³Ñ\80адÑ\83Ñ\81{{PLURAL:$1||а|ов}} по часовой стрелке",
        "limitreport-title": "Данные анализатора:",
        "limitreport-cputime": "Использование времени процессора",
-       "limitreport-cputime-value": "$1 {{PLURAL:$1|секунда|секунд|секунды}}",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|секунда|секунды|секунд}}",
        "limitreport-walltime": "Использование в режиме реального времени",
-       "limitreport-walltime-value": "$1 {{PLURAL:$1|секунда|секунд|секунды}}",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|секунда|секунды|секунд}}",
        "limitreport-ppvisitednodes": "Количество узлов, посещённых препроцессором",
        "limitreport-ppgeneratednodes": "Количество сгенерированных препроцессором узлов",
        "limitreport-postexpandincludesize": "Размер раскрытых включений",
-       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|байÑ\82|байÑ\82ов|байÑ\82а}}",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|байÑ\82|байÑ\82а|байÑ\82ов}}",
        "limitreport-templateargumentsize": "Размер аргумента шаблона",
-       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|байÑ\82|байÑ\82ов|байÑ\82а}}",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|байÑ\82|байÑ\82а|байÑ\82ов}}",
        "limitreport-expansiondepth": "Наибольшая глубина расширения",
        "limitreport-expensivefunctioncount": "Количество «дорогих» функций анализатора",
        "expandtemplates": "Развёртка шаблонов",
        "log-name-pagelang": "Журнал изменения языка",
        "log-description-pagelang": "Это журнал изменений в языках страницы.",
        "logentry-pagelang-pagelang": "$1 изменил{{GENDER:$2||а}} язык страницы для $3 с $4 на $5.",
-       "default-skin-not-found": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nВаша установка, похоже, содержит следующие темы оформления. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.\n\n\n$ 2\n\n\n; Если вы только что установили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* Скачав [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений. Вы можете скопировать папку <code>skins/</code> из него.\n:* Склонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code  dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\n: Это не должно навредить вашему репозиторию, если вы MediaWiki-разработчик. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.\n; Если вы только что обновили MediaWiki:\n: MediaWiki версии 1.24 и более новых больше не включает автоматически установленные темы (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]).\nВы можете вставить следующие строчки в <code>LocalSettings.php</code>, чтобы включить все установленные темы оформления: \n\n\n<pre dir=\"ltr\">$3</pre>\n\n\n; Если вы только что изменили <code>LocalSettings.php</code>:\n: Перепроверьте названия тем на наличие опечаток.",
-       "default-skin-not-found-no-skins": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\n\nУ вас нет установленных тем оформления.\n\n\n; Если вы только что установили или обновили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. MediaWiki версии 1.24 или более поздней не содержат темы оформления в основном репозитории. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* Скачав [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений. Вы можете скопировать папку <code>skins/</code> из него.\n:* Склонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\n: Это не должно навредить вашему репозиторию, если вы MediaWiki-разработчик. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.",
+       "default-skin-not-found": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nВаша установка, похоже, содержит следующие темы оформления. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.\n\n$ 2\n\n; Если вы только что установили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* Загрузив [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений. Вы можете скопировать папку <code>skins/</code> из него.\n:* Клонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code  dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\n: Это не должно навредить вашему репозиторию, если вы MediaWiki-разработчик. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.\n; Если вы только что обновили MediaWiki:\n: MediaWiki версии 1.24 и новее больше не включает автоматически установленные темы (см. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]).\nВы можете вставить следующие строки в <code>LocalSettings.php</code>, чтобы включить все установленные темы оформления: \n\n\n<pre dir=\"ltr\">$3</pre>\n\n\n; Если вы только что изменили <code>LocalSettings.php</code>:\n: Перепроверьте названия тем на наличие опечаток.",
+       "default-skin-not-found-no-skins": "Упс! Тема оформления по умолчанию для вашей вики <code>$wgDefaultSkin</code>, <code>$1</code> недоступна.\n\nУ вас нет установленных тем оформления.\n\n; Если вы только что установили или обновили MediaWiki:\n: Вы, видимо, сделали это с Git или непосредственно из исходного кода с использованием другого способа. Тогда такое возможно. MediaWiki версии 1.24 и новее не содержат темы оформления в основном репозитории. Попробуйте установить некоторые темы из [https://www.mediawiki.org/wiki/Category:All_skins каталога тем оформления сайта mediawiki.org]:\n:* Загрузив [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений. Вы можете скопировать папку <code>skins/</code> из него.\n:* Клонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\n: Это не должно навредить вашему репозиторию, если вы MediaWiki-разработчик. См. [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration] для получения информации о том, как включить темы оформления и выбрать тему по умолчанию.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (включено)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''отключено''')",
        "mediastatistics": "Медиа-статистика",
        "mediastatistics-summary": "Статистические данные о типах загруженных файлов. Она включает информацию только о последних версиях файлов. Более старые или удалённые версии файлов не учитываются.",
-       "mediastatistics-nbytes": "$1 Ð±Ð°Ð¹Ñ\82{{PLURAL:$1||ов|а}} ($2; $3%)",
+       "mediastatistics-nbytes": "$1 Ð±Ð°Ð¹Ñ\82{{PLURAL:$1||а|ов}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-тип",
        "mediastatistics-table-extensions": "Возможные расширения",
        "mediastatistics-table-count": "Количество файлов",
        "mediastatistics-header-drawing": "Рисунки (векторные изображения)",
        "mediastatistics-header-audio": "Аудио",
        "mediastatistics-header-video": "Видео",
-       "mediastatistics-header-multimedia": "РиÑ\87-медиа",
+       "mediastatistics-header-multimedia": "Ð\9cÑ\83лÑ\8cÑ\82имедиа",
        "mediastatistics-header-office": "Офисные",
        "mediastatistics-header-text": "Текстовые",
        "mediastatistics-header-executable": "Исполняемые",
-       "mediastatistics-header-archive": "Ð\90Ñ\80Ñ\85ивы",
-       "json-warn-trailing-comma": "$1 {{PLURAL:$1|лишняя запятая в конце была удалена|лишних запятых в конце были удалены|лишние запятые в конце были удалены}} из JSON",
+       "mediastatistics-header-archive": "СжаÑ\82Ñ\8bе Ñ\84оÑ\80маÑ\82ы",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|лишняя запятая в конце была удалена|лишние запятые в конце были удалены|лишних запятых в конце были удалены}} из JSON",
        "json-error-unknown": "Имеется проблема с JSON. Ошибка: $1",
        "json-error-depth": "Превышена максимальная глубина стека",
        "json-error-state-mismatch": "Недопустимый или неправильно составленный JSON",
index 988f541..c723ae6 100644 (file)
        "passwordreset-capture-help": "Кідь означіте тото поличко, буде імейл (з дочасным геслом) оркем посланя хоснователёви указаный і вам.",
        "passwordreset-email": "Адреса електронічной пошты:",
        "passwordreset-emailtitle": "Детайлы конта на {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Дахто (може Вы, з IP адресы $1) попросив о наставлїня нового гесла до вашого конта на {{grammar:6sg|{{SITENAME}}}} ($4). З тов адресов {{PLURAL:$3|є повязане наступне конто|суть повазяны слїдуючі конта}}:\n\n$2\n\n{{PLURAL:$3|Тото дочасне гесло|Тоты дочасны гесла}} стануть неплатныма {{PLURAL:$5|за день|за $5 днї|за $5 днїв}}.\nТеперь бы хотїло, бы сьте ся приголосили та зволлил нове гесло. Кідь тоту просьбу післав хтось другый або сьте ся на старе гесло роспамнятали і не хочете го змінити, можете тото повідомлїня іґноровати та дале хосновати старе гесло.",
-       "passwordreset-emailtext-user": "{{gender:$1|ХоÑ\81новаÑ\82елÑ\8c|ХоÑ\81новаÑ\82елÑ\8cка|ХоÑ\81новаÑ\82елÑ\8c}} $1 {{grammar:2sg|{{SITENAME}}}} {{gender:$1|попÑ\80оÑ\81ив|попÑ\80оÑ\81ила|попÑ\80оÑ\81ив}} Ð¾ Ð½Ð°Ñ\81Ñ\82авлÑ\97нÑ\8f Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð³ÐµÑ\81ла Ðº Ð²Ð°Ñ\88омÑ\83\nконÑ\82Ñ\83 Ð½Ð° {{grammar:6sg|{{SITENAME}}}} ($4). Ð\9a Ñ\82Ñ\96й Ð°Ð´Ñ\80еÑ\81Ñ\97 {{PLURAL:$3|Ñ\94 Ñ\81пÑ\80Ñ\8fжене Ð½Ð°Ñ\81Ñ\82Ñ\83пне ÐºÐ¾Ð½Ñ\82о|Ñ\81Ñ\83Ñ\82Ñ\8c Ñ\81пÑ\80Ñ\8fженÑ\8b Ð½Ð°Ñ\81Ñ\82Ñ\83пнÑ\83 ÐºÐ¾Ð½Ñ\82а}}:\n\n$2\n\n{{PLURAL:$3|ТоÑ\82о Ð´Ð¾Ñ\87аÑ\81не Ð³ÐµÑ\81ло|ТоÑ\82Ñ\8b Ð´Ð¾Ñ\87аÑ\81нÑ\8b Ð³ÐµÑ\81ла}} ÐºÑ\96нÑ\87аÑ\82Ñ\8c {{PLURAL:$5|о Ñ\94ден Ð´ÐµÐ½Ñ\8c|о $5 Ð´Ð½Ñ\97|о $5 Ð´Ð½Ñ\97в}}.\nÐ\9dÑ\8bнÑ\97 Ð±Ñ\8b Ñ\81Ñ\8cÑ\82е Ñ\81Ñ\8f Ð¼Ð°Ð²(а) Ð¿Ñ\80иголоÑ\81иÑ\82и Ñ\83 Ð·Ð²Ð¾Ð»Ð¸Ñ\82и Ñ\81обÑ\96 Ð½Ð¾Ð²Ðµ Ð³ÐµÑ\81ло. Ð\9aÑ\96дÑ\8c Ñ\82оÑ\82Ñ\83 Ð¿Ð¾Ð¶Ð°Ð´Ð°Ð²ÐºÑ\83\nпоÑ\81лав Ð´Ð°Ñ\85Ñ\82о Ð´Ñ\80Ñ\83гÑ\8bй Ð°Ð±Ð¾ Ñ\81Ñ\8cÑ\82е Ñ\81обÑ\96 Ð½Ð° Ñ\81воÑ\94 Ñ\81Ñ\82аÑ\80е Ð³ÐµÑ\81ло Ñ\81помÑ\8fнÑ\83в(а),і не хочете го\nзмінити, можете тото повідомлїня іґноровати і надале хосновати старе гесло.",
+       "passwordreset-emailtext-ip": "Дахто (може Вы, з IP адресы $1) попросив о наставлїня нового гесла до вашого конта на {{grammar:6sg|{{SITENAME}}}} ($4). З тов адресов {{PLURAL:$3|є повязане слїдуюче конто|суть повязаны слїдуючі конта}}:\n\n$2\n\n{{PLURAL:$3|Тото дочасне гесло стане неплатным|Тоты дочасны гесла стануть неплатныма}} {{PLURAL:$5|за день|за $5 днї|за $5 днїв}}.\nТеперь бы сьте ся мали приголосити і зволити собі нове гесло. Кідь тоту просьбу послав хтось другый або сьте собі на своє старе гесло спомянули і не хочете го змінити, можете тото повідомлїня іґноровати і дале хосновати старе гесло.",
+       "passwordreset-emailtext-user": "{{gender:$1|ХоÑ\81новаÑ\82елÑ\8c|ХоÑ\81новаÑ\82елÑ\8cка|ХоÑ\81новаÑ\82елÑ\8c}} $1 {{grammar:2sg|{{SITENAME}}}} {{gender:$1|попÑ\80оÑ\81ив|попÑ\80оÑ\81ила|попÑ\80оÑ\81ив}} Ð¾ Ð½Ð°Ñ\81Ñ\82авлÑ\97нÑ\8f Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð³ÐµÑ\81ла Ð´Ð¾ Ð²Ð°Ñ\88ого\nконÑ\82а Ð½Ð° {{grammar:6sg|{{SITENAME}}}} ($4). Ð\97 Ñ\82ов Ð°Ð´Ñ\80еÑ\81ов {{PLURAL:$3|Ñ\94 Ð¿Ð¾Ð²Ñ\8fзане Ð½Ð°Ñ\81Ñ\82Ñ\83пне ÐºÐ¾Ð½Ñ\82о|Ñ\81Ñ\83Ñ\82Ñ\8c Ð¿Ð¾Ð²Ñ\8fзанÑ\8b Ð½Ð°Ñ\81Ñ\82Ñ\83пнÑ\8b ÐºÐ¾Ð½Ñ\82а}}:\n\n$2\n\n{{PLURAL:$3|ТоÑ\82о Ð´Ð¾Ñ\87аÑ\81не Ð³ÐµÑ\81ло ÐºÑ\96нÑ\87иÑ\82Ñ\8c|ТоÑ\82Ñ\8b Ð´Ð¾Ñ\87аÑ\81нÑ\8b Ð³ÐµÑ\81ла ÐºÑ\96нÑ\87аÑ\82Ñ\8c}} {{PLURAL:$5|о Ñ\94ден Ð´ÐµÐ½Ñ\8c|о $5 Ð´Ð½Ñ\97|о $5 Ð´Ð½Ñ\97в}}.\nТепеÑ\80Ñ\8c Ð±Ñ\8b Ñ\81Ñ\8cÑ\82е Ñ\81Ñ\8f Ð¼Ð°Ð»Ð¸ Ð¿Ñ\80иголоÑ\81иÑ\82и Ñ\96 Ð·Ð²Ð¾Ð»Ð¸Ñ\82и Ñ\81обÑ\96 Ð½Ð¾Ð²Ðµ Ð³ÐµÑ\81ло. Ð\9aÑ\96дÑ\8c Ñ\82оÑ\82Ñ\83 Ð¿Ð¾Ð¶Ð°Ð´Ð°Ð²ÐºÑ\83 \nпоÑ\81лав Ð´Ð°Ñ\85Ñ\82о Ð´Ñ\80Ñ\83гÑ\8bй Ð°Ð±Ð¾ Ñ\81Ñ\8cÑ\82е Ñ\81обÑ\96 Ð½Ð° Ñ\81воÑ\94 Ñ\81Ñ\82аÑ\80е Ð³ÐµÑ\81ло Ñ\81помÑ\8fнÑ\83ли і не хочете го\nзмінити, можете тото повідомлїня іґноровати і надале хосновати старе гесло.",
        "passwordreset-emailelement": "Імя хоснователя: $1\nДочасне гесло: $2",
        "passwordreset-emailsent": "Імейл з геслом быв посланый.",
        "passwordreset-emailsent-capture": "Быв выґенерованый імейл з геслом, што є вказаный ниже.",
        "mergehistory-same-destination": "Жрідлова і цілёва сторінка не можуть быти такы самы",
        "mergehistory-reason": "Причіна:",
        "mergelog": "Книга злучованя",
-       "pagemerge-logentry": "злучує сторінку [[$1]] зо сторінков [[$2]] (верзії до $3)",
        "revertmerge": "Роздїлити",
        "mergelogpagetext": "Ниже є список найновшых злучінь історії єдной сторінкы з другов.",
        "history-title": "$1: Історія змін",
        "powersearch-togglelabel": "Позначіти:",
        "powersearch-toggleall": "Вшыткы",
        "powersearch-togglenone": "Жадный",
+       "powersearch-remember": "Запамятати выбір про будучі гляданя",
        "search-external": "Екстерне гляданя",
        "searchdisabled": "<p>Перебачте. Повнотекстове гляданя є дочасно недоступне. Затля можете спробовати гляданя Google; є але можне, же ёго резултаты не мусять быти актуалны.</p>",
        "search-error": "Як ся глядало трафіла ся хыба: $1",
        "mimetype": "MIME-тіп:",
        "download": "скачати",
        "unwatchedpages": "Неслїдованы сторінкы",
-       "listredirects": "Список напрямлинь",
+       "listredirects": "Список напрямлїнь",
        "unusedtemplates": "Нехоснованы шаблоны",
        "unusedtemplatestext": "Тота сторінка обсягує список вшыткых сторінок в простору назв {{ns:template}}, котры не суть вложены до жадной іншой сторінкы. Перед їх змазанём не забудьте перевірити іншы одказы.",
        "unusedtemplateswlh": "іншы одказы",
        "statistics": "Штатістіка",
        "statistics-header-pages": "Штатістіка сторінок",
        "statistics-header-edits": "Штатістіка едітовань",
-       "statistics-header-views": "Штатістіка зображіня",
        "statistics-header-users": "Штатістіка хоснователїв",
        "statistics-header-hooks": "Інша штатістіка",
        "statistics-articles": "Обсяговы сторінкы",
        "statistics-files": "Наладованы файлы",
        "statistics-edits": "Чісло едітованя од основаня вікі {{SITENAME}}",
        "statistics-edits-average": "Середнє чісло едітовань на сторінку",
-       "statistics-views-total": "Вшыткых переглядів",
-       "statistics-views-total-desc": "Зображіня неєствуючіх і шпеціалных сторінок ся не рахують",
-       "statistics-views-peredit": "Чісло зображінь на едітованя",
        "statistics-users": "Реґістрованы [[Special:ListUsers|хоснователї]]",
        "statistics-users-active": "Актівны хоснователї",
        "statistics-users-active-desc": "Хоснователї, котры в {{PLURAL:$1|минулого дня|минулых  $1 днїв}} провели даяку операцію",
-       "statistics-mostpopular": "Найчітанїшы сторінкы",
        "pageswithprop": "Сторінкы з властностями",
        "pageswithprop-legend": "Сторінкы з властностёв",
        "pageswithprop-text": "Тота сторінка обсягує список сторінкы, што хоснують вызначену властность сторінкы.",
        "uncategorizedtemplates": "Некатеґоризованы шаблоны",
        "unusedcategories": "Нехоснованы катеґорії",
        "unusedimages": "Нехоснованы файлы",
-       "popularpages": "Популарны статї",
        "wantedcategories": "Жаданы катеґорії",
        "wantedpages": "Пожадованы статї",
        "wantedpages-badtitle": "Резултаты обсягують неправилну назву: $1",
        "delete-edit-reasonlist": "Едітовати причіны вымазаня",
        "delete-toobig": "Тота сторінка має велику історію едітованя, через $1 {{PLURAL:$1|верзії|верзій|верзій}}. Мазаня такых сторінок є обмеджено, жебы ся заборонило нехоченому нарушіню {{grammar:2sg|{{SITENAME}}}}.",
        "delete-warning-toobig": "Тота сторінка має велику історію едітацій, через $1 {{PLURAL:$1|верзії|верзій|верзій}}. Мазаня такых сторінок може нарушыти датабазовы операцім {{grammar:2sg|{{SITENAME}}}}; мерькуйте.",
+       "deleting-backlinks-warning": "'''Позірь:'''  Сторінка, котру ся рыхтуєте вымазати, є одказована на [[Special:WhatLinksHere/{{FULLPAGENAME}}|іншых сторінках]] ці вложена до них.",
        "rollback": "Вернути назад едітованя",
        "rollback_short": "Вернути назад",
        "rollbacklink": "вернути назад",
        "pageinfo-robot-policy": "Індексованя роботами",
        "pageinfo-robot-index": "Дозволено",
        "pageinfo-robot-noindex": "Заказане",
-       "pageinfo-views": "Чісло переглядів",
        "pageinfo-watchers": "Кількость слїдуючіх сторінку",
        "pageinfo-few-watchers": "Менше як $1 {{PLURAL:$1|слїдуючій|слїдуючі|слїдуючіх}}",
        "pageinfo-redirects-name": "Чісло напрямлїнь на гевсю сторінку",
index daff7f8..3969358 100644 (file)
        "view-foreign": "Vedz la $1",
        "edit": "Alâxire",
        "edit-local": "Alâxeaști descrierea localâ",
+       "create": "Prindiri",
+       "create-local": "Adavgâ descrierea localâ",
+       "editthispage": "Alâxeaști aestâ frândzâ",
+       "create-this-page": "Adari aestâ frândzâ",
        "delete": "Așcirḑire",
        "deletethispage": "Așteardzi frândza",
        "undeletethispage": "Aflâ frundza aștearsâ",
        "otherlanguages": "Pi alanti limbi",
        "redirectedfrom": "(yinitâ di la $1)",
        "redirectpagesub": "Frândzâ di redirecționari",
+       "redirectto": "Purtari la:",
        "lastmodifiedat": "Aestâ frândzâ fu alâxitâ di-tu soni pi $1, la $2.",
        "viewcount": "Aestâ frândzâ fu mutritâ di {{PLURAL:$1|mași unâ oarâ|$1 ori}}.",
        "protectedpage": "Frândzâ protejatâ",
        "thisisdeleted": "Vedz icâ adu napoea $1?",
        "viewdeleted": "Vedz $1?",
        "restorelink": "Vedz {{PLURAL:$1|unâ alâxiri aștearsâ|$1 (di) alâxiri aștearsi}}",
+       "feedlinks": "Feed:",
+       "feed-invalid": "Turlii di feed invalidâ",
+       "feed-unavailable": "Nu suntu disponibili fluxuri web.",
        "site-rss-feed": "$1 Abonari RSS",
        "site-atom-feed": "$1 Abonari Atomu",
        "page-rss-feed": "„$1” Abonari RSS",
        "nstab-help": "Agiutoru",
        "nstab-category": "Categorie",
        "nosuchaction": "Aeastâ acțiuni nu easti",
+       "nosuchspecialpage": "Aestâ frândzâ maxusâ (specialâ) nu ari aoați",
+       "error": "Eroari (alatus)",
+       "databaseerror": "Alatus la baza di dati",
+       "databaseerror-text": "Apâru unu alatusu la interogarea bazâľei di dati. Aestâ poati s-hibâ trâ ațea câ ari unâ problemâ di software.",
+       "databaseerror-textcl": "Apâru unu alatusu la interogarea bazâľei di dati.",
+       "databaseerror-query": "Interogari: $1",
+       "databaseerror-function": "Funcție: $1",
        "databaseerror-error": "Eroari (alutusu): $1",
+       "laggedslavemode": "<strong>Sacănu!</strong>: S-poati ca frândza s-nu aibâ actualizărili di-tu soni.",
        "readonly": "Baza di dati easti blocatâ (ncľisâ) la nyrâpseari",
+       "missingarticle-rev": "(versiuniľea#: $1)",
+       "missingarticle-diff": "(Dif: $1, $2)",
+       "badtitle": "Titlu alatusu",
        "viewsource": "Vez-u textu",
+       "viewsource-title": "Vedz ivurlu trâ $1",
+       "ns-specialprotected": "Frâdzâli maxusi (speciali) nu potu s-hibâ alâxiti.",
+       "exception-nologin": "Nu hii ligatu",
+       "exception-nologin-text": "Leagâ-ti ca sâ poț sâ u vedz aestâ frândzâ i acțiuni.",
+       "exception-nologin-text-manual": "Vâ pâlâcârsimu sâ $1 ca s-puteț s-u videț frândza i acțiunea aestâ.",
+       "virus-badscanner": "Configurațiľe alatusitâ: scaneru di virus nicunuscutu: \"$1\"",
+       "welcomeuser": "Ghini viniș, $1!",
+       "welcomecreation-msg": "Contulu (isape) a tău fu adratu.\nPoț s-lu alâxești [[Special:Preferences|Prutimisirli]] a tali ma câ vrei.",
        "yourname": "Numa di utilizatoru:",
        "userlogin-yourname": "Numa di utilizatoru:",
        "userlogin-yourname-ph": "Bagâ-u numa a ta di utilizatoru",
        "createacct-another-username-ph": "Bagâ-u numa di utilizatoru",
        "yourpassword": "Zboru cľeae:",
+       "userlogin-yourpassword": "Zboarâ acrifo (parolâ)",
+       "userlogin-yourpassword-ph": "Bagâ-u parola (zboru acrifo)",
+       "createacct-yourpassword-ph": "Bagâ-u parola (zboru acrifo)",
        "yourpasswordagain": "Bagâ-u cľeae diznou:",
+       "createacct-yourpasswordagain": "Apuchiruseaști zborlu mistico",
+       "createacct-yourpasswordagain-ph": "Bagâ-u parola diz-nou",
        "remembermypassword": "Țâni minti ligâtura a mea pi browserlu aestu (cheari dupu $1 {{PLURAL:$1|dzuuâ|dzâli}})",
+       "userlogin-remembermypassword": "Pâstreadzâ ligarea",
+       "userlogin-signwithsecure": "Ufiliseaști unâ conexiuni sigurâ",
+       "yourdomainname": "Domeniulu a tău:",
+       "password-change-forbidden": "Nu poț s-li alâxești zboarâli mistico pi aestu wiki.",
        "login": "Leagâ-ti",
        "nav-login-createaccount": "Leagâ-ti / Fă contu (isape)",
        "userlogin": "Leagâ-ti / Fă contu (isape)",
        "userlogout": "Dizleagâ-ti",
        "notloggedin": "Nu hii ligatu",
        "userlogin-noaccount": "N-ai nicâ contu (isape)?",
+       "userlogin-joinproject": "Bagâ-ti la {{SITENAME}}",
        "nologin": "N-ai nicâ contu (isape)? $1.",
        "nologinlink": "Fă unu utilizatoru a tău tora",
        "createaccount": "Fă contu (isape)",
+       "gotaccount": "Ai nicâ contu (isape)? $1.",
        "gotaccountlink": "Leagâ-ti",
+       "userlogin-resetlink": "U agârșii parola i numa di utilizatoru?",
+       "userlogin-resetpassword-link": "U agârșii parola?",
        "createacct-emailrequired": "Adresâ di carti electronicâ",
        "createacct-emailoptional": "Adresâ di carti electronicâ (opționalu)",
        "createacct-email-ph": "Bagâ-u adresa a ta di carti electronicâ",
        "newpages-username": "Numa di utilizatoru:",
        "move": "Mutari",
        "movethispage": "Mutâ frândza aestâ",
-       "booksources-go": "Du-ti",
        "allpagessubmit": "Du-ti",
        "watchlist": "Frândzâ avinati",
        "mywatchlist": "Frândzâ avinati",
index 4972df2..2262b83 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Andrijko Z.",
-            "Кумулај Маркус",
-            "Макѕе",
-            "Приетен тев"
-        ]
-    },
-    "tog-underline": "Сублиниаере легајтулс:",
-    "sun": "Дум",
-    "mon": "Лун",
-    "tue": "Мар",
-    "wed": "Мие",
-    "thu": "Јои",
-    "fri": "Вин",
-    "sat": "Сам",
-    "january": "јануари",
-    "february": "февруари",
-    "march": "марти",
-    "april": "априли",
-    "may_long": "мај",
-    "june": "јуни",
-    "july": "јули",
-    "august": "аугуст",
-    "september": "септември",
-    "october": "октомври",
-    "november": "нојември",
-    "december": "децембри",
-    "january-gen": "јануари",
-    "february-gen": "февруари",
-    "march-gen": "марти",
-    "april-gen": "априли",
-    "may-gen": "мај",
-    "june-gen": "јуни",
-    "july-gen": "јули",
-    "august-gen": "аугуст",
-    "september-gen": "септември",
-    "october-gen": "октомври",
-    "november-gen": "нојември",
-    "december-gen": "децември",
-    "jan": "јан",
-    "feb": "фев",
-    "mar": "мар",
-    "apr": "апр",
-    "may": "мај",
-    "jun": "јун",
-    "jul": "јул",
-    "aug": "ауг",
-    "sep": "сеп",
-    "oct": "окт",
-    "nov": "нов",
-    "dec": "дец",
-    "category_header": "Пажус ен категориа \"$1\"",
-    "subcategories": "Субкатегории",
-    "listingcontinuesabbrev": "контину",
-    "about": "Дајпул",
-    "cancel": "ренунтаје",
-    "mytalk": "Мај дискућу",
-    "errorpagetitle": "Еру",
-    "tagline": "Де {{SITENAME}}",
-    "help": "ајутор",
-    "search": "каутај",
-    "searchbutton": "каутај",
-    "searcharticle": "Лие",
-    "history": "Хисториа пажус",
-    "printableversion": "верцион принтаблу",
-    "permalink": "Легајтул перманентул",
-    "edit": "Едита",
-    "editthispage": "Едита це пажу",
-    "delete": "Делајре",
-    "protect": "Ажатме",
-    "newpage": "Пажи нови",
-    "talkpagelinktext": "дискућу",
-    "personaltools": "Алатки персоналу",
-    "talk": "дискућу",
-    "views": "Ви",
-    "toolbox": "алатуникул",
-    "redirectedfrom": "(Редирецћионат де ла $1)",
-    "jumpto": "Лиа а:",
-    "jumptonavigation": "навигацион",
-    "jumptosearch": "каутај",
-    "aboutsite": "дајпул {{SITENAME}}",
-    "aboutpage": "Project:дајпул {{SITENAME}}",
-    "copyrightpage": "{{ns:project}}:Права даутору",
-    "currentevents": "Тебикору",
-    "currentevents-url": "Project:Тебикору",
-    "disclaimers": "Тајменулс",
-    "disclaimerpage": "Project:тајменул",
-    "edithelp": "Ајутор пентре едитаере",
-    "mainpage": "Пажу принципу",
-    "mainpage-description": "Пажу принципу",
-    "privacy": "Политикмус де лижитул",
-    "privacypage": "Project:политикмус де лижитул",
-    "retrievedfrom": "адусе де \"$1\"",
-    "youhavenewmessages": "Весес $1 ($2).",
-    "editsection": "едитаере",
-    "editold": "едита",
-    "editsectionhint": "Едитаере ћисецион: $1",
-    "toc": "Купринс",
-    "showtoc": "аратај",
-    "hidetoc": "аскунде",
-    "site-rss-feed": "$1 RSS фитул",
-    "site-atom-feed": "$1 Atom фитул",
-    "page-rss-feed": "\"$1\" RSS Фитул",
-    "page-atom-feed": "\"$1\" Atom Фитул",
-    "nstab-user": "Пажу дутилизатору",
-    "nstab-project": "Пројекту",
-    "nstab-image": "фиширул",
-    "nstab-category": "категориа",
-    "viewsource": "баганаере",
-    "yourname": "Ном дутилизатору:",
-    "login": "Приласнаере",
-    "nav-login-createaccount": "Приласнаере / Нажбе",
-    "userlogin": "Приласнаере / креаре нутилизатору",
-    "userlogout": "отластаере",
-    "bold_sample": "Ескрире алдин",
-    "bold_tip": "Ескрире алдин",
-    "italic_sample": "Ескрире курсиве",
-    "italic_tip": "Ескрире курсиве",
-    "link_sample": "Ном с-легајтулс",
-    "link_tip": "Легајтул интернул",
-    "extlink_sample": "http://www.example.com ном с-легајтулс",
-    "extlink_tip": "Легајтул ќстернул (вец префикс http://)",
-    "headline_sample": "Ескрире с-титлус",
-    "headline_tip": "Титлу де нивел 2",
-    "nowiki_sample": "Интродуца но-Вики иси",
-    "nowiki_tip": "Но-Бики клашу",
-    "image_tip": "Сантигул инсерат",
-    "media_tip": "Легајтул фиширул де медиа",
-    "sig_tip": "Утилизаторуном ет дата ет темп",
-    "hr_tip": "Линеа оризонтала (еснидивале)",
-    "summary": "Сумар:",
-    "subject": "Субјект / титлур:",
-    "minoredit": "Ацеаста есте о едитаре минорај",
-    "watchthis": "Клајаере це пажу",
-    "showpreview": "Ратај превизуализаре",
-    "showdiff": "Аратај шумбајрае",
-    "newarticle": "(Нова)",
-    "editing": "о $1 едитаере",
-    "editingsection": "Едитаере $1 (секцион)",
-    "copyrightwarning": "<!-- Гол деоцамдатај. Вертисментул се флај ен MediaWiki:Summary -->\nТе рог нотари ла дин контрибући ал {{SITENAME}} сунт консидераере релесават супра $2 (суах $1 дин детајс). Аџтеу несав те се тексти сунт едитаере деномерци дет редистрибутаере дин вент, хатае ици.<br /> Ту есте ностре промисаере бонти ус ту скрирсте це се, нега копиаере дин публик домен нега симилари ресорсуе. '''НЕ СУБМИТЕ КОПИЛЕГРУ СКРИЕ САС ПЕРМИћИОН!'''",
-    "template-protected": "(ажатмат)",
-    "template-semiprotected": "(семи-ажатмат)",
-    "currentrev": "Верцион куренту",
-    "revisionasof": "Верцион де дата $1",
-    "previousrevision": "←Версиунеа нтериоарај",
-    "cur": "актуалу",
-    "last": "прецеденте",
-    "history-title": "Едитаерехисториа пентру \"$1\"",
-    "lineno": "линиа $1:",
-    "compareselectedversions": "Компара верционс селектус",
-    "editundo": "анулизаје",
-    "viewprevnext": "Ву ($1 {{int:pipe-separator}} $2) ($3)",
-    "mypreferences": "Мај префиренћу",
-    "recentchanges": "шумбајрае рецентае",
-    "rcshowhideminor": "$1 модификајриле миноре",
-    "rcshowhidebots": "$1 роботи",
-    "rcshowhideliu": "$1 утилизатори приласнаери",
-    "rcshowhideanons": "$1 утилизатори аноними",
-    "rcshowhidemine": "$1 мес модификационс",
-    "rclinks": "Ратај ултимеле $1 модификајри дин ултимеле $2 зиле.<br />\n$3",
-    "diff": "диференћу",
-    "hist": "хисториа",
-    "hide": "аскунде",
-    "show": "Аратај",
-    "minoreditletter": "м",
-    "newpageletter": "Н",
-    "boteditletter": "б",
-    "recentchangeslinked": "Модификајри корелате",
-    "recentchangeslinked-feed": "Модификајри корелате",
-    "recentchangeslinked-toolbox": "Модификајри корелате",
-    "upload": "тримиће фиширул",
-    "file-anchor-link": "фиширул",
-    "filehist": "Хисториа фиширулу",
-    "filehist-current": "куренту",
-    "filehist-datetime": "Дата/Темп",
-    "filehist-user": "Утилизатору",
-    "filehist-dimensions": "Дименционс",
-    "filehist-comment": "коментарул",
-    "imagelinks": "Легајтул фиширул де медиа",
-    "linkstoimage": "Цес {{PLURAL:$1|page links||пажи легајтент}} а це фиширул:",
-    "randompage": "алаећу",
-    "nbytes": "$1 {{PLURAL:$1|бајтул|бајтулс}}",
-    "nmembers": "$1 {{PLURAL:$1|мембру|мембри}}",
-    "newpages": "Пажи нови",
-    "booksources": "Сурсе де цајрћи",
-    "allpages": "Тоатс пажи",
-    "alphaindexline": "$1 во $2",
-    "allarticles": "Тоат пажи",
-    "allpagessubmit": "Треме",
-    "watchlist": "Мај клајаеру",
-    "mywatchlist": "Мај клајаере",
-    "watch": "клајаере",
-    "unwatch": "Деклајаера",
-    "watching": "О клајаере...",
-    "unwatching": "О деклајаере...",
-    "rollbacklink": "ревенире",
-    "namespace": "лСпаћи:",
-    "invert": "Ќсклуда спаћул",
-    "blanknamespace": "(Принципу)",
-    "contributions": "Контрибући дутилизатори",
-    "mycontris": "Мес контрибући",
-    "contribsub2": "пентру $1 ($2)",
-    "uctop": "(сусверф)",
-    "sp-contributions-talk": "дискућу",
-    "whatlinkshere": "Легајтул а це пажу",
-    "whatlinkshere-title": "Пажус легајтулент а $1",
-    "nolinkshere": "Пажи не легајтент а '''[[:$1]]'''.",
-    "istemplate": "викулабе",
-    "whatlinkshere-links": "← легајтулс",
-    "blocklink": "блокуапаје",
-    "contribslink": "контрибући",
-    "revertmove": "ревенире",
-    "export": "Ќспорта пажи",
-    "thumbnail-more": "ќсинде",
-    "thumbnail_error": "Еру вец лкреаре де тумбнел: $1",
-    "tooltip-pt-userpage": "Мој пажу дутилизатору",
-    "tooltip-pt-mytalk": "Мај пажу дискућус",
-    "tooltip-pt-preferences": "Мај префиренћу",
-    "tooltip-pt-watchlist": "Листа пажинилор пе царе ле мониторизез.",
-    "tooltip-pt-mycontris": "Листа де мес контрибуционс",
-    "tooltip-pt-login": "Путе приласнаере, не лест доист.",
-    "tooltip-pt-logout": "отластаере",
-    "tooltip-ca-talk": "Дискућие деспре артикол",
-    "tooltip-ca-edit": "Поћи едита ацеатај пажинај. Те ругајм се превизуализези конћинутул енаинте де салваре.",
-    "tooltip-ca-protect": "Ажатме це пажу",
-    "tooltip-ca-delete": "Делајре це пажу",
-    "tooltip-search": "Каутај ен {{SITENAME}}",
-    "tooltip-n-mainpage": "Вижита лпажу принципу",
-    "tooltip-n-portal": "Дајпул лпројецту, љуелљуес путе фараере, о трувес саби.",
-    "tooltip-n-currentevents": "Гајсеште информаћии деспре евениментиќ куренте",
-    "tooltip-n-recentchanges": "Листа дес шумбајрае рецентае ен лБики.",
-    "tooltip-n-randompage": "Донаре нпажу алаетоаре",
-    "tooltip-n-help": "Ајутор трувес иси.",
-    "tooltip-t-whatlinkshere": "Листа тутурор пажинилор вики царе кондуц спре ацестај пажинај",
-    "tooltip-t-contributions": "Ву листа де контрибући де цутилизатору",
-    "tooltip-t-upload": "Тремер фиширул",
-    "tooltip-t-specialpages": "Листа де тоат пажи специалус",
-    "tooltip-ca-nstab-user": "Ву лпажу дутилизатору",
-    "tooltip-ca-nstab-project": "Ву лпажу де пројекту",
-    "tooltip-ca-nstab-category": "Ву лпажу де категориа",
-    "tooltip-minoredit": "Це-ест нмодификацион минару",
-    "tooltip-save": "Салваере тес модификационс",
-    "tooltip-diff": "Ратај це модификајри аи фајцут текстулуи.",
-    "file-nohires": "Це-н-ест нресолуцион маи мари.",
-    "show-big-image": "Мареште ресолуцион",
-    "bad_image_list": "Форматул есте урмајторул:\n\nНумај елементијле унеи листе сунт луате ен цонсидераере. (Аџестеа сунт линии це енцеп цу *)\n\nПрима легајтурај де пе линие требуие се фие спре ун фишиер дефецтуос.\n\nОрице легајтури це урмеазај пе аценаши линие сунт цонсидераете еџцепћии, дицај пажи унде фишиерул поате пајреа инцлус дирецт.",
-    "metadata": "Метадата",
-    "watchlistall2": "тоат",
-    "namespacesall": "тоат",
-    "monthsall": "тоат",
-    "specialpages": "Пажи спецалус"
+       "@metadata": {
+               "authors": [
+                       "Andrijko Z.",
+                       "Кумулај Маркус",
+                       "Макѕе",
+                       "Приетен тев"
+               ]
+       },
+       "tog-underline": "Сублиниаере легајтулс:",
+       "sun": "Дум",
+       "mon": "Лун",
+       "tue": "Мар",
+       "wed": "Мие",
+       "thu": "Јои",
+       "fri": "Вин",
+       "sat": "Сам",
+       "january": "јануари",
+       "february": "февруари",
+       "march": "марти",
+       "april": "априли",
+       "may_long": "мај",
+       "june": "јуни",
+       "july": "јули",
+       "august": "аугуст",
+       "september": "септември",
+       "october": "октомври",
+       "november": "нојември",
+       "december": "децембри",
+       "january-gen": "јануари",
+       "february-gen": "февруари",
+       "march-gen": "марти",
+       "april-gen": "априли",
+       "may-gen": "мај",
+       "june-gen": "јуни",
+       "july-gen": "јули",
+       "august-gen": "аугуст",
+       "september-gen": "септември",
+       "october-gen": "октомври",
+       "november-gen": "нојември",
+       "december-gen": "децември",
+       "jan": "јан",
+       "feb": "фев",
+       "mar": "мар",
+       "apr": "апр",
+       "may": "мај",
+       "jun": "јун",
+       "jul": "јул",
+       "aug": "ауг",
+       "sep": "сеп",
+       "oct": "окт",
+       "nov": "нов",
+       "dec": "дец",
+       "category_header": "Пажус ен категориа \"$1\"",
+       "subcategories": "Субкатегории",
+       "listingcontinuesabbrev": "контину",
+       "about": "Дајпул",
+       "cancel": "ренунтаје",
+       "mytalk": "Мај дискућу",
+       "errorpagetitle": "Еру",
+       "tagline": "Де {{SITENAME}}",
+       "help": "ајутор",
+       "search": "каутај",
+       "searchbutton": "каутај",
+       "searcharticle": "Лие",
+       "history": "Хисториа пажус",
+       "printableversion": "верцион принтаблу",
+       "permalink": "Легајтул перманентул",
+       "edit": "Едита",
+       "editthispage": "Едита це пажу",
+       "delete": "Делајре",
+       "protect": "Ажатме",
+       "newpage": "Пажи нови",
+       "talkpagelinktext": "дискућу",
+       "personaltools": "Алатки персоналу",
+       "talk": "дискућу",
+       "views": "Ви",
+       "toolbox": "алатуникул",
+       "redirectedfrom": "(Редирецћионат де ла $1)",
+       "jumpto": "Лиа а:",
+       "jumptonavigation": "навигацион",
+       "jumptosearch": "каутај",
+       "aboutsite": "дајпул {{SITENAME}}",
+       "aboutpage": "Project:дајпул {{SITENAME}}",
+       "copyrightpage": "{{ns:project}}:Права даутору",
+       "currentevents": "Тебикору",
+       "currentevents-url": "Project:Тебикору",
+       "disclaimers": "Тајменулс",
+       "disclaimerpage": "Project:тајменул",
+       "edithelp": "Ајутор пентре едитаере",
+       "mainpage": "Пажу принципу",
+       "mainpage-description": "Пажу принципу",
+       "privacy": "Политикмус де лижитул",
+       "privacypage": "Project:политикмус де лижитул",
+       "retrievedfrom": "адусе де \"$1\"",
+       "youhavenewmessages": "Весес $1 ($2).",
+       "editsection": "едитаере",
+       "editold": "едита",
+       "editsectionhint": "Едитаере ћисецион: $1",
+       "toc": "Купринс",
+       "showtoc": "аратај",
+       "hidetoc": "аскунде",
+       "site-rss-feed": "$1 RSS фитул",
+       "site-atom-feed": "$1 Atom фитул",
+       "page-rss-feed": "\"$1\" RSS Фитул",
+       "page-atom-feed": "\"$1\" Atom Фитул",
+       "nstab-user": "Пажу дутилизатору",
+       "nstab-project": "Пројекту",
+       "nstab-image": "фиширул",
+       "nstab-category": "категориа",
+       "viewsource": "баганаере",
+       "yourname": "Ном дутилизатору:",
+       "login": "Приласнаере",
+       "nav-login-createaccount": "Приласнаере / Нажбе",
+       "userlogin": "Приласнаере / креаре нутилизатору",
+       "userlogout": "отластаере",
+       "bold_sample": "Ескрире алдин",
+       "bold_tip": "Ескрире алдин",
+       "italic_sample": "Ескрире курсиве",
+       "italic_tip": "Ескрире курсиве",
+       "link_sample": "Ном с-легајтулс",
+       "link_tip": "Легајтул интернул",
+       "extlink_sample": "http://www.example.com ном с-легајтулс",
+       "extlink_tip": "Легајтул ќстернул (вец префикс http://)",
+       "headline_sample": "Ескрире с-титлус",
+       "headline_tip": "Титлу де нивел 2",
+       "nowiki_sample": "Интродуца но-Вики иси",
+       "nowiki_tip": "Но-Бики клашу",
+       "image_tip": "Сантигул инсерат",
+       "media_tip": "Легајтул фиширул де медиа",
+       "sig_tip": "Утилизаторуном ет дата ет темп",
+       "hr_tip": "Линеа оризонтала (еснидивале)",
+       "summary": "Сумар:",
+       "subject": "Субјект / титлур:",
+       "minoredit": "Ацеаста есте о едитаре минорај",
+       "watchthis": "Клајаере це пажу",
+       "showpreview": "Ратај превизуализаре",
+       "showdiff": "Аратај шумбајрае",
+       "newarticle": "(Нова)",
+       "editing": "о $1 едитаере",
+       "editingsection": "Едитаере $1 (секцион)",
+       "copyrightwarning": "<!-- Гол деоцамдатај. Вертисментул се флај ен MediaWiki:Summary -->\nТе рог нотари ла дин контрибући ал {{SITENAME}} сунт консидераере релесават супра $2 (суах $1 дин детајс). Аџтеу несав те се тексти сунт едитаере деномерци дет редистрибутаере дин вент, хатае ици.<br /> Ту есте ностре промисаере бонти ус ту скрирсте це се, нега копиаере дин публик домен нега симилари ресорсуе. '''НЕ СУБМИТЕ КОПИЛЕГРУ СКРИЕ САС ПЕРМИћИОН!'''",
+       "template-protected": "(ажатмат)",
+       "template-semiprotected": "(семи-ажатмат)",
+       "currentrev": "Верцион куренту",
+       "revisionasof": "Верцион де дата $1",
+       "previousrevision": "←Версиунеа нтериоарај",
+       "cur": "актуалу",
+       "last": "прецеденте",
+       "history-title": "Едитаерехисториа пентру \"$1\"",
+       "lineno": "линиа $1:",
+       "compareselectedversions": "Компара верционс селектус",
+       "editundo": "анулизаје",
+       "viewprevnext": "Ву ($1 {{int:pipe-separator}} $2) ($3)",
+       "mypreferences": "Мај префиренћу",
+       "recentchanges": "шумбајрае рецентае",
+       "rcshowhideminor": "$1 модификајриле миноре",
+       "rcshowhidebots": "$1 роботи",
+       "rcshowhideliu": "$1 утилизатори приласнаери",
+       "rcshowhideanons": "$1 утилизатори аноними",
+       "rcshowhidemine": "$1 мес модификационс",
+       "rclinks": "Ратај ултимеле $1 модификајри дин ултимеле $2 зиле.<br />\n$3",
+       "diff": "диференћу",
+       "hist": "хисториа",
+       "hide": "аскунде",
+       "show": "Аратај",
+       "minoreditletter": "м",
+       "newpageletter": "Н",
+       "boteditletter": "б",
+       "recentchangeslinked": "Модификајри корелате",
+       "recentchangeslinked-feed": "Модификајри корелате",
+       "recentchangeslinked-toolbox": "Модификајри корелате",
+       "upload": "тримиће фиширул",
+       "file-anchor-link": "фиширул",
+       "filehist": "Хисториа фиширулу",
+       "filehist-current": "куренту",
+       "filehist-datetime": "Дата/Темп",
+       "filehist-user": "Утилизатору",
+       "filehist-dimensions": "Дименционс",
+       "filehist-comment": "коментарул",
+       "imagelinks": "Легајтул фиширул де медиа",
+       "linkstoimage": "Цес {{PLURAL:$1|page links||пажи легајтент}} а це фиширул:",
+       "randompage": "алаећу",
+       "nbytes": "$1 {{PLURAL:$1|бајтул|бајтулс}}",
+       "nmembers": "$1 {{PLURAL:$1|мембру|мембри}}",
+       "newpages": "Пажи нови",
+       "booksources": "Сурсе де цајрћи",
+       "allpages": "Тоатс пажи",
+       "allarticles": "Тоат пажи",
+       "allpagessubmit": "Треме",
+       "watchlist": "Мај клајаеру",
+       "mywatchlist": "Мај клајаере",
+       "watch": "клајаере",
+       "unwatch": "Деклајаера",
+       "watching": "О клајаере...",
+       "unwatching": "О деклајаере...",
+       "rollbacklink": "ревенире",
+       "namespace": "лСпаћи:",
+       "invert": "Ќсклуда спаћул",
+       "blanknamespace": "(Принципу)",
+       "contributions": "Контрибући дутилизатори",
+       "mycontris": "Мес контрибући",
+       "contribsub2": "пентру $1 ($2)",
+       "uctop": "(сусверф)",
+       "sp-contributions-talk": "дискућу",
+       "whatlinkshere": "Легајтул а це пажу",
+       "whatlinkshere-title": "Пажус легајтулент а $1",
+       "nolinkshere": "Пажи не легајтент а '''[[:$1]]'''.",
+       "istemplate": "викулабе",
+       "whatlinkshere-links": "← легајтулс",
+       "blocklink": "блокуапаје",
+       "contribslink": "контрибући",
+       "revertmove": "ревенире",
+       "export": "Ќспорта пажи",
+       "thumbnail-more": "ќсинде",
+       "thumbnail_error": "Еру вец лкреаре де тумбнел: $1",
+       "tooltip-pt-userpage": "Мој пажу дутилизатору",
+       "tooltip-pt-mytalk": "Мај пажу дискућус",
+       "tooltip-pt-preferences": "Мај префиренћу",
+       "tooltip-pt-watchlist": "Листа пажинилор пе царе ле мониторизез.",
+       "tooltip-pt-mycontris": "Листа де мес контрибуционс",
+       "tooltip-pt-login": "Путе приласнаере, не лест доист.",
+       "tooltip-pt-logout": "отластаере",
+       "tooltip-ca-talk": "Дискућие деспре артикол",
+       "tooltip-ca-edit": "Поћи едита ацеатај пажинај. Те ругајм се превизуализези конћинутул енаинте де салваре.",
+       "tooltip-ca-protect": "Ажатме це пажу",
+       "tooltip-ca-delete": "Делајре це пажу",
+       "tooltip-search": "Каутај ен {{SITENAME}}",
+       "tooltip-n-mainpage": "Вижита лпажу принципу",
+       "tooltip-n-portal": "Дајпул лпројецту, љуелљуес путе фараере, о трувес саби.",
+       "tooltip-n-currentevents": "Гајсеште информаћии деспре евениментиќ куренте",
+       "tooltip-n-recentchanges": "Листа дес шумбајрае рецентае ен лБики.",
+       "tooltip-n-randompage": "Донаре нпажу алаетоаре",
+       "tooltip-n-help": "Ајутор трувес иси.",
+       "tooltip-t-whatlinkshere": "Листа тутурор пажинилор вики царе кондуц спре ацестај пажинај",
+       "tooltip-t-contributions": "Ву листа де контрибући де цутилизатору",
+       "tooltip-t-upload": "Тремер фиширул",
+       "tooltip-t-specialpages": "Листа де тоат пажи специалус",
+       "tooltip-ca-nstab-user": "Ву лпажу дутилизатору",
+       "tooltip-ca-nstab-project": "Ву лпажу де пројекту",
+       "tooltip-ca-nstab-category": "Ву лпажу де категориа",
+       "tooltip-minoredit": "Це-ест нмодификацион минару",
+       "tooltip-save": "Салваере тес модификационс",
+       "tooltip-diff": "Ратај це модификајри аи фајцут текстулуи.",
+       "file-nohires": "Це-н-ест нресолуцион маи мари.",
+       "show-big-image": "Мареште ресолуцион",
+       "bad_image_list": "Форматул есте урмајторул:\n\nНумај елементијле унеи листе сунт луате ен цонсидераере. (Аџестеа сунт линии це енцеп цу *)\n\nПрима легајтурај де пе линие требуие се фие спре ун фишиер дефецтуос.\n\nОрице легајтури це урмеазај пе аценаши линие сунт цонсидераете еџцепћии, дицај пажи унде фишиерул поате пајреа инцлус дирецт.",
+       "metadata": "Метадата",
+       "namespacesall": "тоат",
+       "monthsall": "тоат",
+       "specialpages": "Пажи спецалус"
 }
index d3275f3..722e587 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Andrijko Z.",
-            "Кумулај Маркус",
-            "Макѕе",
-            "Приетен тев"
-        ]
-    },
-    "tog-underline": "Subliniaere legătuls:",
-    "sun": "Dum",
-    "mon": "Lun",
-    "tue": "Mar",
-    "wed": "Mie",
-    "thu": "Joi",
-    "fri": "Vin",
-    "sat": "Sam",
-    "january": "januari",
-    "february": "februari",
-    "march": "marti",
-    "april": "aprili",
-    "may_long": "mă",
-    "june": "juni",
-    "july": "juli",
-    "august": "august",
-    "september": "septembri",
-    "october": "oktombri",
-    "november": "nojembri",
-    "december": "decembri",
-    "january-gen": "januari",
-    "february-gen": "februari",
-    "march-gen": "marti",
-    "april-gen": "aprili",
-    "may-gen": "mai",
-    "june-gen": "juni",
-    "july-gen": "juli",
-    "august-gen": "august",
-    "september-gen": "septembri",
-    "october-gen": "oktombri",
-    "november-gen": "nojembri",
-    "december-gen": "decembri",
-    "jan": "jan",
-    "feb": "feb",
-    "mar": "mar",
-    "apr": "apr",
-    "may": "mai",
-    "jun": "jun",
-    "jul": "jul",
-    "aug": "aug",
-    "sep": "sep",
-    "oct": "okt",
-    "nov": "nov",
-    "dec": "dec",
-    "category_header": "Pažus en kategoria \"$1\"",
-    "subcategories": "Subkategorii",
-    "listingcontinuesabbrev": "kontinu",
-    "about": "Dajpul",
-    "cancel": "renuntǎe",
-    "mytalk": "Maj diskuţu",
-    "errorpagetitle": "Eru",
-    "tagline": "De {{SITENAME}}",
-    "help": "ajutor",
-    "search": "kaută",
-    "searchbutton": "kaută",
-    "searcharticle": "Lie",
-    "history": "Historia pažus",
-    "printableversion": "vercion printablu",
-    "permalink": "Legătul permanentul",
-    "edit": "Edita",
-    "editthispage": "Edita ce pažu",
-    "delete": "Delăre",
-    "protect": "Ažatme",
-    "newpage": "Paži novi",
-    "talkpagelinktext": "Diskuţu",
-    "personaltools": "Alatki personalu",
-    "talk": "Diskuţu",
-    "views": "Vi",
-    "toolbox": "alatunikul",
-    "redirectedfrom": "(Redirecţionat de la $1)",
-    "jumpto": "Lia a:",
-    "jumptonavigation": "navigacion",
-    "jumptosearch": "kaută",
-    "aboutsite": "Dajpul {{SITENAME}}",
-    "aboutpage": "Project:Dajpul {{SITENAME}}",
-    "copyrightpage": "{{ns:project}}:Prava d'autoru",
-    "currentevents": "Tebikoru",
-    "currentevents-url": "Project:Tebikoru",
-    "disclaimers": "tǎmenuls",
-    "disclaimerpage": "Project:tǎmenul",
-    "edithelp": "Ajutor pentru editaere",
-    "mainpage": "Pažu principu",
-    "mainpage-description": "Pažu principu",
-    "privacy": "Politikmus de ližitul",
-    "privacypage": "Project:Politikmus de ližitul",
-    "retrievedfrom": "Aduse de \"$1\"",
-    "youhavenewmessages": "Veses $1 ($2).",
-    "editsection": "Editaere",
-    "editold": "edita",
-    "editsectionhint": "Editaere ţisecion: $1",
-    "toc": "Kuprins",
-    "showtoc": "arată",
-    "hidetoc": "askunde",
-    "site-rss-feed": "$1 RSS fitul",
-    "site-atom-feed": "$1 Atom fitul",
-    "page-rss-feed": "\"$1\" RSS Fitul",
-    "page-atom-feed": "\"$1\" Atom Fitul",
-    "nstab-user": "Pažu d'utilizatoru",
-    "nstab-project": "Projektu",
-    "nstab-image": "fişirul",
-    "nstab-category": "kategoria",
-    "viewsource": "Baganaere",
-    "yourname": "Nom d'utilizatoru:",
-    "login": "Prilasnaere",
-    "nav-login-createaccount": "Prilasnaere / Nažbe",
-    "userlogin": "Prilasnaere / kreare nutilizatoru",
-    "userlogout": "otlastaere",
-    "bold_sample": "Eskrire aldin",
-    "bold_tip": "Eskrire aldin",
-    "italic_sample": "Eskrire kursive",
-    "italic_tip": "Eskrire kursive",
-    "link_sample": "Nom s'legătuls",
-    "link_tip": "Legătul internul",
-    "extlink_sample": "http://www.example.com nom s'legătuls",
-    "extlink_tip": "Legătul ķsternul (vec prefiks http://)",
-    "headline_sample": "Eskrire s'titlus",
-    "headline_tip": "Titlu de nivel 2",
-    "nowiki_sample": "Intorduca no-Wiki isi",
-    "nowiki_tip": "No-Wiki klaşu",
-    "image_tip": "Santigul inserat",
-    "media_tip": "Legătul fişirul de media",
-    "sig_tip": "Utilizatorunom et data et temp",
-    "hr_tip": "Linia orizontala (esnidivale)",
-    "summary": "Sumar:",
-    "subject": "Subjekt / titlur:",
-    "minoredit": "Aceasta este o editare minoră",
-    "watchthis": "klăaere ce pažu",
-    "showpreview": "Rată previzualizare",
-    "showdiff": "Arată şumbărae",
-    "newarticle": "(Nova)",
-    "editing": "o $1 editaere",
-    "editingsection": "Editaere $1 (sekcion)",
-    "copyrightwarning": "<!-- Gol deocamdată. Vertismentul se flă en MediaWiki:Summary -->\nTe rog notari la din kontribuţi al {{SITENAME}} sunt konsideraere relesavat supra $2 (suah $1 din detăs). Açteu nesav te se teksti sunt editaere denomerci det redistributaere din vent, hatae ici.<br /> Tu este nostre promisaere bonti us tu skrirste ce se, nega kopiaere din publik domen nega similari resorsua. '''NE SUBMITE KOPILEGRU SKRIE SAS PERMIŢION!'''",
-    "template-protected": "(ažatmat)",
-    "template-semiprotected": "(semi-ažatmat)",
-    "currentrev": "Vercion kurentu",
-    "revisionasof": "Vercion de data $1",
-    "previousrevision": "←Versiunea nterioară",
-    "cur": "aktualu",
-    "last": "precedente",
-    "history-title": "Editaerehistoria pentru \"$1\"",
-    "lineno": "Linia $1:",
-    "compareselectedversions": "Kompara vercion selektus",
-    "editundo": "anulizăe",
-    "viewprevnext": "Vu ($1 {{int:pipe-separator}} $2) ($3)",
-    "mypreferences": "Maj prefirenţu",
-    "recentchanges": "şumbărae recentae",
-    "rcshowhideminor": "$1 modifikările minore",
-    "rcshowhidebots": "$1 roboti",
-    "rcshowhideliu": "$1 utilizatori prilasnaeri",
-    "rcshowhideanons": "$1 utilizatori anonimi",
-    "rcshowhidemine": "$1 mes modifikacions",
-    "rclinks": "Rată ultimele $1 modifikări din ultimele $2 zile.<br />\n$3",
-    "diff": "diferenţu",
-    "hist": "historia",
-    "hide": "askunde",
-    "show": "Arată",
-    "minoreditletter": "m",
-    "newpageletter": "N",
-    "boteditletter": "b",
-    "recentchangeslinked": "Modifikări korelate",
-    "recentchangeslinked-feed": "Modifikări korelate",
-    "recentchangeslinked-toolbox": "Modifikări korelate",
-    "upload": "trimiţe fişirul",
-    "file-anchor-link": "Fişirul",
-    "filehist": "Historia fişirulu",
-    "filehist-current": "kurentu",
-    "filehist-datetime": "Data/Temp",
-    "filehist-user": "Utilizatoru",
-    "filehist-dimensions": "Dimencions",
-    "filehist-comment": "komentarul",
-    "imagelinks": "Legătul fişirul de media",
-    "linkstoimage": "Ces {{PLURAL:$1|paži legǎt|paži legǎtent}} a ce fişirul:",
-    "randompage": "alaeţu",
-    "nbytes": "$1 {{PLURAL:$1|bătul|bătuls}}",
-    "nmembers": "$1 {{PLURAL:$1|membru|membri}}",
-    "newpages": "Paži novi",
-    "booksources": "Surse de cărţi",
-    "allpages": "Toats paži",
-    "alphaindexline": "$1 vo $2",
-    "allarticles": "Toats paži",
-    "allpagessubmit": "Treme",
-    "watchlist": "Maj klăaeru",
-    "mywatchlist": "Maj klăaere",
-    "watch": "klăaere",
-    "unwatch": "Deklăaera",
-    "watching": "O klăaere...",
-    "unwatching": "O deklăaere...",
-    "rollbacklink": "revenire",
-    "namespace": "lSpaţi:",
-    "invert": "Ķskluda spaţul",
-    "blanknamespace": "(Principu)",
-    "contributions": "Kontribuţi d'utilizatori",
-    "mycontris": "Mes kontribuţi",
-    "contribsub2": "Pentru $1 ($2)",
-    "uctop": "(susverf)",
-    "sp-contributions-talk": "Diskuţu",
-    "whatlinkshere": "Legǎtul a ce pažu",
-    "whatlinkshere-title": "Paži legǎtulent a $1",
-    "nolinkshere": "Paži ne legǎtent a '''[[:$1]]'''.",
-    "istemplate": "vikulabe",
-    "whatlinkshere-links": "← legătuls",
-    "blocklink": "blokuapǎe",
-    "contribslink": "kontribuţi",
-    "revertmove": "revenire",
-    "export": "Ķsporta paži",
-    "thumbnail-more": "ķsinde",
-    "thumbnail_error": "Eru vec kreare de thumbnail: $1",
-    "tooltip-pt-userpage": "Moj pažu d'utilizatoru",
-    "tooltip-pt-mytalk": "Maj pažu diskuţus",
-    "tooltip-pt-preferences": "Maj prefirenţu",
-    "tooltip-pt-watchlist": "Lista pažinilor pe care le monitorizez.",
-    "tooltip-pt-mycontris": "Lista de mes kontribucions",
-    "tooltip-pt-login": "Pute prilasnaere, ne l'est doist.",
-    "tooltip-pt-logout": "otlastaere",
-    "tooltip-ca-talk": "Diskuţie despre artikol",
-    "tooltip-ca-edit": "Poţi edita această pažină. Te rugăm se previzualizezi konţinutul enainte de salvare.",
-    "tooltip-ca-protect": "Ažatme ce pažu",
-    "tooltip-ca-delete": "Delăre ce pažu",
-    "tooltip-search": "Kaută en {{SITENAME}}",
-    "tooltip-n-mainpage": "Visita l'pažu principu",
-    "tooltip-n-portal": "Dajpul l'projectu, quelques pote faraere, o truves sabi.",
-    "tooltip-n-currentevents": "Găseşte informaţii despre evenimentiķ kurente",
-    "tooltip-n-recentchanges": "Lista des şumbǎrae recentae en l'wiki.",
-    "tooltip-n-randompage": "Donare npažu alaetoare",
-    "tooltip-n-help": "Ajutor truves isi.",
-    "tooltip-t-whatlinkshere": "Lista tuturor pažinilor wiki care konduc spre această pažină",
-    "tooltip-t-contributions": "Vu lista de kontribuţi de c'utilizatoru",
-    "tooltip-t-upload": "Tremer fişirul",
-    "tooltip-t-specialpages": "Lista de toat paži specialus",
-    "tooltip-ca-nstab-user": "Vu l'pažu d'utilizatoru",
-    "tooltip-ca-nstab-project": "Vu l'pažu de projektu",
-    "tooltip-ca-nstab-category": "Vu l'pažu de kategoria",
-    "tooltip-minoredit": "ce-est n'modifikacion minoru",
-    "tooltip-save": "Salvaere tes modifikacions",
-    "tooltip-diff": "Rată ce modifikări ai făcut tekstului.",
-    "file-nohires": "Ce-n-est n'resolucion mai mari.",
-    "show-big-image": "Mareşte resolucion",
-    "bad_image_list": "Formatul este următorul:\n\nNumai elementîle unei liste sunt luate en consideraere. (Açestea sunt linii ce encep cu *)\n\nPrima legătură de pe linie trebuie se fie spre un fişier defectuos.\n\nOrice legături ce urmează pe acenaşi linie sunt consideraete excepţii, dică paži unde fişierul poate părea inclus direct.",
-    "metadata": "Metadata",
-    "watchlistall2": "toat",
-    "namespacesall": "toat",
-    "monthsall": "toat",
-    "specialpages": "Paži specalus"
+       "@metadata": {
+               "authors": [
+                       "Andrijko Z.",
+                       "Кумулај Маркус",
+                       "Макѕе",
+                       "Приетен тев"
+               ]
+       },
+       "tog-underline": "Subliniaere legătuls:",
+       "sun": "Dum",
+       "mon": "Lun",
+       "tue": "Mar",
+       "wed": "Mie",
+       "thu": "Joi",
+       "fri": "Vin",
+       "sat": "Sam",
+       "january": "januari",
+       "february": "februari",
+       "march": "marti",
+       "april": "aprili",
+       "may_long": "mă",
+       "june": "juni",
+       "july": "juli",
+       "august": "august",
+       "september": "septembri",
+       "october": "oktombri",
+       "november": "nojembri",
+       "december": "decembri",
+       "january-gen": "januari",
+       "february-gen": "februari",
+       "march-gen": "marti",
+       "april-gen": "aprili",
+       "may-gen": "mai",
+       "june-gen": "juni",
+       "july-gen": "juli",
+       "august-gen": "august",
+       "september-gen": "septembri",
+       "october-gen": "oktombri",
+       "november-gen": "nojembri",
+       "december-gen": "decembri",
+       "jan": "jan",
+       "feb": "feb",
+       "mar": "mar",
+       "apr": "apr",
+       "may": "mai",
+       "jun": "jun",
+       "jul": "jul",
+       "aug": "aug",
+       "sep": "sep",
+       "oct": "okt",
+       "nov": "nov",
+       "dec": "dec",
+       "category_header": "Pažus en kategoria \"$1\"",
+       "subcategories": "Subkategorii",
+       "listingcontinuesabbrev": "kontinu",
+       "about": "Dajpul",
+       "cancel": "renuntǎe",
+       "mytalk": "Maj diskuţu",
+       "errorpagetitle": "Eru",
+       "tagline": "De {{SITENAME}}",
+       "help": "ajutor",
+       "search": "kaută",
+       "searchbutton": "kaută",
+       "searcharticle": "Lie",
+       "history": "Historia pažus",
+       "printableversion": "vercion printablu",
+       "permalink": "Legătul permanentul",
+       "edit": "Edita",
+       "editthispage": "Edita ce pažu",
+       "delete": "Delăre",
+       "protect": "Ažatme",
+       "newpage": "Paži novi",
+       "talkpagelinktext": "Diskuţu",
+       "personaltools": "Alatki personalu",
+       "talk": "Diskuţu",
+       "views": "Vi",
+       "toolbox": "alatunikul",
+       "redirectedfrom": "(Redirecţionat de la $1)",
+       "jumpto": "Lia a:",
+       "jumptonavigation": "navigacion",
+       "jumptosearch": "kaută",
+       "aboutsite": "Dajpul {{SITENAME}}",
+       "aboutpage": "Project:Dajpul {{SITENAME}}",
+       "copyrightpage": "{{ns:project}}:Prava d'autoru",
+       "currentevents": "Tebikoru",
+       "currentevents-url": "Project:Tebikoru",
+       "disclaimers": "tǎmenuls",
+       "disclaimerpage": "Project:tǎmenul",
+       "edithelp": "Ajutor pentru editaere",
+       "mainpage": "Pažu principu",
+       "mainpage-description": "Pažu principu",
+       "privacy": "Politikmus de ližitul",
+       "privacypage": "Project:Politikmus de ližitul",
+       "retrievedfrom": "Aduse de \"$1\"",
+       "youhavenewmessages": "Veses $1 ($2).",
+       "editsection": "Editaere",
+       "editold": "edita",
+       "editsectionhint": "Editaere ţisecion: $1",
+       "toc": "Kuprins",
+       "showtoc": "arată",
+       "hidetoc": "askunde",
+       "site-rss-feed": "$1 RSS fitul",
+       "site-atom-feed": "$1 Atom fitul",
+       "page-rss-feed": "\"$1\" RSS Fitul",
+       "page-atom-feed": "\"$1\" Atom Fitul",
+       "nstab-user": "Pažu d'utilizatoru",
+       "nstab-project": "Projektu",
+       "nstab-image": "fişirul",
+       "nstab-category": "kategoria",
+       "viewsource": "Baganaere",
+       "yourname": "Nom d'utilizatoru:",
+       "login": "Prilasnaere",
+       "nav-login-createaccount": "Prilasnaere / Nažbe",
+       "userlogin": "Prilasnaere / kreare nutilizatoru",
+       "userlogout": "otlastaere",
+       "bold_sample": "Eskrire aldin",
+       "bold_tip": "Eskrire aldin",
+       "italic_sample": "Eskrire kursive",
+       "italic_tip": "Eskrire kursive",
+       "link_sample": "Nom s'legătuls",
+       "link_tip": "Legătul internul",
+       "extlink_sample": "http://www.example.com nom s'legătuls",
+       "extlink_tip": "Legătul ķsternul (vec prefiks http://)",
+       "headline_sample": "Eskrire s'titlus",
+       "headline_tip": "Titlu de nivel 2",
+       "nowiki_sample": "Intorduca no-Wiki isi",
+       "nowiki_tip": "No-Wiki klaşu",
+       "image_tip": "Santigul inserat",
+       "media_tip": "Legătul fişirul de media",
+       "sig_tip": "Utilizatorunom et data et temp",
+       "hr_tip": "Linia orizontala (esnidivale)",
+       "summary": "Sumar:",
+       "subject": "Subjekt / titlur:",
+       "minoredit": "Aceasta este o editare minoră",
+       "watchthis": "klăaere ce pažu",
+       "showpreview": "Rată previzualizare",
+       "showdiff": "Arată şumbărae",
+       "newarticle": "(Nova)",
+       "editing": "o $1 editaere",
+       "editingsection": "Editaere $1 (sekcion)",
+       "copyrightwarning": "<!-- Gol deocamdată. Vertismentul se flă en MediaWiki:Summary -->\nTe rog notari la din kontribuţi al {{SITENAME}} sunt konsideraere relesavat supra $2 (suah $1 din detăs). Açteu nesav te se teksti sunt editaere denomerci det redistributaere din vent, hatae ici.<br /> Tu este nostre promisaere bonti us tu skrirste ce se, nega kopiaere din publik domen nega similari resorsua. '''NE SUBMITE KOPILEGRU SKRIE SAS PERMIŢION!'''",
+       "template-protected": "(ažatmat)",
+       "template-semiprotected": "(semi-ažatmat)",
+       "currentrev": "Vercion kurentu",
+       "revisionasof": "Vercion de data $1",
+       "previousrevision": "←Versiunea nterioară",
+       "cur": "aktualu",
+       "last": "precedente",
+       "history-title": "Editaerehistoria pentru \"$1\"",
+       "lineno": "Linia $1:",
+       "compareselectedversions": "Kompara vercion selektus",
+       "editundo": "anulizăe",
+       "viewprevnext": "Vu ($1 {{int:pipe-separator}} $2) ($3)",
+       "mypreferences": "Maj prefirenţu",
+       "recentchanges": "şumbărae recentae",
+       "rcshowhideminor": "$1 modifikările minore",
+       "rcshowhidebots": "$1 roboti",
+       "rcshowhideliu": "$1 utilizatori prilasnaeri",
+       "rcshowhideanons": "$1 utilizatori anonimi",
+       "rcshowhidemine": "$1 mes modifikacions",
+       "rclinks": "Rată ultimele $1 modifikări din ultimele $2 zile.<br />\n$3",
+       "diff": "diferenţu",
+       "hist": "historia",
+       "hide": "askunde",
+       "show": "Arată",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "recentchangeslinked": "Modifikări korelate",
+       "recentchangeslinked-feed": "Modifikări korelate",
+       "recentchangeslinked-toolbox": "Modifikări korelate",
+       "upload": "trimiţe fişirul",
+       "file-anchor-link": "Fişirul",
+       "filehist": "Historia fişirulu",
+       "filehist-current": "kurentu",
+       "filehist-datetime": "Data/Temp",
+       "filehist-user": "Utilizatoru",
+       "filehist-dimensions": "Dimencions",
+       "filehist-comment": "komentarul",
+       "imagelinks": "Legătul fişirul de media",
+       "linkstoimage": "Ces {{PLURAL:$1|paži legǎt|paži legǎtent}} a ce fişirul:",
+       "randompage": "alaeţu",
+       "nbytes": "$1 {{PLURAL:$1|bătul|bătuls}}",
+       "nmembers": "$1 {{PLURAL:$1|membru|membri}}",
+       "newpages": "Paži novi",
+       "booksources": "Surse de cărţi",
+       "allpages": "Toats paži",
+       "allarticles": "Toats paži",
+       "allpagessubmit": "Treme",
+       "watchlist": "Maj klăaeru",
+       "mywatchlist": "Maj klăaere",
+       "watch": "klăaere",
+       "unwatch": "Deklăaera",
+       "watching": "O klăaere...",
+       "unwatching": "O deklăaere...",
+       "rollbacklink": "revenire",
+       "namespace": "lSpaţi:",
+       "invert": "Ķskluda spaţul",
+       "blanknamespace": "(Principu)",
+       "contributions": "Kontribuţi d'utilizatori",
+       "mycontris": "Mes kontribuţi",
+       "contribsub2": "Pentru $1 ($2)",
+       "uctop": "(susverf)",
+       "sp-contributions-talk": "Diskuţu",
+       "whatlinkshere": "Legǎtul a ce pažu",
+       "whatlinkshere-title": "Paži legǎtulent a $1",
+       "nolinkshere": "Paži ne legǎtent a '''[[:$1]]'''.",
+       "istemplate": "vikulabe",
+       "whatlinkshere-links": "← legătuls",
+       "blocklink": "blokuapǎe",
+       "contribslink": "kontribuţi",
+       "revertmove": "revenire",
+       "export": "Ķsporta paži",
+       "thumbnail-more": "ķsinde",
+       "thumbnail_error": "Eru vec kreare de thumbnail: $1",
+       "tooltip-pt-userpage": "Moj pažu d'utilizatoru",
+       "tooltip-pt-mytalk": "Maj pažu diskuţus",
+       "tooltip-pt-preferences": "Maj prefirenţu",
+       "tooltip-pt-watchlist": "Lista pažinilor pe care le monitorizez.",
+       "tooltip-pt-mycontris": "Lista de mes kontribucions",
+       "tooltip-pt-login": "Pute prilasnaere, ne l'est doist.",
+       "tooltip-pt-logout": "otlastaere",
+       "tooltip-ca-talk": "Diskuţie despre artikol",
+       "tooltip-ca-edit": "Poţi edita această pažină. Te rugăm se previzualizezi konţinutul enainte de salvare.",
+       "tooltip-ca-protect": "Ažatme ce pažu",
+       "tooltip-ca-delete": "Delăre ce pažu",
+       "tooltip-search": "Kaută en {{SITENAME}}",
+       "tooltip-n-mainpage": "Visita l'pažu principu",
+       "tooltip-n-portal": "Dajpul l'projectu, quelques pote faraere, o truves sabi.",
+       "tooltip-n-currentevents": "Găseşte informaţii despre evenimentiķ kurente",
+       "tooltip-n-recentchanges": "Lista des şumbǎrae recentae en l'wiki.",
+       "tooltip-n-randompage": "Donare npažu alaetoare",
+       "tooltip-n-help": "Ajutor truves isi.",
+       "tooltip-t-whatlinkshere": "Lista tuturor pažinilor wiki care konduc spre această pažină",
+       "tooltip-t-contributions": "Vu lista de kontribuţi de c'utilizatoru",
+       "tooltip-t-upload": "Tremer fişirul",
+       "tooltip-t-specialpages": "Lista de toat paži specialus",
+       "tooltip-ca-nstab-user": "Vu l'pažu d'utilizatoru",
+       "tooltip-ca-nstab-project": "Vu l'pažu de projektu",
+       "tooltip-ca-nstab-category": "Vu l'pažu de kategoria",
+       "tooltip-minoredit": "ce-est n'modifikacion minoru",
+       "tooltip-save": "Salvaere tes modifikacions",
+       "tooltip-diff": "Rată ce modifikări ai făcut tekstului.",
+       "file-nohires": "Ce-n-est n'resolucion mai mari.",
+       "show-big-image": "Mareşte resolucion",
+       "bad_image_list": "Formatul este următorul:\n\nNumai elementîle unei liste sunt luate en consideraere. (Açestea sunt linii ce encep cu *)\n\nPrima legătură de pe linie trebuie se fie spre un fişier defectuos.\n\nOrice legături ce urmează pe acenaşi linie sunt consideraete excepţii, dică paži unde fişierul poate părea inclus direct.",
+       "metadata": "Metadata",
+       "namespacesall": "toat",
+       "monthsall": "toat",
+       "specialpages": "Paži specalus"
 }
index bbcc1a0..783665a 100644 (file)
        "mergehistory-same-destination": "मूलपृष्ठ-लक्षितपृष्ठे समाने न भवेताम् ।",
        "mergehistory-reason": "कारणम् :",
        "mergelog": "संस्करणं विलीयताम्",
-       "pagemerge-logentry": "[[:$1]] इत्येनं [[:$2]] इत्यस्मिन् विलीनं कृतम् ($3 परिवर्तनानि)",
        "revertmerge": "पृथक्क्रियताम्",
        "mergelogpagetext": "येषां पृष्ठानाम् इतिहासः अधुना एव विलीनीकृतः, तेषां पृष्ठानाम् आवलिः अधः प्रदत्ता ।",
        "history-title": "\"$1\" इत्यस्य आवर्तनेतिहासः",
        "statistics": "साङ्ख्यिकी",
        "statistics-header-pages": "पुटसाङ्ख्यिकाः ।",
        "statistics-header-edits": "सङ्ख्यिकाः सम्पादयतु ।",
-       "statistics-header-views": "साङ्ख्यिकाः अवलोकयतु ।",
        "statistics-header-users": "योजकसाङ्ख्यिकाः ।",
        "statistics-header-hooks": "अन्यसाङ्ख्यिकाः ।",
        "statistics-articles": "आधेयपुटानि ।",
        "statistics-files": "उद्भारितसञ्चिकाः",
        "statistics-edits": "{{SITENAME}} व्यवस्थापनपर्यन्तं पुटसम्पादनानि ।",
        "statistics-edits-average": "प्रतिपुटं माध्यसम्पादनानि ।",
-       "statistics-views-total": "अवलोकनयोगः ।",
-       "statistics-views-total-desc": "असंवृत्तपुटानाम् अवलोकनानि । अपि च विशेषपुटानि नान्तर्गतानि ।",
-       "statistics-views-peredit": "प्रतिसम्पादनम् अवलोकनम् ।",
        "statistics-users": "पञ्जीकृतः [[Special:ListUsers|योजकः]]",
        "statistics-users-active": "सक्रियाः सदस्याः",
        "statistics-users-active-desc": "गतेषु {{PLURAL:$1|day|$1 दिनेषु}} सक्रियाः योजकाः  ।",
-       "statistics-mostpopular": "अत्यवलोकितपुटानि ।",
        "pageswithprop": "प्रगुणविशेषयुतानि पृष्ठानि",
        "pageswithprop-legend": "प्रगुणविशेषयुतानि पृष्ठानि",
        "doubleredirects": "दुगुनी-अनुप्रेषिते",
        "uncategorizedtemplates": "अवर्गीकृताः प्रकृतयः ।",
        "unusedcategories": "अनुपयुक्ताः वर्गाः ।",
        "unusedimages": "अनुपयुक्तानि पुटाणी ।",
-       "popularpages": "प्रसिद्धानि पुटानि ।",
        "wantedcategories": "आवश्यकाः वर्गाः ।",
        "wantedpages": "आवश्यकपुटानि ।",
        "wantedpages-badtitle": "$1 परिणामनिरूपणे अमान्यशीर्षकम् ।",
        "pageinfo-robot-policy": "चालकयन्त्रस्थितिः अन्विष्यताम्",
        "pageinfo-robot-index": "अङ्कनयोग्यम्",
        "pageinfo-robot-noindex": "अङ्कनायोग्यम्",
-       "pageinfo-views": "अवलोकनानां सङ्ख्या ।",
        "pageinfo-watchers": "पृष्ठावलोककानां सङ्ख्या ।",
        "pageinfo-redirects-name": "एतत् पृष्ठं प्रति पुनर्निर्दिश्यते",
        "pageinfo-subpages-name": "अस्य पृष्ठस्य उपपृष्ठानि",
index 102cbbf..cd7d6aa 100644 (file)
        "otherlanguages": "Атын омук тылынан",
        "redirectedfrom": "(Мантан: $1  көстө)",
        "redirectpagesub": "Утаарар сирэй",
+       "redirectto": "Манна утаарыы:",
        "lastmodifiedat": "Бу сирэй бүтэһигин $2, $1 уларыйбыта.",
        "viewcount": "Бу сирэй {{PLURAL:$1|биирдэ|$1 төгүл}} көрүллүбүт.",
        "protectedpage": "Уларытыллыбат сирэй",
        "viewsourcetext": "Эн бу сирэй төрдүн көрүөххүн уонна төгүллүөххүн сөп:",
        "viewyourtext": "'''Бэйэҥ көннөрүүлэриҥ''' исходнигын бу сирэйгэ көрүөххүн уонна хатылаан ылыаххын сөп:",
        "protectedinterface": "Бу сирэй бырагыраамма интерфейсын биллэриитин көрдөрөр, онон моһуогурууттан халытан хатанан турар.\nТылбааһын уларытыаххын баҕарар буоллаххына онно аналлаах тылбаас ситим-сирин туһан: MediaWiki [//translatewiki.net/ translatewiki.net]",
-       "editinginterface": "'''Болҕой:''' Быраҕыраамма тас көстүүтүн (интерфейсын) хааччыйар тиэкиһи уларытаары гынан эрэҕин.\nБу сирэйи уларыттаххына атын кыттааччылар көрөллөрүгэр бырагыраамма көстүүтэ уларыйыа. \nТылбааһын уларытыаххын эбэтэр эбиэххин баҕарар буоллаххына Медиавики бырайыактарын тылбаастыыр сиргэ киир [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "<strong>Болҕой:</strong> Быраҕыраамма тас көстүүтүн (интерфейсын) хааччыйар тиэкиһи уларытаары гынан эрэҕин.\nБу сирэйи уларыттаххына атын кыттааччылар көрөллөрүгэр быраҕыраамма көстүүтэ уларыйыа.",
+       "translateinterface": "Бу биллэриини тылбаастыырга эбэтэр уларытарга, бука диэн, MediaWiki диэн анал тылбаастыыр сиргэ киир [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Бу сирэй уларыйар кыаҕа суох, тоҕо диэтэххэ уларыйара бобуллубут (каскаднай көмүскэл холбоммут) {{PLURAL:$1|сирэй бөлөҕөр|сирэйдэр бөлөхтөрүгэр}} киирэр:\n$2",
        "namespaceprotected": "Эн '''$1''' аат эйгэтигэр киирэр сирэйдэри уларытар кыаҕыҥ суох.",
        "customcssprotected": "Эн бу CSS-сирэйи уларытар кыаҕыҥ суох, тоҕо диэтэххэ онтуҥ атын киһи тус бэйэтин туруорууларын таарыйар.",
        "createaccount-text": "Ким эрэ {{SITENAME}} бырайыакка ($4) саҥа $2 ааты бэлиэтээбит. \"$2\" киирии тыла \"$3\". Билигин киирэн киирии тылгын уларытыаххын наада.\n\nСаҥа аат сыыһа оҥоһуллубут буоллаҕына тугу да гыныа суоххун сөп.",
        "login-throttled": "Ааккын аһара элбэхтик билиһиннэрэ сатаатыҥ.\nБука диэн $1 буолан баран өссө киирэн көрөөр.",
        "login-abort-generic": "Бу аатынан сатаан киирбэтиҥ - быстан хаалла",
+       "login-migrated-generic": "Эн бэлиэ-аатыҥ көһөрүллүбүт, онон урукку аатыҥ бу биикигэ суох буолбут эбит.",
        "loginlanguagelabel": "Омугун тыла: $1",
        "suspicious-userlogout": "Сеансы түмүктүүр ыйытыгыҥ ылыныллыбата, тоҕо диэтэххэ браузер эбэтэр кээштыыр прокси алҕас ыыппыт ыйытыктарыгар майгынныыр.",
        "createacct-another-realname-tip": "Дьиҥнээх аатыҥ булгуччута суох.\nЫйдаххына уларыппыт сирэйиҥ устуоруйатыгар көстөр буолуоҕа.",
        "showpreview": "Уларытыах иннинэ көрүү",
        "showdiff": "Уларытыылар",
        "blankarticle": "<strong>Сэрэтии:</strong> Оҥорор сирэйиҥ кураанах.\nБу тимэҕи «{{int:savearticle}}» хос баттаатаххына кураанах сирэй оҥоһуллуо.",
-       "anoneditwarning": "'''Болҕой:''' Системаҕа киирбэтэххин. Онон аатыҥ оннугар IP аадаырыһыҥ бу сирэй историятыгар киириэ.",
+       "anoneditwarning": "<strong>Болҕой:</strong> Киирбэтэххин. Онон тугу эрэ уларытар түгэҥҥэр аатыҥ оннугар IP аадырыһыҥ барыларыгар көстүө. бу сирэй историятыгар киириэ. Өскөтө <strong>[$1 киирдэххинэ]</strong> эбэтэр <strong>[$2 бэлиэтэннэххинэ]</strong> уларытыыларыҥ Эн ааккын кытта ситимнэниэхтэрэ, ону таһынан ол атын да көдьүүстэрдээх буолуоҕа.",
        "anonpreviewwarning": "''Эн тиһиккэ ааккын эппэттэххин. Уларытыыгын бигэргэттэххинэ IP-аадырыһыҥ сирэй устуоруйатыгар суруллуо.''",
        "missingsummary": "'''Санатыы:''' Уларыппытыҥ кылгас быһаарыытын суруйбатаххын. Уларытыыны бигэргэттэххинэ улартытыыҥ хос быһаарыыта суох барыа.",
        "missingcommenttext": "Манна хос быһаарыыны суруй.",
        "content-model-text": "көннөрү тиэкис",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Халыыптары ыҥырарга хатыланар аргуменнардаах сирэйдэр",
+       "duplicate-args-category-desc": "Халыыптары ыҥырарга хатыланар аргуменнардаах сирэйдэр, холобур маннык <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Болҕой. Бу сирэй наһаа элбэх көмпүүтэри ноҕуруускалыыр ресурсаларга сигэнэр.\n\n{{PLURAL:$2|Сигэнии ахсаана|Сигэниилэр ахсааннара}} мантан тахсыа суохтаах - $2, билигин {{PLURAL:$1|$1 сигэниилээх|$1 сигэниилэрдээх}}.",
        "expensive-parserfunction-category": "Көмпүүтэри ноҕуруускалыыр ресурсаларга наһаа элбэхтик сигэнэр сирэйдэр",
        "post-expand-template-inclusion-warning": "Болҕой: Киллэрэр халыыптарыҥ ыйааһыннара наһаа улахан.\nОнон сорох халыыптар киллэриллиэхтэрэ суоҕа.",
        "cantcreateaccounttitle": "Саҥа ааты киллэрэр сатаммат",
        "cantcreateaccount-text": "[[User:$3|$3]] кыттааччы бу IP-ттан ('''$1''') саҥа бэлиэтэниини бопто.\n\nБыһаарыыта: $3 - ''$2''",
        "cantcreateaccount-range-text": "Бу IP-диапазонтан '''$1''' ааты бэлиэтиири [[User:$3|$3]] боппут. Эн IP-аадырыһыҥ ('''$4''') онно киирсэр эбит. \n\nЫйыллыбыт төрүөтэ: $2.",
-       "viewpagelogs": "Бу сирэй историятын көрдөр",
+       "viewpagelogs": "Бу сирэй сурунаалларын көрүү",
        "nohistory": "Бу сирэй историята суох эбит.",
        "currentrev": "Билиҥҥи барыл",
        "currentrev-asof": "Билиҥҥи торум манна: $1",
        "mergehistory-empty": "Биир да барыл силлиһэр кыаҕа суох.",
        "mergehistory-success": "$3 {{PLURAL:$3|барыл|барыллар}} [[:$1]] биир [[:$2]] барылга силлистилэр.",
        "mergehistory-fail": "Сирэй устуоруйалара кыайан холбоспотулар, өссө биирдэ торумнар бириэмэлэрин уонна сирэй параметрдарын бэрэбиэркэлээ.",
+       "mergehistory-fail-toobig": "Устуоруйаны холбуур табыллыбата, тоҕо диэтэххэ $1  барылга көҥүллэнэр лимииттэн элбэҕи көһөрөр наада эбит.",
        "mergehistory-no-source": "Бастакы $1 сирэй суох.",
        "mergehistory-no-destination": "Баар буолуохтаах $1 сирэй суох.",
        "mergehistory-invalid-source": "Источнигыҥ сөптөөх ааттаах буолуохтаах.",
        "mergehistory-same-destination": "Саҕалыыр уонна түмүктүүр сирэйдэриҥ атын (уратылаах) буолуохтаахтар.",
        "mergehistory-reason": "Төрүөтэ:",
        "mergelog": "Силбэһиилэр сурунааллара",
-       "pagemerge-logentry": "силбэстилэр [[$1]] уонна [[$2]] ($3 диэри торумнар)",
        "revertmerge": "Араарыы",
        "mergelogpagetext": "Манна сирэйдэр устуоруйаларын бүтэһик силлэһиилэрин тиһигэ бэриллэр.",
        "history-title": "Көннөрүү сурунаала \"$1\"",
        "search-result-category-size": "{{PLURAL:$1|$1 элэмиэн|$1 элэмиэннэр}} ({{PLURAL:$2|$2 субкатегория|$2 субкатегориялар}}, {{PLURAL:$3|$3 билэ|$3 билэлэр}})",
        "search-redirect": "(утаарыы $1)",
        "search-section": "($1 сиэксийэ)",
+       "search-category": "(категория $1)",
        "search-file-match": "(билэ иһинээҕитин кытта сөп түбэһэр)",
        "search-suggest": "Баҕар маннык диэри гыммытыҥ буолуо: $1",
        "search-interwiki-caption": "Уруулуу бырайыактар",
        "license": "Лицензиялааһын:",
        "license-header": "Лицензиялааһын",
        "nolicense": "Талыллыбатах",
+       "licenses-edit": "Лиссиэнсийэ ымпыгын-чымпыгын уларыт",
        "license-nopreview": "(Уларытыыны бигэргэтиэх иннинэ көрүү сатаммат)",
-       "upload_source_url": " (сөптөөх URL, ким баҕарбыт киирэр сирэ)",
-       "upload_source_file": " (билэ көмпүүтэргэр баар)",
+       "upload_source_url": "(сөптөөх URL, ким баҕарбыт киирэр сирин талбыккын)",
+       "upload_source_file": "(көмпүүтэргэр баар билэни талбыккын)",
+       "listfiles-delete": "сотуу",
        "listfiles-summary": "Бу анал сирэй киллэриллибит билэлэри барытын көрдөрөр.",
        "listfiles_search_for": "Миэдьийэни (ойууну) аатынан көрдөтүү:",
        "imgfile": "билэ",
        "randomincategory": "Категория түбэспиччэ ыстатыйата",
        "randomincategory-invalidcategory": "\"$1\" диэн категория суох эбит.",
        "randomincategory-nopages": "Бу категорияҕа [[:Category:$1]] киирэр ыстатыйалар суохтар.",
+       "randomincategory-category": "Категория:",
        "randomredirect": "Түбэспиччэ утаарыы",
        "randomredirect-nopages": "Бу аат далыгар($1) көһөрөр ыйынньыктар суохтар.",
        "statistics": "Статистика",
        "statistics-header-pages": "Сирэй статиистиката",
        "statistics-header-edits": "Көннөрүү статиистиката",
-       "statistics-header-views": "Көрөөһүн статистиката",
        "statistics-header-users": "Кыттааччылар статиистикалара",
        "statistics-header-hooks": "Атын статистика",
        "statistics-articles": "Ыстатыйалар ахсааннара",
        "statistics-files": "Киллэриллибит билэлэр (ойуулар иҥин) ахсааннара",
        "statistics-edits": "{{SITENAME}} оҥоһуллуоҕуттан көннөрүү ахсаана",
        "statistics-edits-average": "Биир сирэйгэ ортотунан хас көннөрүү тиксэрэ",
-       "statistics-views-total": "Көрүү ахсаана",
-       "statistics-views-total-desc": "Суох уонна аналлаах сирэйдэри көрүү ааҕыллыбат",
-       "statistics-views-peredit": "Биир улартыыга тиксэр көрүү ахсаана",
        "statistics-users": "Бэлиэтэммит [[Special:ListUsers|кыттааччы]] ахсаана",
        "statistics-users-active": "Көхтөөх кыттааччылар ахсааннара",
        "statistics-users-active-desc": "Ааспыт {{PLURAL:$1|биир хонук иһигэр|$1 хонукка}} тугу эмэ оҥорбут кыттааччылар",
-       "statistics-mostpopular": "Саамай элбэхтик көрүллэр ыстатыйалар",
        "pageswithprop": "Эрдэттэн туруоруулаах сирэйдэр",
        "pageswithprop-legend": "Уларытыллыбыт туруоруулаах сирэйдэр",
        "pageswithprop-text": "Манна сорох туруоруулара уларытыллыбыт сирэйдэр көстүбүттэр.",
        "uncategorizedtemplates": "Ханнык да категорияҕа киирбэтэх халыыптар",
        "unusedcategories": "Туттуллубатах категориялар",
        "unusedimages": "Туттулубатах билэлэр",
-       "popularpages": "Элбэх киһи көрөр сирэйдэрэ",
        "wantedcategories": "Көрдөнүллэр категориялар",
        "wantedpages": "Көрдөнүллэр сирэйдэр",
        "wantedpages-badtitle": "Көрдөбүл түмүгэр сыыһалаах аат баар: $1",
        "querypage-disabled": "Бу анал сирэй тиһилик үлэтин түргэтэтээри араарыллыбыт.",
        "booksources": "Кинигэлэр источниктара",
        "booksources-search-legend": "Кинигэ туһунан көрдөө",
+       "booksources-search": "Бул",
        "booksources-text": "Манна кинигэ туһунан атын саайтарга ыйынньыктар хомулуннулар, онно баҕар эбии информация көстүөҕэ.",
        "booksources-invalid-isbn": "ISBN, арааһа, сыыһалаах. Нүөмэр көһөрөргө алҕас тахсыбатаҕын хат көр эрэ.",
        "specialloguserlabel": "Толорооччу:",
        "pageinfo-robot-policy": "Роботтар көрдөөһүннэрин туруга",
        "pageinfo-robot-index": "Көҥүллэммит",
        "pageinfo-robot-noindex": "Араарыллыбыт",
-       "pageinfo-views": "Көрүү ахсаана",
        "pageinfo-watchers": "Кэтээнэр сирэйдэр ахсааннара",
        "pageinfo-few-watchers": "$1 кыттааччыттан аҕыйах кэтээччи",
        "pageinfo-redirects-name": "Бу сирэйгэ утаарыы ахсаана",
        "expand_templates_remove_nowiki": "Түмүккэ <nowiki> бэлиэни аахсыма",
        "expand_templates_generate_xml": "XML-ы мас курдук көрдөр",
        "expand_templates_generate_rawhtml": "HTML-ы көрдөр",
-       "expand_templates_preview": "Холоон көрүү"
+       "expand_templates_preview": "Холоон көрүү",
+       "pagelang-name": "Сирэй",
+       "pagelang-language": "Омугун тыла",
+       "pagelang-use-default": "Сүрүн тылы тутун",
+       "pagelang-select-lang": "Тылы талыы",
+       "right-pagelang": "Сирэй тылын уларыт",
+       "action-pagelang": "сирэй тылын уларытар буол",
+       "log-name-pagelang": "Тылы уларытыы сурунаала",
+       "mediastatistics-nbytes": "$1 баайт ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME көрүҥэ",
+       "mediastatistics-table-count": "Билэ ахсаана",
+       "mediastatistics-table-totalbytes": "Барытын кээмэйэ",
+       "mediastatistics-header-unknown": "Биллибэт",
+       "mediastatistics-header-bitmap": "Растр ойуулар",
+       "mediastatistics-header-drawing": "Уруһуйдар (вектор ойуулар)",
+       "mediastatistics-header-audio": "Аудио",
+       "mediastatistics-header-video": "Видео",
+       "mediastatistics-header-office": "Офис",
+       "mediastatistics-header-text": "Тиэкис",
+       "mediastatistics-header-executable": "Толоруллар",
+       "mediastatistics-header-archive": "Ыгыллыбыт формааттар",
+       "json-warn-trailing-comma": "JSON иһиттэн $1 ордук соппутуой сотуллубут"
 }
index d46f31f..3c5c6fe 100644 (file)
        "tog-hideminor": "Cua is acontzos minores in sa pàgina de is ùrtimas mudàntzias",
        "tog-hidepatrolled": "Cua is mudas verificadas in is ùrtimos càmbios",
        "tog-newpageshidepatrolled": "Cua sas pàginas verificadas dae sa lista de sas pàginas noas",
-       "tog-extendwatchlist": "Ammània sa watchlist pro ammustrare totu sos càmbios, non sos prus reghentes ebbia",
+       "tog-extendwatchlist": "Ammània sa watchlist pro ammustrare totus sos càmbios, non sos prus reghentes ebbia",
        "tog-usenewrc": "Pone in pare sos càmbios de cada pàgina in sos ùrtimos càmbios e in sa watchlist",
        "tog-numberheadings": "Auto-numeratzione de sos tìtulos",
        "tog-showtoolbar": "Ammustra sa mustra de sa barra de sas ainas",
        "tog-editondblclick": "Càmbia pàginas cun duos click",
        "tog-editsectiononrightclick": "Abìlita su càmbiu de sas setziones cun click de dereta in sos tìtulos de sas setziones",
-       "tog-watchcreations": "Agiunghe sas pàginas chi apo creadu e sos documentos chi apo carrigadu in sa watchlist mea",
-       "tog-watchdefault": "Agiunghe pàginas e documentos chi apo cambiadu in sa watchlist mea",
-       "tog-watchmoves": "Agiunghe pàginas e documentos chi apo mòvidu in sa watchlist mea",
-       "tog-watchdeletion": "Agiunghe pàginas e documentos chi apo fuliadu in sa watchlist mea",
+       "tog-watchcreations": "Annanghe is pàginas chi apo creadu e is documentos chi apo carrigadu in sa lista de pàginas annotadas mea",
+       "tog-watchdefault": "Annanghe pàginas e documentos chi apo cambiadu in sa lista de pàginas annotadas mea",
+       "tog-watchmoves": "Annanghe pàginas e documentos chi apo mòvidu in sa lista de pàginas annotadas mea",
+       "tog-watchdeletion": "Annanghe pàginas e documentos chi apo burradu in sa lista de pàginas annotadas mea",
        "tog-watchrollback": "Pone is pàginas innue apo fatu su rollback in is pàginas annotadas",
-       "tog-minordefault": "Marca comente minores pro difetu totu sos càmbios",
+       "tog-minordefault": "Marca comente minores pro difetu totus sos càmbios",
        "tog-previewontop": "Ammustra s'anteprima in subra de sa casella de càmbiu e no in suta",
        "tog-previewonfirst": "Ammustra s'anteprima pro sa prima muda",
        "tog-enotifwatchlistpages": "Imbia·mi una post.el. cando b'at àpidu unu càmbiu in una pàgina o in unu documentu de sa watchlist mea",
        "edit": "Càmbia",
        "edit-local": "Càmbia sa descritzione locale",
        "create": "Crea",
-       "create-local": "Agiunghe descritzione locale",
+       "create-local": "Annanghe descritzione locale",
        "editthispage": "Càmbia custa pàgina",
        "create-this-page": "Crea custa pàgina",
        "delete": "Burra",
        "laggedslavemode": "<strong>Atentzione:</strong> Sa pàgina podet non cuntènnere sos agiornamentos prus novos.",
        "readonly": "Database bloccadu",
        "enterlockreason": "Inserta su motivu de su blocu, ispetzifichende su momentu probàbile chi su blocu at a acabbare",
-       "readonlytext": "In custu momentu su database est bloccadu dae aciunturas e àteras modificas, probabilmente pro ordinaria manutentzione a su database, a pustis de custas at a èssere normale torra.\n\nS'aministradore chi dd'at bloccadu at donadu custa ispiegatzione: $1",
+       "readonlytext": "In custu momentu su database est bloccadu dae aciunturas e àteras modificas, probabilmente pro ordinaria manutentzione a su database, a pustis de custas at a èssere normale torra.\n\nS'amministradore chi dd'at bloccadu at donadu custa ispiegatzione: $1",
        "missing-article": "Su database no at agatadu su testu de una pàgina chi diat àere agatadu a suta de su nùmene \"$1\" $2.\n\nCustu a su sòlitu si verìficat cando bi est unu ligòngiu in s'istòria o in unu cunfrontu intre revisiones de una pàgina chi est istada fuliada.\n\nSi no est custu su casu, s'est agatada una faddina de su software.\nPro praghere signa s'acontèssidu a unu [[Special:ListUsers/sysop|amministradore]] ispetzifichende su URL de sa faddina.",
        "missingarticle-rev": "(revisione nùmeru: $1)",
        "missingarticle-diff": "(Dif: $1, $2)",
        "protectedpagetext": "Custa pàgina est istada amparada pro nde prevenner su càmbiu o àteras fatas.",
        "viewsourcetext": "Podes bìere o copiare su còdighe mitza de custa pàgina:",
        "viewyourtext": "Càstia e còpia su còdighe mitza de is <strong>mudàntzias tuas</strong> in custa pàgina:",
+       "protectedinterface": "Custa pàgina frunit testu pro s'interfàtzie de su programma de custa wiki, ed est amparada pro prevènnere abusos.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [//translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
+       "editinginterface": "<strong>Atentzione:</strong> Ses modificande una pàgina chi est impreada pro frunire testu de s'interfàtzie pro su programma.\nCàmbios a custa pàgina ant a influentzare sa bisura de s'interfàtzie impitadore pro àteros impitadores in custa wiki.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [//translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
+       "cascadeprotected": "Custa pàgina est istada amparada dae sas modìficas proite est incluida in {{PLURAL:$1|custa pàgina, chi est amparada|custas pàginas, chi sunt amparadas}} cun s'optzione \"a tzurru\" ativada:\n$2",
        "namespaceprotected": "Non tenes su permissu de cambiare is pàginas in su nùmene-lugu '''$1'''.",
        "customcssprotected": "Non tenes sos permissos pro cambiare custa pàgina CSS proite cuntènnidi sas impostaduras pessonales de un'àteru impitadore.",
        "customjsprotected": "Non tenes sos permissos pro cambiare custa pàgina JavaScript proite cuntènnidi sas impostaduras pessonales de un'àteru impitadore.",
        "summary-preview": "Antiprima ogetu:",
        "subject-preview": "Antiprima tema/tìtulu:",
        "blockedtitle": "S'impitadore est istadu bloccadu",
-       "blockedtext": "<strong>Custu nùmene impitadore o indiritzu IP est stadu bloccadu.</strong>\n\nSu bloccu est stadu postu dae $1.\nSu motivu de su bloccu est: <em>$2</em>.\n\n* Su bloccu incumentzat: $8\n* Su bloccu scadit: $6\n* Intervallu de bloccu: $7\n\nSi boles, podes tzerriare $1 o un'àteru [[{{MediaWiki:Grouppage-sysop}}|amministradore]] pro faeddare de su bloccu.\nNota ca sa funtzione 'Ispedi un'email a custu impitadore' no est ativa ki no est stadu registradu un'indiritzu email vàlidu in is [[Special:Preferences|preferèntzias]] tuas o ki s'usu de custa funtzione est stadu bloccadu.\nS'indiritzu IP atuale est $3, su nùmeru ID de su bloccu est #$5.\nPro praxere spetzìfica totu is particulares in antis in carche siat pregunta de acrarimentu.",
+       "blockedtext": "<strong>Custu nùmene impitadore o indiritzu IP est stadu bloccadu.</strong>\n\nSu bloccu est stadu postu dae $1.\nSu motivu de su bloccu est: <em>$2</em>.\n\n* Su bloccu incumentzat: $8\n* Su bloccu scadit: $6\n* Intervallu de bloccu: $7\n\nSi boles, podes tzerriare $1 o un'àteru [[{{MediaWiki:Grouppage-sysop}}|amministradore]] pro faeddare de su bloccu.\nNota ca sa funtzione 'Ispedi un'email a custu impitadore' no est ativa si no est istadu registradu un'indiritzu email vàlidu in is [[Special:Preferences|preferèntzias]] tuas o si s'impreu de custa funtzione est istadu arreadu.\nS'indiritzu IP atuale est $3, su nùmeru ID de su bloccu est #$5.\nPro praghere ispetzìfica totus is particulares in antis in cale siat pregonta de acrarimentu.",
        "blockednoreason": "perunu motivu inditadu",
        "whitelistedittext": "Pro cambiare is pàginas $1.",
        "nosuchsectiontitle": "Impossìbile agatare sa setzione",
        "explainconflict": "Calicunu àteru at cambiadu custa pàgina in su tempus chi dda fias cambiende tue.\nS'àrea de testu de susu cuntènnet su testu de sa pàgina in sa forma atuale.\nIs mudàntzias tuas sunt ammustradas in s'àrea de testu in suta.\nAs a dèper insertare is mudàntzias tuas in su testu atuale, e pro custu a ddas iscrìer in s'àrea de susu.\n<strong>Solu</strong> su testu in s'àrea de susu at a èsser sarbadu si carcas su butone \"{{int:savearticle}}\".",
        "yourtext": "Su testu tuo",
        "storedversion": "Revisione in archìviu",
-       "editingold": "<strong>Atentzione: Ses cambiende una versione non-agiornada de sa pàgina.</strong>\nSi dda sarbas de aici, totu is càmbios fatos a pustis de custa versione ant a bènnere pèrdidos pro semper.",
+       "editingold": "<strong>Atentzione: Ses cambiende una versione non-agiornada de sa pàgina.</strong>\nSi dda sarbas de aici, totus is càmbios fatos a pustis de custa versione ant a bènnere pèrdidos pro semper.",
        "yourdiff": "Diferèntzias",
-       "copyrightwarning": "Abbàida, pro praghere, chi totu is contributos a {{SITENAME}} sunt cunsideradas lassadas a suta permissu de tipu $2 (càstia $1 pro nde ischire de prus). Si non boles chi s'iscritu tuo potzat èssere cambiadu e re-distribuidu dae chie si siat sena piedade e sena àteros lìmites, non ddu imbies a {{SITENAME}}.\nCun s'imbiu de custu iscritu ses garantende, a responsabilidade tua, si su iscritu ddu as cumpostu tue de persone e in originale, o puru si est istadu copiadu dae una fonte de domìniu pùblicu, o una fonte de gasi, o puru si as otentu permissu craru de impreare custu iscritu e si ddu podes dimustrare. '''NO IMPREARE MATERIALE COBERTU DAE DERETU DE AUTORE SENA PERMISSU CRARU!'''",
+       "copyrightwarning": "Abbàida, pro praghere, chi totus is contributos a {{SITENAME}} sunt cunsideradas lassadas a suta permissu de tipu $2 (càstia $1 pro nde ischire de prus). Si non boles chi s'iscritu tuo potzat èssere cambiadu e re-distribuidu dae chie si siat sena piedade e sena àteros lìmites, non ddu insartas inoghe.<br />\nCun s'imbiu de custu iscritu ses garantende, a responsabilidade tua, si su iscritu ddu as cumpostu tue de persone e in originale, o puru si est istadu copiadu dae una fonte de domìniu pùblicu, o una fonte de gasi, o puru si as otentu permissu craru de impreare custu iscritu e si ddu podes dimustrare. <strong>No impreare materiale cobertu dae deretu de autore sena permissu craru!</strong>",
+       "titleprotectedwarning": "<strong>Atentzione: Custa pàgina est istada amparada pro fàghere in modu chi ant a serbire [[Special:ListGroupRights|deretos dislindados]] pro la creare.</strong>\nS'ùrtimu elementu de su registru est marcadu inoghe in suta pro referèntzia:",
        "templatesused": "{{PLURAL:$1|Template impreadu|Templates impreados}} in custa pàgina:",
        "templatesusedpreview": "{{PLURAL:$1|Template impreadu|Templates impreados}} in custa antiprima:",
        "templatesusedsection": "{{PLURAL:$1|Template impreadu|Templates impreados}} in custa setzione:",
        "template-protected": "(bardadu)",
        "template-semiprotected": "(mesu-bardadu)",
        "hiddencategories": "Custa pàgina faghet parte de {{PLURAL:$1|1 categoria cuada|$1 categorias cuadas}}:",
+       "nocreatetext": "{{SITENAME}} at limitadu sa possibilidade de creare pàginas noas a sos impitadores registrados.\nPodes torrare in segus e modificare una pàgina esistente, o puru [[Special:UserLogin|intrare in su contu tuo o creare unu contu nou]].",
        "nocreate-loggedin": "Non tenes su permissu de creare pàginas noas.",
        "sectioneditnotsupported-title": "Modìfica de sas setziones non suportada",
        "sectioneditnotsupported-text": "Modìfica de sas setziones non suportada in custa pàgina.",
        "defaultmessagetext": "Testu de su messàgiu predeterminadu",
        "invalid-content-data": "Datos de cuntènnidu invàlidos",
        "content-not-allowed-here": "Cuntènnidu a manera \"$1\" no adduidu in sa pàgina [[$2]]",
+       "editwarning-warning": "S'essida dae custa pàgina diat pòdere cajonare sa pèrdida de totus sos càmbios chi as fatu.\nSi ses autentificadu, podes disabilitare custu avisu in sa setzione \"{{int:prefs-editing}}\" de sas preferèntzias tuas.",
+       "editpage-notsupportedcontentformat-title": "Formadu de càbidu non suportadu",
        "content-model-wikitext": "wikitestu",
        "content-model-text": "testu normale",
        "content-model-javascript": "JavaScript",
        "prefs-email": "Sèberos pro sa email",
        "prefs-rendering": "Aparèntzia",
        "saveprefs": "Sarba",
-       "restoreprefs": "Restàura totu is sèberos predefinidos (in totu is setziones)",
+       "restoreprefs": "Restàura totus is sèberos predefinidos (in totus is setziones)",
        "prefs-editing": "Casella de modìfica",
        "rows": "Lìnias:",
        "columns": "Colunnas:",
        "prefs-diffs": "Diferèntzias",
        "userrights-user-editname": "Inserta unu nùmene impitadore:",
        "editinguser": "Cambiamentu de is deretos impitadore de s'impitadore <strong>[[User:$1|$1]]</strong> $2",
+       "userrights-editusergroup": "Cambiare is grupos de impitadores",
        "userrights-groupsmember": "Membru de:",
        "userrights-reason": "Motivu:",
        "userrights-irreversible-marker": "$1*",
        "group-user-member": "{{GENDER:$1|impitadore}}",
        "group-autoconfirmed-member": "{{GENDER:$1|impitadores autocunfirmados}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
-       "group-sysop-member": "{{GENDER:$1|aministradore}}",
+       "group-sysop-member": "{{GENDER:$1|amministradore}}",
        "group-bureaucrat-member": "{{GENDER:$1|buròcrate}}",
        "group-suppress-member": "{{GENDER:$1|tzensore}}",
        "grouppage-user": "{{ns:project}}:Usuàrios",
        "statistics": "Statìsticas",
        "statistics-header-pages": "Statìsticas subra is pàginas",
        "statistics-header-edits": "Càmbia is statìsticas",
-       "statistics-header-views": "Càstia is statìsticas",
        "statistics-header-users": "Statìsticas subra is impitadores",
        "statistics-header-hooks": "Àteras statìsticas",
        "statistics-articles": "Pàginas de càbidos",
        "uncategorizedtemplates": "Templates chentza categoria",
        "unusedcategories": "Categorias no impreadas",
        "unusedimages": "Files no impreaus",
-       "popularpages": "Pàginas populares",
        "wantedcategories": "Categorias chircadas",
        "wantedpages": "Artìculos prus chircados",
        "wantedfiles": "Documentos chircados",
        "specialloguserlabel": "Atzione fata dae:",
        "speciallogtitlelabel": "Atzione fata subra:",
        "log": "Registros",
-       "allpages": "Totu is pàginas",
+       "allpages": "Totus is pàginas",
        "prevpage": "Pàgina in antis ($1)",
        "allpagesfrom": "Ammustra pàginas a partire dae:",
        "allpagesto": "Ammustra pàginas fintzas a:",
-       "allarticles": "Totu is pàginas",
-       "allinnamespace": "Totu is pàginas (nùmene-logu $1)",
+       "allarticles": "Totus is pàginas",
+       "allinnamespace": "Totus is pàginas (nùmene-logu $1)",
        "allpagessubmit": "Bae",
        "allpages-bad-ns": "Su nùmene-logu \"$1\" non esistit in {{SITENAME}}.",
        "categories": "Categorias",
        "unwatchthispage": "Boga custa pàgina dae sa watchlist tua",
        "notanarticle": "Custa pàgina no est unu artìculu",
        "watchlist-details": "Tenes {{PLURAL:$1|$1 pàgina annotada paris a sa pagina de cuntierra sua|$1 pàginas annotadas paris a is pàginas de cuntierra issoro}}.",
-       "wlshowlast": "Ammustra is ùrtimas $1 oras $2 dies",
+       "wlshowlast": "Ammustra is ùrtimas $1 oras, $2 dies",
        "watchlist-options": "Optziones subra sa lista de pàginas annotadas",
        "watching": "Giunghende a sa watchlist...",
        "unwatching": "Boghende dae sa watchlist...",
        "deletepage": "Fùlia pàgina",
        "confirm": "Cunfima",
        "excontent": "su cuntènnidu fiat: '$1'",
-       "excontentauthor": "su cuntènnidu fiat: '$1' (e s'ùnicu contribudori fiat '[[Special:Contributions/$2|$2]]')",
+       "excontentauthor": "su cuntènnidu fiat: '$1' (e s'ùnicu contribudore fiat '[[Special:Contributions/$2|$2]]')",
        "delete-confirm": "Fùlia \"$1\"",
        "delete-legend": "Fuliare",
        "confirmdeletetext": "Ses acanta de burrare una pàgina cun totu su stòria sua.\nPro praxere, cunfirma ca est intentzione tua fàgher custu, ca connosches is cosseguèntzias de s'atzione tua, a ca custa est cunforma a is [[{{MediaWiki:Policy-url}}|lìnias polìticas]].",
        "exif-contrast-0": "Normale",
        "exif-saturation-0": "Normale",
        "exif-sharpness-0": "Normale",
-       "namespacesall": "totu",
-       "monthsall": "totu",
+       "namespacesall": "totus",
+       "monthsall": "totus",
        "confirmemail": "Cunfirma s'indiritzu e-mail",
        "confirm_purge_button": "OK",
        "confirm-watch-button": "OK",
index 672e151..662f189 100644 (file)
        "mergehistory-same-destination": "Li pàggini d'urìggini e di distinazioni non ponnu èssiri la stissa",
        "mergehistory-reason": "Mutivu:",
        "mergelog": "Log d'unioni",
-       "pagemerge-logentry": "havi iunciutu [[$1]] a [[$2]] (rivisioni finu a $3)",
        "revertmerge": "Annulla unioni",
        "mergelogpagetext": "Appressu veni ammustrata na lista dî operazioni cchiù ricenti di unioni dâ storia di na pàggina ni n'autra.",
        "history-title": "$1: crunoluggìa dî canciamenti",
        "statistics": "Statìstichi",
        "statistics-header-pages": "Statistichi pî pàggini",
        "statistics-header-edits": "Statistichi pî canci",
-       "statistics-header-views": "Statistichî pî taliàti",
        "statistics-header-users": "Li statìstichi di l'utilizzatura",
        "statistics-header-hooks": "Autri statistichi",
        "statistics-articles": "Pàggini di cuntinutu",
        "statistics-files": "File carricati",
        "statistics-edits": "Canci a pàrtiri di la nstallazzioni di {{SITENAME}}",
        "statistics-edits-average": "Media dî canci pi pàggina",
-       "statistics-views-total": "Visualizzazioni totali",
-       "statistics-views-peredit": "Visualizzazioni pî canci",
        "statistics-users": "[[Special:ListUsers|Utilizzatura]] riggistrati",
        "statistics-users-active": "Utilizzatura attivi",
        "statistics-users-active-desc": "Utilizzatura chi fìciru n'azzioni {{PLURAL:$1|ni l'ultimu ionnu|nî l'ultimi $1 ionna}}",
-       "statistics-mostpopular": "Pàggini cchiù visitati",
        "doubleredirects": "Rinnirizzamenti duppi",
        "doubleredirectstext": "Chista pàggina alenca li pàggini chi rinnirìzzanu a àutri pàggini di rinnirizzamentu.\nOgnuna riga cunteni li culligamenti a lu primu e a lu secunnu redirect, oltri â prima riga di testu dû secunnu redirect ca di sòlitu cunteni la pàggina di distinazzioni \"curretta\" â quali avissi a puntari macari lu primu redirect.\nLi redirect <del>cancillati</del> furunu curretti.",
        "double-redirect-fixed-move": "[[$1]] fu spustata 'n modu automàticu, ora è nu redirect a [[$2]]",
        "uncategorizedtemplates": "Template senza catigurìi",
        "unusedcategories": "Catigurìi vacanti",
        "unusedimages": "File nun utilizzati",
-       "popularpages": "Pàggini cchiù visitati",
        "wantedcategories": "Catigurìi addumannati",
        "wantedpages": "Artìculi cchiù addumannati",
        "wantedpages-badtitle": "Tìtulu nun validu nô gruppu di risultati: $1",
index ac6176d..3bd9d93 100644 (file)
        "mergehistory-same-destination": "Soorce n destination pages canna be the same",
        "mergehistory-reason": "Raison:",
        "mergelog": "Merge log.",
-       "pagemerge-logentry": "merged [[$1]] intil [[$2]] (reveesions up til $3)",
        "revertmerge": "Onmerge",
        "mergelogpagetext": "Ablow is ae leet o the maist recent merges o yin page histerie intil anither.",
        "history-title": "Reveesion histerie o \"$1\"",
        "statistics": "Stateestics",
        "statistics-header-pages": "Page stateestics",
        "statistics-header-edits": "Eidit stateestics",
-       "statistics-header-views": "See stateesteecs",
        "statistics-header-users": "Uiser stateestics",
        "statistics-header-hooks": "Ither stateestics",
        "statistics-pages": "Pages",
        "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.",
        "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",
index c6d69e9..8bb2d3f 100644 (file)
@@ -2,18 +2,28 @@
        "@metadata": {
                "authors": [
                        "Aursani",
-                       "아라"
+                       "아라",
+                       "Fayazburiro"
                ]
        },
-       "tog-showtoolbar": "سنوارپ اوزار دٻي ڏيکاريو (جاوا اسڪرپٽ)",
-       "tog-watchcreations": "منهنجا سرجيل صفحا منهنجي ٽيٽ فهرست ۾ رکو",
-       "tog-watchdefault": "منهنجا ترميميل صفحا منهنجي ٽيٽ فهرست تي رکو",
+       "tog-underline": "هيٺان ڏنل لڪير واري لنڪ",
+       "tog-hideminor": "تازيون ننڍيون تبدليون لڪايو",
+       "tog-hidepatrolled": "تازيون گھميل تبديليون لڪايو",
+       "tog-newpageshidepatrolled": "نئين صفحن تان تازي گھميل صفحي جي لسٽ لڪايو",
+       "tog-numberheadings": "خودڪار نمبرن واري هيڊنگ",
+       "tog-showtoolbar": "ايڊٽ بار ڏيکاريو",
+       "tog-editondblclick": "ٻٽي ڪلڪ تي صفحا ايڊت ڪيو",
+       "tog-watchcreations": "منهنجا سرجيل صفحا منهنجي نهار فهرست ۾ رکو",
+       "tog-watchdefault": "منهنجا ترميميل صفحا منهنجي نهار فهرست تي رکو",
        "tog-watchdeletion": "آئون جيڪي صفحا ڊاهيان، سي منهنجي ٽيٽ فهرست تي رکو",
+       "tog-watchrollback": "انهن صفحن کي منهنجي ٽيٽ فهرست تي رکو، جن ۾ تبديلين کي مون واپس ورايو آهي.",
        "tog-previewontop": "ترميمي باڪس مٿان پيش نگاهه ڏيکاريو",
        "tog-previewonfirst": "پهرين ترميم تي پيش نگاهه ڏيکاريو",
        "tog-enotifusertalkpages": "منهنجي مباحثي صفحي ۾ تبديليءَ جي صورت ۾ مون کي برق ٽپال اماڻيو",
-       "tog-enotifminoredits": "صفحن ۾ معمولي ترميمن جي صورت ۾ به مون کي برق ٽپال ڪريو",
+       "tog-enotifminoredits": "صفحن ۾ معمولي ترميمن جي صورت ۾ بہ مون کي برق ٽپال ڪريو",
        "tog-shownumberswatching": "ٽيٽيندڙ يوزرس جو تعداد ڏيکاريو",
+       "tog-oldsig": "موجوده دستخط",
+       "tog-watchlisthideliu": "لاگ اِن ٿيل يوزرس جون ڪيل ترميمون ٽيٽ فهرست ۾ نہ ڏيکاريو",
        "tog-ccmeonemails": "ٻين يوزرس ڏانهن منهنجي موڪليل برق ٽپال جو پرت مون کي اماڻيو",
        "tog-diffonly": "تفاوت هيٺان صفحي جو مواد نه ڏيکاريو",
        "tog-showhiddencats": "لڪل زمرا ڏيکاريو",
        "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",
        "category_header": "\"$1\" زمري جا صفحا",
        "subcategories": "ذيلي زمرا",
        "category-media-header": " \"$1\" زمري اندر ذريعات",
        "cancel": "رد",
        "moredotdotdot": "اڃا...",
        "mypage": "منهنجو صفحو",
-       "mytalk": "مون سان ڳالهه",
+       "mytalk": "ڳاله ٻوله",
        "and": "&#32;۽",
        "qbfind": "ڳوليو",
        "qbbrowse": "جھانگيو",
        "printableversion": "ڇپائتو پرت",
        "permalink": "مسقتل ڳنڍڻو",
        "print": "ڇاپيو",
+       "view": "نگاهہ",
        "edit": "سنواريو",
+       "edit-local": "مقامي وضاحت کي ترميميو",
        "create": "سرجيو",
        "editthispage": "هيءُ صفحو سنواريو",
        "create-this-page": "اهو صفحو نئين سر جوڙيو",
        "delete": "ڊاھيو",
        "deletethispage": "هيءُ صفحو ڊاهيو",
+       "undeletethispage": "هيءُ صفحو اڻ ڊاهيو",
        "undelete_short": "اڻڊاهيو {{PLURAL:$1|هڪ ترميم|$1 ترميمون}}",
        "protect": "تحفظيو",
+       "protect_change": "تبديل ڪريو",
        "protectthispage": "هيءُ صفحو تحفظيو",
-       "unprotect": "اڻتحÙ\81ظيو",
-       "unprotectthispage": "Ù\87Ù\8aØ¡Ù\8f ØµÙ\81Ø­Ù\88 Ø§Ú»ØªØ­Ù\81ظيو",
+       "unprotect": "Ø­Ù\81اظت Ù\85Ù½يو",
+       "unprotectthispage": "Ù\87Ù\86 ØµÙ\81Ø­Ù\8a Ø¬Ù\8a Ø­Ù\81اظت Ù\85Ù½يو",
        "newpage": "نئون صفحو",
        "talkpage": "هن صفحي تي بحث ڪريو",
        "talkpagelinktext": "بحث",
        "articlepage": "مسودو ڏسو",
        "talk": "بحث",
        "views": "ڏيٺون",
-       "toolbox": "اوزاردٻي",
+       "toolbox": "ٽولَ",
        "userpage": "يوزر صفحو ڏسو",
        "projectpage": "رٿائي صفحو ڏسو",
        "imagepage": "ذريعاتي صفحو ڏسو",
        "otherlanguages": "ٻين ٻولين ۾",
        "redirectedfrom": "($1 کان چوريل)",
        "redirectpagesub": "چوريل صفحو",
+       "redirectto": "منتقل ڪيو",
        "lastmodifiedat": "هيءُ صفحو آخري ڀيرو $2، $1ع تي ترميميو ويو هو.",
        "viewcount": "هيءُ صفحو {{PLURAL:$1|دفعو|$1 دفعا}} ڏسجي چڪو آهي.",
        "protectedpage": "تحفظيل صفحو",
+       "jumpto": "ڏانهن ٽپ ڏيو",
+       "jumptonavigation": "رهنمائي",
        "jumptosearch": "ڳولا",
+       "generic-pool-error": "معذرت سان سرور هاڻي تمام گھڻو سُڪ آهي.\nتمام گھڻا يوزر هتي موجود آهن.\nمهرباني ڪري ٿورو ترسي پوءِ ڪوشش ڪريو.",
+       "pool-errorunknown": "اڻ ڄاتل چُڪَ",
        "aboutsite": "{{SITENAME}} بابت",
        "aboutpage": "Project:بابت",
        "copyright": "سمورو مواد $1 تحت ميسر ڪجي ٿو",
        "portal-url": "Project:نياتي باب",
        "privacy": "ذاتيات پاليسي",
        "privacypage": "Project:ذاتيات پاليسي",
+       "badaccess": "اجازتنامہ چُڪَ",
        "ok": "ٺيڪ",
        "retrievedfrom": "\"$1\" تان ورتل",
        "youhavenewmessages": "توهان لاءِ $1 ($2) آهن.",
+       "youhavenewmessagesmulti": "$1 تي توهان لاءِ نوان نياپا آهن",
        "editsection": "سنواريو",
        "editold": "سنواريو",
        "viewsourceold": "ڪوڊ ڏسو",
        "toc": "فهرست",
        "showtoc": "ڏيکاريو",
        "hidetoc": "لڪايو",
+       "confirmable-yes": "ها",
+       "confirmable-no": "نه",
        "viewdeleted": "$1 ڏسندا؟",
        "feedlinks": "روان رسد:",
        "site-rss-feed": "$1 آر ايس ايس روان رسد",
        "unwatch": "اڻ ٽيٽيو",
        "unwatchthispage": "ٽيٽڻ ڇڏيو",
        "watchlist-details": "مباحثي صفحن کان سواءِ {{PLURAL:$1|$1 صفحو|$1 صفحا}} ٽيٽيل.",
-       "wlshowlast": "پوين $1 ڪلاڪن $2 ڏينهن جا $3 ڏيکاريو",
+       "wlshowlast": "پوين $1 ڪلاڪن $2 ڏينهن جا  ڏيکاريو",
        "watching": "ٽيٽيندي...",
        "unwatching": "اڻ ٽيٽيندي...",
        "created": "ٺهي چڪو",
        "exif-gpsspeed-k": "ڪلوميٽر في ڪلاڪ",
        "exif-gpsspeed-m": "ميل في ڪلاڪ",
        "exif-gpsspeed-n": "ڳنڍيون",
-       "watchlistall2": "سڀ",
        "namespacesall": "سڀ",
        "monthsall": "سڀ",
        "confirmemail_success": "توھان جي برق ٽپال جي پڪ ڪئي وئي آھي. ھاڻِ توھان لاگ ان ٿي وڪيءَ جو مزو وٺي سگھو ٿا",
index 90f1a63..f97f953 100644 (file)
        "mergehistory-invalid-destination": "La pàgina di disthinazioni débi abé un tìturu currettu.",
        "mergehistory-reason": "Mutibu:",
        "mergelog": "Rigisthru di l'unioni",
-       "pagemerge-logentry": "ha uniddu [[$1]] a [[$2]] (ribisioni finz'a $3)",
        "revertmerge": "Anulla unioni",
        "mergelogpagetext": "Inogghi v'è una listha di l'ulthimi operazioni d'unioni di la cronologia d'una pàgina in un'althra.",
        "history-title": "Cronologia di li mudìfigghi di \"$1\"",
        "statistics": "Sthatisthigghi",
        "statistics-header-users": "Sthatisthigghi reratibi a l'utenti",
        "statistics-pages": "Pagini",
-       "statistics-mostpopular": "Pàgini più visitaddi",
        "doubleredirects": "Rinvii doppi",
        "doubleredirectstext": "Inogghi v'è una listha di li pàgini chi puntani a pàgini di rinviu. Ogna riga cunteni i cullegamenti a lu primmu e sigundu rinviu, cumenti a la disthinazioni di lu sigundu rinviu, che noimmaimmenti è la pàgina \"curretta\" a la quari dubia puntà puru lu primmu rinviu.",
        "brokenredirects": "Rinvii ibbagliaddi",
        "uncategorizedtemplates": "Mudelli chena categuri",
        "unusedcategories": "Categuri inutirizaddi",
        "unusedimages": "File inutirizaddi",
-       "popularpages": "Pàgini più visitaddi",
        "wantedcategories": "Categuri dumandaddi",
        "wantedpages": "Pàgini più dumandaddi",
        "mostlinked": "Pàgini più riciamaddi",
index d3a3b24..22bb621 100644 (file)
        "statistics-users": "Registrerejuvvon [[Special:ListUsers|geavaheaddjit]]",
        "statistics-users-active": "Aktiivvalaš geavaheaddjit",
        "statistics-users-active-desc": "Geavaheaddjit, geat leat bargan juoidá maŋimus {{PLURAL:$1|beaivvi|$1 beaivvi}} áigge.",
-       "statistics-mostpopular": "Eanemusta gehčojuvvon siiddut",
        "doubleredirects": "Guovttegeardán ođđasitstivremat",
        "brokenredirects": "Bieđganan ođđasitstivremat",
        "brokenredirectstext": "Čuovvovaš ođđasitstivremat leat artihkkaliidda, mat eai dihtto.",
        "uncategorizedtemplates": "Mállevuođut mat eai gula ovttage luohkkái",
        "unusedcategories": "Geavatkeahtes luohkát",
        "unusedimages": "Geavatkeahtes fiillat",
-       "popularpages": "Bivnnuhis siiddut",
        "wantedcategories": "Luohkkásávaldagat",
        "wantedpages": "Siidusávaldagat",
        "mostlinked": "Siiddut maidda čujuhuvvo dávjjimustá",
diff --git a/languages/i18n/ses.json b/languages/i18n/ses.json
new file mode 100644 (file)
index 0000000..d79e3c4
--- /dev/null
@@ -0,0 +1,1773 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Songhay"
+               ]
+       },
+       "tog-underline": "Dobu ganda-žeeriyan:",
+       "tog-hideminor": "Fasal kayney kaŋ hun barmayyaŋ korawey ra tugu",
+       "tog-hidepatrolled": "Fasalyan kurantey tugu barmay korawey ra",
+       "tog-newpageshidepatrolled": "Moo kurantey tugu moo taaga maašeedaa ra",
+       "tog-extendwatchlist": "Hawgay maašeedaa hayandi ka barmawey kul cebe, manti ikokorantaa hinne",
+       "tog-usenewrc": "Barmawey marga moo bande barmay korawey nda hawgayhayey ra",
+       "tog-numberheadings": "Boŋdekerey boŋkabuyan",
+       "tog-showtoolbar": "Goyjinay žeeri fasalyan cebe",
+       "tog-editondblclick": "Naagu cee hinka ka moɲey fasal",
+       "tog-editsectiononrightclick": "Kanbe guma dunbu maaɲey naagu ka dunbu fasalyan tunandi",
+       "tog-watchcreations": "Moɲey kaŋ ay k'i tee nda tukey kaŋ ay g'i zumandi tonton ay hawgayhayey ga",
+       "tog-watchdefault": "Moɲey nda tukey kaŋ ay g'i fasal tonton ay hawgayhayey ga",
+       "tog-watchmoves": "Moɲey nda tukey kaŋ ay g'i ganandi tonton ay hawgayhayey ga",
+       "tog-watchdeletion": "Moɲey nda tukey kaŋ ay g'i tuusu tonton ay hawgayhayey ga",
+       "tog-watchrollback": "Moɲey kaŋ ay n'i taagandi tonton ay hawgayhayey ga",
+       "tog-minordefault": "Fasalyaney kul šilbay sanda ikaynayaŋ nda tilasu",
+       "tog-previewontop": "Moofuryan cebe jina fasal bataa ra",
+       "tog-previewonfirst": "Moofuryan cebe fasalyan jinaa ra",
+       "tog-enotifwatchlistpages": "Bataga sanba yane waati kaŋ moo wala tuku kaŋ goo ay hawgayhayey ra barmay",
+       "tog-enotifusertalkpages": "Bataga sanba yane waati kaŋ ay goykaw šenni moɲoo barmay",
+       "tog-enotifminoredits": "Bataga sanba yane da nda moɲey nda tukey barmay kayna",
+       "tog-enotifrevealaddr": "Ay bataga aderesoo cebe bayrandi batagawey ra",
+       "tog-shownumberswatching": "Goykey kaŋ ga moɲoo hawgay hinnaa cebe",
+       "tog-oldsig": "Kanbežeeri barantaa:",
+       "tog-fancysig": "Kanbežeero tee sanda wikihantum (bila nda nga boŋdobu)",
+       "tog-uselivepreview": "Moofuryan goywaati ra (šiiyan)",
+       "tog-forceeditsummary": "Ay šaawar nda ya na fasal durandiyan dam",
+       "tog-watchlisthideown": "Ay boŋ fasalyaney tugu hawgayhayey ra",
+       "tog-watchlisthidebots": "Maršin fasalyaney tugu hawgayhayey ra",
+       "tog-watchlisthideminor": "Fasalyan kayney tugu hawgayhayey ra",
+       "tog-watchlisthideliu": "Goykaw hurantey fasalyaney tugu hawgayhayey ra",
+       "tog-watchlisthideanons": "Goykaw tugantey fasalyaney tugu hawgayhayey ra",
+       "tog-watchlisthidepatrolled": "Faslayan kurantey tugu hawgayhayey ra",
+       "tog-ccmeonemails": "Batagawey kaŋ ay g'i sanba goykaw taney se gaabu yane",
+       "tog-diffonly": "Ma ši moo gundekuna cebe fayarey cire",
+       "tog-showhiddencats": "Duni tugantey cebe",
+       "tog-norollbackdiff": "Ma ši fayari cebe taagandiyan waate",
+       "tog-useeditwarning": "Ay šaawar waati kaŋ ay ga fasal moo naŋ bila nda barmawey ma gaabundi",
+       "tog-prefershttps": "Ciyari saajante tee waati kul ka huru",
+       "underline-always": "Waati kul",
+       "underline-never": "Abada",
+       "underline-default": "Kuusu wala ceecikaw tilasu",
+       "editfont-style": "Ganda šigira alhaali fasal:",
+       "editfont-default": "Ceecikaw tilasu",
+       "editfont-monospace": "Šigira kankamante",
+       "editfont-sansserif": "Šigira mulla",
+       "editfont-serif": "Šigiri yutta",
+       "sunday": "Alhadi",
+       "monday": "Atinni",
+       "tuesday": "Atalaata",
+       "wednesday": "Alarba",
+       "thursday": "Alhamiisa",
+       "friday": "Alzuma",
+       "saturday": "Asibti",
+       "sun": "Ahd",
+       "mon": "Atn",
+       "tue": "Atl",
+       "wed": "Alb",
+       "thu": "Alh",
+       "fri": "Alz",
+       "sat": "Asb",
+       "january": "Žanwiye",
+       "february": "Feewiriye",
+       "march": "Marsi",
+       "april": "Awiril",
+       "may_long": "Me",
+       "june": "Žuweŋ",
+       "july": "Žuyye",
+       "august": "Ut",
+       "september": "Sektanbur",
+       "october": "Oktoobur",
+       "november": "Noowanbur",
+       "december": "Deesanbur",
+       "january-gen": "Žanwiye",
+       "february-gen": "Feewiriye",
+       "march-gen": "Marsi",
+       "april-gen": "Awiril",
+       "may-gen": "Me",
+       "june-gen": "Žuweŋ",
+       "july-gen": "Žuyye",
+       "august-gen": "Ut",
+       "september-gen": "Sektanbur",
+       "october-gen": "Oktoobur",
+       "november-gen": "Noowanbur",
+       "december-gen": "Deesanbur",
+       "jan": "Žan",
+       "feb": "Few",
+       "mar": "Mar",
+       "apr": "Awl",
+       "may": "Me",
+       "jun": "Žuw",
+       "jul": "Žuy",
+       "aug": "Ut",
+       "sep": "Sekt",
+       "oct": "Okt",
+       "nov": "Now",
+       "dec": "Des",
+       "january-date": "Žanwiye $1",
+       "february-date": "Feewiriye $1",
+       "march-date": "Marsi $1",
+       "april-date": "Awiril $1",
+       "may-date": "Me $1",
+       "june-date": "Žuweŋ $1",
+       "july-date": "Žuyye $1",
+       "august-date": "Ut $1",
+       "september-date": "Sektanbur $1",
+       "october-date": "Oktoobur $1",
+       "november-date": "Noowanbur $1",
+       "december-date": "Deesanbur $1",
+       "pagecategories": "{{PLURAL:$1|Dumi|Dumey}}",
+       "category_header": "Moɲey dumi \"$1\" ra",
+       "subcategories": "Dumi-izey",
+       "category-media-header": "Hẽenandihaya dumi \"$1\" ra",
+       "category-empty": "<em>Sohõda dumoo woo šii nda moo wala hẽenandihaya kul.</em>",
+       "hidden-categories": "{PLURAL:$1|Dumi tugante|Dumi tugantey}}",
+       "hidden-category-category": "Dumi tugantey",
+       "category-subcat-count": "{{PLURAL:$2|Dumoo woo goo nda dumi-izoo woo hinne.|Dumoo woo goo nda dumi-izey wey hinne {{PLURAL:$1|dumi-ize|$1 dumi-ize}}, ka hun $2 ra.}}",
+       "category-subcat-count-limited": "Dumoo woo goo nda {{PLURAL:$1|dumi-izoo|$1 dumi-izey}}.",
+       "category-article-count": "{{PLURAL:$2|Moɲoo woo hinne bara dumoo woo ra.|Ne {{PLURAL:$1|moɲoo|$1 moɲey}} dumoo woo ra, ka hun $2 ra.}}",
+       "category-article-count-limited": "Ne {{PLURAL:$1|moɲoo goo|$1 moɲey goo}} sohõda dumoo ra.",
+       "category-file-count": "{{PLURAL:$2|Tukoo woo hinne bara dumoo woo ra.|Ne {{PLURAL:$1|tukoo goo|$1 tukey goo}} dumoo, ka hun $2 ra.}}",
+       "category-file-count-limited": "Ne {{PLURAL:$1|tukoo goo|$1 tukey goo}} sohõda dumoo ra.",
+       "listingcontinuesabbrev": "(bisa)",
+       "index-category": "Moo šilbantey",
+       "noindex-category": "Moɲey kaŋ mana šilbandi",
+       "broken-file-category": "Mooyaŋ nda tuku dobu kayrayaŋ",
+       "categoryviewer-pagedlinks": "($1) ($2)",
+       "about": "Bay woo ga",
+       "article": "Gundekuna moo",
+       "newwindow": "(ga feera zanfun taaga ra)",
+       "cancel": "Naŋ",
+       "moredotdotdot": "Ka tonton…",
+       "morenotlisted": "Maašeedaa woo mana timme.",
+       "mypage": "Moo",
+       "mytalk": "Šelaŋ",
+       "anontalk": "Šelaŋ IP aderesoo woo se",
+       "navigation": "Naaruyan",
+       "and": "&#32;nda",
+       "qbfind": "Guna",
+       "qbbrowse": "Ceeci",
+       "qbedit": "Fasal",
+       "qbpageoptions": "Moɲoo woo",
+       "qbmyoptions": "Ay moɲey",
+       "faq": "Hãa ka faham",
+       "faqpage": "Project:Hãa ka faham",
+       "actions": "Teerey",
+       "namespaces": "Maafarrey",
+       "variants": "Dumi-dumey",
+       "navigation-heading": "Naaruyan šilbayboŋ",
+       "errorpagetitle": "Firka",
+       "returnto": "Willi $1 ga.",
+       "tagline": "Hun {{SITENAME}} ga",
+       "help": "Faaba",
+       "search": "Ceeci",
+       "searchbutton": "Ceeci",
+       "go": "Koy",
+       "searcharticle": "Koy",
+       "history": "Moo taariki",
+       "history_short": "Taariki",
+       "updatedmarker": "kaŋ taagandi z'ay naarumi koraa",
+       "printableversion": "Karyan dumi",
+       "permalink": "Dobu duumante",
+       "print": "Kar",
+       "view": "Guna",
+       "view-foreign": "Guna $1 ga",
+       "edit": "Fasal",
+       "edit-local": "Gorodoo šilbay fasal",
+       "create": "Tee",
+       "create-local": "Gorodoo šilbay tonton",
+       "editthispage": "Moɲoo woo fasal",
+       "create-this-page": "Moɲoo woo tee",
+       "delete": "Tuusu",
+       "deletethispage": "Moɲoo woo tuusu",
+       "undeletethispage": "Moo tuusantaa woo yeeti",
+       "undelete_short": "Yeeti {{PLURAL:$1|barmay foo|$1 barmay fooyaŋ}}",
+       "viewdeleted_short": "Guna {{PLURAL:$1|barmay tuusante foo|$1 barmay tuusante fooyaŋ}}",
+       "protect": "Jejebu",
+       "protect_change": "barmay",
+       "protectthispage": "Moɲoo woo jejebu",
+       "unprotect": "Jejebu barmay",
+       "unprotectthispage": "Moɲoo woo jejeboo barmay",
+       "newpage": "Moo taaga",
+       "talkpage": "Deede moo woo ga",
+       "talkpagelinktext": "Šelaŋ",
+       "specialpage": "Cerecere moo",
+       "personaltools": "Boro-boŋ goyjinawey",
+       "articlepage": "Gundekuna moɲoo guna",
+       "talk": "Deedeyan",
+       "views": "Gunarey",
+       "toolbox": "Goyjinawey",
+       "userpage": "Goykaw moo guna",
+       "projectpage": "Porože moo guna",
+       "imagepage": "Tuku moo guna",
+       "mediawikipage": "Bataga moo guna",
+       "templatepage": "Leeti moo guna",
+       "viewhelppage": "Faaba moo guna",
+       "categorypage": "Dumi moo guna",
+       "viewtalkpage": "Deedaa guna",
+       "otherlanguages": "Šenni tanayaŋ ra",
+       "redirectedfrom": "(Kaŋ $1 n'a bisandi)",
+       "redirectpagesub": "Bisandi moo",
+       "redirectto": "Bisandi ne:",
+       "lastmodifiedat": "Moɲoo barmay cee koraa $1 hane, $2 waate.",
+       "viewcount": "Moɲoo woo duwandi {{PLURAL:$1|cee foo|$1 cee booboyaŋ}}.",
+       "protectedpage": "Moo jejebante",
+       "jumpto": "Sar ne:",
+       "jumptonavigation": "naaruyan",
+       "jumptosearch": "ceeciyan",
+       "view-pool-error": "Alhaa naŋ, feršikey goo goy šenda ra sohõda.\nGoykaw booboyaŋ ga ceeci ka dii moɲoo woo.\nTaare batu kayna jina de ma ceeci ka dii moɲoo koyne.",
+       "generic-pool-error": "Alhaa naŋ, feršikey goo goy šenda ra sohõda.\nGoykaw booboyan ga ceeci ka dii goy misoo woo.\nTaare batu kayna jina de ma ceeci ka dii y'a koyne.",
+       "pool-timeout": "Goywaati batuyan ben",
+       "pool-queuefull": "Batuyan šillo too",
+       "pool-errorunknown": "Firka šibayante",
+       "pool-servererror": "Batuyan goy kabukaw ši duwandi ($1).",
+       "aboutsite": "{{SITENAME}} ga",
+       "aboutpage": "Porože:Bayray",
+       "copyright": "Gundekuna ga bara $1 cire nda manti kakaw ra.",
+       "copyrightpage": "{{ns:project}}:Alhakey",
+       "currentevents": "Sohõda teerey",
+       "currentevents-url": "Project:Sohõda teerey",
+       "disclaimers": "Yaamarey",
+       "disclaimerpage": "Project: Hankul yaamar",
+       "edithelp": "Fasalyan faaba",
+       "mainpage": "Šintin moo",
+       "mainpage-description": "Šintin moo",
+       "policy-url": "Project:Laada",
+       "portal": "Jamaa batoo",
+       "portal-url": "Project:Jamaa batoo",
+       "privacy": "Sutura laada",
+       "privacypage": "Project:Sutura laada",
+       "badaccess": "Duɲeyaney firka",
+       "badaccess-group0": "N' šii nda fondo ka goyoo woo tee ne.",
+       "badaccess-groups": "Goyoo kaŋ war n'a wiri ga feeri goykey wey de se {PLURAL:$2|margaa|margawey affaa}}: $1.",
+       "versionrequired": "MediaWiki dumi $1 ga waažibandi",
+       "versionrequiredtext": "MediaWiki dumi $1 ga waažibandi ka goy nda moɲoo woo. Dii [Special:Dumi|moo dumi]].",
+       "ok": "Ayyo",
+       "pagetitle": "$1 - {{SITENAME}}",
+       "pagetitle-view-mainpage": "{{SITENAME}}",
+       "backlinksubtitle": "← $1",
+       "retrievedfrom": "Soolomandi ka hun \"$1\" ra",
+       "youhavenewmessages": "{{PLURAL:$3|N' goo nda}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|N' goo nda }} $1 ka hun {{PLURAL:$3|goykaw tana|$3 goykaw taney}} ra ($2).",
+       "youhavenewmessagesmanyusers": "N' goo nda $1 goykaw booboyaŋ ra ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|alhabar foo|999=alhabar taagayaŋ}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|barmay|999=barmay}} kokorante",
+       "youhavenewmessagesmulti": "War goo nda alhabar taaga $1 ga",
+       "editsection": "fasal",
+       "editold": "fasal",
+       "viewsourceold": "aššil guna",
+       "editlink": "fasal",
+       "viewsourcelink": "aššil guna",
+       "editsectionhint": "Dumbu fasal:$1",
+       "toc": "Gundekuna",
+       "showtoc": "cebe",
+       "hidetoc": "tugu",
+       "collapsible-collapse": "Daabirji",
+       "collapsible-expand": "Hayandi",
+       "confirmable-confirm": "Woy wal'aru no?",
+       "confirmable-yes": "Ayyo",
+       "confirmable-no": "Kalaa",
+       "thisisdeleted": "Guna wala yeeti $1?",
+       "viewdeleted": "$1 guna?",
+       "restorelink": "{{PLURAL:$1|barmay tuusante foo|$1 barmay tuusante fooyaŋ}}",
+       "feedlinks": "Toonandiyan:",
+       "feed-invalid": "Maahantumyan toonandiyan dumi laala.",
+       "feed-unavailable": "Goykondayyan toonandiyaney ši duwandi",
+       "site-rss-feed": "$1 RSS toonandiyan",
+       "site-atom-feed": "$1 Atom toonandiyan",
+       "page-rss-feed": "\"$1\" RSS toonandiyan",
+       "page-atom-feed": "\"$1\" Atom toonandiyan",
+       "feed-atom": "Atom",
+       "feed-rss": "RSS",
+       "red-link-title": "$1 (moɲoo šii bara)",
+       "sort-descending": "Kabu ka zunbu fayyan",
+       "sort-ascending": "Kabu ka ziji fayyan",
+       "nstab-main": "Moo",
+       "nstab-user": "Goykaw moo",
+       "nstab-media": "Hẽenandi moo",
+       "nstab-special": "Cerecere moo",
+       "nstab-project": "Porožewoo ga",
+       "nstab-image": "Tuku",
+       "nstab-mediawiki": "Alhabar",
+       "nstab-template": "Leeti",
+       "nstab-help": "Faaba moo",
+       "nstab-category": "Dumi",
+       "nosuchaction": "Teera tanaa woo šii",
+       "nosuchactiontext": "Goyoo kaŋ tabatandi URL ra ši tee.\nMane firka bara URL hantumoo ra, wala dobu laala ma hanga.\nWoo ga hin ka tee da hasaraw {{SITENAME}} goy porogaramoo ra.",
+       "nosuchspecialpage": "Cerecere moɲoo woo ši bara",
+       "nospecialpagetext": "Maašeede goo moo cerecerante henney se kaŋ ga duwandi [[Special:SpecialPages|{{int:specialpages}}]] ga.",
+       "error": "Firka",
+       "databaseerror": "Bayrayhugu firka",
+       "databaseerror-text": "Bayrayhugu hãayan firka bangay.\nWoo ga hin ka ti porogaram hasaraw tammaasa.",
+       "databaseerror-textcl": "Bayrayhugu hãayan firka bangay.",
+       "databaseerror-query": "Hãayan: $1",
+       "databaseerror-function": "Goymee: $1",
+       "databaseerror-error": "Firka: $1",
+       "laggedslavemode": "<strong>Yaamar:</strong> A ga hin ka tee taagandiri korawey šii moɲoo ra.",
+       "readonly": "Bayrayhugu kufalante",
+       "enterlockreason": "Dalin dam kaŋ kufaloo se, sanda ka žimam waati kaŋ kufaloo ka feera",
+       "readonlytext": "Juwalkaa kaŋ n'a kufal na daliloo woo noo: $1",
+       "missing-article": "Bayrayhugoo mana dii moo foo hantumoo kaŋ a hima ka duu w'a, kaŋ maaɲoo ti \"$1\" $2.",
+       "missingarticle-rev": "(barmayyan#: $1)",
+       "missingarticle-diff": "(Barmay: $1, $2)",
+       "readonly_lag": "Bayrayhugoo n' ka kufalandi nga boŋše waati kaŋ alhaadimi bayrayhugu feršikey ga feršikaw jinehuno gaarandi",
+       "internalerror": "Kunahere firka",
+       "internalerror_info": "Kunahere firka: $1",
+       "filecopyerror": "Mana hin ka tuku \"$1\" bere \"$2\" ga.",
+       "filerenameerror": "Mana hin ka tuku \"$1\" maa barmay \"$2\" ga.",
+       "filedeleteerror": "Mana hin ka tuku \"$1\" tuusu.",
+       "directorycreateerror": "Mana hin ka fooloɲaa \"$1\" tee.",
+       "filenotfound": "Mana hin ka duu tuku \"$1\" barmay.",
+       "unexpected": "Hinna kaŋ mana naanandi: \"$1\"=\"$2\".",
+       "formerror": "Firka: Mana hin ka takari sanba.",
+       "badarticleerror": "Goyoo woo ši hin ka tee moɲoo woo ga.",
+       "cannotdelete": "\"$1\" moo wala tuku mana hin ka tuusandi.",
+       "cannotdelete-title": "Ši hi ka \"$1\" moɲoo tuusu",
+       "delete-hook-aborted": "Dobu foo na tuusuroo ganji.\nA mana dalil kul noo.",
+       "no-null-revision": "Mana hin ka yaada-barmay taaga tee \"$1\" moo se",
+       "badtitle": "Maa laala",
+       "badtitletext": "Moo maaɲoo kaŋ hãandi ga laala, koonu wal'a dobu laybante no šenney wala wiki maaɲey game.",
+       "perfcached": "Bayhayey wey ga tugandi nd'a ga tee kaŋ i ši teji koyne. {{PLURAL:$1|hunyan foo|$1 hunyaŋ}} ga bara tugu dogoo ra..",
+       "perfcachedts": "Bayhayey wey ga tugandi nd'i taagandi cee koraa $1 hane. Fella ra {PLURAL:$4|hunyan foo|$4 hunyaŋ}} ga bara tugudogoo ra.",
+       "querypage-no-updates": "Moɲoo woo taagandirey n' ka kay sohõda.\nNe bayhayey ši kaa ka taagandi sohõda.",
+       "viewsource": "Aššil guna",
+       "viewsource-title": "Aššil guna $1 se",
+       "actionthrottled": "Goy nakasante",
+       "actionthrottledtext": "Ka žiibi bataga ganji, war ga hin ka goyoo woo tee de cee fooyaŋ waati dunba ra, nda war na adadoo din hoo.\nTaare wa ceeci koyne minitiyaŋ ra.",
+       "protectedpagetext": "Moɲoo woo n' ka jejebandi ka barmayyan wala goy tanayaŋ ganji.",
+       "viewsourcetext": "War ga hin ka dii moɲoo ašsiloo nda k'a bere:",
+       "viewyourtext": "War ga hin ka dii <strong>war fasalyaney</strong> aššilo nda k'i bere:",
+       "protectedinterface": "Moɲoo woo ka hantumoo cebe wikiyoo woo porogaramoo se nd'a ga jejebu hasaraw teekey ga. Goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka berandiyaŋ tonton wala k'i barmay.",
+       "editinginterface": "<strong>Yaamar:</strong> War goo ma moo fasal kaŋ nd'i ga goy ka goyjinaa porogaram hantumoo cebe. \nBarmay kaŋ ga tee moɲoo ka hantumey kaŋ goykaw ga dii y'ey bere wikiyoo woo ga. Goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka barmay wala berandiyaŋ tonton.",
+       "cascadeprotected": "Moɲoo woo ga jejebu barmayyan ga zam'a goo ne {PLURAL:$1|moo kaŋ ti|moɲey kaŋ ti}} jejebante nda \"kaŋandiyan\" suubari kaŋ ga dira: \n$2",
+       "namespaceprotected": "War šii nda fondo ka moɲey barmay <strong>$1</strong> maadogoo ra.",
+       "customcssprotected": "War šii nda fondo ka CSS moɲoo woo barmay zama goykaw tana foo boŋkayandiyaney g'a ra.",
+       "customjsprotected": "War šii nda fondo ka JavaScript barmay zama a goo nda goykaw tana foo boŋkayandiyaney.",
+       "mycustomcssprotected": "War šii nda fondo ka CSS moɲoo woo barmay.",
+       "mycustomjsprotected": "War šii nda fondo ka JavaScript moɲoo woo barmay.",
+       "myprivateinfoprotected": "War šii nda fondo ka war sutura alhabaroo moɲoo woo barmay.",
+       "mypreferencesprotected": "War šii nda fondo ka war ibaayey barmay.",
+       "ns-specialprotected": "Moo cerecerantey ši hin ka barmandi.",
+       "titleprotected": "[[User:$1|$1]] na maaɲoo woo jejebu za teeyanoo ga.\nI na daliloo noo \"<em>$2</em>\" ra.",
+       "filereadonlyerror": "Mana hin ka \"$1\" tukoo barmay zama tuku \"$2\" jišidogoo goo cawyan-hinne alhaali ra.\n\nJuwalkaa kaŋ n'a kufal na daliloo woo noo: \"$3\"",
+       "invalidtitle-knownnamespace": "Maa laala \"$2\" maadogoo nda \"$3\" hantumoo bande",
+       "invalidtitle-unknownnamespace": "Maa laala maadoo hinna \"$1\" šibayante nda \"$2\" hantumoo bande",
+       "exception-nologin": "Mana huru",
+       "exception-nologin-text": "Taare huru ka hin ka duu moɲoo wala teeraa woo.",
+       "exception-nologin-text-manual": "Taare $1 ka hin ka duu moɲoo wala teeraa woo.",
+       "virus-badscanner": "Hanseyan laala: wirisi gunakaw šibayante: <em>$1</em>",
+       "virus-scanfailed": "gunari kaŋ (ašariya $1)",
+       "virus-unknownscanner": "wirisi safari šibayante:",
+       "logouttext": "Bay kaŋ moɲey jerey ga hin ka gaabandi ka cebe sanda war n' ka cindi ka huru, hala war ma ceecikaw tugudogoo tuusu.",
+       "welcomeuser": "Kubayni, $1!",
+       "welcomecreation-msg": "War kontoo tee ka ben.\nWar ga hin ka war {{SITENAME}} [[Special:Preferences|ibaayey]] barmay nda war ga baa.",
+       "yourname": "Goykaw maa:",
+       "userlogin-yourname": "Goykaw ma",
+       "userlogin-yourname-ph": "Ni goykaw maaɲoo dam",
+       "createacct-another-username-ph": "Goykaw maa dam",
+       "yourpassword": "Šennikufal:",
+       "userlogin-yourpassword": "Šennikufal",
+       "userlogin-yourpassword-ph": "ni šennikufaloo dam",
+       "createacct-yourpassword-ph": "Šennikufal dam",
+       "yourpasswordagain": "Šennikufal hantum taaga:",
+       "createacct-yourpasswordagain": "Šennikufal tabatandi",
+       "createacct-yourpasswordagain-ph": "Šennikufal dam taaga",
+       "remembermypassword": "Hong'ay huruyan tammaasa ceecikaa woo ga (a ma ši bisa {PLURAL:$1|jirbi|jirbi}}) $1",
+       "userlogin-remembermypassword": "Ay goywaatoo ma gaabandi ka feera",
+       "userlogin-signwithsecure": "Ciya nda saajaw",
+       "yourdomainname": "Ni zunbu dogoo:",
+       "password-change-forbidden": "Ni ši hin ka šennikufaley barmay wikiyoo woo ga.",
+       "externaldberror": "Huru",
+       "login": "Huru",
+       "nav-login-createaccount": "Huru / kontu tee",
+       "userlogin": "Huru / kontu tee",
+       "userloginnocreate": "Huru",
+       "logout": "Fatta",
+       "userlogout": "Fatta",
+       "notloggedin": "Mana huru",
+       "userlogin-noaccount": "Šii nda kontu wala?",
+       "userlogin-joinproject": "Dii {{SITENAME}}",
+       "nologin": "Šii nda kontu wala? $1.",
+       "nologinlink": "Kontu tee",
+       "createaccount": "Kontu tee",
+       "gotaccount": "Huru",
+       "gotaccountlink": "Huru",
+       "userlogin-resetlink": "Dirŋa ni kontu šilbawey?",
+       "userlogin-resetpassword-link": "Dirŋa ni šennikufaloo?",
+       "userlogin-helplink2": "Ay gaa ka huru",
+       "userlogin-loggedin": "N' huru ka ben sanda {{GENDER:$1|$1}}.\nGanda takaddaa zaa ka huru goykaw tana.",
+       "userlogin-createanother": "Kontu tee",
+       "createacct-emailrequired": "Bataga aderesu",
+       "createacct-emailoptional": "Bataga aderesu (suubari)",
+       "createacct-email-ph": "Ni bataga aderesoo dam",
+       "createacct-another-email-ph": "Bataga aderesu dam",
+       "createaccountmail": "Šiiyan šennikufal dam saaye bande nd'a sanba bataga aderesu tabatantaa do",
+       "createacct-realname": "Maa cimi (suubari)",
+       "createaccountreason": "Dalil:",
+       "createacct-reason": "Dalil",
+       "createacct-reason-ph": "Hayaa kaŋ se war goo ma kontu waana tee",
+       "createacct-captcha": "Saajaw korošiyan",
+       "createacct-imgcaptcha-ph": "Hantumoo kaŋ war ga dii y'a beene dam",
+       "createacct-submit": "War kontoo tee",
+       "createacct-another-submit": "Kontu waana foo tee",
+       "createacct-benefit-heading": "Boro kaŋ ga hima war ka {{SITENAME}} tee.",
+       "createacct-benefit-body1": "{{PLURAL:$1|barmay $1}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|moo $1}}",
+       "createacct-benefit-body3": "Cee koraa {{PLURAL:$1|kanbuzaakaw $1}}",
+       "badretype": "Kufalšenney kaŋ war n'i dam ši tenji.",
+       "userexists": "Maa waanante suuba taare.",
+       "loginerror": "Huruyan firka",
+       "createacct-error": "Kontu feeriyan firka",
+       "createaccounterror": "Mana hin ka kontu tee: $1",
+       "nocookiesnew": "War aleewawey n' ka kay.\nW'i tunandi, de war ma huru nda war goykawmaa nda šennikufal taagey.",
+       "nocookieslogin": "War aleewawey n' ka kay.\nW'i tunandi, de war ma ceeci koyne.",
+       "nocookiesfornew": "Goykaw kontoo mana mana teendi zam'ir mana hin ka ng'aššiloo tabatandi.\nWar m'alhakiika kaŋ aleewawey tunandi, moɲoo zumandi taaga nda ceeci koyne.",
+       "nocookiesforlogin": "{{int:nocookieslogin}}",
+       "noname": "War mana goykaw maa henna kayandi.",
+       "loginsuccesstitle": "Huryanoo boori",
+       "loginsuccess": "<strong>War huru {{SITENAME}} ra sohõ sanda \"$1\".</strong>",
+       "nosuchuser": "Goykaw kul šii kaŋ ti \"$1\".  \nGoykawmaaɲey ga kula nda harfu azzaati.\nWar hantumoo koroši, wala [[Special:UserLogin/signup|kontu taaga tee]].",
+       "nosuchusershort": "Goykaw kul šii kaŋ ti \"$1\".\nHantum-tenjiyan koroši.",
+       "nouserspecified": "War ga hima ka goykawmaa kayandi.",
+       "login-userblocked": "Goykaw gagayandi. Huruyan šii nda fondo.",
+       "wrongpassword": "Ceeci koyne taare.",
+       "wrongpasswordempty": "Šennikufaloo kaŋ huru ga koonu. \nTee koyne taare.",
+       "passwordtooshort": "Šennikufaley ka hima ka bara nda {{harfu 1$|PLURAL:$1}.",
+       "password-name-match": "War šennikufaloo ma ši hima war goykaw maaɲoo.",
+       "password-login-forbidden": "Goykaw maa nda šennikufaley wey ši hin ka koy.",
+       "mailmypassword": "Šennikufaloo yeeti",
+       "passwordremindertitle": "Šiiyan šennikufal taaga {{SITENAME}} se",
+       "passwordremindertext": "Boro foo (sanda ni, nda IP aderesu $1) na šennikufal taaga wiri {{SITENAME}} ($4) se nd'a kayandi \"$3\" ga. Nda war mana boona woo, war mma hima ka huru nda šennikufal taaga suuba sohõ. War šiiyan šennikufaloo waato ga ben {{PLURAL:$5|jirbi foo|jirbi $5}} ra. \n\nNda boro waani foo no k'a wiri, wala war n' ka honga war šennikufaloo nda war ši boona k'a barmay koyne, war ga hin ka yaamaroo woo muray, nda ka gaabu ka goy nda šennikufal žeenaa.",
+       "noemail": "Bataga aderesu kul mana jisandi \"$1\" goykaa se.",
+       "noemailcreate": "War ga hima ka bataga aderesu henna noo.",
+       "passwordsent": "Šennikufal taaga n' ka sanbandi bataga aderesu jisantaa ga  \"$1\" se. Ceeci ka huru koyne nda n' duu w'a.",
+       "blocked-mailpassword": "I na war IP aderesoo ganji a ma hantum, adiši a ši duu fondo ka goy nda šennikufal yeetiyan dabaroo ka zanbayan gagay.",
+       "eauthentsent": "Cimandiyan bataga n' ka sanbandi bataga aderesu tabatantaa ga. \nWar ga hima ka šilbawey kaŋ goo bataga laasaabu jina, hala war ga hin ka war ga hin ka bataga tana kul sanba ka cimandi kaŋ alhakiika ra kontoo ti war wane.",
+       "throttled-mailpassword": "Šennikufal yeetiyan bataga n' ka sanbandi war se a ga too {{PLURAL:$1|guuru $1}}.\nKa zanbayan ganji, šennikufal yeetiyan bataga foo de ma sanbandi {{PLURAL:$1|guuru $1}} ra.",
+       "mailerror": "Bataga sanbayan firka: $1",
+       "acct_creation_throttle_hit": "Boro kaŋ ga ciya nda war IP aderesoo na {{PLURAL:$1|kontu $1}} jirbi koraa ra, woo ti alkadaroo beero kaŋ ga hin ka tee waatoo woo ra. \nWoo sabboo se, borey kaŋ ga goy nda IP aderesoo woo ši hin ka kontu kul tee koyne sohõda.",
+       "emailauthenticated": "War bataga aderesoo n' ka tabatandi $2 boŋ $3 ga.",
+       "emailnotauthenticated": "War bataga aderesoo mana tabatandi.\nBataga kul ši sanbandi alhaaley wey affoo ku še.",
+       "noemailprefs": "Bataga aderesu tabatandi war ibaayey ra alhaaley wey ma hin ka goy.",
+       "emailconfirmlink": "War bataga aderesoo tabatandi",
+       "invalidemailaddress": "Bataga aderesoo ši hin ka zaandi z'a mma hima takari laybante.   \nSoobay k'aderesu takari henna dam wala farru koonu naŋ.",
+       "cannotchangeemail": "Kontu bataga aderesey ši hin ka barmay wikiyoo woo ga.",
+       "emaildisabled": "Nungoo woo ši hin ka bataga sanba.",
+       "accountcreated": "Kontoo tee ka ben",
+       "accountcreatedtext": "Kontoo goykaa no ka tee [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|batu]]) se.",
+       "createaccount-title": "Kontu tee {{SITENAME}} se",
+       "createaccount-text": "Boro foo na kontu tee war bataga aderesoo se {{SITENAME}} ($4) kaŋ maa ti \"$2\" ga, nda \"$3\" šennikufaloo.\nWa maa hantum ka hima ka huru nda šennikufal barmay sohõ.\n\nWar ga hin ka batagaa woo muray nda kontoo woo n' ka dere ka tee.",
+       "login-throttled": "War ceeci cee booboyaŋ ka huru.\nTaare batu $1 jina ka ciya koyne.",
+       "login-abort-generic": "War mana hin ka huru - Laybu",
+       "login-migrated-generic": "War kontoo n' ka ganandi nda war goykaw maaɲoo ši ye ka bara wikiyoo woo ga.",
+       "loginlanguagelabel": "Šenni:$1",
+       "suspicious-userlogout": "War ceeciroo ka fatta mongu zam'a ga hima kaŋ ceecikaw kayraa wala tugudoo tokore k'a sanba.",
+       "createacct-another-realname-tip": "Maa cimi noo nda n' ga baa.\nNda war soobay k'a noondi, boro ga goy nd'a ka goykaw alhaali noo ngi goyoo se.",
+       "pt-login": "Huru",
+       "pt-login-button": "Huru",
+       "pt-createaccount": "Kontu tee",
+       "pt-userlogout": "Fatta",
+       "php-mail-error-unknown": "Firka šibayante PHP mail() goymee se",
+       "user-mail-no-addy": "A ceeci ka bataga sanda bila nda bataga aderesu",
+       "user-mail-no-body": "A ceeci ka bataga koonu wala kaŋ ga hansa ka duurya sanba.",
+       "changepassword": "Šennikufal barmay",
+       "resetpass_announce": "Ka huru ka ben, war ga hima ka šennikufala taaga dam.",
+       "resetpass_text": "<!-- Hantun tonton ne -->",
+       "resetpass_header": "Kontoo šennikufaloo barmay",
+       "oldpassword": "Šennikufal žeena:",
+       "newpassword": "Šennikufal taaga:",
+       "retypenew": "Šennikufal taagaa hantum koyne:",
+       "resetpass_submit": "Šennikufal barmay ka huru",
+       "changepassword-success": "War šennikufaloo barmay ka boori!",
+       "changepassword-throttled": "War ceeci cee booboyaŋ ka huru.\nTaare batu $1 jina ka ceeci koyne.",
+       "resetpass_forbidden": "Šennikufaley ši hin ka barmay",
+       "resetpass-no-info": "War ga hima ka huru jina ka duu moɲoo woo.",
+       "resetpass-submit-loggedin": "Šennikufal barmay",
+       "resetpass-submit-cancel": "Naŋ",
+       "resetpass-wrong-oldpass": "Sohõda wala batuyan šennikufal laala.\nA ga hin ka tee war bay na šennikufaloo barmay wala batuyan wane taaga wiri.",
+       "resetpass-recycled": "Taare war šennikufaloo yeeti k'a tee affoo kaŋ nanti war sohõda šennikufaloo.",
+       "resetpass-temp-emailed": "War n' ka huruyan nda šiiyan ašariya kaŋ sanbandi bataga ra.\nKa huru ka timme, war ga hima ka šennikufal taaga dam ne:",
+       "resetpass-temp-password": "Šiiyan šennikufal:",
+       "resetpass-abort-generic": "Dobu foo no ka šennikufal barmayyanoo ganji.",
+       "resetpass-expired": "War šennikulaloo waatoo ben. Wa šennikufal taaga dam ka huru.",
+       "resetpass-expired-soft": "War šennikufaloo waatoo ben nd'a ga hima ka yeeti. War šennikufal taaga suuba sohõda, wala \"{{int:resetpass-submit-cancel}}\" naagu k'a yeeti waati foo.",
+       "resetpass-validity-soft": "War šennikufaloi ši boori: $1\n\nTaare šennikufal taaga suuba sohõ, wala \"{{int:resetpass-submit-cancel}}\" naagu k'a yeeti waati foo.",
+       "passwordreset": "Šennikufal yeeti",
+       "passwordreset-text-one": "Takaddaa woo timmandi ka duu šiiyan šennikufal bataga ra.",
+       "passwordreset-text-many": "{{PLURAL:$1|Faari foo toonandi ka duu šiiyan šennikufal foo bataga ra.}}",
+       "passwordreset-legend": "Šennikufal yeeti",
+       "passwordreset-disabled": "Šennikufal yeetiyan n' ka kaŋ wikiyoo woo se.",
+       "passwordreset-emaildisabled": "Bataga alhaaley n' ka kaŋ wikiyoo ga.",
+       "passwordreset-username": "Goykaw maa:",
+       "passwordreset-domain": "Zunbudoo:",
+       "passwordreset-capture": "Cebe batagaa kaŋ hun woo ra?",
+       "passwordreset-capture-help": "Nda war na bataa woo šilbay, batagaa (nda šiiyan šennikufal) ga cebe war se nd'a ga sanbandi goykaa do.",
+       "passwordreset-email": "Bataga aderesu:",
+       "passwordreset-emailtitle": "Kontu šilbawey {{SITENAME}} ga",
+       "passwordreset-emailtext-ip": "Boro foo (sanda war da, nda IP aderesu $1) ceeci ka war\n šenniufaloo barmay {{SITENAME}} ($4) se. Goykaa woo {{PLURAL:$3|kontoo ti}\n kaŋ ga hanga bataga aderesoo woo:\n\n $2\n\n{{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}}  ga buu {{PLURAL:$5|zaari foo|zaari}} ra.\nWar ga hima ka huru nda šennifulal taaga dam sohõ. Nda boro waani ka ceeci ka woo tee\n nda war honga war šennikufal žeenaa, nda war ši boona koyne\n ka šennikufal barmay,\n war ga hin ka šaawaroo woo murayy nda soobay ka goy nda war\n šennikufal žeenaa.",
+       "passwordreset-emailtext-user": "Goykaw $1 {{SITENAME}} wiri ka war sennikufaloo yeeti {{SITENAME}} se\n($4). Goykaa woo {{PLURAL:$3|kontoo ga|kontey ga}} marga nda nda bataga aderesoo woo:\n\n$2\n\n {{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}} ga buu {{PLURAL:$5|jirbi foo|jirbi $5}} ra.\nWar ga hima ka huru  nda šennikufal taaga suuba sohõ. Nda boro waani ka ceeci\n ka woo tee wala war ga honga wara šennikufal žeenaa nda war ši boona koyne\n k'a barma, war ga hin ka šaawaroo woo muray nda gaabandi ka goy nda war\n šennikufal žeenaa.",
+       "passwordreset-emailelement": "Goykaw maa: $1\nŠiiyan šennikufal: $2",
+       "passwordreset-emailsent": "Šennikufal yeetiyan bataga n' ka sanbandi war se.",
+       "passwordreset-emailsent-capture": "Šennikulal yeetiyan bataga n' ka sanbandi war se, kaŋ ga cebandi ne ganda.",
+       "passwordreset-emailerror-capture": "Šennikufal yeetiyan bataga n' ka teendi, kaŋ ga cebandi ne ganda, amm'a mana hin ka sanbandi {{GENDER:$2|goykaw}} do: $1",
+       "changeemail": "Bataga aderesu barmay",
+       "changeemail-text": "Takaddaa woo toonandi ka war bataga aderesoo barmay. War ka hima ka war šennikufaloo dam ka barmayyanoo tabatandi.",
+       "changeemail-no-info": "War ga hima ka huru ka hin duu moɲoo woo.",
+       "changeemail-oldemail": "Sohõda bataga aderesu",
+       "changeemail-newemail": "Bataga aderesu taaga:",
+       "changeemail-none": "(baffoo)",
+       "changeemail-password": "War {{SITENAME}} šennikufaloo:",
+       "changeemail-submit": "Bataga barmay",
+       "changeemail-throttled": "War wiri ka huru cee booboyaŋ.\nTaare wa batu  $1 jina ka ceeci koyne.",
+       "resettokens": "Tammaasawey yeeti",
+       "resettokens-text": "War ga hin ka tammaasawey yeeti kaŋ ga too war ma hin ka dii sutura bayhaya tanayaŋ nda war kontoo ne.\n|nWar ga hima k'a tte nda war dere k'i noo boro waani se wala nda war ga šikka kaŋ boro waani n' ka huru kontoo ra.",
+       "resettokens-no-tokens": "Tammaasa kul šii yeetiyan se.",
+       "resettokens-legend": "Tammaasawey yeeti",
+       "resettokens-tokens": "Tammaasawey:",
+       "resettokens-token-label": "$1 (sohõda hinna: $2)",
+       "resettokens-watchlist-token": "Tammaasa interneti toonandiyanoo se (Atom/RSS) [[Special:Hawgayhayey|barmawey war hawgayhayey maašeedaa ga]]",
+       "resettokens-done": "Tammaasawey yeeti:",
+       "resettokens-resetbutton": "Tammaasa suubantey yeeti",
+       "bold_sample": "Hantum warga",
+       "bold_tip": "Hantum warga",
+       "italic_sample": "Hantum šiirante",
+       "italic_tip": "Hantum šiirante",
+       "link_sample": "Dobu maa",
+       "link_tip": "Kunahere dobu",
+       "extlink_sample": "http://www.example.com dobu maa",
+       "extlink_tip": "Tarayhere dobu (honga http:// jinekanji)",
+       "headline_sample": "Boŋžeeri hantum",
+       "headline_tip": "Adadu 2 boŋžeeri",
+       "nowiki_sample": "Hantum bila nda fasal-takari dam ne",
+       "nowiki_tip": "Wiki fasal-takaroo muray",
+       "image_sample": "Example.jpg",
+       "image_tip": "Tuku damgamante",
+       "media_sample": "Example.ogg",
+       "media_tip": "Tuku dobu",
+       "sig_tip": "War kanbežeeroo nda waati šilbay",
+       "hr_tip": "Žeeri kanante (w'a tee cee fooyaŋ de)",
+       "summary": "Duurandi:",
+       "subject": "Teekaw/boŋžeeri:",
+       "minoredit": "Barmay kayna ti woo:",
+       "watchthis": "Moɲoo woo hawgay",
+       "savearticle": "Moɲoo gaabu",
+       "preview": "Moofur",
+       "showpreview": "Moofuryan cebe",
+       "showdiff": "Barmawey cebe",
+       "blankarticle": "<strong>Yaamar:</strong> Moɲoo kaŋ war goo m'a tee t'ikoonu.\nNda war na \"{{int:savearticle}}\" naagu, moɲoo ga kaa ta tee bila nda gundekuna.",
+       "anoneditwarning": "<strong>Yaamar:</strong> War mana huru. Borey kul hin ka dii war IP aderesoo nda war na barmay kul tee. Nda war <strong>[$1 huru]</strong> wala <strong>[$2 kontu tee]</strong>, war barmawey ga hanga war goykaw maaɲoo bande, nda nafaw taney kul.",
+       "anonpreviewwarning": "<em>War mana huru. Gaabuyan ga too war IP aderesoo ma jisandi moɲoo woo fasalyan taarikoo ra.</em>",
+       "missingsummary": "<strong>Hongu:</strong> War mana barmay duurandi noo.\nWa \"{{int:savearticle}}\" naagu koyne, kul war barmaa ga gaabundi bila nd'affoo.",
+       "missingcommenttext": "Wa feeriyan foo hantum ganda.",
+       "missingcommentheader": "<strong>Hongu:</strong> War mana teekaw/boŋžeeri noo feeriyanoo woo se.\nWa \"{{int:savearticle}}\" naagu koyne, kul war barmaa ga gaabundi bila nd'affoo.",
+       "summary-preview": "Duurandi moofuryan:",
+       "subject-preview": "Teekaw|boŋžeeri moofuryan:",
+       "blockedtitle": "Goykaa n' ka gagayandi",
+       "blockedtext": "<strong>War goykaw maa wala IP aderesoo n' ka hode.</strong>\n\n$1 no k'a hode.\nDaliloo kaŋ a n'a noo ti <em>$2</em>.\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ š'a na hoderoo miile: $7\n\nWar ga hin ka hantum $1 wala [[{{MediaWiki:Grouppage-sysop}}|juwalkaa]] se ka hoderoo šennoo tee.\nWar ši hin ka bataga sanba nda \"email this user\" fondaa nda manti war bataga aderesu henna ka tabatandi war [[Special:Ibaayey|kontu ibaayey]] ra nd'i mana war gagay a ga. \nWar sohõda IP aderesoo to $3 nda hode šilbaa ti #$5.\nWa beene šilbawey kul dam hãayan bataga kaŋ war g'a tee ra.",
+       "autoblockedtext": "Haya na war IP aderesoo nga boŋše zama goykaw waani foo k'a ka goy, boro kaŋ $1 n'a hode.Daliloo kaŋ nondi ti:\n\n:<em>$2</em>\n\n* Hode šintinoo: $8\n* Hode benantaa: $6\n* Boraa kaŋ i n'a miile hodeyan se: $7\n\nLaasaabu kaŋ war ši hima ka goy nda \"email this user\" alhaaloo nda manti war mma bara nda bataga aderesu jisante war [[Special:Preferences|goykaw ibaayey]] ra nd'i mana war gagay ka goy nd'a.\n\nWar sohõda IP aderesoo ti $3 nda hodeyan šilbaa ti #$5.\nTaare wa šilbawey wey kul dam hãayan kul kaŋ war g'a sanba ra.",
+       "blockednoreason": "dalil kul šii",
+       "whitelistedittext": "Taare $1 ka moɲey fasal.",
+       "confirmedittext": "War ga hima ka war bataga aderesoo tabatandi jina ka moɲey fasal.\nWar bataga aderesoo tabatandi [[Special:Preferences|goykaw ibaayey]] ra.",
+       "nosuchsectiontitle": "Ši hin ka dii dunboo",
+       "nosuchsectiontext": "War ceeci ka dunbu foo kan ši bara fasal.\nA hin ka tee a ganandi wal'a tuusandi waatoo kaŋ war goo ma moɲoo guna.",
+       "loginreqtitle": "Huruyan ga waažibi",
+       "loginreqlink": "huru",
+       "loginreqpagetext": "Taare $1 ka moɲey jerey.",
+       "accmailtitle": "Šennikufaloo sanbandi",
+       "accmailtext": "Ɲaami-ra šennikufal kaŋ tee  [[User talk:$1|$1]] sanbandi $2 do. A ga hin ka barmay  <em>[[Special:ChangePassword|šennikufal barmay]] moɲoo ga </em> nda war ga huru.",
+       "newarticle": "(Itaaga)",
+       "newarticletext": "War hanga dobu kaŋ ka fatta moo foo kaŋ ši bara jina ga.\nKa moɲoo tee, soobay ka hantum ganda bataa ra ([$1 faaba moɲoo] guna ka bay ka tonton.\nNda war n' ka dere ka kaa ne, war ceecikaa <strong>banda</strong>butoŋoo naagu.",
+       "anontalkpagetext": "----\n<em>Kakaw moɲoo woo goo goykaw kaŋ maaɲoo ši bangay se, boro kaɲ mana kontu tee jina, wal'a ši a ka goy.</em>\nAdiši kal'ir ma goy nda hinna IP aderesu ka boraa alhaaloo tabatandi.\nIP aderesu dumoo woo ga hin ka žemnandi goykaw booboyaŋ game.\nNda war ti goykaw kaŋ maaɲoo ši bangay nda war ga tammahã kaŋ war ši kula nda šenney wey, [[Special:UserLogin/signup|kontu tee]] wala [[Special:UserLogin|huru]] ka ganji hiino war nda goykaw taney kaŋ šii nda maa ma birji cere ra.",
+       "noarticletext": "Hantum kul šii moɲoo woo ga sohõda.\nWar ga hin ka [Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲe jerey ra,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} hantum himantey guna],\nwala [{{fullurl:{{FULLPAGENAME}}|teera=fasal}} moɲoo woo fasal]</span>.",
+       "noarticletext-nopermission": "Hantum kul šii moɲoo woo ra sohõda.\nWar ga hin ka [[Special:Search/{{PAGENAME}}|moɲoo woo maaɲoo ceeci]] moɲey jerey ra wala <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|moo={{FULLPAGENAMEE}}}} cceci hantum himantey ra]</span>, amma war ši nda fondo ka moɲoo woo tee.",
+       "missing-revision": "Filla #$1 moɲoo kaŋ maaɲoo ti \"{{FULLPAGENAME}}\" se ši bara.\n\nWoo ga doona ka tee nda boro hanga taariki dobu žeena banda kaŋ ga fatta moo tuusante ga.\nŠilbaywey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusuyan taariki] ra.",
+       "userpage-userdoesnotexist": "Goykaw kontu \"$1\" mana jisandi.\nTaare guna wala war ga boona ka moɲoo woo tee/fasal.",
+       "userpage-userdoesnotexist-view": "Goykaw kontu \"$1\"  mana jisandi.",
+       "blocked-notice-logextract": "Goykaw n' ka hode sohõda.\nHodeyan kokorantaa šilbay ceebandoo ga duwandi ganda feeriyanoo ra:",
+       "clearyourcache": "<strong>Laasaabu:</strong> Nd war gaabundi ka ben, war ga hin ka war ceecika tugudogoo koli ka dii barmawey.\n* <strong>Firefox / Safari:</strong> Gaabu <em>Shift</em> nda war ga <em>Zumandi taaga</em> naagu, wala naagu <em>Ctrl-F5</em> wala <em>Ctrl-R</em> (<em>⌘-R</em> Mac ga)\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> naagu Mac ga)\n* <strong>Internet Explorer:</strong> Gaabu <em>Ctrl</em> nda war ga <em>Taagandi</em> naagu, wala <em>Ctrl-F5</em> naagu\n * <strong>Opera:</strong> Tugudogoo tuusu <em>Goyjinawey → Ibaayey</em> ra",
+       "usercssyoucanpreview": "<strong>Alhiila:</strong> Goy nda \"{{int:showpreview}}\" butoŋoo ka war CSS taagaa šii jina k'a gaabu. before saving.",
+       "userjsyoucanpreview": "<strong>Alhiila:</strong>Goy nda \"{{int:showpreview}}\" butoŋoo ka  war JavaScript taagaa šii jina k'a gaabu.",
+       "usercsspreview": "<strong>Honga kaŋ war na mma moofur de war CSS goykaa ga.\nA mana gaabundi jina!</strong>",
+       "userjspreview": "<strong>Honga kaŋ war goo ma šii/moofur de war JavaScript goykaa ga.\nA mana gaabundi jina!</strong>",
+       "sitecsspreview": "<strong>Honga kaŋ war mma moofur de CSS woo ga.\n A mana gaabundi jina!</strong>",
+       "sitejspreview": "<strong>Honga kaŋ war mma moofur de JavaScript ašariyaa woo ga.\nA mana gaabundi jina!</strong>",
+       "userinvalidcssjstitle": "<strong>Yaamar:</strong> \"$1\" kuuru kul šii.\nLaada .css nda .js moɲey ga goy nda karfu kayna maa, sanda {{ns:user}}:Foo/vector.css manti {{ns:user}}:Foo/Vector.css.",
+       "updated": "(Taagante)",
+       "note": "<strong>Laasaabu:</strong>",
+       "previewnote": "<strong>Honga kaŋ war moofuryan de ti wo.</strong>\nWar barmawey mana gaabundi jina!",
+       "continue-editing": "Koy fasal nungu here",
+       "previewconflict": "Moofuryanoo woo ga tenji nda beene hantum fasalyan doo, z'a ga bangay nda war soobay k'a gaabu.",
+       "session_fail_preview": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\nTaare ceeci k'a tee koyne.\nNd'a ši koy hala sohõ, ceeci ka [[Special:UserLogout|fatta]] nda huru taaga.",
+       "session_fail_preview_html": "<strong>Alhaa naŋ! Ir mana hin ka war barmaa ka koy nda jine za goywaatoo bayhayey dere.</strong>\n\n<em>Zama {{SITENAME}} goo nda HTML gani ka dira, moofuryan mma tugu ka ganji i ma kaŋ JavaScript ga.</em>",
+       "token_suffix_mismatch": "<strong>I wanji war barmaa ga zama war daykaa na tonbi harfey birji fasalyan tammaasaa ra.</strong>\nI wanji barmaa ga ka ganji moo hantumoo ma hasara.\nWoo ka tee waati kaŋ war ga goy nda maršin interneti-bande tokore goymee kaŋ ši nda maa.",
+       "edit_form_incomplete": "<strong>Barmay takari jerey mana too feršikaa do; naagu ceeci hinka ka dii kaŋ war barmawey ga timme de war ma ceeci koyne.</strong>",
+       "editing": "Goo ma $1 fasal",
+       "creating": "Goo ma $1 tee",
+       "editingsection": "Goo ma $1 fasal (dunbu)",
+       "editingcomment": "Goo ma $1 fasal (dunbu taaga)",
+       "editconflict": "Fasal cerehooyan: $1",
+       "explainconflict": "Boro foo na moɲoo woo barmay za war šintin k'a fasal.\nBeene hantum nungoo goo nda moo hantumoo takaa kaŋ nd'a bara sohõda.\nWar barmawey ga cebandi gandehere hantum nungoo ra.\nWar ga hima ka barmawey marga hantum barantaa ra.\nMoɲoo kan goo beene hantum nungoo ra <strong>hinne</strong> ma gaabundi nda war na \"{{int:savearticle}}\" naagu.",
+       "yourtext": "War hantumoo",
+       "storedversion": "Barmayyan jisante",
+       "nonunicodebrowser": "<strong>Yaamar: War ceecikaw ši Unicode kanbe.</strong>\nA workaround is in place to allow you to safely edit pages: Non-ASCII characters will appear in the edit box as hexadecimal codes.War ga hin ka šendaa woo koli nungu foo ra kaŋ naŋ war moɲey ma fasal nda saajaw. Harfey kaŋ manti ASCII ga bangay fasal bataa ra sanda ferši-iddu ašariyayaŋ.",
+       "editingold": "<strong>Yaamar: War goo ma goy nda filla dumi žeena moɲoo woo se.</strong>\nNda war war n'a gaabu, barmawey kul kaŋ tee fillaa woo bandaa ga dere.",
+       "yourdiff": "Zilayyaney",
+       "copyrightwarning": "Taare laasaabu kaŋ kanbuzaamey kul kaŋ tee {{SITENAME}} se ga tee sanda i n' ka fattandi $2 cire (dii $1 ka bay ka tonton).\nNda war ši baa war hantumoo ma barmay laala nd'a ma žemnandi forba, kul ma ši  a sanba ne.<br />\nWar ga allaahidu noo kaŋ war n'a hantum war boŋše, kaŋ war man'a bere ka kaa baytal doo for ga wala forba aššil tana.\n<strong>War ši goy-waani kul sanba bila nda alhaku koyey duɲeyanoo!</strong>",
+       "copyrightwarning2": "Laasaabu kaŋ kanbuzaamawey kul kaŋ tee {{SITENAME}} se, hantumkaw fooyaŋ ga hin ki fasal, barmay wal'i k'i tuusu.\nNda war ši boona war hantumoo ma barmay laala, kul war ma ši a sanba ne. <br />\nWar ga allaahidu no kaŋ war n'a hantum war boŋše, wala k'a bere ka hun baytal nungu ga wala forba aššil tana (dii $1 ka bay ka tonton).\n<strong>War ma ši goy kul sanba bila nda hantumkey alhaku duɲeyanoo!</strong>",
+       "longpageerror": "<strong>Firka: Hantumoo kaŋ sanbandi kuuroo ka sawa nda  {{PLURAL:$1|cebsi-ize $1}} long, kaŋ ga bisa {{PLURAL:$2|cebsi-ize $2}}.</strong>\nA ši hin ka gaabundi.",
+       "readonlywarning": "<strong>Yaamar: Bayhayahugoo",
+       "log-fulllog": "Ceebandu hantum kul guna",
+       "edit-hook-aborted": "Delbu na fasalyanoo say.\nA mana fahamandiyan kul noo.",
+       "edit-gone-missing": "Mana hin ka moɲoo taagandi.\nA ga hima an' ka tuusandi.",
+       "edit-conflict": "Fasal cerehooyan",
+       "edit-no-change": "War fasalyan mana zaandi zama hantumoo mana barmay kul.",
+       "postedit-confirmation-created": "Moɲoo n' ka tee.",
+       "postedit-confirmation-restored": "Moɲoo n' ka willi.",
+       "postedit-confirmation-saved": "War fasalyanoo n' ka gaabundi",
+       "edit-already-exists": "Mana hin ka moo taaga tee.Affoo no kaŋ ga bara.",
+       "defaultmessagetext": "Tilasu alhabar hantum",
+       "content-failed-to-parse": "Mana hin ka $2 gundekuna fesu-fesu $1 takari se: $3",
+       "invalid-content-data": "Gundekuna bayhaya laala",
+       "content-not-allowed-here": "\"$1\" gundekuna ši koy moɲoo woo ga [[$2]]",
+       "editwarning-warning": "Nda war na moɲoo naŋ, a ga hin ka tee barmawey kaŋ war n'i tee kul ga dere.\nNda war huru ka ben, war ga hin ka yaamaroo wii war ibaayey \"{{int:prefs-editing}}\" dunboo ra.",
+       "editpage-notsupportedcontentformat-title": "Gundekuna takari ši koy ne",
+       "editpage-notsupportedcontentformat-text": "Gundekuna takari $1 ši koy ne gundekuna takari $2 bande.",
+       "content-model-wikitext": "wikihantum",
+       "content-model-text": "hantum kaaray",
+       "content-model-javascript": "JavaScript",
+       "content-model-css": "CSS",
+       "expensive-parserfunction-warning": "<strong>Yaamar:</strong> Moɲoo woo goo nda fesu-fesu goyjinay alhaali booboyaŋ.\n\nA ga hima ka bara nda {{PLURAL:$2|ciyari}} $2, {{PLURAL:$1| ciyari $1 bara sohõ}}.",
+       "expensive-parserfunction-category": "Moɲey kaŋ goo nda fesu-fesu goyjinay alhaali booboyaŋ",
+       "post-expand-template-inclusion-warning": "<strong>Yaamar:</strong> Leeti azzaatoo ga hansa ka beeri.\nLeeti fooyaŋ mana tonton ne.",
+       "post-expand-template-inclusion-category": "Moɲey kaŋyaŋ ra leeti ga ng'azzaatoo hoo.",
+       "post-expand-template-argument-warning": "<strong>Yaamar:</strong> Moɲoo woo goo nda, nd'a kacca, leeti hujja foo kaŋ  azzaatoo hayandiroo ga bebbeeri.\nHujjaa woo n' ka naŋandi.",
+       "post-expand-template-argument-category": "Moɲey kaŋyaŋ goo nda leeti hujja naŋanteyaŋ",
+       "parser-template-loop-warning": "Leeti zollo maatante: [[$1]]",
+       "parser-template-recursion-depth-warning": "Leeti fillari guusuyan dimaa n' ka hoo ($1)",
+       "language-converter-depth-warning": "Šenni berekaw guusuyan dimmaa n' ka hoo ($1)",
+       "node-count-exceeded-category": "Moɲey kaŋyaŋ ra guli hinnaa n' ka hoo",
+       "node-count-exceeded-category-desc": "Moɲoo ga guli hinna alkadaroo hoo.",
+       "node-count-exceeded-warning": "Moɲoo na guli hinnaa hoo",
+       "expansion-depth-exceeded-category": "Moɲey kaŋyaŋ ra hayandiri guusuyanoo hoo",
+       "expansion-depth-exceeded-category-desc": "Moɲoo ga hayandiri guusuyan kul ibeeroo hoo.",
+       "expansion-depth-exceeded-warning": "Moɲoo ga hayandiri guusuyanoo hoo",
+       "parser-unstrip-loop-warning": "Feferiyan-naŋ zollo maatandi",
+       "parser-unstrip-recursion-limit": "Feferiyan-filla dimmaa hoo ($1)",
+       "converter-manual-rule-error": "Firka bangay kanbe šenni bereyan ašariyaa ra",
+       "undo-success": "Fasalyan ga hin ka borrandi.\nGuna ganda deedandiyanoo ka tabatandi kaŋ woo no war ga boona k'a tee, nda waati din wa ganda barmawey gaabu ka fasalyan borroyanoo benandi.",
+       "undo-failure": "Barmaa ši hin ka taafeeri zama game barmay fooyaŋ ga cere hoo.",
+       "undo-norev": "Barmaa mana hin ka taafeeri zam'a ši bara wal'a n' ka tuusandi.",
+       "undo-nochange": "A ga hima kaŋ barmaa n' ka taafeeri ka ben.",
+       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|deede]]) na $1 fillaa taafeeri",
+       "undo-summary-username-hidden": "Goykaw tugante na $1 fillaa taafeeri",
+       "cantcreateaccounttitle": "Ši hin ha kontu tee",
+       "cantcreateaccount-text": "[User:$3|$3]] ganji kontu ma tee IP aderesu (<strong>$1</strong>) ga.\n\nDaliloo kaŋ $3 n'a noo ti <em>$2</em>",
+       "cantcreateaccount-range-text": "[[User:$3|$3]] ganji kaŋ kontu ma tee IP aderesey kaŋyaŋ goo '''$1''' laamaa ra ga, sanda war IP aderesoo ('''$4''').\n\nDaliloo kaŋ $3 n'a noo ti ''$2''",
+       "viewpagelogs": "Hantum taarikey guna moɲoo woo se",
+       "nohistory": "Barmay taariki kul šii moɲoo woo se.",
+       "currentrev": "Filla kokorantaa",
+       "currentrev-asof": "Filla kokorante za $1",
+       "revisionasof": "Filla za $1",
+       "revision-info": "{{GENDER:$6|$2}}$7 fillaa za $1",
+       "previousrevision": "← Filla žeena",
+       "nextrevision": "Filla kul itaagaa →",
+       "currentrevisionlink": "Filla kokorante",
+       "cur": "cur",
+       "next": "jine",
+       "last": "bisante",
+       "page_first": "jina",
+       "page_last": "kora",
+       "histlegend": "Zilayyan suubari: Arajo batawey šilbay fillawey se k'i deedandi, de ma dam butoŋ wala ganda butoŋ naagu.<br />\nŠilbayɲaa: <strong>({{int:cur}})</strong> = zilayyan nda filla kokorantaa, <strong>({{int:last}})</strong> = zilayyan nda filla bisantaa, <strong>{{int:minoreditletter}}</strong> = barmay kayna.",
+       "history-fieldset-title": "Ceeci taariki",
+       "history-show-deleted": "Tuusu hinne",
+       "histfirst": "ikul ižeenaa",
+       "histlast": "ikul itaagaa",
+       "historysize": "({{PLURAL:$1|cebsi $1}})",
+       "historyempty": "(koonu)",
+       "history-feed-title": "Filla taariki",
+       "history-feed-description": "Filla taariki moɲoo woo se wikiyoo ga",
+       "history-feed-item-nocomment": "$1 $2 hane/waate",
+       "history-feed-empty": "Moɲoo kaŋ war n'a wiri ši bara.\nA ga hin ka tee a tuusandi ka hun wikiyoo ga, wal'a duu maa taaga.Šii nda [[Special:Search|ceeciyan wiki ga]] moo taaga himantey se.",
+       "rev-deleted-comment": "(fasal duurandi n' ka hun)",
+       "rev-deleted-user": "(goykaw hun)",
+       "rev-deleted-event": "(hantum ceebandu teera hun)",
+       "rev-deleted-user-contribs": "[goykaw wala IP aderesu hun - barmaa tugandi sanbarey se]",
+       "rev-deleted-text-permission": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.",
+       "rev-suppressed-text-permission": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusuyan taariki].",
+       "rev-deleted-text-unhide": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.\nWar ga hin ka [dii $1 fillaa woo] nda war ga boona ka koy jine.",
+       "rev-suppressed-text-unhide": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.\nWar ga hin ka [dii $1 fillaa woo] nda war ga boona ka koy jine.",
+       "rev-deleted-text-view": "Moo fillaa woo n' ka <strong>tuusandi</strong>.\nWar ga hin ka dii y'a; šilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.",
+       "rev-suppressed-text-view": "Moo flllaa woo n' ka <strong>tuusandi</strong>.\nWar ga hin ka dii y'a; šilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki].",
+       "rev-deleted-no-diff": "War ši hin ka dii zilayyanoo woo zama fillawey affoo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.",
+       "rev-suppressed-no-diff": "War ši hin ka dii zilayyanoo woo zama fillawey affaa n' ka <strong>tuusandi</strong>.",
+       "rev-deleted-unhide-diff": "Fillawey affaa zilayyanoo woo se n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki log] ra.\nWar ga hin ka [dii $1 zilayyanoo] nda war ga boona ka koy jine.",
+       "rev-suppressed-unhide-diff": "Fillawey affaa zilayyanoo woo n' ka <strong>tuusandi</strong>.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki log] ra.\nWar ga hin ka [dii $1 zilayyanoo woo] nda war ga boona ka koy jine.",
+       "rev-deleted-diff-view": "Fillawey affaa zilayyanoo woo se n' ka <strong>tuusandi</strong>.\nWar ga hin ka dii zilayyanoo woo; šilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.",
+       "rev-suppressed-diff-view": "Fillawey affaa zilayyanoo n' ka <strong>tuusandi</strong>.\nWar ga hin ka dii zilayyanoo woo; šilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}} tuusu taariki] ra.",
+       "rev-delundel": "diiyan alkadar barmay",
+       "rev-showdeleted": "cebe",
+       "revisiondelete": "Fillawey tuusu/yeeti",
+       "revdelete-nooldid-title": "Toodoo filla laala",
+       "revdelete-nooldid-text": "War mana toodoo fillawey tabatandi ka goyoo woo tee\n filla tabatante ši bara, wala war mma ceeci ka sohõda fillaa tugu.",
+       "revdelete-no-file": "Tukoo tabatantaa ši bara.",
+       "revdelete-show-file-confirm": "Alhakiika kaŋ war ga boona ka dii tukoo filla tuusante foo guna \"<nowiki>$1</nowiki>\" kaŋ tee $2 hane $3 waate?",
+       "revdelete-show-file-submit": "Ayyo",
+       "revdelete-selected-text": "{{PLURAL:$1|Filla suubante|Filla suubantey}} [[:$2]] se:",
+       "revdelete-selected-file": "{{PLURAL:$1|Tuku dumi suubante| Tuku dumi suubantey}} [[:$2]] se:",
+       "logdelete-selected": "{{PLURAL:$1|Hantum ceebandu teera suubante| Hantum ceebandu teera suubantey}}:",
+       "revdelete-text-text": "Filla tuusantey ga bangay moo taarikoo ra, amma gundekunaa jereyaŋ šii duwandi jamaa kul se.",
+       "revdelete-text-file": "Tuku dumi tuusantey ga bangay moo taarikoo ra, amma gundekunaa jereyaŋ šii duwandi jamaa kul se.",
+       "logdelete-text": "Hantum ceebandu teera tuusantey ga bangay hantum taarikoo ra, amma gundekunaa jereyaŋ šii duwandi jamaa kul se.",
+       "revdelete-text-others": "Juwalkaw tanayaŋ ga hin ka duu gundekuna tugantaa wal'i m'a tuusu, nda jejebu tontoniyaŋ mana huru a se.",
+       "revdelete-confirm": "Tabatandi kaŋ war g'anniya ka woo tee, kaŋ war faham nd'allamaana kaŋ g'a ra, nda kaŋ war goo ma woo tee [[{{MediaWiki:Policy-url}}|laada]] bande.",
+       "revdelete-suppress-text": "Tuusuyan ga hima ka tee misey wey cine <strong>hinne</strong> ra:\n* alhabar kaŋ ga hima nda miimanda nda maa hasaraw\n* alhabar kaŋ ga sutura laada hoo\n*: <em>hugu aderesu nda talfon lanba, ganda kartidanti lanba, nda šilbay taney</em>",
+       "revdelete-legend": "Kayandi hayey kaŋ borey ga dii y'ey",
+       "revdelete-hide-text": "Filla hantum",
+       "revdelete-hide-image": "Tuku gundekuna tugu",
+       "revdelete-hide-name": "Teera nda toodoo tugu",
+       "revdelete-hide-comment": "Duurandi fasal",
+       "revdelete-hide-user": "Fasalkaa goykaw maaɲoo/IP aderesu",
+       "revdelete-hide-restricted": "Bayhayey tuusu k'i kaa juwalkey nda goykaw taney jine",
+       "revdelete-radio-same": "(ma ši barmay)",
+       "revdelete-radio-set": "Tugante",
+       "revdelete-radio-unset": "Boro ga dii y'a",
+       "revdelete-suppress": "Bayhayey tuusu k'i kaa juwalkey nda goykaw taney jine",
+       "revdelete-unsuppress": "Kankamandey kaa  filla willantey ga",
+       "revdelete-log": "Dalil:",
+       "revdelete-submit": "Kanandi {PLURAL:$1|filla}} kanante ga",
+       "revdelete-success": "<strong>Filla diiyan alkadar taagandi ka boori.</strong>",
+       "revdelete-failure": "<strong> Filla diiyan alkdar mana hin ka taagandi:</strong>\n$1",
+       "logdelete-success": "<strong>Hantum ceebandu diiyan alkadar kayandi ka boori.</strong>",
+       "logdelete-failure": "<strong>Hantum ceebandu diiyan alkdar mana kayandi:</strong>\n$1",
+       "revdel-restore": "diiyan alkadar barmay",
+       "pagehist": "Moo taariki",
+       "deletedhist": "Taariku tuusante",
+       "revdelete-hide-current": "Firka bangay kaŋ haya-izoo kaŋ tee $2 waate, $1 hane ga tugandi: Sohõda fillaa ti woo.\nA ši hin ka tugandi.",
+       "revdelete-show-no-access": "Firka bangay kaŋ haya-izoo kaŋ tee $2 waate, $1 hane ga cebandi: Haya-izoo n' ka šilbay nda \"restricted\".\nWar ši nda fondo ka duu w'a.",
+       "revdelete-modify-no-access": "Firka bangay kaŋ haya-izoo kaŋ tee $2 waate, $1 hane ga barmay: Haya-izoo ga šilbay nda \"restricted\".\nWar ši nda fondo ka duu w'a.",
+       "revdelete-modify-missing": "Firka bangay kaŋ haya-ize nda tammaasa $1: A šii bayhayhugoo ra!",
+       "revdelete-no-change": "<strong>Yaamar:</strong> Haya-izoo kaŋ tee $2 waate, $1 hane duu diiyan alkadar kayandiyan waažibantey ka ben.",
+       "revdelete-concurrent-change": "Firka kaŋ haya-izoo kaŋ tee $2 waate, $1 hane ga barmay: Nga assariyaa ga bangay sanda boro tana foo k'a barmay waatoo kaŋ war ceeci k'a barmay.\nHantum ceebandu taarikey koroši.",
+       "revdelete-only-restricted": "Firka bangay kaŋ haya-izoo kaŋ tee $2 waate, $1 hane ga tugandi: War ga hin k'a tuusu k'a kaa juwalkey jine bila nda war ma diiyan alkadar suubarey affoo kayandi.",
+       "revdelete-reason-dropdown": "*Yamma tuusu dalile\n** Hantumkaw alhaku hooyan\n** Gundekuna laala wala sutura-hooyan alhabar\n** Goykaw maa laala\n** Miimanda wala maahasaraw allamaana",
+       "revdelete-otherreason": "Dalil tana/tontoni:",
+       "revdelete-reasonotherlist": "Dalil tana",
+       "revdelete-edit-reasonlist": "Tuusu daliley fasal",
+       "revdelete-offender": "Filla hantumkaw:",
+       "suppressionlog": "Tuusu ceebandu taariki",
+       "suppressionlogtext": "Ganda maašeeda goo nda tuusarey nda hodeyaney kaŋ sabboo ti gundekuna kaŋ tugandi juwalkey se.\n Dii [[Special:BlockList|hode maašeeda]] maašeedaa se kaŋ tee sohõda goy barrantey nda hodantey se.",
+       "mergehistory": "Moo taarikey marga",
+       "mergehistory-header": "Moɲoo woo ga naŋ war ma taarikoo fillawey marga aššil moo faa se k'a tee moo taaga.\nWar m'alhakiika kaŋ barmaa woo ga moo taarikoo faaba a ma cindi cere bande.",
+       "mergehistory-box": "Moo hinka fillawey marga:",
+       "mergehistory-from": "Aššil moo",
+       "mergehistory-into": "Toodoo moo:",
+       "mergehistory-list": "Fasal taariki kaŋ ga hin ka marga",
+       "mergehistory-merge": "Fillawey wey kaŋ tee [[:$1]] se ga hin ka marga ka tee [[:$2]].\nArajo butoŋ soofu naagu k'a marga nda fillawey hinne kaŋyaŋ tee waati tabatantaa ga wal'a se jine.\nLaasaabu kaŋ nda boro too naaruyan dobey ga, i ga soofoo woo yeeti alhaali žeenaa ga.",
+       "mergehistory-go": "Fasalyaney kaŋ ga hin ka marga cebe",
+       "mergehistory-submit": "Fillawey marga",
+       "mergehistory-empty": "Filla kulyaŋ mana margandi.",
+       "mergehistory-success": "[[:$1]] {{PLURAL:$3|filla}} $3 margandi ka boori ka tee [[:$2]].",
+       "mergehistory-fail": "Ši hin taariki margaroo tee, taare moo nda waati kayandiyaney guna ka boori.",
+       "mergehistory-fail-toobig": "Ši hin ka taariki margaroo tee zam'a ga bisa {{PLURAL:$1|filla}} $1 kaŋ ga ganandi waati din.",
+       "mergehistory-no-source": "$1 aššil moo ši bara.",
+       "mergehistory-no-destination": "$1 toodoo moo ši bara.",
+       "mergehistory-invalid-source": "Ašsil moɲoo ga hima ka bara nda maa henna.",
+       "mergehistory-invalid-destination": "Toodoo moɲoo ga hima ka bara nda maa henna.",
+       "mergehistory-autocomment": "Na [[:$1]]  marga k'a tee [[:$2]]",
+       "mergehistory-comment": "Na [[:$1]] k'a tee [[:$2]]: $3",
+       "mergehistory-same-destination": "Aššil nda toodoo moɲey ši hin ka tee affollokaa da",
+       "mergehistory-reason": "Dalil:",
+       "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
+       "mergelog": "Margari hantum ceebandu",
+       "revertmerge": "Margari say",
+       "mergelogpagetext": "Ganda margari kokorantey maašeedaa, taka kaŋ nda moo taariki foo ga huru affaa ra.",
+       "history-title": "Filla taariki \"$1\" se",
+       "difference-title": "Zilayyan \"$1\" fillawey game",
+       "difference-title-multipage": "Zilayyan \"$1\" nda \"$2\" game",
+       "difference-multipage": "(Zilayyan moɲey game)",
+       "lineno": "Žeeri $1:",
+       "compareselectedversions": "Filla suubantey deedandi",
+       "showhideselectedversions": "Diiyan dimma barmay filla suubantey se",
+       "editundo": "borro",
+       "diff-empty": "(Ši zilay)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Gam filla $1}} goykaw follokaa se ši cebandi)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Gam filla $1}} {{PLURAL:$2|goykaw $1}} se ši cebandi)",
+       "diff-multi-manyusers": "({{PLURAL:$1|Gam filla $1}} a ga bisa {{PLURAL:$2|goykaw}} $2 se ši cebandi)",
+       "difference-missing-revision": "{{PLURAL:$2|Gam filla $1}} zilayyanoo woo se ($1) {{PLURAL:$2|mana}} duwandi.\n\nZilayyan dobu žeena moo tuusante ga no ma doona ka woo te.\nŠilbawey ga hin ka duwandi [{{fullurl:{{#Special:Log}}/tuusu|moo={{FULLPAGENAMEE}}}}  tuusu taarikoo ra.]",
+       "searchresults": "Ceeci hunyaney",
+       "searchresults-title": "Ceeci hunyaney \"$1\" se",
+       "titlematches": "Moo maa tenjandey",
+       "textmatches": "Moo hantum tenjandey",
+       "notextmatches": "Moo hantum tenjandiyaŋ kul šii",
+       "prevn": "{{PLURAL:$1|$1}} bisante",
+       "nextn": "jine {{PLURAL:$1|$1}}",
+       "prevn-title": "{{PLURAL:$1|hunyan}} $1 bisante",
+       "nextn-title": "jine {{PLURAL:$1|hunyan}} $1",
+       "shown-title": "Cebe {{PLURAL:$1|hunyan}} $1 moo ra",
+       "viewprevnext": "Guna ($1 {{hoobu-fayakaw}} $2) ($3)",
+       "searchmenu-exists": "<strong>Moo goo kaŋ maaɲoo ti \"[[:$1]]\" wikiyoo woo ga.</strong> {{PLURAL:$2|0=|Guna da ceeci hunyan taney kaŋ fatta.}}",
+       "searchmenu-new": "<strong>Moɲoo tee \"[[:$1]]\" wikiyoo woo ga!</strong> {{PLURAL:$2|0=|Guna da moɲoo kaŋ duwandi nda war ceeciroo.|Guna da ceeci hunyan kaŋ fatta.}}",
+       "searchprofile-articles": "Gundekuna moɲey",
+       "searchprofile-images": "Hẽenandi jinawey",
+       "searchprofile-everything": "Hayakul",
+       "searchprofile-advanced": "Koyjinante",
+       "searchprofile-articles-tooltip": "Ceeci $1 ra",
+       "searchprofile-images-tooltip": "Tukey ceeci",
+       "searchprofile-everything-tooltip": "Gundekuna kul ceeci (nda deede moɲey da)",
+       "searchprofile-advanced-tooltip": "Guna laada maafarrey ra",
+       "search-result-size": "$1 ({{PLURAL:$1|kalima $1}})",
+       "search-result-category-size": "{{PLURAL:$1|koydayze $1}} ({{PLURAL:$2|1 dumi-ize $2}}, {{PLURAL:$3|tuku $3}})",
+       "search-redirect": "($1 bisandi)",
+       "search-section": "($1 dunbu)",
+       "search-file-match": "(ga tenji nda tuku gundekuna)",
+       "search-suggest": "War n' ka tammahãa: $1",
+       "search-interwiki-caption": "Porože ɲayzey",
+       "search-interwiki-default": "Hunyaney $1 ga:",
+       "search-interwiki-more": "(tontoni)",
+       "search-relatedarticle": "Himante",
+       "searchrelated": "himante",
+       "searchall": "kul",
+       "showingresults": "Showing below up to {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> results}} starting with #<strong>$2</strong>.",
+       "showingresultsinrange": "Goo ma cebe {{PLURAL:$1|<strong>1</strong> hunyan|<strong>$1}} gamoo ra #<strong>$2</strong> hala #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Hunyan <strong>$1</strong> - <strong>$3</strong>}}",
+       "search-nonefound": "Hunyan kul ši tenji nda hãayanoo.",
+       "powersearch-legend": "Ceeciyan koyjinante",
+       "powersearch-ns": "Ceeci maafarrey:",
+       "powersearch-togglelabel": "Koroši:",
+       "powersearch-toggleall": "Kul",
+       "powersearch-togglenone": "Baffoo",
+       "powersearch-remember": "Honga suubaroo hiino ceeciyaney se",
+       "search-external": "Tarayhere ceeciyan",
+       "searchdisabled": "{{SITENAME}} ceeciyan n' ka kayandi.\nWar ga hin ka ceeci nda Google waatoo woo ra.\nLaasaabu kaŋ ngi šilbawey {{SITENAME}} gundenaa se ga hima ižeenayaŋ.",
+       "search-error": "Firka bangay ceeciyan waate: $1",
+       "preferences": "Ibaayey",
+       "mypreferences": "Ibaayey",
+       "prefs-edits": "Barmawey hinnaa:",
+       "prefsnologintext2": "Huru taare ka war ibaayey barmay.",
+       "prefs-skin": "Kuuru",
+       "skin-preview": "Moofur",
+       "datedefault": "Ibaayey kul šii",
+       "prefs-labs": "Šiidoo alhaaley",
+       "prefs-user-pages": "Goykaw moɲey",
+       "prefs-personal": "Goykaw alhaali",
+       "prefs-rc": "Barmay korawey",
+       "prefs-watchlist": "Hawgayhayey",
+       "prefs-watchlist-days": "Zaarey ka fatta hawgayhayey ra:",
+       "prefs-watchlist-days-max": "{{PLURAL:$1|Zaari}} $1 ibeeri",
+       "prefs-watchlist-edits": "Barmay hinna kul ibeeroo ka cebe hawgawhayey hayantey ra:",
+       "prefs-watchlist-edits-max": "Hinna kul ibeeroo: 1000",
+       "prefs-watchlist-token": "Hawgayhayey tammaasa:",
+       "prefs-misc": "Haya birjantey",
+       "prefs-resetpass": "Šennikufal barmay",
+       "prefs-changeemail": "Bataga aderesu barmay",
+       "prefs-setemail": "Bataga aderesu kayandi",
+       "prefs-email": "Bataga suubarey",
+       "prefs-rendering": "Bangayyan alhaali",
+       "saveprefs": "Gaabu",
+       "restoreprefs": "Tilasu kayandiyaney kul yeeti (dunbey kul ra)",
+       "prefs-editing": "Goo ma fasal",
+       "rows": "Sorrawey:",
+       "columns": "Soofey:",
+       "searchresultshead": "Ceeci",
+       "stub-threshold": "Šiifa <a href=\"#\" class=\"stub\">zaa dobu</a> takari kayandiyan (cebsi hinna) se:",
+       "stub-threshold-disabled": "Ga kay",
+       "recentchangesdays": "Zaarey kaŋ ga cebe barmay korawey ra:",
+       "recentchangesdays-max": "$1 ibeeri {{PLURAL:$1|zaari $1}}",
+       "recentchangescount": "Barmay hinnawey kaŋ ga cebe tilasu ra:",
+       "prefs-help-recentchangescount": "Sanda barmay korawey, moo taarikey nda hantum ceebandu tiirawey.",
+       "prefs-help-watchlist-token2": "Woo ti kufal tugante war hawgayhayey interneti toonandiyanoo se.\nBoro kul kaŋ g'a bay ga hin ka war hawgayhayey caw, adiši ma ši žemna.\nNd'a waažibi, [[Special:ResetTokens|war ga hin k'a yeeti]] da.",
+       "savedprefs": "War ibaayey n' ka gaabundi.",
+       "timezonelegend": "Waati ganda:",
+       "localtime": "Gorodoo waati:",
+       "timezoneuseserverdefault": "Goy nda wiki tilasu ($1)",
+       "timezoneuseoffset": "Itana (han/waati tabatandi)",
+       "servertime": "Feršikaw waati:",
+       "guesstimezone": "Toonandi ceecikaa ga",
+       "timezoneregion-africa": "Afiriki",
+       "timezoneregion-america": "Ameriki",
+       "timezoneregion-antarctica": "Antarkitika",
+       "timezoneregion-arctic": "Arkutiki",
+       "timezoneregion-asia": "Aazi",
+       "timezoneregion-atlantic": "Atalantiki teeko",
+       "timezoneregion-australia": "Osutarali",
+       "timezoneregion-europe": "Erop",
+       "timezoneregion-indian": "Endu teeko",
+       "timezoneregion-pacific": "Baani teeko",
+       "allowemail": "Goykaw taney bataga tunandi",
+       "prefs-searchoptions": "Ceeci",
+       "prefs-namespaces": "Maafarrey",
+       "default": "tilasu",
+       "prefs-files": "Tukey",
+       "prefs-custom-css": "Laada CSS",
+       "prefs-custom-js": "Laada JavaScript",
+       "prefs-common-css-js": "CSS/JavaScript kaŋ kuurey k'a may:",
+       "prefs-reset-intro": "War ga hin ka goy nda moɲoo woo ka war ibaayey yeeti nungoo tilasu alhaaley ga.\nWoo ši hin ka taafeeri.",
+       "prefs-emailconfirm-label": "Bataga tabatandiyan:",
+       "youremail": "Bataga:",
+       "username": "{{GENDER:$1|Goykaw maa}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Kondayze}} {{PLURAL:$1|batu|batey}} ra:",
+       "prefs-memberingroups-type": "$1",
+       "prefs-registration": "Maahantumayan waati:",
+       "prefs-registration-date-time": "$1",
+       "yourrealname": "Maa cimi:",
+       "yourlanguage": "Šenni:",
+       "yourvariant": "Gundekuna šenni fayante:",
+       "prefs-help-variant": "War šenni fayane wala hantum tenjandiyan ga gundekuna moɲey cebe wikiyoo woo ga.",
+       "yournick": "Kanbežeeri taaga:",
+       "prefs-help-signature": "Deedawey kaŋ goo",
+       "badsig": "Kanbežeeri gani laala.\nHTML kanjarey koroši.",
+       "badsiglength": "War kanbežeeroo ga hansa ka kuu.\nA ši hima ka kuu ka bisa {{PLURAL:$1|harfu}} $1.",
+       "yourgender": "Taka foo nda war ga baa ir ma war cee?",
+       "gender-unknown": "Ay ši baa y'a har",
+       "gender-male": "Aru kaŋ ga wiki moɲey fasal",
+       "gender-female": "Woy kaŋ ga wiki moɲey fasal",
+       "prefs-help-gender": "Ibaayoo woo kanayandiyanoo ti suuba-haya.\nGoyjinay ga nda hinna ka goy ka šelaŋ war se nda ka war bayrandi boro tanayaŋ se nda woy-aru tammaasa henna.\nBoro kul ga hin ka dii alhabaroo woo.",
+       "email": "Bataga",
+       "prefs-help-realname": "Maa cimi ti suuba-haya.\nNda war soobay ka woo noo, i g'a ka goy ka war goymiɲoo kayandi.",
+       "prefs-help-email": "Bataga aderesu ti suuba-haya, amm'a ga waažibi šennikufal yeetiyan se, nda war dirŋa war šennikufaloo.",
+       "prefs-help-email-others": "War ga hin ka soobay da ka boro tanayaŋ naŋ i ma bataga sanba war se dobu foo ga war goyksaw wala deede moɲoo ga.\nWar bataga aderesoo ši fatta nda waati kaŋ goykaw tanayaŋ hantum war se.",
+       "prefs-help-email-required": "Bataga aderesu ga waažibi.",
+       "prefs-info": "Šintin alhabar",
+       "prefs-i18n": "Adduɲɲaa-me teera",
+       "prefs-signature": "Kanbežeeri",
+       "prefs-dateformat": "Han takari",
+       "prefs-timeoffset": "Waati zilayyan",
+       "prefs-advancedediting": "Yamma suubarey",
+       "prefs-editor": "Fasalkaw",
+       "prefs-preview": "Moofur",
+       "prefs-advancedrc": "Suubari jinekoyantey",
+       "prefs-advancedrendering": "Suubari jinekoyantey",
+       "prefs-advancedsearchoptions": "Suubari jinekoyantey",
+       "prefs-advancedwatchlist": "Suubari jinekoyantey",
+       "prefs-displayrc": "Suubarey cebe",
+       "prefs-displaywatchlist": "Suubarey cebe",
+       "prefs-tokenwatchlist": "Tammaasa",
+       "prefs-diffs": "Zilayyaney",
+       "prefs-help-prefershttps": "Ibaayoo woo ga kanandi war hiino huruyanoo ga.",
+       "prefswarning-warning": "War na hayayaŋ barmay war ibaayey ra, amm'i mana gaabundi jina.\nNda war na moɲoo woo naŋ bila nda war ma \"$1\" naagu war ibaayey ši taagandi.",
+       "prefs-tabs-navigation-hint": "Alhiila: War ga hin ka goy nda biraw wowa wal'iguma kufal ka dira nor lokey game nor loku maašeedaa ra.",
+       "email-address-validity-valid": "Bataga aderesoo ga hima ihenna",
+       "email-address-validity-invalid": "Bataga aderesu henna dam",
+       "userrights": "Goykaw alhakey juwalyan",
+       "userrights-lookup-user": "Goykaw kondawey juwal",
+       "userrights-user-editname": "Goykaw maa dam:",
+       "editusergroup": "Goykaw kondawey fasal:",
+       "editinguser": "Goo ma goykaw alhakey barmay goykaw <strong>[[User:$1|$1]]</strong> $2 se",
+       "userrights-editusergroup": "Goykaw kondawey fasal",
+       "saveusergroups": "Goykaw kondawey gaabu",
+       "userrights-groupsmember": "Kondayze:",
+       "userrights-groupsmember-auto": "Kondayze tugante:",
+       "userrights-groupsmember-type": "$1",
+       "userrights-groups-help": "War ga hin ka kondawey barmay goykey wey se ne:\n* Bata maasante maanaa ti goykaa goo kondaa din ra.\n* Bata bila nda maasa maanaa ti goykaa šii kondaa din ra.\n* Handaray * ga tammaasa kaŋ war ši hin ka kondaa kaa nda war ben k'a tonton, wal'a kaa.",
+       "userrights-reason": "Dalil:",
+       "userrights-no-interwiki": "War ši nda fonda ka goykaw alhakey fasal wiki tanayaŋ ga.",
+       "userrights-nodatabase": "Bayhayhugu $1 ši bara wal'a šii gandaa ra.",
+       "userrights-nologin": "War ga hima ka [[Special:UserLogin|huru]] nda juwalkaw kontu ka goykaw alhakey noo.",
+       "userrights-notallowed": "War ši nda fondo ka goykey alhakey dam wala k'i kaa.",
+       "userrights-changeable-col": "Kondawey kaŋ war ga hin k'i barmay",
+       "userrights-unchangeable-col": "Kondawey kaŋ war ga hin k'i barmay",
+       "userrights-irreversible-marker": "$1*",
+       "userrights-conflict": "Cerehooyan goykaw alhadey barmawey ra! Taare war barmawey guna boryo nd'a tabatandi.",
+       "userrights-removed-self": "War na war alhakey kaa ka timme. Adiši, war ši hin ka duu moɲoo woo koyne.",
+       "group": "Konday:",
+       "group-user": "Goykey",
+       "group-autoconfirmed": "Goykaw boŋtabatantey",
+       "group-bot": "Maršin berandikey",
+       "group-sysop": "Juwalkey",
+       "group-bureaucrat": "Birogoykey",
+       "group-suppress": "Lawreyaney",
+       "group-all": "(ku)",
+       "group-user-member": "{{GENDER:$1|goykaw}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|goykaw boŋtabatante}}",
+       "group-bot-member": "{{GENDER:$1|maršin berandiyan}}",
+       "group-sysop-member": "{{GENDER:$1|juwalkaw}}",
+       "group-bureaucrat-member": "{{GENDER:$1|birogoykaw}}",
+       "group-suppress-member": "{{GENDER:$1|lawreyan}}",
+       "grouppage-user": "{{ns:project}}:Goykey",
+       "grouppage-autoconfirmed": "{{ns:project}}:Goykaw boŋtabatantey",
+       "grouppage-bot": "{{ns:project}}:Maršin berandiyaney",
+       "grouppage-sysop": "{{ns:project}}:Juwalkey",
+       "grouppage-bureaucrat": "{{ns:project}}:Birgoykey",
+       "grouppage-suppress": "{{ns:project}}:Lawreyan",
+       "right-read": "Caw moɲey",
+       "right-edit": "Fasal moɲey",
+       "right-createpage": "Moɲey tee (kaŋ manti kakaw mooyaŋ)",
+       "right-createtalk": "Kakaw moɲey tee",
+       "right-createaccount": "Goykaw kontu taagayaŋ tee",
+       "right-minoredit": "Šilbay sanda barmay kaccuyaŋ",
+       "right-move": "Moɲey ganandi",
+       "right-move-subpages": "Moɲey ganandi nda ngi moɲiizey",
+       "right-move-rootuserpages": "Linji goykaw moɲey ganandi",
+       "right-move-categorypages": "Dumi moɲey ganandi",
+       "right-movefile": "Tukey ganandi",
+       "right-suppressredirect": "Ma ši bisandi ka hun aššil moɲey ga moo ganandiyan waate",
+       "right-upload": "Tukey zijandi",
+       "right-reupload": "Hantum tuku barantey boŋ",
+       "right-reupload-own": "Hantum tuku barantey boŋ kaŋ boro hunday n'i zijandi",
+       "right-reupload-shared": "Hantum tukey boŋ kaŋ ga jiši gorodoo ra hẽenandi jinay žemnante ga",
+       "right-upload_by_url": "Tukey zijandi ka hun URL ga",
+       "right-purge": "Internti nungoo tugu dogoo leele moo bila nda tabatandiyan se",
+       "right-autoconfirmed": "Ši kula nda IP-bande albaha dimma alkadarey",
+       "right-bot": "Kaŋ ga tee sand'a ga goy nga boŋše",
+       "right-nominornewtalk": "Kaŋ ši nda barmay kaccuyaŋ kakaw moɲey ga ka too yaamar taagayaŋ ma bangay",
+       "right-apihighlimits": "Alkadar beeriyan dam API hãayaney ra",
+       "right-writeapi": "Goy nda hantum API",
+       "right-delete": "Moɲey tuusu",
+       "right-bigdelete": "Moɲey kaŋ goo nda taariki kukuyaŋ tuusu",
+       "right-deletelogentry": "Ceebantu damhaya tabatanteyaŋ tuusu nd'i yeeri",
+       "right-deleterevision": "Moo filla tabatanteyaŋ tuusu nd'i yeeri",
+       "right-deletedhistory": "Taariki damhaya tuusantey guna bila nda hantum hangantey",
+       "right-deletedtext": "Hantum tuusantey guna nda barmawey filla tuusantey game",
+       "right-browsearchive": "Moo tuusantey ceeci",
+       "right-undelete": "Moo foo yeeri",
+       "right-suppressrevision": "Moo filla tabatanteyaŋ guna, tugu nda bangandi goykaw kul se",
+       "right-viewsuppressed": "Guna fillawey kaŋ tugandi goykaw kul se",
+       "right-suppressionlog": "Sutura hantum ceebandey guna",
+       "right-block": "Ma ganji goykaw tanayaŋ m'a fasal",
+       "right-blockemail": "Ganji goykaw kul ma bataga sanba",
+       "right-hideuser": "Goykaw maa foo hode, k'a tugu jamaa se",
+       "right-ipblock-exempt": "IP hodeyaney, boŋ-hodeyaney nda ganda hodeyaney koli",
+       "right-proxyunbannable": "Tokore boŋ-hodeyaney koli",
+       "right-unblockself": "Boŋ-hodeyan kaa",
+       "right-protect": "Jejebuyan alkadarey nda kaŋandi-fasal moo jejebantey barmay",
+       "right-editprotected": "Moɲey kaŋ jejebandi sanda \"{{int:protect-level-sysop}}\" fasal",
+       "right-editsemiprotected": "Moɲey kaŋ jejebandi sanda \"{{int:protect-level-autoconfirmed}}\" fasal",
+       "right-editinterface": "Goykaw diidogoo fasal",
+       "right-editusercssjs": "Goykaw taney CSS nda JavaScript tukey fasal",
+       "right-editusercss": "Goykaw taney CSS tukey fasal",
+       "right-edituserjs": "Goykaw taney JavaScript tuke fasal",
+       "right-editmyusercss": "War boŋ goykaw CSS tukey fasal",
+       "right-editmyuserjs": "War boŋ JavaScript tukey fasal",
+       "right-viewmywatchlist": "War boŋ hawgayhayey guna",
+       "right-editmywatchlist": "War boŋ hawgayhayey fasal. Laasaabu kaŋ teera fooyaŋ ga mooyaŋ tonton bila nda woo fondaa.",
+       "right-viewmyprivateinfo": "War boŋ sutura hayhayey guna (sanda bataga aderesu, maa cimi)",
+       "right-editmyprivateinfo": "War boŋ sutura bayhayey fasal (sanda bataga aderesu, maa cimi)",
+       "right-editmyoptions": "War boŋ ibaayey fasal",
+       "right-rollback": "Cahã ka barmawey yeeti goykaw koraa kaŋ na moo naadirante foo fasal se",
+       "right-markbotedits": "Barmawey kaŋ yeeti kul cebe sanda maršin berandiyaŋ",
+       "right-noratelimit": "Ši kula nda albaha dimma alkadarey",
+       "right-import": "Moɲey zaa wiki tanayaŋ ga",
+       "right-importupload": "Moɲey zaa tuku zijante foo ga",
+       "right-patrol": "Šilbay kaŋ boro taney barmawey ga kurandi",
+       "right-autopatrol": "Ka boro boŋ barmawey šilbay nd'i ma kurandi",
+       "right-patrolmarks": "Barmay kokorantey kuray šilbawey guna",
+       "right-unwatchedpages": "Moɲey kaŋ ši hawgandi guna ne",
+       "right-mergehistory": "Moɲey taarikoo marga",
+       "right-userrights": "Goykey alhakey kul fasal",
+       "right-userrights-interwiki": "Goykaw alhakey fasal wiki tanawey ga",
+       "right-siteadmin": "Bayrahugoo kufal nd'a feeri",
+       "right-override-export-depth": "Moɲey kaataray kaŋ ra moo dobantey hala guusu 5 alkadar ga",
+       "right-sendemail": "Bataga sanba goykaw taney do",
+       "right-passwordreset": "Šennikufal yeetiyan batagawey guna",
+       "newuserlogpage": "Goykaw teeyan ceebandu tiira",
+       "newuserlogpagetext": "Goykaw teeyaney ceebandu tiira ti woo.",
+       "rightslog": "Goykaw alhakey ceebandu tiira",
+       "rightslogtext": "Ceebandu tiiraa woo tee goykaw alhakey barmawey.",
+       "action-read": "moɲoo woo caw",
+       "action-edit": "moɲoo woo fasal",
+       "action-createpage": "moɲey tee",
+       "action-createtalk": "kakaw",
+       "action-createaccount": "goykaw kontoo woo tee",
+       "action-history": "moɲoo woo taarikoo guna",
+       "action-minoredit": "woo šilbay sanda barmay kaccu",
+       "action-move": "moɲoo woo ganandi",
+       "action-move-subpages": "moɲoo woo ganandi, nga moɲiizey da",
+       "action-move-rootuserpages": "linji goykaw moɲey ganandi",
+       "action-move-categorypages": "dumi moɲey ganandi",
+       "action-movefile": "tukoo woo ganandi",
+       "action-upload": "tukoo woo zijandi",
+       "action-reupload": "hantum tuku barantaa woo boŋ",
+       "action-reupload-shared": "hantum tukoo woo boŋ jišidoo žemnante ga",
+       "action-upload_by_url": "tukoo woo zijandi ka hun URL foo ga",
+       "action-writeapi": "goy nda hantum API",
+       "action-delete": "moɲoo woo tuusu",
+       "action-deleterevision": "fillaa woo tuusu",
+       "action-deletedhistory": "moɲoo woo taariki tuusantaa guna",
+       "action-browsearchive": "moo tuusantey ceeci",
+       "action-undelete": "moɲoo woo yeeri",
+       "action-suppressrevision": "filla tugantaa woo filla nd'a yeeti",
+       "action-suppressionlog": "suturu cebandu tiira guna",
+       "action-block": "goykaa woo ganji a m'a barmay",
+       "action-protect": "jejebu alkadarey barmay moɲoo woo se",
+       "action-rollback": "cahã ka barmawey yeeri goykaw kokorantaa kaŋ na moo naadirantaa barmay se",
+       "action-import": "moɲey zaa wiki tana foo ga",
+       "action-importupload": "moɲey zaa tuku zijante foo ga",
+       "action-patrol": "šilbay kaŋ boro taney barmawey ga kurandi",
+       "action-autopatrol": "war boŋ barmaa šilbay kaŋ a ga kurandi",
+       "action-unwatchedpages": "moɲey kaŋ si hawgayandi maašeedaa guna",
+       "action-mergehistory": "moɲoo woo taarikoo marga",
+       "action-userrights": "goykaw alhakey kul fasal",
+       "action-userrights-interwiki": "goykaw alhakey fasal goykey kul se wiki taney ga",
+       "action-siteadmin": "bayrayhugoo kufal wal'a feeri",
+       "action-sendemail": "batagawey sanba",
+       "action-editmywatchlist": "war hawgayhayey fasal",
+       "action-viewmywatchlist": "war hawgayhayey guna",
+       "action-viewmyprivateinfo": "war sutura alhabaroo guna",
+       "action-editmyprivateinfo": "war sutura alhabarpp fasal",
+       "nchanges": "{{PLURAL:$1|barmay}} $1",
+       "enhancedrc-since-last-visit": " $1 {{PLURAL:$1|za gunayan koraa}}",
+       "enhancedrc-history": "taariki",
+       "recentchanges": "Barmay kokorantey",
+       "recentchanges-legend": "Barmay kokorantey suubarey",
+       "recentchanges-summary": "Hanga barmay kokorantey kaŋ tee wikiyoo ga moɲoo woo ra.",
+       "recentchanges-noresult": "Barmay kul mana tee waatoo ra kaŋ ga hima šilbawey kaŋ noondi.",
+       "recentchanges-feed-description": "Hanga barmay kokorantey kaŋ tee wikiyoo ga toonandiyanoo woo ra.",
+       "recentchanges-label-newpage": "Barmaa woo na moo taaga tee",
+       "recentchanges-label-minor": "Woo ti barmay kaccu",
+       "recentchanges-label-bot": "Maršin no ka barmaa woo tee",
+       "recentchanges-label-unpatrolled": "Barmaa woo mana kurandi jina",
+       "recentchanges-label-plusminus": "Moɲoo azzaatoo barmay nda cebsi hinnaa woo",
+       "recentchanges-legend-heading": "'''Maana:'''",
+       "recentchanges-legend-newpage": "{{int:barmay kokorantey-šilbay-moo taaga}} (guna da [[Special:NewPages|moo taagey maašeede]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
+       "rcnotefrom": "Ne ganda {{PLURAL:$5|ti barmay|barmawey}} za <strong>$3, $4</strong> (hala <strong>$1</strong> kaŋ ga cebandi).",
+       "rclistfrom": "Cebe barmay taagey kaŋ ga šintin $2, $3 ga",
+       "rcshowhideminor": "Barmay kaccu $1",
+       "rcshowhideminor-show": "Cebe",
+       "rcshowhideminor-hide": "Tugu",
+       "rcshowhidebots": "Maršin berekay $1",
+       "rcshowhidebots-show": "Cebe",
+       "rcshowhidebots-hide": "Tugu",
+       "rcshowhideliu": "Goykaw hantumante $1",
+       "rcshowhideliu-show": "Cebe",
+       "rcshowhideliu-hide": "Tugu",
+       "rcshowhideanons": "Goykaw kaŋ ši nda maa $1",
+       "rcshowhideanons-show": "Cebe",
+       "rcshowhideanons-hide": "Tugu",
+       "rcshowhidepatr": "Barmay kurante $1",
+       "rcshowhidepatr-show": "Cebe",
+       "rcshowhidepatr-hide": "Tugu",
+       "rcshowhidemine": "Ay barmay $1",
+       "rcshowhidemine-show": "Cebe",
+       "rcshowhidemine-hide": "Tugu",
+       "rclinks": "Cebe barmay koraw $1 jirbi $2 korawey ra<br />$3",
+       "diff": "zilayyan",
+       "hist": "taariki",
+       "hide": "Tugu",
+       "show": "Cebe",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "rc_categories": "Kayandi dumey ga (i fay nda \"|\")",
+       "rc_categories_any": "Affoo kul",
+       "rc-change-size": "$1",
+       "rc-change-size-new": "{{PLURAL:$1|cebsi}} $1 barmaa banda ga",
+       "newsectionsummary": "/* $1 */ dunbu taaga",
+       "rc-enhanced-expand": "Šilbayhayey cebe",
+       "rc-enhanced-hide": "Šilbayhayey tugu",
+       "rc-old-title": "aššil teeyanoo sanda \"$1\"",
+       "recentchangeslinked": "Barmay kondantey",
+       "recentchangeslinked-feed": "Barmay kondantey",
+       "recentchangeslinked-toolbox": "Barmay kondantey",
+       "recentchangeslinked-title": "Barmay kondantey \"$1\" ga",
+       "license": "Duɲeyan:",
+       "license-header": "Duɲeyan",
+       "nolicense": "Haya kul mana suubandi",
+       "licenses-edit": "Duɲeyan suubarey fasal",
+       "license-nopreview": "(Moofuryan ši bara)",
+       "upload_source_url": "(war tuku suubantaa ka hun URL henna nda forba-duura ga)",
+       "upload_source_file": "(war tuku suubantaa ka hun war ordinateroo ga)",
+       "listfiles-delete": "tuusu",
+       "listfiles-summary": "Cerecere moɲoo woo ga tuku zumantey kul cebe.",
+       "listfiles_search_for": "Hẽenandihaya maa ceeci:",
+       "imgfile": "tuku",
+       "listfiles": "Tuku maašeeda",
+       "listfiles_thumb": "Kanbeboy",
+       "listfiles_date": "Han",
+       "listfiles_name": "Maa",
+       "listfiles_user": "Goykaw",
+       "listfiles_size": "Azzaati",
+       "listfiles_description": "Šilbayyan",
+       "listfiles_count": "Dumey",
+       "listfiles-show-all": "Biyey dumi žeeney goo no",
+       "listfiles-latestversion": "Sohõda dumoo",
+       "listfiles-latestversion-yes": "Ayyo",
+       "listfiles-latestversion-no": "Kalaa",
+       "file-anchor-link": "Tuku",
+       "filehist": "Tuku taariki",
+       "filehist-help": "Han/waati naagu ka dii tukoo taka kaŋ nd'a ga bangay waati din.",
+       "filehist-deleteall": "ikul tuusu",
+       "filehist-deleteone": "tuusu",
+       "filehist-revert": "willi",
+       "filehist-current": "sohõda",
+       "filehist-datetime": "Han/waati",
+       "filehist-thumb": "Kanbeboy",
+       "filehist-thumbtext": "Kanbeboy dumoo se sanda $1 ga",
+       "filehist-nothumb": "Kanbeboy kul šii",
+       "filehist-user": "Goykaw",
+       "filehist-dimensions": "Adadey",
+       "filehist-filesize": "Tuku azzaati",
+       "filehist-comment": "Deede",
+       "imagelinks": "Tuku goyyan",
+       "linkstoimage": "Ne {{PLURAL:$1|moo $1 ga dobu}} tukoo woo ga:",
+       "linkstoimage-more": "A ga bisa {{PLURAL:$1|moo $1 kaŋ ga dobu}} tukoo woo ga.\nMaašeedaa woo ga {{PLURAL:$1|moo jina dobu |moo jina $1 dobey}} cebe tukoo woo hinne ga.\n[[Special:WhatLinksHere/$2|maašeeda timmante]] ga bara.",
+       "nolinkstoimage": "Moo kulyaŋ šii kaŋ ga dobu tukoo woo ga.",
+       "morelinkstoimage": "[[Special:WhatLinksHere/$1|dobu tontoni]] guna tukoo woo ka.",
+       "linkstoimage-redirect": "$1 (tuku gumari) $2",
+       "duplicatesoffile": " {{PLURAL:$1|tukoo ti fillante|tuku $1 ti fillanteyaŋ}} tukoo woo se ([[Special:FileDuplicateSearch/$2|bay ka tonton]]):",
+       "sharedupload": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.",
+       "sharedupload-desc-there": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.",
+       "sharedupload-desc-here": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nŠilbayyan nga [$2 tuku šilbayyan moo] noodin ga cebe ne ganda.",
+       "sharedupload-desc-edit": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nA ga hin ka tee war ga boona ka šilbayyanoo fasal nga noodin [$2 tuku šilbayyan moo] ga.",
+       "sharedupload-desc-create": "Tukoo woo hun $1 ga nda porože tanayaŋ ga hin ka goy nd'a.\nA ga hin ka tee war ga boona ka šilbaa fasal noodin nda [$2 tuku šilbayyan moɲoo] ga.",
+       "filepage-nofile": "Tukoo woo maakoyni kul ši bara.",
+       "filepage-nofile-link": "Tukoo woo maakoyni kul ši bara, amma war ga hin ka nga [$1 zumandi].",
+       "uploadnewversion-linktext": "Tukoo woo dumi taaga zijandi",
+       "shared-repo-from": "ka hum $1 do",
+       "shared-repo": "jišidoo žemnante",
+       "shared-repo-name-wikimediacommons": "Wikimedia Commons",
+       "filepage.css": "/* CSS kaŋ jisandi ne ga bara tuku šilbayyan moɲoo ga, a goo daykaw ceewaani wikitiirawey da ga */",
+       "upload-disallowed-here": "War ši hin ka hantum tukoo woo boŋ.",
+       "filerevert": "$1 willi",
+       "filerevert-legend": "Tuku willi",
+       "filerevert-intro": "War ga kaa ka tukoo willi <strong>[[Media:$1|$1]]</strong> nga [$4 dumi ga $3 waate, $2 hane].",
+       "filerevert-comment": "Dalil:",
+       "filerevert-defaultcomment": "Willi dumoo ga kaŋ tee $2 waate, $1 hane.",
+       "filerevert-submit": "Willi",
+       "filerevert-success": "<strong>[[Media:$1|$1]]</strong> n' ka willi [$4 dumi ga $3 waate, $2 hane].",
+       "filerevert-badversion": "Nungu dumi bisante kul ši bara tukoo woo se nda waatišilbaa kaŋ noondi.",
+       "filedelete": "$1 tuusu",
+       "filedelete-legend": "Tuku tuusu",
+       "filedelete-intro": "War ga kaa ka tuku <strong>[[Media:$1|$1]]</strong>nda nga taarikoo kul tuusu.",
+       "filedelete-intro-old": "War goo ma dumi <strong>[[Media:$1|$1]]</strong> tuusu za [$4 $3 waate, $2 hane].",
+       "filedelete-comment": "Dalil:",
+       "filedelete-submit": "Tuusu",
+       "filedelete-success": "<strong>$1</strong> n' ka tuusandi.",
+       "filedelete-success-old": "Dumi <strong>[[Media:$1|$1]]</strong> za $3 waate, $2 hane n' ka tuusandi.",
+       "filedelete-nofile": "<strong>$1</strong> ši bara.",
+       "filedelete-nofile-old": "Dumi jisante kul ši <strong>$1</strong> se nda alhaaley wey kaŋ tabatandi.",
+       "filedelete-otherreason": "Dalil tana/tontoni:",
+       "filedelete-reason-otherlist": "Dalil waani",
+       "filedelete-reason-dropdown": "*Yamma tuusuyan daliley\n**Hantummayray alhaku hooyan\n**Tuku fillante",
+       "filedelete-edit-reasonlist": "Fasal tuusuyan daliley",
+       "filedelete-maintenance": "Tuku tuusuyan nda yeekateyan ši goy waati foo hawgayyan-goy sabbu ra.",
+       "filedelete-maintenance-title": "Ši hin ka tuku tuusu",
+       "mimesearch": "MIME ceeci",
+       "mimesearch-summary": "Moɲoo woo ka naŋ tukey ma faya ngi MIME dumoo bande.\nDamhaya: contenttype/subtype wala contenttype/*, sanda <code>image/jpeg</code>",
+       "mimetype": "MIME dumi:",
+       "download": "zumandi",
+       "unwatchedpages": "Moɲey kaŋ ši gunandi",
+       "listredirects": "Bisandiyan maašeede",
+       "listduplicatedfiles": "Tuku fillantey maašeede",
+       "listduplicatedfiles-summary": "Woo ti tuku maašeede kaŋ ra tukoo dumi kokorantaa ga tee celle tuku tana foo dumi kokorantaa se. Nungu-bande tukey de no woo g'i guna.",
+       "listduplicatedfiles-entry": "[:File:$1|$1]] goo nda [[$3|{{PLURAL:$2|celle foo|celle $2}}]].",
+       "unusedtemplates": "Leetey kaŋ ši goyandi",
+       "unusedtemplatestext": "Moɲoo woo ga moɲey kul cebe {{ns:template}} maafarroo ra, kaŋyaŋ ši bara moo tana foo ra.\nHonga ka dobu taney tenjandi leetey ga jina nda war ga baa k'i tuusu.",
+       "unusedtemplateswlh": "doby taney",
+       "randompage": "Kaašim moo",
+       "randompage-nopages": "Moo kul ši ne {{PLURAL:$2|maafarroo|maafarrey}} ra: $1.",
+       "randomincategory": "Kaašim moo dumi ra",
+       "randomincategory-invalidcategory": "\"$1\" manti dumi maa henna.",
+       "randomincategory-nopages": "Moo kul ši bara [[:Category:$1|$1]] dumoo ra.",
+       "randomincategory-category": "Dumi:",
+       "randomincategory-legend": "Kaašim moo dumi ra",
+       "randomredirect": "Kaašim bisandiyan",
+       "randomredirect-nopages": "Bisandiyan kul ši \"$1\" maafarroo ra.",
+       "statistics": "Kabu-izey",
+       "statistics-header-pages": "Moo kabu-izey",
+       "statistics-header-edits": "Fasalyan kabu-izey",
+       "statistics-header-users": "Goykaw kabu-izey",
+       "statistics-header-hooks": "Kabu-ize taney",
+       "statistics-articles": "Gundekuna moɲey",
+       "statistics-pages": "Moɲes",
+       "statistics-pages-desc": "Moɲey kul kaŋ goo wikiyoo ra, sanda deede moɲey, bisandiyaney nda taney.",
+       "statistics-files": "Tuku zijantey",
+       "statistics-edits": "Moo barmawey za {{SITENAME}}  n' ka gorandi",
+       "statistics-edits-average": "Sasawandi barmaney moo foo kul se",
+       "statistics-users": "Maa-hantumante [[Special:ListUsers|goykey]]",
+       "statistics-users-active": "Goykaw kaŋ goo mee ra",
+       "statistics-users-active-desc": "Goykey kaŋ na teera foo timmandi {{PLURAL:$1|zaari $1}} koraw ra",
+       "pageswithprop": "Moɲoo kaŋ goo nda moo mayray",
+       "pageswithprop-legend": "Moɲey kaŋ goo nda moo mayray",
+       "pageswithprop-text": "Moɲoo woo ga mooyaŋ cebe kaŋ ga goy nda moo mayray naadira.",
+       "pageswithprop-prop": "Mayray maa:",
+       "pageswithprop-submit": "Koy",
+       "pageswithprop-prophidden-long": "hantum mayray hinna tugande kuku $1)",
+       "pageswithprop-prophidden-binary": "fondo-hinka mayray hinna tugante ($1)",
+       "doubleredirects": "Bisandiyan fillantey",
+       "doubleredirectstext": "Moɲoo woo ga mooyaŋ cebe kaŋ ga bisandi bisandiyan moo tanayaŋ ga./nSorro foo kul goo nda dobuyaŋ ijinaa ga nda bisandiyaŋ ihinkantoo ga, kaŋ ga doona ka tee \"real\" toodoo moɲoo kaŋ do bisandiyan jinaa ga hima ka sinja.\n Hantumey <del>gamžeerantey</del> kul aššiloo duwandi.",
+       "emailsend": "sanba",
+       "emailccme": "Ay batagaa sanba ya ne da",
+       "emailccsubject": "War batagaa ga bere $1 ga: $2",
+       "emailsent": "Bataga sanbandi",
+       "emailsenttext": "War batagaa n' ka sanbandi.",
+       "emailuserfooter": "$1 na batagaa woo sanba $2 do nda \"Email user\" goyfondo {{SITENAME}} ga.",
+       "usermessage-summary": "Goo ma dabariɲaa alhabar sanba.",
+       "usermessage-editor": "Dabariɲaa bayrandikaw",
+       "usermessage-template": "MediaWiki:UserMessage",
+       "watchlist": "Hawgayhayey",
+       "mywatchlist": "Hawgayhayey",
+       "watchlistfor2": "$1 $2 se",
+       "nowatchlist": "Haya-izeyaŋ kul šii war hawgayhayey ra.",
+       "watchlistanontext": "Wa huru taare ka dii haya-izey war hawgayhayey ra. wala k'i fasal.",
+       "watchnologin": "Mana huru",
+       "addwatch": "Tonton hawgayhayey ga",
+       "addedwatchtext": "\"[[:$1]]\" moɲoo n' ka tontonandi war [[Special:Watchlist|watchlist]] ga.\nHiino barmawey kaŋ tee moɲoo woo nda deede moo kondantaa ga cebandi noodin.",
+       "addedwatchtext-short": " \"$1\" moɲoo n' ka tontonandi war hawgayhayey ga.",
+       "removewatch": "Kaa hawgayhayey ra",
+       "removedwatchtext": " \"[[:$1]]\"  moɲoo  n' ka hun [[Special:Watchlist|war hawgayhayey]] ra.",
+       "removedwatchtext-short": "\"$1\" moɲoo n' ka hun war hawgayhayey ra.",
+       "watch": "Hawgay",
+       "watchthispage": "Moɲoo woo hawgay",
+       "unwatch": "Ma ši hawgay",
+       "unwatchthispage": "Feenda hawgayhayyan",
+       "notanarticle": "Manti gundekuna moo",
+       "notvisiblerev": "Filla koraa kaŋ goykaw waani n'a tee n' ka tuusandi",
+       "watchlist-details": "{{PLURAL:$1|moo $1}} bara war hawgayhayey ra, deede moɲey ši kabu jere ga.",
+       "wlheader-enotif": "Bataga bayrandiyan n' ka tunandi.",
+       "wlheader-showupdated": "Moɲey kaŋ barmay za cee koraa kaŋ war n'i guna ga cebandi harfu <strong>warga</strong> ra.",
+       "wlnote": "Ne ganda {{PLURAL:$1|ti barmay kokorante <strong>$1</strong>}} za {{PLURAL:$2|guuru kokorante <strong>$2</strong> ra}}, $3 hane, $4 waate.",
+       "wlshowlast": "Guuru $1 zaari $2 kokorante cebe",
+       "watchlist-options": "Hawgayhaya suubarey",
+       "watching": "Goo ma hawgay…",
+       "unwatching": "Ši ma guna…",
+       "watcherrortext": "Firka bangay waatoo kaŋ war hawgayhayey kayandiyaney ga barmay \"$1\" se.",
+       "enotif_reset": "Moo gunantey kul šilbay",
+       "enotif_impersonal_salutation": "{{SITENAME}} goykaw",
+       "ilsubmit": "ceeci",
+       "bydate": "han bande",
+       "sp-newimages-showfrom": "Tuku taagey kaŋ ga šintin $2 waate, $1 hane",
+       "video-dims": "$1, $2 × $3",
+       "seconds-abbrev": "s $1",
+       "minutes-abbrev": "min $1",
+       "hours-abbrev": "g $1",
+       "days-abbrev": "z $1",
+       "seconds": "{{PLURAL:$1|segondu $1}}",
+       "minutes": "{{PLURAL:$1|miniti $1}}",
+       "hours": "{{PLURAL:$1|guura $1}}",
+       "days": "{{PLURAL:$1|zaari $1}}",
+       "weeks": "{{PLURAL:$1|jirbiyye $1}}",
+       "months": "{{PLURAL:$1|handu $1}}",
+       "years": "{{PLURAL:$1|jiiri $1}}",
+       "ago": "za $1",
+       "just-now": "sohõda tilliyo",
+       "hours-ago": "za {{PLURAL:$1|guuru}} $1",
+       "minutes-ago": "za {{PLURAL:$1|miniti}} $1",
+       "seconds-ago": "za {{PLURAL:$1|segondu}} $1",
+       "monday-at": "Atinni $1",
+       "tuesday-at": "Atalaata $1",
+       "wednesday-at": "Alarba $1",
+       "thursday-at": "Alhamiisa $1",
+       "friday-at": "Alzuma $1",
+       "saturday-at": "Asibti $1",
+       "sunday-at": "Alhadi $1",
+       "yesterday-at": "Bi $1",
+       "bad_image_list": "Takaroo ti takaa woo:\n\nHaya-izey hantumantey (žeerey kaŋ ga šintiin nda *) de ma kulandi.\nDobu jinaa kaŋ goo žeeroo ga ga hima ka dobu tuku laala ga.\nDobu tontoni žeeri follokaa ga kul ga hima hasarawyaŋ, sanda moɲey kaŋ ra tukoo ga bangay hantum-game ra.",
+       "variantname-zh-hans": "hans",
+       "variantname-zh-hant": "hant",
+       "variantname-zh-cn": "cn",
+       "variantname-zh-tw": "tw",
+       "variantname-zh-hk": "hk",
+       "variantname-zh-mo": "mo",
+       "variantname-zh-sg": "sg",
+       "variantname-zh-my": "my",
+       "variantname-zh": "zh",
+       "variantname-gan-hans": "hans",
+       "variantname-gan-hant": "hant",
+       "variantname-gan": "gan",
+       "variantname-sr-ec": "sr-ec",
+       "variantname-sr-el": "sr-el",
+       "variantname-sr": "sr",
+       "variantname-kk-kz": "kk-kz",
+       "variantname-kk-tr": "kk-tr",
+       "variantname-kk-cn": "kk-cn",
+       "variantname-kk-cyrl": "kk-cyrl",
+       "variantname-kk-latn": "kk-latn",
+       "variantname-kk-arab": "kk-arab",
+       "variantname-kk": "kk",
+       "variantname-ku-arab": "ku-Arab",
+       "variantname-ku-latn": "ku-Latn",
+       "variantname-ku": "ku",
+       "variantname-tg-cyrl": "tg-Cyrl",
+       "variantname-tg-latn": "tg-Latn",
+       "variantname-tg": "tg",
+       "variantname-ike-cans": "ike-Cans",
+       "variantname-ike-latn": "ike-Latn",
+       "variantname-iu": "iu",
+       "variantname-shi-tfng": "shi-Tfng",
+       "variantname-shi-latn": "shi-Latn",
+       "variantname-shi": "shi",
+       "variantname-uz": "uz",
+       "variantname-uz-latn": "uz-Latn",
+       "variantname-uz-cyrl": "uz-Cyrl",
+       "metadata": "Bayahaya beeri",
+       "metadata-help": "Tukoo woo ga bara nda alhabar tontonante, a ga hin ka tee hinna biizaakaw wala biiberekaw nd'a tee wal'a bere hinna ra.\nNda tukoo n' ka barmay ka hun nga aššil alhaaloo ga, mane šilbayhaya fooyaŋ ši ye ka sawa nd'alhaali barmantaa koyne.",
+       "metadata-expand": "Šilbayhaya kukantey cebe",
+       "metadata-collapse": "Šilbayhaya kukantey tugu",
+       "metadata-fields": "Bii bayhaya beeri faarey kaŋ hantumandi alhabaroo ra ga kaa ka bara nda moo bii ceberi nda bayhaya beeri daaroo ga yee cere ga.\nJerey ga tugandi tilasu ra.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-langitem": "<strong>$2:</strong> $1",
+       "metadata-langitem-default": "$1",
+       "exif-imagewidth": "Hayri",
+       "exif-imagelength": "Kayyan",
+       "exif-bitspersample": "Cebsey jere-ize ra",
+       "exif-compression": "Kankamandiyan dabari",
+       "exif-photometricinterpretation": "Biitonbi margayan",
+       "exif-orientation": "Honnandiyan",
+       "exif-samplesperpixel": "Jere-izey hinna",
+       "exif-planarconfiguration": "Bayhaya kanandiyan",
+       "exif-ycbcrsubsampling": "Y hala C ganda-birjiyan dimma",
+       "exif-ycbcrpositioning": "Y hala C kaydoo",
+       "exif-xresolution": "Kaniyan biisahã",
+       "exif-yresolution": "Zunbuyan biisahã",
+       "exif-stripoffsets": "Bii bayhaya gorodoo",
+       "exif-rowsperstrip": "Sorro hinna zuu foo ra",
+       "exif-stripbytecounts": "Cebsu hinna zuu kankamante ra",
+       "exif-jpeginterchangeformat": "Kay JPEG SOI ga",
+       "exif-jpeginterchangeformatlength": "JPEG bayhaya cebsu hinna",
+       "exif-whitepoint": "Tonbi kaaray noone alhaaley",
+       "exif-primarychromaticities": "Noone alhaaley atabiyawey se",
+       "exif-ycbcrcoefficients": "Noone faari barmayyan hinnaɲaa alkadarey",
+       "exif-referenceblackwhite": "Celle bibi nd'ikaaray fella hinnawey",
+       "exif-datetime": "Tuku barmayyan han nda waati",
+       "exif-imagedescription": "Bii maa",
+       "exif-make": "Biizaahaya teekaw",
+       "exif-model": "Biizaahaya tee-dumi",
+       "exif-software": "Goyjinay kaŋ goyandi",
+       "exif-artist": "Hantumkaw",
+       "exif-copyright": "Alhaku mayraykoyni",
+       "exif-exifversion": "Exif dumi",
+       "exif-flashpixversion": "Flashpix dumi kaŋ goo nda kanbari",
+       "exif-colorspace": "Noone farru",
+       "exif-componentsconfiguration": "Jere-ize foo kul maana",
+       "exif-compressedbitsperpixel": "Bii kankamandiyan yaayi",
+       "exif-pixelydimension": "Bii hayri",
+       "exif-pixelxdimension": "Bii kayyan",
+       "exif-usercomment": "Goykaw daarawey",
+       "exif-relatedsoundfile": "Jinde tuku hangante",
+       "exif-datetimeoriginal": "Han nda waati bayhaya teeyan se",
+       "exif-datetimedigitized": "Han nda waati hinna-bereyan se",
+       "exif-subsectime": "DateTime subseconds",
+       "exif-subsectimeoriginal": "DateTimeOriginal subseconds",
+       "exif-subsectimedigitized": "DateTimeDigitized subseconds",
+       "exif-exposuretime": "Biizaayan waati",
+       "exif-exposuretime-format": "seg $1 ($2)",
+       "exif-fnumber": "F Hinna",
+       "exif-fnumber-format": "f/$1",
+       "exif-exposureprogram": "Biizaayan porogaram",
+       "exif-spectralsensitivity": "Gaayay maateyan",
+       "exif-isospeedratings": "ISO cahãri zimamyan",
+       "exif-shutterspeedvalue": "APEX daabirji cahãri",
+       "exif-aperturevalue": "APEX daabirji",
+       "exif-brightnessvalue": "APEX gaay",
+       "exif-exposurebiasvalue": "APEX daabirji mee",
+       "exif-maxaperturevalue": "Labu daabirji beeri",
+       "exif-subjectdistance": "Teekaw hiyaari",
+       "exif-meteringmode": "Neešiyan yaayi",
+       "exif-lightsource": "Fawra aššil",
+       "exif-flash": "Denji",
+       "exif-focallength": "Diji gunayan sahã",
+       "exif-focallength-format": "mm $1",
+       "exif-subjectarea": "Teekaw ganda",
+       "exif-flashenergy": "Denji sahã",
+       "exif-focalplanexresolution": "Moodiiyan X biisahã",
+       "exif-focalplaneyresolution": "Moodiiyan Y biisahã",
+       "exif-focalplaneresolutionunit": "Moodiiyan biisahã ize",
+       "exif-subjectlocation": "Teekaw gorodoo",
+       "exif-exposureindex": "Biizaayan šilbay",
+       "exif-sensingmethod": "Maateyan dabari",
+       "exif-filesource": "Tuku aššil",
+       "exif-scenetype": "Ganda dumi",
+       "exif-customrendered": "Laada bii hanseyan",
+       "exif-exposuremode": "Biizaayan yaayi",
+       "exif-whitebalance": "Kaaray almizan",
+       "exif-digitalzoomratio": "Hinna bii azzaati",
+       "exif-focallengthin35mmfilm": "Moodii kukuyan mm 35 filim ra",
+       "exif-scenecapturetype": "Ganda zaayan dumi",
+       "exif-gaincontrol": "Ganda korošiyan",
+       "exif-contrast": "Bii zilayyan",
+       "exif-saturation": "Bii tiŋay",
+       "exif-sharpness": "Bii henanyan",
+       "exif-devicesettingdescription": "Jinay kayandiyaney šilbayyan",
+       "exif-subjectdistancerange": "Teekaw mooruyan alkadar",
+       "exif-imageuniqueid": "Bii folloku tammaasa",
+       "exif-gpsversionid": "GPS kanjari dumi",
+       "exif-gpslatituderef": "Hawsa wala gurma hayyanzuu",
+       "exif-gpslatitude": "Hayyanzuu",
+       "exif-gpslongituderef": "Dandi wala dangay kayyanzuu",
+       "exif-gpslongitude": "Kayyanzuu",
+       "exif-gpsaltituderef": "Beene fella",
+       "exif-gpsaltitude": "Beene",
+       "exif-gpstimestamp": "GPS waati (atom montor)",
+       "exif-gpssatellites": "Satelitey kaŋ nda neesširoo tee",
+       "exif-gpsstatus": "Duukaw assariya",
+       "exif-gpsmeasuremode": "Neeširi alhaali",
+       "exif-gpsdop": "Neeširi alhakiikataray",
+       "exif-gpsspeedref": "Cahãri ize",
+       "exif-gpsspeed": "GPS duukaw cahãri",
+       "exif-gpstrackref": "Fella nootiyan tenje se",
+       "exif-gpstrack": "Ɲootiyan tenje",
+       "exif-gpsimgdirectionref": "Fella bii tenje se",
+       "exif-gpsimgdirection": "Bii tenje",
+       "exif-gpsmapdatum": "Labu neešiyan bayhaya damante",
+       "exif-gpsdestlatituderef": "Fella toodoo hayyanzuu se",
+       "exif-gpsdestlatitude": "Toodoo hayyanzuu",
+       "exif-gpsdestlongituderef": "Fella toodoo kayyanzuu se",
+       "exif-gpsdestlongitude": "Toodoo kayyanzuu",
+       "exif-gpsdestbearingref": "Fella toodoo jineteeyan se",
+       "exif-gpsdestbearing": "Toodoo jineteeyan",
+       "exif-gpsdestdistanceref": "Fella toodoo mooray se",
+       "exif-gpsdestdistance": "Toodoo mooray",
+       "exif-gpsprocessingmethod": "Maa GPS kabuyan dabari se",
+       "exif-gpsareainformation": "Maa GPS ganda se",
+       "exif-gpsdatestamp": "GPS han",
+       "exif-gpsdifferential": "GPS zilayyan serrandi",
+       "exif-coordinate-format": "$1° $2′ $3″ $4",
+       "exif-jpegfilecomment": "JPEG tuku daara",
+       "exif-keywords": "Kufalkalimawey",
+       "exif-worldregioncreated": "Adduɲɲa gandaa kaŋ ra biyoo zaandi",
+       "exif-countrycreated": "Laamaa kaŋ ra biyoo zaandi",
+       "exif-countrycodecreated": "Laamaa kaŋ ra biyoo zaandi lanbaa",
+       "exif-provinceorstatecreated": "Laama žemnaroo wala hinoo kaŋ ra biyoo zaandi",
+       "exif-citycreated": "Gaaloo kaŋ ra biyoo zaandi",
+       "exif-sublocationcreated": "Gallu fargandoo kaŋ ra biyoo zaandi",
+       "exif-worldregiondest": "Adduɲɲa gandaa kaŋ ra biyoo zaandi",
+       "exif-countrydest": "Laamaa kaŋ cebandi",
+       "exif-countrycodedest": "Laamaa kaŋ cebandi lanbaa",
+       "exif-provinceorstatedest": "Laama žemnaroo wala hinoo kaŋ cebandi",
+       "exif-citydest": "Galloo kaŋ cebandi",
+       "exif-sublocationdest": "Gallu fragandoo kaŋ cebandi",
+       "exif-objectname": "Maa duura",
+       "exif-specialinstructions": "Cerecere fahamandiyan",
+       "exif-headline": "Maabon",
+       "exif-credit": "Alhaku/Nookaw",
+       "exif-source": "Aššil",
+       "exif-editstatus": "Bii wallafiyan assariya",
+       "exif-urgency": "Tilasu",
+       "exif-fixtureidentifier": "Hawari maa",
+       "exif-locationdest": "Gorodoo šilbante",
+       "exif-locationdestcode": "Lanba gorodoo šilbante se",
+       "exif-objectcycle": "Zaari waatoo kaŋ se hẽenandi jinaa miile",
+       "exif-contact": "Hantumyan alhabar",
+       "exif-writer": "Hantumkaw",
+       "exif-languagecode": "Šenni",
+       "exif-iimversion": "IIM dumi",
+       "exif-iimcategory": "Dumi",
+       "exif-iimsupplementalcategory": "Dumi tontonantey",
+       "exif-datetimeexpires": "A ma ši goyandi nd'a bisa",
+       "exif-datetimereleased": "Fattayan han",
+       "exif-originaltransmissionref": "Sanbayan jinaa gorodoo lanbaa",
+       "exif-identifier": "Tammaasakaw",
+       "exif-lens": "Zaayan moodiji",
+       "exif-serialnumber": "Biizaahayaa fannu lanbaa",
+       "exif-cameraownername": "Biizaahayaa koyoo",
+       "exif-label": "Šilbay",
+       "exif-datetimemetadata": "Han bayhaya beeri barmay cee koraa",
+       "exif-nickname": "Bii maa kanbari",
+       "exif-rating": "Alkadar damyan (5 ra)",
+       "exif-rightscertificate": "Alhaku juwalyan tabatandi tiira",
+       "exif-copyrighted": "Teekaw alhaku assariya",
+       "exif-copyrightowner": "Teekaw alhaku mayraykoyni",
+       "exif-usageterms": "Goymee waafakay",
+       "exif-webstatement": "Interneti-ra alhaku koy kalima",
+       "exif-originaldocumentid": "Aššil takaddaa tammaasa follokaa",
+       "exif-licenseurl": "URL alhaku duɲeyan tiira",
+       "exif-morepermissionsurl": "Barmay-se duɲeyan tiira alhabar",
+       "exif-attributionurl": "Nda war ga goy nda woo koyne, dobu ne",
+       "exif-preferredattributionname": "Nda war ga goy nda woo koyne, saabu har",
+       "exif-pngfilecomment": "PNG tuku daara",
+       "exif-disclaimer": "Šikka yaamar",
+       "exif-contentwarning": "Gundekuna yaamar",
+       "exif-giffilecomment": "GIF tuku gundekuna",
+       "exif-intellectualgenre": "Haya-ize duni",
+       "exif-subjectnewscode": "Teekaw lanba",
+       "exif-scenecode": "IPTC ganda lanba",
+       "exif-event": "Teera šilbante",
+       "exif-organisationinimage": "Konday šilbante",
+       "exif-personinimage": "Boro šilbante",
+       "exif-originalimageheight": "Biyoo kayyanoo nd'a mana kosu",
+       "exif-originalimagewidth": "Biyoo hayroo nd'a mana kosu",
+       "exif-contact-value": "$1\n\n$2\n<div class=\"adr\">\n$3\n\n$4, $5, $6 $7\n</div>\n$8",
+       "exif-subjectnewscode-value": "$2 ($1)",
+       "exif-compression-1": "Mana kankamandi",
+       "exif-compression-2": "CCITT Kuray 3 1-Zimamari Huffman barmante diray kuuyan harfu-hawyan",
+       "exif-compression-3": "CCITT Kuray 3 faksu harfu-hawyan",
+       "exif-compression-4": "CCITT Kuray 4 faksu harfu-hawyan",
+       "exif-compression-5": "LZW",
+       "exif-compression-6": "JPEG (ižeena)",
+       "exif-compression-7": "JPEG",
+       "exif-compression-8": "Motti (Adobe)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
+       "exif-compression-32946": "Motti (PKZIP)",
+       "exif-compression-34712": "JPEG2000",
+       "exif-copyrighted-true": "Teekaw alhaku saajante",
+       "exif-copyrighted-false": "Teekaw alkaku assariya mana kayandi",
+       "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-6": "YCbCr",
+       "exif-unknowndate": "Han ši bayante",
+       "exif-orientation-1": "Hankul",
+       "exif-orientation-2": "Bere ka kanandi",
+       "exif-orientation-3": "Kuubi 180°",
+       "exif-orientation-4": "Bere ka sukandi",
+       "exif-orientation-5": "Kuubi 90° CCW nda bere ka sukandi",
+       "exif-orientation-6": "Kuubi 90° CCW",
+       "exif-orientation-7": "Kuubi 90° CW nda bere ka kanandi",
+       "exif-orientation-8": "Bere 90° CW",
+       "exif-planarconfiguration-1": "gunguti takari",
+       "exif-planarconfiguration-2": "planar takari",
+       "exif-xyresolution-i": "dpi $1",
+       "exif-xyresolution-c": "dpc $1",
+       "exif-colorspace-1": "sRGB",
+       "exif-colorspace-65535": "Mana faara",
+       "exif-componentsconfiguration-0": "ši bara",
+       "exif-componentsconfiguration-1": "Y",
+       "exif-componentsconfiguration-2": "Cb",
+       "exif-componentsconfiguration-3": "Cr",
+       "exif-componentsconfiguration-4": "R",
+       "exif-componentsconfiguration-5": "G",
+       "exif-componentsconfiguration-6": "B",
+       "exif-exposureprogram-0": "Manti bayrante",
+       "exif-exposureprogram-1": "Boŋteeyan",
+       "exif-exposureprogram-2": "Hankul porogaram",
+       "exif-exposureprogram-3": "Feeriyan jindoo",
+       "exif-exposureprogram-4": "Daabuyan jindoo",
+       "exif-exposureprogram-5": "Kanbeteeri porogaram (ga faari guusuyan dam jine)",
+       "exif-exposureprogram-6": "Teeyan porogaram (daabuyan cahãnte dam jine)",
+       "exif-exposureprogram-7": "Kayyanbii alhaali (ndum bii manante zaayan se nda bandafaari kokoorante)",
+       "exif-exposureprogram-8": "Hayyanbii alhaali (ganda bii moorante zaayan se nda bandafaari manante)",
+       "exif-subjectdistance-value": "meetar $1",
+       "exif-meteringmode-0": "Šibayante",
+       "exif-meteringmode-1": "Sasawandi",
+       "exif-meteringmode-2": "Gam tiŋay sasawante",
+       "exif-meteringmode-3": "Doo",
+       "exif-meteringmode-4": "Doo-boobo",
+       "exif-meteringmode-5": "Noone",
+       "exif-meteringmode-6": "Jere",
+       "exif-meteringmode-255": "Tana",
+       "exif-lightsource-0": "Šibayante",
+       "exif-lightsource-1": "Zaarigaaya",
+       "exif-lightsource-2": "Fawrante",
+       "exif-lightsource-3": "Tungsten (nunetaa denji)",
+       "exif-lightsource-4": "Meli",
+       "exif-lightsource-9": "Waati henna",
+       "exif-lightsource-10": "Duula (bur)",
+       "exif-lightsource-11": "Bii",
+       "exif-lightsource-12": "Zaarigaaya fawrante ((D 5700 – 7100K)",
+       "exif-lightsource-13": "Zaari kaaray fawrante ((N 4600 – 5400K)",
+       "exif-lightsource-14": "Fawra kaaray yayna ((W 3900 – 4500K)",
+       "exif-lightsource-15": "Kaaray fawrante (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Gaaya tabatante A",
+       "exif-lightsource-18": "Gaaya tabatante B",
+       "exif-lightsource-19": "Gaaya tabatante C",
+       "exif-lightsource-20": "D55",
+       "exif-lightsource-21": "D65",
+       "exif-lightsource-22": "D75",
+       "exif-lightsource-23": "D50",
+       "exif-lightsource-24": "ISO goytenda tungsten",
+       "exif-lightsource-255": "Gaaya aššil tana",
+       "exif-flash-fired-0": "Meloo mana dii",
+       "exif-flash-fired-1": "Meloo dii",
+       "exif-flash-return-0": "bila nda denji willante maateyan goy",
+       "exif-flash-return-2": "denji willante gaaya mana maatandi",
+       "exif-flash-return-3": "denji willante gaaya maatandi",
+       "exif-flash-mode-1": "gaabi meli diinandiyan",
+       "exif-flash-mode-2": "gaabi meli wiiyan",
+       "exif-flash-mode-3": "Boŋše alhaali",
+       "exif-flash-function-1": "Mei goy kul šii no",
+       "exif-flash-redeye-1": "moo-ciray kaayan alhaali",
+       "exif-focalplaneresolutionunit-2": "kabaaru",
+       "exif-sensingmethod-1": "Manti bayrante",
+       "exif-sensingmethod-2": "Canbu-foo noone ganda maateji",
+       "exif-sensingmethod-3": "Canbu-hinka noone ganda maateji",
+       "exif-sensingmethod-4": "Canbu-hinza noone ganda maateji",
+       "exif-sensingmethod-5": "Noone hangante ganda maateji",
+       "exif-sensingmethod-7": "Žeeri-hinza maateji",
+       "exif-sensingmethod-8": "Noone hangante žeeri maateji",
+       "exif-filesource-3": "Hinna biizaahay dejjante",
+       "exif-scenetype-1": "Bii kaŋ zaandi dogoo ra",
+       "exif-customrendered-0": "Hankul teeyan",
+       "exif-customrendered-1": "Kaŋ tee boro foo se",
+       "exif-exposuremode-0": "Bii zaa nga boŋše",
+       "exif-exposuremode-1": "Kanbe biizaayan",
+       "exif-exposuremode-2": "Boŋše holgu",
+       "exif-whitebalance-0": "Boŋše kaaray sawante",
+       "exif-whitebalance-1": "Kanbe kaaray sawante",
+       "exif-scenecapturetype-0": "Tabatante",
+       "exif-scenecapturetype-1": "Hayyanbii",
+       "exif-scenecapturetype-2": "Kayyanbii",
+       "exif-scenecapturetype-3": "Cijinhere bii alhaali",
+       "exif-gaincontrol-0": "Baffoo",
+       "exif-gaincontrol-1": "Duura buuna ka ziji",
+       "exif-gaincontrol-2": "Duura beeri ka ziji",
+       "exif-gaincontrol-3": "Duura buuna ka zunbu",
+       "exif-gaincontrol-4": "Duura beeri ka zunbu",
+       "exif-contrast-0": "Hankul",
+       "exif-contrast-1": "Baana",
+       "exif-contrast-2": "Šenda",
+       "exif-saturation-0": "Hankul",
+       "exif-saturation-1": "Bii sahã buuna",
+       "exif-saturation-2": "Bii sahã beeri",
+       "exif-sharpness-0": "Hankul",
+       "exif-sharpness-1": "Baana",
+       "exif-sharpness-2": "Šenda",
+       "exif-subjectdistancerange-0": "Šibayante",
+       "exif-subjectdistancerange-1": "Bebbeeri",
+       "exif-subjectdistancerange-2": "Moo daabu",
+       "exif-subjectdistancerange-3": "Diiyan moora",
+       "exif-gpslatitude-n": "Hawsa hayyanzuu",
+       "exif-gpslatitude-s": "Gurma hayyanzuu",
+       "exif-gpslongitude-e": "Dandi kayyanzuu",
+       "exif-gpslongitude-w": "Dangay kayyanzuu",
+       "exif-gpsaltitude-above-sealevel": "{{PLURAL:$1|meetar}} $1 teeko se beene",
+       "exif-gpsaltitude-below-sealevel": "{{PLURAL:$1|meetar}} $1 teeko se ganda",
+       "exif-gpsstatus-a": "Neešiyan goo ma tee",
+       "exif-gpsstatus-v": "Neešiyan cerekubayyan",
+       "exif-gpsmeasuremode-2": "Azzaati-2 neešiyan",
+       "exif-gpsmeasuremode-3": "Azzaati-3 neešiyan",
+       "exif-gpsspeed-k": "Kilomeetarey guuru ra",
+       "exif-gpsspeed-m": "Miley guuru ra",
+       "exif-gpsspeed-n": "Guley",
+       "exif-gpsdestdistance-k": "Kilomeetarey",
+       "exif-gpsdestdistance-m": "Miley",
+       "exif-gpsdestdistance-n": "Teeko gande miley",
+       "exif-gpsdop-excellent": "Bešere ($1)",
+       "exif-gpsdop-good": "Boryo ($1)",
+       "exif-gpsdop-moderate": "Sawante ($1)",
+       "exif-gpsdop-fair": "Cimante ($1)",
+       "exif-gpsdop-poor": "Talka ($1)",
+       "exif-objectcycle-a": "Subbaahi hinne",
+       "exif-objectcycle-p": "Almaari hinne",
+       "exif-objectcycle-b": "Subbaahi nd'almaari kaa",
+       "exif-gpsdirection-t": "Tenjeyan cimi",
+       "exif-gpsdirection-m": "Alhindi tenjeyan",
+       "exif-ycbcrpositioning-1": "Gamhaya",
+       "exif-ycbcrpositioning-2": "Cere-hinka",
+       "exif-dc-contributor": "Kanbuzaakey",
+       "exif-dc-coverage": "Ganda nda waati alkadar hẽenandihayey se",
+       "exif-dc-date": "Han(ey)",
+       "exif-dc-publisher": "Wallafikaw",
+       "exif-dc-relation": "Hẽenandihaya kondante",
+       "exif-dc-rights": "Alhakey",
+       "exif-dc-source": "Aššil hẽenandihaya",
+       "exif-dc-type": "Hẽenandihaya dumi",
+       "exif-rating-rejected": "Jindawante",
+       "exif-isospeedratings-overflow": "Ka bisa 65535",
+       "exif-maxaperturevalue-value": "APEX $1 (f/$2)",
+       "exif-iimcategory-ace": "Goy suubante, alaada nda hooray",
+       "exif-iimcategory-clj": "Bone nd' alhukum",
+       "exif-iimcategory-dis": "Albalaawu nd' alwaadu",
+       "exif-iimcategory-fin": "Ganda duura nda maamalayan",
+       "exif-iimcategory-edu": "Caw",
+       "exif-iimcategory-evn": "Windila",
+       "exif-iimcategory-hth": "Gaahambaani",
+       "exif-iimcategory-hum": "Addamayze nafaw",
+       "exif-iimcategory-lab": "Goyyan",
+       "exif-iimcategory-lif": "Hunayan fondo nda hunanzamay teera",
+       "exif-iimcategory-pol": "Politiki",
+       "exif-iimcategory-rel": "Addiina nda ganari",
+       "exif-iimcategory-sci": "Bayray nda dabari",
+       "exif-iimcategory-soi": "Jama misey",
+       "exif-iimcategory-spo": "Gaahamfeeriyan",
+       "exif-iimcategory-war": "Wangu, alfitina nda kosuri",
+       "exif-iimcategory-wea": "Waati",
+       "exif-urgency-normal": "Hankul ($1)",
+       "exif-urgency-low": "Ganda ($1)",
+       "exif-urgency-high": "Beene ($1)",
+       "exif-urgency-other": "Goykaw-bayrante jine-ka-tee haya ($1)",
+       "namespacesall": "kul",
+       "monthsall": "kul",
+       "confirmemail": "Bataga aderesu tabatandi",
+       "confirmemail_noemail": "War ši nda bataga aderesu henna war [[Special:Preferences|goykaw ibaayey]] ra.",
+       "searchsuggest-search": "Ceeci",
+       "json-error-syntax": "Nahaw firka",
+       "json-error-utf8": " UTF-8 harfu laybanteyaŋ, sanda ašariya hantum laala bande",
+       "json-error-recursion": "Feeriyan foo wala hinna tana ga filla kaŋ asariyaa ga hantumandi ra",
+       "json-error-inf-or-nan": "NAN wala INF hinna foo wal'ibooboyaŋ goo hinna kaŋ ašariyaa ga hantumandi ra",
+       "json-error-unsupported-type": "Hinna noondi kaŋ dumoo ašariya ši hin ka hantumandi"
+}
index f44eb45..b51f3d5 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Ice201 (on sg.wikipedia.org)",
-            "Mdkidiri"
-        ]
-    },
-    "tog-underline": "Gbënëngö-gbê",
-    "tog-hideminor": "Hônde âkêtê lönzïngö-sû sô asï fadê na yâ tî gbâsû",
-    "tog-hidepatrolled": "Hônde âlönzïngö-sû sô asï  na hönngö na yâ tî gbâsû",
-    "tog-newpageshidepatrolled": "Na pöpö tî âlêmbëtï nî, hônde âla sô a yeke bâa ndo daä.",
-    "tog-extendwatchlist": "Gbara molongö tî bängö-pekô sï atanda gï âfinî âsänzëmä pëpe me âsänzëmä kûê kûê.",
-    "tog-usenewrc": "Sâra kua na âfinî sänzëmä sô alônzi ângbêre nî (ahûnda Javascript)",
-    "tog-numberheadings": "Sû nömörö bîakü bîakü na terê tî âlisurä",
-    "tog-showtoolbar": "Fa motarâka tî sepesû (ahûnda Javascript)",
-    "tog-editondblclick": "Pîka kpêkê ûse tî sepe lêmbëtï (ahûnda Javascript)",
-    "tog-editsectiononrightclick": "Pîka kötï kpêkê na ndö tî lisurä sï mo sepe nî (ahûnda Javascript)",
-    "tog-rememberpassword": "Da bê na sênyîmbâ tî mbï (asï {{PLURAL:$1|längö|längö}}) $1",
-    "tog-watchcreations": "Âlêmbëtï sô mbï sâra, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
-    "tog-watchdefault": "Âlêmbëtï sô mbï sepe, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
-    "tog-watchmoves": "Âlêmbëtï sô mbï sanzêe ïrï nî, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
-    "tog-watchdeletion": "Âlêmbëtï sô mbï woza nî, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
-    "tog-minordefault": "Tî sêtîa nî, sûngi âsepesû kûê töngana kêtê sepesû",
-    "tog-previewontop": "Tanda piabängö-nî na ndöbê tî zuka tî sepesû",
-    "tog-previewonfirst": "Fa piabängö kôzo sepesû",
-    "tog-enotifwatchlistpages": "¨To na mbï mbëtïsînga töngana mbênî lêmbetï asanzêe na yâ tî molongö tî mbï tî bängö-pekô.",
-    "tog-enotifusertalkpages": "To na mbï mbëtïsînga töngana mbênî lêmbëtë asanzêe na yâ tî dalisoro tî mbï",
-    "tog-enotifminoredits": "To na mbï mbëtïsînga lâkûê sô mbênî kêtê sänzëmä asï na yâ tî âlêmbëtï tî mbï.",
-    "tog-enotifrevealaddr": "Fa lindosînga tî mbï na yâ tî âmbëtïsînga tî zënngö-zo",
-    "tog-shownumberswatching": "Fa wüngö tî ânyîmbâ sô ayeke bâa lêmbëtï sô",
-    "tog-oldsig": "Këkërë sô ayeke daä awe:",
-    "tog-fancysig": "Mû kekere nî töngana sêngê gbâsû tî Wïkï (sân taâ gbê)",
-    "underline-always": "Lâkûê",
-    "underline-never": "Lâ ôko pëpe",
-    "underline-default": "Ketîa ngbondö tî kpëlisimbä",
-    "editfont-style": "Fasöon tî gbâgerêsû tî sepesû nî",
-    "editfont-default": "Ketîa tî kpëlitondo",
-    "editfont-monospace": "Gbâgerêsû tî kpengü fündä",
-    "editfont-sansserif": "Gbâgerêsû tî kûyû garê",
-    "editfont-serif": "Gbâgerêsû na kîndâ",
-    "sunday": "lâyenga",
-    "monday": "bïkuako",
-    "tuesday": "bïkuase",
-    "wednesday": "bïkuatâ",
-    "thursday": "bïkuasïö",
-    "friday": "bïkuakü",
-    "saturday": "lâpôsö",
-    "sun": "lây",
-    "mon": "bk1",
-    "tue": "bk2",
-    "wed": "bk3",
-    "thu": "bk4",
-    "fri": "bk5",
-    "sat": "lâp",
-    "january": "Nyenye",
-    "february": "Fulundïgi",
-    "march": "Mbängü",
-    "april": "Ngubë",
-    "may_long": "Bêläwü",
-    "june": "Föndo",
-    "july": "Lengua",
-    "august": "Kükürü",
-    "september": "Mvuka",
-    "october": "Ngberere",
-    "november": "Nabändüru",
-    "december": "Kakawuka",
-    "january-gen": "Nyenye",
-    "february-gen": "Fulundïgi",
-    "march-gen": "Mbängü",
-    "april-gen": "Ngubä",
-    "may-gen": "Bâläwü",
-    "june-gen": "Föndo",
-    "july-gen": "Lengua",
-    "august-gen": "Kükürü",
-    "september-gen": "Mvuka",
-    "october-gen": "Ngberere",
-    "november-gen": "Nabändüru",
-    "december-gen": "Kakawuka",
-    "jan": "Nye",
-    "feb": "Ful",
-    "mar": "Mba",
-    "apr": "Ngu",
-    "may": "Bêl",
-    "jun": "Fön",
-    "jul": "Len",
-    "aug": "Kük",
-    "sep": "Mvu",
-    "oct": "Ngb",
-    "nov": "Nab",
-    "dec": "Kak",
-    "pagecategories": "{{PLURAL:$1|Fündä|Âfundä}}",
-    "category_header": "Âlâmbëtï na yâ tî fündä « $1 »",
-    "subcategories": "gbefündä",
-    "category-media-header": "Kuru tî kôtevungä na yâ tî fündä \"$1\"",
-    "category-empty": "\"Fündä sô ayeke na lêmbëtï, wala gbefündä, wala kuru tî kôtevungä, ôko pëpe.\"",
-    "hidden-categories": "Höndëngö {{PLURAL:$1|fündä|âfündä}}",
-    "hidden-category-category": "Âhöndëngö âf¨¨undä",
-    "listingcontinuesabbrev": "(pekô nî)",
-    "index-category": "Âlêmbëtï sô akpo nî",
-    "noindex-category": "Âlêmbëtï sô a kpö nî pëpe",
-    "broken-file-category": "Âlêmbëtï sô ayeke na âfängö gbê tî kuru",
-    "about": "Na ndö tî...",
-    "article": "Lêmbëtï tî münä",
-    "newwindow": "(avula finî döpulä)",
-    "cancel": "Woza",
-    "moredotdotdot": "Mbênî...",
-    "mypage": "Lêmbëtï tî mbï",
-    "mytalk": "Lisoro tî mbï",
-    "anontalk": "Lisoro na lindo IP sô",
-    "navigation": "Simba",
-    "and": "&#32;na",
-    "qbfind": "Gi",
-    "qbbrowse": "Hasa",
-    "qbedit": "Sepe",
-    "qbpageoptions": "Lêmbëtï sô",
-    "qbmyoptions": "Âlêmbëtï tî mbï",
-    "faq": "Âhûnda",
-    "faqpage": "Project:Âhûnda",
-    "vector-action-addsection": "Zîa mbênî lilö daä",
-    "vector-action-delete": "Lungûla",
-    "vector-action-move": "Sanzêe ïrï",
-    "vector-action-protect": "Funga",
-    "vector-action-undelete": "Kîri na nî",
-    "vector-action-unprotect": "Sanzêe fungä",
-    "vector-view-create": "Seka",
-    "vector-view-edit": "Sepe",
-    "vector-view-history": "Tanda mbai nî",
-    "vector-view-view": "Dîko",
-    "vector-view-viewsource": "Fa ligbî nî",
-    "actions": "Kua",
-    "namespaces": "Pöpö tî âïrï",
-    "variants": "Âmbênî marä nî",
-    "errorpagetitle": "Yûndo",
-    "returnto": "Kîri na ndö tî lêmbëtï $1.",
-    "tagline": "Alöndö na  {{SITENAME}}",
-    "help": "Za mbï",
-    "search": "Gi",
-    "searchbutton": "Gi",
-    "go": "Bâa",
-    "searcharticle": "Dîko",
-    "history": "Mbai tî lêmbëtï nî",
-    "history_short": "mbai",
-    "updatedmarker": "afinima ngbêreyê sô mbï sï daä sô",
-    "printableversion": "Mbâlê tî pete na sasango",
-    "permalink": "Kpengü gbê tî lêmbëtï nî",
-    "print": "Pete na sasango",
-    "view": "Tändä",
-    "edit": "Sepe",
-    "create": "Seka",
-    "editthispage": "Sepe lêmbëtï sô",
-    "create-this-page": "Seka lêmbëtï sô",
-    "delete": "Lungûla",
-    "deletethispage": "Lungûla lêmbëtï sô",
-    "undelete_short": "Kîri na {{PLURAL:$1|sepesû ôko|âsepesû $1}}",
-    "viewdeleted_short": "Bâa {{PLURAL:$1|sepsesû| âsepesû $1}} sô awoza nî awe sô.",
-    "talkpagelinktext": "tene tënë",
-    "personaltools": "Âyêkua tî wanî",
-    "talk": "Lisoro",
-    "views": "Tändä",
-    "toolbox": "Gbâyêkua",
-    "otherlanguages": "Na mbênî âyângâ",
-    "jumpto": "Gue na:",
-    "jumptonavigation": "Simba",
-    "jumptosearch": "Gi",
-    "aboutsite": "Na ndö tî {{SITENAME}}",
-    "aboutpage": "Project:Na ndö tî...",
-    "currentevents": "Âsango",
-    "currentevents-url": "Project:Âsango",
-    "disclaimers": "Zïngö-lê",
-    "disclaimerpage": "Project:Zïngö-lê",
-    "mainpage": "Gä nzönî",
-    "mainpage-description": "Gä nzönî",
-    "portal": "Âsëwä",
-    "portal-url": "Project:Gä nzönî",
-    "privacy": "Ndarä tî bätängö vivîi tënë",
-    "privacypage": "Project:Vivîi tënë",
-    "ok": "Nî laâ!",
-    "retrievedfrom": "Awara na yâ tî \"$1\"",
-    "editsection": "Sepe",
-    "editold": "sepe",
-    "editsectionhint": "Sepe surä nî $1",
-    "site-atom-feed": "süängö Atom tî $1",
-    "red-link-title": "$1 (lêmbëtï sô ayeke daä äpe)",
-    "nstab-main": "Lêmbëtï",
-    "nstab-user": "Lêmbëtï tî Nyîmbâ",
-    "nstab-special": "Lêmbëtï ndê",
-    "yourpassword": "Pafungûla",
-    "nav-login-createaccount": "Linda wala Zî kônde",
-    "userlogin": "Linda wala  Zî kônde",
-    "logout": "Sïgî",
-    "userlogout": "Sigî",
-    "watchthis": "Bâa pekô tî lêmbëtï sô",
-    "anoneditwarning": "'''Ânge:''' Mô de mo linda äpëe. Fade a sû lindosînga IP tî mo na mbai tî lêmbëtï sô.",
-    "editing": "Sëpëngö $1",
-    "editingsection": "Sëpëngö $1 (surä)",
-    "editundo": "woza",
-    "searchresults": "Pendâkua tî gïngö-ndo nî",
-    "searchresults-title": "Pendâkua tî gïngö-ndo tëtî \"$1\"",
-    "shown-title": "Fa $1 {{PLURAL:$1|pendâkua |âpendâkua}} nî alîngbi na lêmbëtï ôko ôko.",
-    "search-result-size": "$1 ({{PLURAL:$2|1 mbupa|$2 âmbupa}})",
-    "mypreferences": "tandä tî mbï",
-    "prefs-rc": "Tanga ti yé so a gbion ya ni",
-    "yournick": "Nyîmbâ:",
-    "editinguser": "Mo fa na mbi nyîmbâ '''[[User:$1|$1]]''' $2",
-    "recentchanges": "Ndângbâ sänzëmä",
-    "recentchangeslinked-toolbox": "Bängö pekô tî âgbegbêe lêmbëtï",
-    "upload": "Yâlamû mbênî kuru",
-    "watchthisupload": "bâa lo ânde sô lêmbëtï",
-    "randompage": "Lêmbëtï waâwa",
-    "brokenredirects-edit": "fa na mbi",
-    "nbytes": "$1 {{PLURAL:$1|limbe|âlimbe}}",
-    "watchlist": "Molongö tî bängö pekô",
-    "watch": "bâa pekô nî",
-    "watchthispage": "bâa lo ânde sô lêmbëtï",
-    "blanknamespace": "(Tö)",
-    "mycontris": "Kua tî mbï",
-    "whatlinkshere": "Gbegbêe lêmbëtï",
-    "contribslink": "âkua tî ânyîmbâ",
-    "move-watch": "bâa lo ânde sô lêmbëtï",
-    "tooltip-pt-login": "Ayeke nzönî mo linda, atâa sô a kambaga mo äpe.",
-    "tooltip-pt-logout": "sïgî",
-    "tooltip-ca-talk": "Lisoro na ndö tî münä tî lêmbëtï sô",
-    "tooltip-ca-edit": "Mo lîngbi tî sepe lêmbëtï sô. Nzönî mo pete kûtu piabâa tîtene mo pia mo bâa nî awe sï mo sûnga nî.",
-    "tooltip-ca-history": "Ângbêre mbâlê tî lêmbëtï sô (na ïrï tî âwasüngö-nî)",
-    "tooltip-search": "Gi {{SITENAME}}",
-    "tooltip-search-fulltext": "Gi âlêmbëtï sô ayeke na gbâsû sô",
-    "tooltip-p-logo": "Gue na Tölêmbëtï",
-    "tooltip-n-mainpage": "Gue na tölêmbëtï Gä nzönî.",
-    "tooltip-n-mainpage-description": "Gue na tölêmbëtï Gä nzönî.",
-    "tooltip-n-portal": "Tënë tî pialö nî",
-    "tooltip-n-currentevents": "Wara sango tî âpäsëmä tî fafadësô na gündâ nî.",
-    "tooltip-n-recentchanges": "Molongö tî ândângbâ sänzëma tî yâ tî Wïkï nî",
-    "tooltip-n-randompage": "Tanda mbênî lêmbëtï waâa",
-    "tooltip-n-help": "Za mbï",
-    "tooltip-t-whatlinkshere": "Molongö tî âlêmbëtï sô kûê agbë gbê na lo sô.",
-    "tooltip-t-recentchangeslinked": "Molongö tî ândângbâ sänzëmä tî âlêmbëtï sô agbë gbê na lo-sô.",
-    "tooltip-t-upload": "To kuru na wavungä",
-    "tooltip-t-specialpages": "Molongö tî âlêmbëtï sô kûê ayeke ndê",
-    "tooltip-t-print": "Mbâlê tî lêmbëtï sô tî pete na sasango",
-    "tooltip-t-permalink": "Kpengü gbê na mbâlê tî lêmbëtï nî sô",
-    "tooltip-ca-nstab-main": "Bâa lêmbëtï tî münä nî",
-    "others": "mbênî",
-    "bad_image_list": "Funda nî ayeke töngasô:\nGï âkâmba tî molongö (sô atö ndâ nî na *) laâ a yeke bâa lêgë nî. Kôzo gbê tî yâ tî kâmba ôko ôko adu tî gbùe na mbênî kpäkë kuru. Âtanga tî âgbê sô na yâ tî ôko kâmba nî sô, a bâa nî töngana yê ndê, sô ^tî tene, töngana âlêmbëtï sô kuru nî alîngbi tî tua daä na gbegbê nî.",
-    "specialpages": "Âlêmbëtï sô ayeke ndê"
+       "@metadata": {
+               "authors": [
+                       "Ice201 (on sg.wikipedia.org)",
+                       "Mdkidiri"
+               ]
+       },
+       "tog-underline": "Gbënëngö-gbê",
+       "tog-hideminor": "Hônde âkêtê lönzïngö-sû sô asï fadê na yâ tî gbâsû",
+       "tog-hidepatrolled": "Hônde âlönzïngö-sû sô asï  na hönngö na yâ tî gbâsû",
+       "tog-newpageshidepatrolled": "Na pöpö tî âlêmbëtï nî, hônde âla sô a yeke bâa ndo daä.",
+       "tog-extendwatchlist": "Gbara molongö tî bängö-pekô sï atanda gï âfinî âsänzëmä pëpe me âsänzëmä kûê kûê.",
+       "tog-usenewrc": "Sâra kua na âfinî sänzëmä sô alônzi ângbêre nî (ahûnda Javascript)",
+       "tog-numberheadings": "Sû nömörö bîakü bîakü na terê tî âlisurä",
+       "tog-showtoolbar": "Fa motarâka tî sepesû (ahûnda Javascript)",
+       "tog-editondblclick": "Pîka kpêkê ûse tî sepe lêmbëtï (ahûnda Javascript)",
+       "tog-editsectiononrightclick": "Pîka kötï kpêkê na ndö tî lisurä sï mo sepe nî (ahûnda Javascript)",
+       "tog-watchcreations": "Âlêmbëtï sô mbï sâra, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
+       "tog-watchdefault": "Âlêmbëtï sô mbï sepe, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
+       "tog-watchmoves": "Âlêmbëtï sô mbï sanzêe ïrï nî, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
+       "tog-watchdeletion": "Âlêmbëtï sô mbï woza nî, zîa nî kûê na yâ tî molongö tî mbï tî bängö-pekô.",
+       "tog-minordefault": "Tî sêtîa nî, sûngi âsepesû kûê töngana kêtê sepesû",
+       "tog-previewontop": "Tanda piabängö-nî na ndöbê tî zuka tî sepesû",
+       "tog-previewonfirst": "Fa piabängö kôzo sepesû",
+       "tog-enotifwatchlistpages": "¨To na mbï mbëtïsînga töngana mbênî lêmbetï asanzêe na yâ tî molongö tî mbï tî bängö-pekô.",
+       "tog-enotifusertalkpages": "To na mbï mbëtïsînga töngana mbênî lêmbëtë asanzêe na yâ tî dalisoro tî mbï",
+       "tog-enotifminoredits": "To na mbï mbëtïsînga lâkûê sô mbênî kêtê sänzëmä asï na yâ tî âlêmbëtï tî mbï.",
+       "tog-enotifrevealaddr": "Fa lindosînga tî mbï na yâ tî âmbëtïsînga tî zënngö-zo",
+       "tog-shownumberswatching": "Fa wüngö tî ânyîmbâ sô ayeke bâa lêmbëtï sô",
+       "tog-oldsig": "Këkërë sô ayeke daä awe:",
+       "tog-fancysig": "Mû kekere nî töngana sêngê gbâsû tî Wïkï (sân taâ gbê)",
+       "underline-always": "Lâkûê",
+       "underline-never": "Lâ ôko pëpe",
+       "underline-default": "Ketîa ngbondö tî kpëlisimbä",
+       "editfont-style": "Fasöon tî gbâgerêsû tî sepesû nî",
+       "editfont-default": "Ketîa tî kpëlitondo",
+       "editfont-monospace": "Gbâgerêsû tî kpengü fündä",
+       "editfont-sansserif": "Gbâgerêsû tî kûyû garê",
+       "editfont-serif": "Gbâgerêsû na kîndâ",
+       "sunday": "lâyenga",
+       "monday": "bïkuako",
+       "tuesday": "bïkuase",
+       "wednesday": "bïkuatâ",
+       "thursday": "bïkuasïö",
+       "friday": "bïkuakü",
+       "saturday": "lâpôsö",
+       "sun": "lây",
+       "mon": "bk1",
+       "tue": "bk2",
+       "wed": "bk3",
+       "thu": "bk4",
+       "fri": "bk5",
+       "sat": "lâp",
+       "january": "Nyenye",
+       "february": "Fulundïgi",
+       "march": "Mbängü",
+       "april": "Ngubë",
+       "may_long": "Bêläwü",
+       "june": "Föndo",
+       "july": "Lengua",
+       "august": "Kükürü",
+       "september": "Mvuka",
+       "october": "Ngberere",
+       "november": "Nabändüru",
+       "december": "Kakawuka",
+       "january-gen": "Nyenye",
+       "february-gen": "Fulundïgi",
+       "march-gen": "Mbängü",
+       "april-gen": "Ngubä",
+       "may-gen": "Bâläwü",
+       "june-gen": "Föndo",
+       "july-gen": "Lengua",
+       "august-gen": "Kükürü",
+       "september-gen": "Mvuka",
+       "october-gen": "Ngberere",
+       "november-gen": "Nabändüru",
+       "december-gen": "Kakawuka",
+       "jan": "Nye",
+       "feb": "Ful",
+       "mar": "Mba",
+       "apr": "Ngu",
+       "may": "Bêl",
+       "jun": "Fön",
+       "jul": "Len",
+       "aug": "Kük",
+       "sep": "Mvu",
+       "oct": "Ngb",
+       "nov": "Nab",
+       "dec": "Kak",
+       "pagecategories": "{{PLURAL:$1|Fündä|Âfundä}}",
+       "category_header": "Âlâmbëtï na yâ tî fündä « $1 »",
+       "subcategories": "gbefündä",
+       "category-media-header": "Kuru tî kôtevungä na yâ tî fündä \"$1\"",
+       "category-empty": "\"Fündä sô ayeke na lêmbëtï, wala gbefündä, wala kuru tî kôtevungä, ôko pëpe.\"",
+       "hidden-categories": "Höndëngö {{PLURAL:$1|fündä|âfündä}}",
+       "hidden-category-category": "Âhöndëngö âf¨¨undä",
+       "listingcontinuesabbrev": "(pekô nî)",
+       "index-category": "Âlêmbëtï sô akpo nî",
+       "noindex-category": "Âlêmbëtï sô a kpö nî pëpe",
+       "broken-file-category": "Âlêmbëtï sô ayeke na âfängö gbê tî kuru",
+       "about": "Na ndö tî...",
+       "article": "Lêmbëtï tî münä",
+       "newwindow": "(avula finî döpulä)",
+       "cancel": "Woza",
+       "moredotdotdot": "Mbênî...",
+       "mypage": "Lêmbëtï tî mbï",
+       "mytalk": "Lisoro tî mbï",
+       "anontalk": "Lisoro na lindo IP sô",
+       "navigation": "Simba",
+       "and": "&#32;na",
+       "qbfind": "Gi",
+       "qbbrowse": "Hasa",
+       "qbedit": "Sepe",
+       "qbpageoptions": "Lêmbëtï sô",
+       "qbmyoptions": "Âlêmbëtï tî mbï",
+       "faq": "Âhûnda",
+       "faqpage": "Project:Âhûnda",
+       "actions": "Kua",
+       "namespaces": "Pöpö tî âïrï",
+       "variants": "Âmbênî marä nî",
+       "errorpagetitle": "Yûndo",
+       "returnto": "Kîri na ndö tî lêmbëtï $1.",
+       "tagline": "Alöndö na  {{SITENAME}}",
+       "help": "Za mbï",
+       "search": "Gi",
+       "searchbutton": "Gi",
+       "go": "Bâa",
+       "searcharticle": "Dîko",
+       "history": "Mbai tî lêmbëtï nî",
+       "history_short": "mbai",
+       "updatedmarker": "afinima ngbêreyê sô mbï sï daä sô",
+       "printableversion": "Mbâlê tî pete na sasango",
+       "permalink": "Kpengü gbê tî lêmbëtï nî",
+       "print": "Pete na sasango",
+       "view": "Tändä",
+       "edit": "Sepe",
+       "create": "Seka",
+       "editthispage": "Sepe lêmbëtï sô",
+       "create-this-page": "Seka lêmbëtï sô",
+       "delete": "Lungûla",
+       "deletethispage": "Lungûla lêmbëtï sô",
+       "undelete_short": "Kîri na {{PLURAL:$1|sepesû ôko|âsepesû $1}}",
+       "viewdeleted_short": "Bâa {{PLURAL:$1|sepsesû| âsepesû $1}} sô awoza nî awe sô.",
+       "talkpagelinktext": "tene tënë",
+       "personaltools": "Âyêkua tî wanî",
+       "talk": "Lisoro",
+       "views": "Tändä",
+       "toolbox": "Gbâyêkua",
+       "otherlanguages": "Na mbênî âyângâ",
+       "jumpto": "Gue na:",
+       "jumptonavigation": "Simba",
+       "jumptosearch": "Gi",
+       "aboutsite": "Na ndö tî {{SITENAME}}",
+       "aboutpage": "Project:Na ndö tî...",
+       "currentevents": "Âsango",
+       "currentevents-url": "Project:Âsango",
+       "disclaimers": "Zïngö-lê",
+       "disclaimerpage": "Project:Zïngö-lê",
+       "mainpage": "Gä nzönî",
+       "mainpage-description": "Gä nzönî",
+       "portal": "Âsëwä",
+       "portal-url": "Project:Gä nzönî",
+       "privacy": "Ndarä tî bätängö vivîi tënë",
+       "privacypage": "Project:Vivîi tënë",
+       "ok": "Nî laâ!",
+       "retrievedfrom": "Awara na yâ tî \"$1\"",
+       "editsection": "Sepe",
+       "editold": "sepe",
+       "editsectionhint": "Sepe surä nî $1",
+       "site-atom-feed": "süängö Atom tî $1",
+       "red-link-title": "$1 (lêmbëtï sô ayeke daä äpe)",
+       "nstab-main": "Lêmbëtï",
+       "nstab-user": "Lêmbëtï tî Nyîmbâ",
+       "nstab-special": "Lêmbëtï ndê",
+       "yourpassword": "Pafungûla",
+       "nav-login-createaccount": "Linda wala Zî kônde",
+       "userlogin": "Linda wala  Zî kônde",
+       "logout": "Sïgî",
+       "userlogout": "Sigî",
+       "watchthis": "Bâa pekô tî lêmbëtï sô",
+       "anoneditwarning": "'''Ânge:''' Mô de mo linda äpëe. Fade a sû lindosînga IP tî mo na mbai tî lêmbëtï sô.",
+       "editing": "Sëpëngö $1",
+       "editingsection": "Sëpëngö $1 (surä)",
+       "editundo": "woza",
+       "searchresults": "Pendâkua tî gïngö-ndo nî",
+       "searchresults-title": "Pendâkua tî gïngö-ndo tëtî \"$1\"",
+       "shown-title": "Fa $1 {{PLURAL:$1|pendâkua |âpendâkua}} nî alîngbi na lêmbëtï ôko ôko.",
+       "search-result-size": "$1 ({{PLURAL:$2|1 mbupa|$2 âmbupa}})",
+       "mypreferences": "tandä tî mbï",
+       "prefs-rc": "Tanga ti yé so a gbion ya ni",
+       "yournick": "Nyîmbâ:",
+       "editinguser": "Mo fa na mbi nyîmbâ '''[[User:$1|$1]]''' $2",
+       "recentchanges": "Ndângbâ sänzëmä",
+       "recentchangeslinked-toolbox": "Bängö pekô tî âgbegbêe lêmbëtï",
+       "upload": "Yâlamû mbênî kuru",
+       "watchthisupload": "bâa lo ânde sô lêmbëtï",
+       "randompage": "Lêmbëtï waâwa",
+       "brokenredirects-edit": "fa na mbi",
+       "nbytes": "$1 {{PLURAL:$1|limbe|âlimbe}}",
+       "watchlist": "Molongö tî bängö pekô",
+       "watch": "bâa pekô nî",
+       "watchthispage": "bâa lo ânde sô lêmbëtï",
+       "blanknamespace": "(Tö)",
+       "mycontris": "Kua tî mbï",
+       "whatlinkshere": "Gbegbêe lêmbëtï",
+       "contribslink": "âkua tî ânyîmbâ",
+       "move-watch": "bâa lo ânde sô lêmbëtï",
+       "tooltip-pt-login": "Ayeke nzönî mo linda, atâa sô a kambaga mo äpe.",
+       "tooltip-pt-logout": "sïgî",
+       "tooltip-ca-talk": "Lisoro na ndö tî münä tî lêmbëtï sô",
+       "tooltip-ca-edit": "Mo lîngbi tî sepe lêmbëtï sô. Nzönî mo pete kûtu piabâa tîtene mo pia mo bâa nî awe sï mo sûnga nî.",
+       "tooltip-ca-history": "Ângbêre mbâlê tî lêmbëtï sô (na ïrï tî âwasüngö-nî)",
+       "tooltip-search": "Gi {{SITENAME}}",
+       "tooltip-search-fulltext": "Gi âlêmbëtï sô ayeke na gbâsû sô",
+       "tooltip-p-logo": "Gue na Tölêmbëtï",
+       "tooltip-n-mainpage": "Gue na tölêmbëtï Gä nzönî.",
+       "tooltip-n-mainpage-description": "Gue na tölêmbëtï Gä nzönî.",
+       "tooltip-n-portal": "Tënë tî pialö nî",
+       "tooltip-n-currentevents": "Wara sango tî âpäsëmä tî fafadësô na gündâ nî.",
+       "tooltip-n-recentchanges": "Molongö tî ândângbâ sänzëma tî yâ tî Wïkï nî",
+       "tooltip-n-randompage": "Tanda mbênî lêmbëtï waâa",
+       "tooltip-n-help": "Za mbï",
+       "tooltip-t-whatlinkshere": "Molongö tî âlêmbëtï sô kûê agbë gbê na lo sô.",
+       "tooltip-t-recentchangeslinked": "Molongö tî ândângbâ sänzëmä tî âlêmbëtï sô agbë gbê na lo-sô.",
+       "tooltip-t-upload": "To kuru na wavungä",
+       "tooltip-t-specialpages": "Molongö tî âlêmbëtï sô kûê ayeke ndê",
+       "tooltip-t-print": "Mbâlê tî lêmbëtï sô tî pete na sasango",
+       "tooltip-t-permalink": "Kpengü gbê na mbâlê tî lêmbëtï nî sô",
+       "tooltip-ca-nstab-main": "Bâa lêmbëtï tî münä nî",
+       "others": "mbênî",
+       "bad_image_list": "Funda nî ayeke töngasô:\nGï âkâmba tî molongö (sô atö ndâ nî na *) laâ a yeke bâa lêgë nî. Kôzo gbê tî yâ tî kâmba ôko ôko adu tî gbùe na mbênî kpäkë kuru. Âtanga tî âgbê sô na yâ tî ôko kâmba nî sô, a bâa nî töngana yê ndê, sô ^tî tene, töngana âlêmbëtï sô kuru nî alîngbi tî tua daä na gbegbê nî.",
+       "specialpages": "Âlêmbëtï sô ayeke ndê"
 }
index e42b2e3..542a13d 100644 (file)
        "statistics": "Statėstėka",
        "statistics-header-pages": "Poslapiu statėstėka",
        "statistics-header-edits": "Redagavėmu statėstėka",
-       "statistics-header-views": "Parveizu statistėka",
        "statistics-header-users": "Nauduotuoju statėstėka",
        "statistics-header-hooks": "Kėta statėstėka",
        "statistics-articles": "Torėnė poslapē",
        "statistics-users": "Ožsėregėstravosiu [[Special:ListUsers|nauduotuoju]]",
        "statistics-users-active": "Aktīviu nauduotuoju",
        "statistics-users-active-desc": "Nauduotuojē, katrėi par {{PLURAL:$1|paskiausė dėina|paskiausė 2 dėinė|paskiausės $1 dėinas|paskiausiu $1 dėinū}} padėrba keitėmu",
-       "statistics-mostpopular": "Daugiausē ruodītė poslapē",
        "doubleredirects": "Dvėgobė paradresavėmā",
        "doubleredirectstext": "Tėi paradresavėmā ruod i kėtus paradresavėma poslapius. Kuožnuo eilotē pamėnavuots pėrmasā ėr ontrasā paradresavėmā, tēpuogi ontrojė paradresavėma paskėrtis, katra paprastā ė paruod i tėkraji poslapi, i katra pėrmasā paradresavėms ė torietu ruodītė.",
        "double-redirect-fixed-move": "[[$1]] bova parkelts, daba tas īr paradresavėms i [[$2]]",
index 3000ed3..16af5ec 100644 (file)
        "mergehistory-same-destination": "Izvorne i odredišne stranice ne mogu biti iste",
        "mergehistory-reason": "Razlog:",
        "mergelog": "Registar spajanja",
-       "pagemerge-logentry": "spojeno [[$1]] u [[$2]] (sve do $3 revizije)",
        "revertmerge": "Ukini spajanje",
        "mergelogpagetext": "Ispod je spisak nedavnih spajanja historija stranica.",
        "history-title": "Historija izmjena stranice \"$1\"",
        "statistics": "Statistike / Статистике",
        "statistics-header-pages": "Statistike stranice",
        "statistics-header-edits": "Statistike izmjena",
-       "statistics-header-views": "Statistike pregleda",
        "statistics-header-users": "Statistike korisnika",
        "statistics-header-hooks": "Ostale statistike",
        "statistics-articles": "Stranice sadržaja",
        "statistics-files": "Broj postavljenih datoteka",
        "statistics-edits": "Broj izmjena od kako je instalirana {{SITENAME}}",
        "statistics-edits-average": "Prosječno izmjena po stranici",
-       "statistics-views-total": "Ukupno pregleda",
-       "statistics-views-total-desc": "Pregledi nepostojećih stranica i posebnih stranica nisu uključeni",
-       "statistics-views-peredit": "Pregleda po izmjeni",
        "statistics-users": "Registrovani [[Special:ListUsers|korisnici]]",
        "statistics-users-active": "Aktivni korisnici",
        "statistics-users-active-desc": "Korisnici koju su izvršili akciju u toku {{PLURAL:$1|zadnjeg dana|zadnja $1 dana|zadnjih $1 dana}}",
-       "statistics-mostpopular": "Najviše pregledane stranice",
        "pageswithprop": "Stranice sa svojstvom stranice",
        "pageswithprop-legend": "Stranice sa svojstvom stranice",
        "pageswithprop-text": "Ova stranica navodi stranice sa specifičnim svojstvom stranice.",
        "uncategorizedtemplates": "Šabloni bez kategorije",
        "unusedcategories": "Neiskorištene kategorije",
        "unusedimages": "Neiskorišćene slike / Неискоришћене слике",
-       "popularpages": "Popularne stranice",
        "wantedcategories": "Tražene kategorije",
        "wantedpages": "Tražene stranice / Тражене странице",
        "wantedpages-badtitle": "Nevaljan naslov u setu rezultata: $1",
        "pageinfo-robot-policy": "Status tražilice",
        "pageinfo-robot-index": "Stranicu je moguće indeksirati",
        "pageinfo-robot-noindex": "Ne može se indeksirati",
-       "pageinfo-views": "Broj pregleda",
        "pageinfo-watchers": "Broj pratitelja stranice",
        "pageinfo-few-watchers": "Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}",
        "pageinfo-redirects-name": "Preusmjeravanja na ovu stranicu",
index 4ae6b85..df7d659 100644 (file)
        "mergehistory-same-destination": "Tisniwin tiɣbula d tin ɣilli rant urgant yat.",
        "mergehistory-reason": "Maɣ:",
        "mergelog": "Aɣmis n imsmun",
-       "pagemerge-logentry": "[[$1]] tllan ɣ  [[$2]] (Lqm ar $3)",
        "revertmerge": "Fukku",
        "mergelogpagetext": "Γid umuɣ n izdayn n umzruy n yat tasna ɣ yat yaḍn lli igan tamaynut",
        "history-title": "Asakud n umcggr n « $1 »",
index a473e1a..3248763 100644 (file)
@@ -24,7 +24,8 @@
                        "සුරනිමල",
                        "아라",
                        "හරිත",
-                       "Indunil Chamara"
+                       "Indunil Chamara",
+                       "Susith Chandira Gts"
                ]
        },
        "tog-underline": "සබැඳි යටීර කිරීම:",
        "mergehistory-same-destination": "මූල හා අන්ත පිටු දෙකම එකක් විය නොහැක",
        "mergehistory-reason": "හේතුව:",
        "mergelog": "එකාබද්ධ කිරීම් ලඝු-සටහන",
-       "pagemerge-logentry": "[[$2]] හා සමග [[$1]] ඒකාබද්ධ කරන ලදි ($3 දක්වා සංශෝධනයන්)",
        "revertmerge": "ඒකාබද්ධය අහෝසි කරන්න",
        "mergelogpagetext": "එක් පිටු ඉතිහාසයක් තවකක් හා සමග ඉතා මෑතදී සිදුවූ ඒකාබද්ධ වීම් දැක්වෙන ලැයිස්තුවක් පහත වේ.",
        "history-title": "$1:  සංශෝධන ඉතිහාසය",
        "gender-female": "ස්ත්‍රී",
        "prefs-help-gender": "මෙම සංස්කරණය අත්‍යවශ්‍ය නැත: මෘදුකාංග විසින් නිවැරැදි ආමන්ත්‍රනය සඳහා භාවිතා කෙරෙයි.\nමෙම තොරතුර ප්‍රජාවට විවෘතය.",
        "email": "විද්‍යුත් තැපෑල",
-       "prefs-help-realname": "à·\83à·\90බà·\91 à¶±à·\8fමය à·\84à·\99à·\85à·\92 à¶\9aà·\92රà·\93ම à·\80à·\9bà¶\9aලà·\8aපà·\92à¶\9aයà·\92.\nà¶\94බ à·\80à·\92à·\83à·\92නà·\8a à¶\91ය à·\84à·\99à·\85à·\92 à¶\9aල à·\84à·\9cතà·\8a, à¶\94බà¶\9cà·\9a à¶\9aà·\98තà·\93නà·\8a à·\83ඳà·\84à·\8f à¶\94බà·\84ට à¶\9aතà·\98-බුහුමන් පිරිනැමීමට එය භාවිතා කරනු ඇත.",
+       "prefs-help-realname": "à·\83à·\90බà·\91 à¶±à·\8fමය à·\84à·\99à·\85à·\92 à¶\9aà·\92රà·\93ම à\85තà·\8aâ\80\8dයà·\80à·\81à·\8aâ\80\8dය à¶±à·\90ත.\nà¶\94බ à·\80à·\92à·\83à·\92නà·\8a à¶\91ය à·\84à·\99à·\85à·\92 à¶\9aල à·\84à·\9cතà·\8a, à¶\94බà¶\9cà·\9a à¶\9aà·\98තà·\93නà·\8a à·\83ඳà·\84à·\8f à¶\94බà·\84ට à¶\9aතà·\98බුහුමන් පිරිනැමීමට එය භාවිතා කරනු ඇත.",
        "prefs-help-email": "විද්‍යුත් තැපැල් ලිපිනය අත්‍යාවශ්‍ය නොවේ, එහෙත් ඔබගේ මුර පදය අමතක වූ විටෙක එය යලි සැකසීමට නම් විද්‍යුත් ලිපිනයක් දී තිබිය යුතුය.",
        "prefs-help-email-others": "ඔබගේ පරිශීලක හෝ පරිශීලක සාකච්ඡා පිටුවෙහි සබැඳියක් ඔස්සේ විද්‍යුත් තැපෑල මගින් අනෙක් අයට ඔබව සම්බන්ධ කර ගැනීම පිණිස තේරිමක් සිදු කල හැක.\nඅනෙකුත් පරිශීලකයන් ඔබව අමතන විට ඔබගේ විද්‍යුත් තැපැල් ලිපිනය හෙලිදරවු නොකෙරේ.",
        "prefs-help-email-required": "විද්‍යුත්-ලිපිනය අවශ්‍යයි.",
        "statistics": "සංඛ්‍යාන දත්ත",
        "statistics-header-pages": "පිටුවල සංඛ්‍යාන දත්ත",
        "statistics-header-edits": "සංස්කරණ වල සංඛ්‍යාන දත්ත",
-       "statistics-header-views": "නැරඹුම් වල සංඛ්‍යාන දත්ත",
        "statistics-header-users": "පරිශීලකයන් පිළිබඳ සංඛ්‍යාන දත්ත",
        "statistics-header-hooks": "අනෙක් සංඛ්‍යා ලේඛන",
        "statistics-articles": "අන්තර්ගත  පිටු",
        "statistics-files": "උඩුගතකරන ලද ගොනු",
        "statistics-edits": "{{SITENAME}} පිහිටුවීමෙන් අනතුරුව සිදුවූ පිටු සංස්කරණයන්",
        "statistics-edits-average": "එක් පිටුවකට සංස්කරණයන්හි  මධ්‍යක අගය",
-       "statistics-views-total": "නැරඹුම් එකතුව",
-       "statistics-views-total-desc": "විශේෂ හා දැනට නොපවතින පිටු වල දසුන් එක් කොට නැත",
-       "statistics-views-peredit": "එක් සංස්කරණයකට නැරඹුම් ගණන",
        "statistics-users": "ලේඛනගත  [[Special:ListUsers|පරිශීලකයෝ]]",
        "statistics-users-active": "ක්‍රියාශීලි පරිශීලකයන්",
        "statistics-users-active-desc": "පසුගිය {{PLURAL:$1|දිනය|දින $1}} තුලදී කිසියම් ක්‍රියාවක් සිදු කල පරිශීලකයන්",
-       "statistics-mostpopular": "බෙහෙවින් නරඹනු ලබන පිටු",
        "pageswithprop-prop": "ගුණ නාමය:",
        "pageswithprop-submit": "යන්න",
        "pageswithprop-prophidden-binary": "ද්විමය ගුණ අගය සැඟවී ($1)",
        "uncategorizedtemplates": "ප්‍රවර්ගීකරණය නොවූ සැකිලි",
        "unusedcategories": "භාවිතා නොවූ ප්‍රවර්ග",
        "unusedimages": "භාවිතා නොවූ ගොනු",
-       "popularpages": "ජනප්‍රිය පිටු",
        "wantedcategories": "අවශ්‍ය ප්‍රවර්ග",
        "wantedpages": "අවශ්‍ය පිටු",
        "wantedpages-badtitle": "ප්‍රතිඵල ගොන්නේ අනීතික ශීර්ෂය: $1",
        "pager-older-n": "{{PLURAL:$1|පැරණි 1|පැරණි $1}}",
        "suppress": "ප්‍රමාද දෝෂය",
        "querypage-disabled": "ක්‍රියාකාරීත්ව හේතූන්මත මෙම විශේෂ පිටුව අක්‍රීය කර ඇත.",
+       "apihelp": "API උදවු",
+       "apihelp-no-such-module": "ආකෘතිය \"$1\" හමුවුනේ නැත.",
        "booksources": "මූලාශ්‍ර පොත්",
        "booksources-search-legend": "ග්‍රන්ථ මූලාශ්‍ර සඳහා ගවේෂණය කරන්න",
        "booksources-isbn": "ISBN:",
        "wlheader-enotif": "විද්‍යුත් තැපැල් දැනුම්දීම සක්‍රීයයි.",
        "wlheader-showupdated": "ඔබ විසින් ඒවාට අවසන් වරට පිවිසුනු පසුව වෙනස්ව තිබෙන පිටු <strong>තදකුරු</strong> වලින් පෙන්වා ඇත.",
        "wlnote": "පහත දැක්වෙන්නේ $3, $4 මෙන්, අවසන් {{PLURAL:$2|පැය|පැය '''$2''' }} තුලදී සිදු කෙරී ඇති {{PLURAL:$1|අවසන් වෙනස්වීම්යි |අවසන් වෙනස්වීම්  '''$1''' යි}}.",
-       "wlshowlast": "පසුගිය පැය $1 දින $2  පෙන්වන්න",
+       "wlshowlast": "පසුගිය පැය $1 දින $2 පෙන්වන්න",
        "watchlist-options": "තෝරාගතහැකි මුර ලැයිස්තු සැකසුම්",
        "watching": "මුර කරමින්...",
        "unwatching": "මුර නොකරමින්...",
        "pageinfo-robot-policy": "සෙවුම් එන්ජිම් තත්ත්වය",
        "pageinfo-robot-index": "සුචිමය",
        "pageinfo-robot-noindex": "සුචිමය නොවන",
-       "pageinfo-views": "නැරඹුම් සංඛ්‍යාව",
        "pageinfo-watchers": "පිටු මුරකරන්නන් සංඛ්‍යාව",
        "pageinfo-redirects-name": "මෙම පිටුවට යළියොමු ගණන",
        "pageinfo-subpages-name": "මෙම පිටුවෙහි උපපිටු",
index ad70cfb..967b679 100644 (file)
                        "Wizzard",
                        "לערי ריינהארט",
                        "아라",
-                       "Matthew Greg"
+                       "Matthew Greg",
+                       "Ата"
                ]
        },
        "tog-underline": "Podčiarkovať odkazy:",
        "tog-hideminor": "V posledných úpravách nezobrazovať drobné úpravy",
        "tog-hidepatrolled": "Skryť strážené úpravy v Posledných úpravách",
        "tog-newpageshidepatrolled": "Skryť strážené stránky zo zoznamu nových stránok",
-       "tog-extendwatchlist": "Rozšíriť zoznam sledovaných stránok, aby zobrazoval všetky zmeny, nie len posledné",
+       "tog-extendwatchlist": "Rozšíriť zoznam sledovaných stránok, aby zobrazoval všetky úpravy, nie len posledné",
        "tog-usenewrc": "Zoskupiť zmeny v posledných úpravách a na zozname sledovaných stránok podľa stránky",
        "tog-numberheadings": "Automaticky číslovať nadpisy",
        "tog-showtoolbar": "Zobraziť panel nástrojov úprav",
@@ -54,7 +55,7 @@
        "tog-shownumberswatching": "Zobraziť počet používateľov sledujúcich stránku",
        "tog-oldsig": "Súčasný podpis:",
        "tog-fancysig": "Považovať podpisy za wikitext (bez automatických odkazov)",
-       "tog-uselivepreview": "Používať živý náhľad(experimentálna funkcia)",
+       "tog-uselivepreview": "Používať živý náhľad (experimentálna funkcia)",
        "tog-forceeditsummary": "Upozoriť ma, keď nevyplním zhrnutie úprav",
        "tog-watchlisthideown": "Skryť moje úpravy zo zoznamu sledovaných",
        "tog-watchlisthidebots": "Skryť úpravy botov zo zoznamu sledovaných",
        "otherlanguages": "V iných jazykoch",
        "redirectedfrom": "(Presmerované z $1)",
        "redirectpagesub": "Presmerovacia stránka",
+       "redirectto": "Presmerovať na:",
        "lastmodifiedat": "Čas poslednej úpravy tejto stránky je $2, $1.",
        "viewcount": "Táto stránka bola navštívená {{PLURAL:$1|raz|$1-krát|$1-krát}}.",
        "protectedpage": "Zamknutá stránka",
        "jumptonavigation": "navigácia",
        "jumptosearch": "hľadanie",
        "view-pool-error": "Ľutujeme, servery sú momentálne preťažené.\nPríliš veľa používateľov sa pokúša zobraziť túto stránku.\nProsím, počkajte chvíľu predtým, než sa pokúsite na túto stránku dostať znova.\n\n$1",
+       "generic-pool-error": "Ľutujeme, servery sú momentálne preťažené.\nPríliš veľa používateľov sa pokúša zobraziť tento zdroj.\nProsím, pred ďalším pokusom o prístup chvíľu počkajte.",
        "pool-timeout": "Bol prekročený vyhradený čas čakania na zámok",
        "pool-queuefull": "Front je plný",
        "pool-errorunknown": "Neznáma chyba",
        "hidetoc": "skryť",
        "collapsible-collapse": "zbaliť",
        "collapsible-expand": "rozbaliť",
+       "confirmable-confirm": "Ste si {{GENDER:$1|istý|istá|istí}}?",
        "confirmable-yes": "Áno",
        "confirmable-no": "Nie",
        "thisisdeleted": "Zobraziť alebo obnoviť $1?",
        "actionthrottledtext": "Ako opatrenie proti spamu je počet vykonaní tejto činnosti za určitý čas obmedzený. Tento limit ste prekročili. Prosím, skúste to znova o niekoľko minút.",
        "protectedpagetext": "Táto stránka bola zamknutá aby sa zamedzilo úpravám.",
        "viewsourcetext": "Môžete si zobraziť a kopírovať zdroj tejto stránky:",
-       "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód '''vašich zmien''' tejto stránky:",
+       "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód <strong>vašich úprav</strong> tejto stránky:",
        "protectedinterface": "Táto stránka poskytuje text používateľského rozhrania tejto wiki a je zamknutá, aby sa predišlo jej zneužitiu.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
        "editinginterface": "'''Upozornenie:''' Upravujete stránku, ktorá poskytuje text používateľského rozhrania.\nZmeny tejto stránky ovplyvnia vzhľad používateľského rozhrania ostatným používateľom.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
        "cascadeprotected": "Táto stránka bola zamknutá proti úpravám, pretože je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá je zamknutá|nasledovných stránkach, ktoré sú zamknuté}} voľbou „kaskádového zamknutia“:\n$2",
        "invalidtitle-knownnamespace": "Neplatný názov s menným priestorom „$2“ a textom „$3“",
        "invalidtitle-unknownnamespace": "Neplatný názov s neznámym číslom menného priestoru „$1“ a textom „$2“",
        "exception-nologin": "Nie ste prihlásený",
-       "exception-nologin-text": "Táto stránka alebo operácia vyžaduje, aby ste [[Special:Userlogin|boli prihlásený]].",
+       "exception-nologin-text": "Táto stránka alebo operácia vyžaduje, aby ste boli prihlásený.",
        "exception-nologin-text-manual": "Pre prístup na túto stránku alebo k tejto akcii sa musíte $1.",
        "virus-badscanner": "Chybná konfigurácia: neznámy antivírus: ''$1''",
        "virus-scanfailed": "kontrola zlyhala (kód $1)",
        "createaccount-text": "Niekto vytvoril účet pre vašu emailovú adresu na {{GRAMMAR:lokál|{{SITENAME}}}}\n($4) s názvom „$2“, s heslom „$3“. Mali by ste sa prihlásiť a svoje heslo teraz zmeniť.\n\nAk bol účet vytvorený omylom, túto správu môžete ignorovať.",
        "login-throttled": "Uskutočnili ste príliš mnoho neúspešných pokusov o prihlásenie.\nProsím, počkajte $1 predtým, než to skúsite znova.",
        "login-abort-generic": "Vaše prihlásenie nebolo úspešné - zrušené",
+       "login-migrated-generic": "Váš účet bol presťahovaný a vaše používateľské meno už viac na tejto wiki neexistuje.",
        "loginlanguagelabel": "Jazyk: $1",
        "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é.\nAk sa rozhodnete ho poskytnúť, použije sa na označenie vašej práce.",
        "resetpass-validity-soft": "Vaše heslo je neplatné: $1\n\nVyberte si nové heslo, alebo kliknite na „{{int:resetpass-submit-cancel}}“ a nastavte si ho neskôr.",
        "passwordreset": "Reset hesla",
        "passwordreset-text-one": "Pre získanie nového hesla vyplňte tento formulár.",
-       "passwordreset-text-many": "{{PLURAL:$1|Pre získanie nového hesla zadajte jeden z údajov.}}",
+       "passwordreset-text-many": "{{PLURAL:$1|Pre získanie nového hesla emailom, zadajte jeden z údajov.}}",
        "passwordreset-legend": "Obnoviť heslo",
        "passwordreset-disabled": "Obnovenie hesla bolo na tejto wiki zakázané.",
        "passwordreset-emaildisabled": "E-mailové funkcie boli na tejto wiki vypnuté.",
        "preview": "Náhľad",
        "showpreview": "Zobraziť náhľad",
        "showdiff": "Zobraziť rozdiely",
-       "anoneditwarning": "'''Upozornenie:''' Nie ste prihlásený.\nVaša IP adresa bude zaznamenaná v histórii úprav tejto stránky.",
+       "blankarticle": "<strong>Upozornenie:</strong> Stránka, ktorú sa chystáte založiť, je prázdna. Pokiaľ ešte raz kliknete na „{{int:savearticle}}“, bude založená úplne bez obsahu.",
+       "anoneditwarning": "<strong>Upozornenie:</strong> Nie ste prihlásený.\nAk uložíte akúkoľvek úpravu vaša IP adresa bude zverejnená v histórii tejto stránky. Ak sa <strong>[$1 prihlásite]</strong> alebo si <strong>[$2 vytvoríte účet]</strong>, budú vaše úpravy priradené k vášmu používateľskému menu a získate i ďalšie výhody.",
        "anonpreviewwarning": "''Nie ste prihlásený. Uložením zaznamenáte svoju IP adresu do histórie úprav tejto stránky.''",
        "missingsummary": "'''Pripomienka:''' Neposkytli ste zhrnutie úprav. Ak kliknete znova na Uložiť, vaše úpravy sa uložia bez zhrnutia úprav.",
        "missingcommenttext": "Prosím, dolu napíšte komentár.",
        "edit-gone-missing": "Nebolo možné aktualizovať stránku.\nZdá sa, že bola zmazaná.",
        "edit-conflict": "Konflikt pri upravovaní.",
        "edit-no-change": "Vaša úprava bola ignorovaná, pretože ste v texte nič nezmenili.",
+       "postedit-confirmation-created": "Stránka bola vytvorená.",
+       "postedit-confirmation-restored": "Stránka bola obnovená.",
        "postedit-confirmation-saved": "Vaša úprava bola uložená.",
        "edit-already-exists": "Nebolo možné vytvoriť novú stránku.\nUž existuje.",
        "defaultmessagetext": "Predvolený text správy",
        "content-model-text": "čistý text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Stránky s duplicitnými parametrami pri volaniach šablón",
+       "duplicate-args-category-desc": "Stránka obsahuje volania šablóny používajúce duplicitné parametere, ako napríklad <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> alebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Upozornenie: Táto stránka obsahuje príliš mnoho volaní funkcií syntaktického analyzátora, ktoré nadmerne zaťažujú server.\n\nObsahuje $1 {{PLURAL:$1|volanie|volania|volaní}}. Mala by obsahovať menej ako $2 {{PLURAL:$1|volanie|volania|volaní}}.",
        "expensive-parserfunction-category": "Stránky s príliš veľkým počtom volaní funkcií syntaktického analyzátora",
        "post-expand-template-inclusion-warning": "Upozornenie: Vkladaná šablóna je príliš veľká.\nNiektoré zo šablón nebudú vložené.",
        "parser-template-recursion-depth-warning": "Bol prekročený limit rekurzie šablón ($1)",
        "language-converter-depth-warning": "Bolo prekročené obmedzenie hĺbky ($1) jazykového konvertora",
        "node-count-exceeded-category": "Stránky s priveľkým počtom uzlov",
-       "node-count-exceeded-warning": "Stránka prekročila povolený počet uzlov",
+       "node-count-exceeded-category-desc": "Tato stránka prekračuje maximálny počet uzlov.",
+       "node-count-exceeded-warning": "Stránka prekročila počet uzlov",
        "expansion-depth-exceeded-category": "Stránky s priveľkou hĺbkou expanzie",
+       "expansion-depth-exceeded-category-desc": "Stránka prekročila maximálnu hĺbku expanzie.",
        "expansion-depth-exceeded-warning": "Stránka prekročila povolenú hĺbku expanzie",
        "parser-unstrip-loop-warning": "Zistené zacyklenie volania rozširovacej značky",
        "parser-unstrip-recursion-limit": "Prektočený limit rekurzie volania rozširovacej značky ($1)",
        "undo-success": "Úpravu je možné vrátiť. Prosím skontrolujte tento rozdiel, čím overíte, že táto úprava je tá, ktorú chcete, a následne uložte zmeny, čím ukončíte vrátenie.",
        "undo-failure": "Úpravu nie je možné vrátiť kvôli konfliktným medziľahlým úpravám.",
        "undo-norev": "Túto úpravu nie je možné vrátiť, pretože neexistuje alebo bola zmazaná.",
+       "undo-nochange": "Zdá se, že úprava už bola zrušená.",
        "undo-summary": "Revízia $1 používateľa [[Special:Contributions/$2|$2]] ([[User talk:$2|diskusia]]) bola vrátená",
        "undo-summary-username-hidden": "Vrátiť revíziu $1, ktorú vykonal skrytý používateľ",
        "cantcreateaccounttitle": "Nie je možné vytvoriť účet",
        "mergehistory-same-destination": "Zdrojová a cieľová stránka sa nemôžu zhodovať",
        "mergehistory-reason": "Dôvod:",
        "mergelog": "Záznam zlúčení",
-       "pagemerge-logentry": "zlúčil [[$1]] do [[$2]] (revízie do $3)",
        "revertmerge": "Vrátiť zlúčenie",
        "mergelogpagetext": "Dolu je zoznam posledných zlúčení jednej histórie revízií stránky do druhej.",
        "history-title": " $1: História revízií",
        "right-move": "Presúvať stránky",
        "right-move-subpages": "Presunúť stránky aj s podstránkami",
        "right-move-rootuserpages": "Presunúť koreňové stránky používateľa",
+       "right-move-categorypages": "Premiestňovanie stránok kategórií",
        "right-movefile": "Presunúť súbory",
        "right-suppressredirect": "Nevytvoriť presmerovanie zo starého názvu pri presúvaní stránky",
        "right-upload": "Nahrávať súbory",
        "action-createpage": "vytvárať stránky",
        "action-createtalk": "vytvárať diskusné stránky",
        "action-createaccount": "vytvoriť tento používateľský účet",
+       "action-history": "zobraziť históriu tejto stránky",
        "action-minoredit": "označiť túto úpravu ako drobnú",
        "action-move": "presunúť túto stránku",
        "action-move-subpages": "presunúť túto stránku a jej podtránky",
        "action-move-rootuserpages": "presunúť koreňové stránky používateľa",
+       "action-move-categorypages": "premiestňovať stránky kategórií",
        "action-movefile": "presunúť tento súbor",
        "action-upload": "nahrať tento súbor",
        "action-reupload": "prepísať tento existujúci súbor",
        "action-viewmywatchlist": "zobraziť zoznam sledovaných stránok",
        "action-viewmyprivateinfo": "zobraziť vaše súkromné údaje",
        "action-editmyprivateinfo": "upraviť vaše súkromné údaje",
-       "nchanges": "$1 {{PLURAL:$1|zmena|zmeny|zmien}}",
+       "nchanges": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od poslednej návštevy}}",
        "enhancedrc-history": "história",
        "recentchanges": "Posledné úpravy",
-       "recentchanges-legend": "Možnosti posledných zmien",
+       "recentchanges-legend": "Možnosti posledných úprav",
        "recentchanges-summary": "Pomocou tejto stránky sledujete posledné úpravy wiki.",
        "recentchanges-noresult": "V danom období nie sú zmeny spĺňajúce tieto kritériá.",
        "recentchanges-feed-description": "Sledovať posledné úpravy tejto wiki týmto kanálom.",
        "recentchanges-label-plusminus": "Veľkosť stránky sa zmenila o toľkoto bajtov",
        "recentchanges-legend-heading": "'''Legenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (pozri tiež [[Special:NewPages|zoznam nových stránok]])",
-       "rcnotefrom": "Nižšie sú zobrazené úpravy od <strong>$2</strong> (do <strong>$1</strong>).",
+       "rcnotefrom": "Nižšie {{PLURAL:$5|je zobrazená úprava|sú zobrazené úpravy}} od <strong>$2</strong> (do <strong>$1</strong>).",
        "rclistfrom": "Zobraziť nové úpravy počnúc od $3 $2",
        "rcshowhideminor": "$1 drobné úpravy",
        "rcshowhideminor-show": "Zobraziť",
        "diff": "rozdiel",
        "hist": "história",
        "hide": "Skryť",
-       "show": "zobraziť",
+       "show": "Zobraziť",
        "minoreditletter": "d",
        "newpageletter": "N",
        "boteditletter": "b",
        "statistics": "Štatistiky",
        "statistics-header-pages": "Štatistika stránok",
        "statistics-header-edits": "Štatistika úprav",
-       "statistics-header-views": "Štatistika zobrazení",
        "statistics-header-users": "Štatistika používateľov",
        "statistics-header-hooks": "Iná štatistika",
        "statistics-articles": "Stránok s obsahom",
        "statistics-files": "Nahraných súborov",
        "statistics-edits": "Úprav stránok od založenia {{GRAMMAR:genitív|{{SITENAME}}}}",
        "statistics-edits-average": "Priemerný počet úprav na stránku",
-       "statistics-views-total": "Celkom zobrazení",
-       "statistics-views-total-desc": "Zobrazenia neexistujúcich stránok a špeciálnych stránok nie sú zahrnuté",
-       "statistics-views-peredit": "Zobrazení na úpravu",
        "statistics-users": "Registrovaných [[Special:ListUsers|používateľov]]",
        "statistics-users-active": "Aktívnych používateľov",
        "statistics-users-active-desc": "Používatelia, ktorí za {{PLURAL:$1|posledný deň|posledné $1 dni|posledných $1 dní}} vykonali nejakú operáciu",
-       "statistics-mostpopular": "Najčastejšie prezerané stránky",
        "pageswithprop": "Stránky s vlastnosťou stránky",
        "pageswithprop-legend": "Stránky s vlastnosťou stránky",
        "pageswithprop-text": "Táto stránka obsahuje stránky, ktoré používajú konkrétnu vlastnosť stránky.",
        "uncategorizedtemplates": "Nekategorizované šablóny",
        "unusedcategories": "Nepoužité kategórie",
        "unusedimages": "Nepoužité obrázky",
-       "popularpages": "Populárne stránky",
        "wantedcategories": "Žiadané kategórie",
        "wantedpages": "Žiadané stránky",
        "wantedpages-badtitle": "Neplatný názov vo výsledkoch: $1",
        "querypage-disabled": "Táto špeciálna stránka bola zakázaná z výkonnostných dôvodov.",
        "booksources": "Knižné zdroje",
        "booksources-search-legend": "Vyhľadávať knižné zdroje",
+       "booksources-search": "Hľadať",
        "booksources-text": "Nižšie je zoznam odkazov na iné stránky, ktoré predávajú nové a použité knihy a tiež môžu obsahovať ďalšie informácie o knihách, ktoré hľadáte:",
        "booksources-invalid-isbn": "Zdá sa, že dané ISBN nie je platné. Skontrolujte, či ste neurobili chybu pri kopírovaní z pôvodného zdroja.",
        "specialloguserlabel": "Pôvodca:",
        "watchlist-details": "{{PLURAL:$1|Jedna sledovaná stránka|$1 sledované stránky|$1 sledovaných stránok}}, nepočítajúc diskusné stránky.",
        "wlheader-enotif": "Upozorňovanie e-mailom je zapnuté.",
        "wlheader-showupdated": "Stránky, ktoré boli zmenené od vašej poslednej návštevy sú zobrazené '''tučne'''.",
-       "wlnote": "Nižšie {{PLURAL:$1|je posledná jedna zmena|sú posledné '''$1''' zmeny|je posledných '''$1''' zmien}} za {{PLURAL:$2|poslednú hodinu|posledné '''$2''' hodiny|posledných '''$2''' hodín}} do $4, $3.",
+       "wlnote": "Nižšie {{PLURAL:$1|je posledná úprava|sú posledné <strong>$1</strong> úpravy|je posledných <strong>$1</strong> úprav}} za {{PLURAL:$2|poslednú hodinu|posledné <strong>$2</strong> hodiny|posledných <strong>$2</strong> hodín}} do $4, $3.",
        "wlshowlast": "Zobraziť posledných $1 hodín $2 dní",
        "watchlist-options": "Nastavenia zoznamu sledovaných",
        "watching": "Pridávam do zoznamu sledovaných...",
        "import": "Import stránok",
        "importinterwiki": "Transwiki import",
        "import-interwiki-text": "Zvoľte wiki a názov stránky, ktorá sa má importovať.\nDátumy revízií a mená používateľov budú zachované.\nVšetky transwiki importy sa zaznamenávajú v [[Special:Log/import|Zázname importov]].",
+       "import-interwiki-sourcewiki": "Zdrojová wiki:",
+       "import-interwiki-sourcepage": "Zdrojová stránka:",
        "import-interwiki-history": "Skopírovať všetky historické revízie tejto stránky",
        "import-interwiki-templates": "Vložiť všetky šablóny",
        "import-interwiki-submit": "Importovať",
        "importuploaderrortemp": "Nahranie alebo import súboru zlyhal. Dočasný adresár chýba.",
        "import-parse-failure": "Chyba syntaktickej analýzy pri XML importe",
        "import-noarticle": "Žiadny článok na import!",
-       "import-nonewrevisions": "Všetky revízie boli predtým importované.",
+       "import-nonewrevisions": "Žiadne revízie neboli importované (buď už boli všetky  importované skôr, alebo boli preskočené kvôli chybám).",
        "xml-error-string": "$1 na riadku $2, stĺpec $3 (bajt $4): $5",
        "import-upload": "Nahrať XML údaje",
        "import-token-mismatch": "Strata údajov relácie. Prosím, skúste to znova.",
        "pageinfo-robot-policy": "Indexovanie pomocou robotov",
        "pageinfo-robot-index": "Povolené",
        "pageinfo-robot-noindex": "Nepovolené",
-       "pageinfo-views": "Počet zobrazení",
        "pageinfo-watchers": "Počet používateľov sledujúcich stránku",
        "pageinfo-few-watchers": "Menej ako $1 {{PLURAL:$1|sledujúci|sledujúci|sledujúcich}}",
        "pageinfo-redirects-name": "Počet presmerovaní na túto stránku",
        "markaspatrolledtext": "Označiť túto stránku ako stráženú",
        "markedaspatrolled": "Označené ako strážené",
        "markedaspatrolledtext": "Vybraná verzia [[:$1]] bola označená ako strážená.",
-       "rcpatroldisabled": "Stráženie posledných zmien bolo vypnuté",
-       "rcpatroldisabledtext": "Funkcia stráženia posledných zmien je momentálne vypnutá.",
+       "rcpatroldisabled": "Stráženie posledných úprav bolo vypnuté",
+       "rcpatroldisabledtext": "Funkcia stráženia posledných úprav je momentálne vypnutá.",
        "markedaspatrollederror": "Nie je možné označiť ako strážené",
        "markedaspatrollederrortext": "Pre označenie ako strážený je potrebné uviesť revíziu, ktorá sa má označiť ako strážená.",
-       "markedaspatrollederror-noautopatrol": "Nie je vám umožnené označiť vlastné zmeny za strážené.",
+       "markedaspatrollederror-noautopatrol": "Nie je vám umožnené označiť vlastné úpravy za strážené.",
        "markedaspatrollednotify": "Táto zmena stránky $1 bola označená ako strážená.",
        "markedaspatrollederrornotify": "Označenie ako strážená zlyhalo.",
        "patrol-log-page": "Záznam strážení",
        "newimages-summary": "Táto špeciálna stránka zobrazuje posledné nahrané súbory.",
        "newimages-legend": "Filter",
        "newimages-label": "Názov súboru (alebo jeho časť):",
+       "newimages-showbots": "Zobraziť súbory nahrané botmi",
        "noimages": "Niet čo zobraziť.",
        "ilsubmit": "Hľadať",
        "bydate": "podľa dátumu",
        "autosumm-replace": "Nahrádzam stránku textom „$1“",
        "autoredircomment": "Presmerovanie na [[$1]]",
        "autosumm-new": "Vytvorená stránka „$1“",
+       "autosumm-newblank": "Vytvorená prázdna stránka",
        "lag-warn-normal": "Úpravy za {{PLURAL:$1|poslednú sekundu|posledné $1 sekundy|posledných $1 sekúnd}} nemusia byť v tomto zozname zobrazené.",
        "lag-warn-high": "Kvôli dlhšej odozve databázového servera nemusia byť úpravy za {{PLURAL:$1|poslednú sekundu|posledné $1 sekundy|posledných $1 sekúnd}} v tomto zozname zobrazené.",
        "watchlistedit-normal-title": "Upraviť zoznam sledovaných stránok",
        "watchlistedit-raw-done": "Váš zoznam sledovaných stránok bol aktualizovaný.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Jedna položka bola pridaná|$1 položky boli pridané|$1 položiek bolo pridaných}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Jedna položka bola odstránená|$1 položky boli odstránené|$1 položiek bolo odstránených}}:",
+       "watchlistedit-clear-title": "Vyprázdnenie zoznamu sledovaných stránok",
+       "watchlistedit-clear-legend": "Vyprázdniť zoznam sledovaných stránok",
+       "watchlistedit-clear-explain": "Z vášho zoznamu sledovaných stránok budú odstránené všetky názvy",
        "watchlistedit-clear-titles": "Názvy:",
+       "watchlistedit-clear-submit": "Vyprázdniť zoznam sledovaných stránok (natrvalo!)",
+       "watchlistedit-clear-done": "Váš zoznam sledovaných stránok bol vyprázdnený.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Bol odstránený jeden názov|Boli odstránené $1 názvy|Bolo odstránených $1 názvov}}:",
+       "watchlisttools-clear": "Vyprázdniť zoznam sledovaných stránok",
        "watchlisttools-view": "Zobraziť súvisiace zmeny",
        "watchlisttools-edit": "Zobraziť a upraviť zoznam sledovaných stránok",
        "watchlisttools-raw": "Upraviť nespracovaný zoznam sledovaných stránok",
        "specialpages-group-maintenance": "Údržbové správy",
        "specialpages-group-other": "Iné špeciálne stránky",
        "specialpages-group-login": "Prihlásenie / registrácia",
-       "specialpages-group-changes": "Posledné zmeny a záznamy",
+       "specialpages-group-changes": "Posledné úpravy a záznamy",
        "specialpages-group-media": "Správy o multimédiách a nahrávaniach",
        "specialpages-group-users": "Používatelia a skupiny",
        "specialpages-group-highuse": "Často používané stránky",
        "blankpage": "Prázdna stránka",
        "intentionallyblankpage": "Táto stránka je zámerne prázdna. Používa sa na meranie výkonnosti atď.",
        "external_image_whitelist": "  #Nechajte tento riadok presne tak, ako je<pre>\n#Časti regulárnych výrazov (tie, ktoré sa píšu medzi //) napíšte dolu\n#Budú porovnané s URL externých obrázkov\n#Tie, ktoré budú zodpovedať reg. výrazu sa zobrazia ako obrázky, inak sa zobrazí iba odkaz na obrázok\n#Riadky, ktoré začínajú znakom # sa považujú za komentáre\n#Na veľkosti písmen nezáleží\n\n#Napíšte všetky časti reg. výrazov nad tento riadok. Nechajte tento riadok presne tak, ako je</pre>",
-       "tags": "Platné označenia zmien",
+       "tags": "Platné značky úprav",
        "tag-filter": "Filter [[Special:Tags|značiek]]:",
        "tag-filter-submit": "Filter",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Značka|Značky}}]]: $2)",
        "tags-title": "Značky",
-       "tags-intro": "Táto stránka obsahuje zoznam značiek, s ktorým softvér môže pracovať a upravovať ich a ich význam.",
+       "tags-intro": "Táto stránka obsahuje zoznam a význam značiek, ktorými môže softvér označovať jednotlivé úpravy.",
        "tags-tag": "Názov značky",
        "tags-display-header": "Vzhľad v zoznamoch úprav",
-       "tags-description-header": "Úplný popis významu",
-       "tags-active-header": "Aktívny?",
-       "tags-hitcount-header": "OznaÄ\8dené Ãºpravy",
+       "tags-description-header": "Popis významu",
+       "tags-active-header": "Aktívna?",
+       "tags-hitcount-header": "OznaÄ\8dených Ãºprav",
        "tags-active-yes": "Áno",
        "tags-active-no": "Nie",
        "tags-edit": "upraviť",
-       "tags-hitcount": "$1 {{PLURAL:$1|zmena|zmeny|zmien}}",
+       "tags-hitcount": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
        "comparepages": "Porovnať stránky",
        "compare-page1": "Stránka 1",
        "compare-page2": "Stránka 2",
        "pagelang-use-default": "Použiť predvolený jazyk",
        "pagelang-select-lang": "Vybrať jazyk",
        "right-pagelang": "Zmeniť jazyk stránky",
-       "default-skin-not-found": "Uups! Základná tapeta pre Vašu wiki, popísanú v <code dir=\"ltr\">$wgDefaultSkin</code> ako <code>$1</code>, nie je dostupná. \n\nVaša inštalácia pravdepodobne obsahuje nasledovné tapety. Pozri [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pre viac informácii o ich aktivácii a zvoľte základnú.\n\n$2\n\n; Ak ste MediaWiki len teraz nainštalovali\n; Zrejme ste to nainštalovali z gitu alebo priamo zo zdrojového kódu inou metódou. Je to očakávané. Skúste nainštalovať nejaké tapety z [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory];\n:*Stiahnutím [https://www.mediawiki.org/wiki/Download tarball installer], ktorý ponúka viacero tapiet a rozšírení. Skopírovať a nalepiť možno priamo z <code>skins/</code>.\n:*Klonovanie jednej zo <code>mediawiki/skins/*</code> schránok cez git do <code dir=\"ltr\">skins/</code> priečinku Vašej Media Wiki inštalácie.\n: S existujúcou git schránkou, ak ste vývojár MediaWiki, by nemal byť konflikt.\n\n: Ak ste upgradeovali MediaWiki\n: MediaWiki 1.24 a novšie už tapety automaticky neaktivujú. (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Nasledovný kód môžete skopírovať do <code>LocalSettings.php</code> pre aktivovanie všetkých dostupných tapiet.\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ak ste upravili <code>LocalSettings.php</code>:\n: Skontrolujte chyby."
+       "default-skin-not-found": "Uups! Základná tapeta pre Vašu wiki, popísanú v <code dir=\"ltr\">$wgDefaultSkin</code> ako <code>$1</code>, nie je dostupná. \n\nVaša inštalácia pravdepodobne obsahuje nasledovné tapety. Pozri [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pre viac informácii o ich aktivácii a zvoľte základnú.\n\n$2\n\n; Ak ste MediaWiki len teraz nainštalovali\n; Zrejme ste to nainštalovali z gitu alebo priamo zo zdrojového kódu inou metódou. Je to očakávané. Skúste nainštalovať nejaké tapety z [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory];\n:*Stiahnutím [https://www.mediawiki.org/wiki/Download tarball installer], ktorý ponúka viacero tapiet a rozšírení. Skopírovať a nalepiť možno priamo z <code>skins/</code>.\n:*Klonovanie jednej zo <code>mediawiki/skins/*</code> schránok cez git do <code dir=\"ltr\">skins/</code> priečinku Vašej Media Wiki inštalácie.\n: S existujúcou git schránkou, ak ste vývojár MediaWiki, by nemal byť konflikt.\n\n: Ak ste upgradeovali MediaWiki\n: MediaWiki 1.24 a novšie už tapety automaticky neaktivujú. (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Nasledovný kód môžete skopírovať do <code>LocalSettings.php</code> pre aktivovanie všetkých dostupných tapiet.\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ak ste upravili <code>LocalSettings.php</code>:\n: Skontrolujte chyby.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (povolený)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''zakázaný''')",
+       "mediastatistics": "Štatistika súborov",
+       "mediastatistics-table-count": "Počet súborov",
+       "mediastatistics-table-totalbytes": "Celková veľkosť",
+       "mediastatistics-header-unknown": "Neznáme",
+       "mediastatistics-header-bitmap": "Rastrové obrázky",
+       "mediastatistics-header-drawing": "Kresby (vektorové obrázky)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Videá",
+       "mediastatistics-header-multimedia": "Multimédiá",
+       "mediastatistics-header-office": "Kancelárske súbory",
+       "mediastatistics-header-text": "Text",
+       "mediastatistics-header-executable": "Spustiteľné súbory",
+       "mediastatistics-header-archive": "Komprimované formáty"
 }
index 4bf1ee1..6e39183 100644 (file)
        "viewsourcetext": "Vsebino te strani si lahko ogledate in kopirate:",
        "viewyourtext": "Lahko si ogledate in kopirate vsebino '''vaših urejanj''' te strani:",
        "protectedinterface": "Prikazana stran vsebuje besedilo vmesnika programja na tem wikiju in je zaradi preprečevanja zlorab zaščitena.\n\nZa dodajanje ali spreminjanje prevodov vseh wikijev uporabite [//translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
-       "editinginterface": "'''Opozorilo:''' Urejate stran, ki vsebuje besedilo ali drug element uporabniškega vmesnika programja.\nSpremembe te strani bodo vplivale na podobo uporabniškega vmesnika ostalih uporabnikov na tem wikiju.\nZa dodajanje ali spreminjanje prevodov vseh wikijev uporabite [//translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
+       "editinginterface": "<strong>Opozorilo:</strong> Urejate stran, ki vsebuje besedilo ali drug element uporabniškega vmesnika programja.\nSpremembe te strani bodo vplivale na podobo uporabniškega vmesnika ostalih uporabnikov na tem wikiju.",
+       "translateinterface": "Za dodajanje ali spreminjanje prevodov vseh wikijev uporabite [//translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
        "cascadeprotected": "Ta stran je bila zaščitena pred urejanji, ker je vključena na {{PLURAL:$1|sledečo stran, ki je bila zaščitena|sledeči strani, ki sta bili zaščiteni|sledeče strani, ki so bile zaščitene}} z vključeno kaskadno možnostjo:\n$2",
        "namespaceprotected": "Za urejanje strani v imenskem prostoru '''$1''' nimate dovoljenja.",
        "customcssprotected": "Nimate pravice urejati te strani CSS, ker vsebuje osebne nastavitve drugega uporabnika.",
        "content-model-text": "golo besedilo",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Strani s podvojenimi argumenti v klicih predlog",
+       "duplicate-args-category-desc": "Stran vsebuje klice predlog, ki vsebujejo dvojnike argumentov, kot sta <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ali <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Opozorilo:''' Ta stran vsebuje preveč klicev funkcije razčlenjevalnika kode.\n\nStran naj bi vsebovala manj kot $2 {{PLURAL:$2|klic|klica|klice|klicev}}, trenutno {{PLURAL:$1|je v uporabi $1 klic|sta v uporabi $1 klica|so v uporabi $1 klici|je v uporabi $1 klicev}}.",
        "expensive-parserfunction-category": "Strani s prevelikim številom klicev na funkcijo razčlenjevalnika kode",
        "post-expand-template-inclusion-warning": "'''Opozorilo:''' Velikost vključenih predlog je prevelika.\nNekatere predloge ne bodo prikazane.",
        "mergehistory-same-destination": "Izhodiščna in ciljna stran ne moreta imeti enak naslov",
        "mergehistory-reason": "Razlog:",
        "mergelog": "Dnevnik združevanj",
-       "pagemerge-logentry": "[[$1]] združen z/s [[$2]] (redakcije do $3)",
        "revertmerge": "Razdruži",
        "mergelogpagetext": "Prikazan je seznam nedavnih združevanj zgodovin strani.",
        "history-title": "$1: Zgodovina strani",
        "search-result-category-size": "$1 {{PLURAL:$1|član|člana|člani|članov}} ($1 {{PLURAL:$2|podkategorija|podkategoriji|podkategorije|podkategorij}}, $1 {{PLURAL:$3|datoteka|datoteki|datoteke|datotek}})",
        "search-redirect": "(preusmeritev $1)",
        "search-section": "(razdelek $1)",
+       "search-category": "(kategorija $1)",
        "search-file-match": "(ujema se z vsebino datoteke)",
        "search-suggest": "Iščete morda: $1",
        "search-interwiki-caption": "Sorodni projekti",
        "gender-female": "Ona ureja wikistrani.",
        "prefs-help-gender": "Nastavitev ni obvezna.\nProgramje uporablja njeno vrednost za vaše naslavljanje in omenjanje v ustreznem slovničnem spolu.\nPodatek bo javno prikazan.",
        "email": "E-pošta",
-       "prefs-help-realname": "Pravo ime ni obvezno.\nČe se ga odločite navesti, bo uporabljeno za priznavanje vašega dela.",
+       "prefs-help-realname": "Pravo ime ni obvezno.\nČe ga navedete, ga bomo morda uporabili za priznavanje vašega dela.",
        "prefs-help-email": "E-poštni naslov ni obvezen, vendar omogoča, da vam v primeru pozabljenega gesla pošljemo novo.",
        "prefs-help-email-others": "Omogočite lahko tudi možnost, da vam lahko ostali uporabniki pošiljajo e-pošto prek vaše uporabniške ali pogovorne strani.\nKo vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo razkrili.",
        "prefs-help-email-required": "E-poštni naslov je obvezen.",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistika strani",
        "statistics-header-edits": "Statistika urejanj",
-       "statistics-header-views": "Statistika ogledov",
        "statistics-header-users": "Uporabniška statistika",
        "statistics-header-hooks": "Drugi statistični podatki",
        "statistics-articles": "Članki",
        "statistics-files": "Naložene datoteke",
        "statistics-edits": "Urejanja strani od postavitve {{GRAMMAR:rodilnik|{{SITENAME}}}}",
        "statistics-edits-average": "Povprečno število urejanj na stran",
-       "statistics-views-total": "Vseh ogledov",
-       "statistics-views-total-desc": "Ogledi neoobstoječih in posebnih strani niso vključeni",
-       "statistics-views-peredit": "Razmerje med ogledi in urejanji",
        "statistics-users": "Registrirani [[Special:ListUsers|uporabniki]]",
        "statistics-users-active": "Aktivni uporabniki",
        "statistics-users-active-desc": "Uporabniki, ki so izvedli dejanje v {{PLURAL:$1|zadnjem dnevu|zadnjih $1 dneh}}",
-       "statistics-mostpopular": "Strani z največ ogledi",
        "pageswithprop": "Strani z lastnostmi strani",
        "pageswithprop-legend": "Strani z lastnostmi strani",
        "pageswithprop-text": "Stran navaja vse strani, ki uporabljajo določene lastnosti strani.",
        "uncategorizedtemplates": "Nekategorizirane predloge",
        "unusedcategories": "Osirotele kategorije",
        "unusedimages": "Osirotele datoteke",
-       "popularpages": "Priljubljene strani",
        "wantedcategories": "Želene kategorije",
        "wantedpages": "Želene strani",
        "wantedpages-badtitle": "Neveljaven naslov v končnem nizu: $1",
        "pager-older-n": "{{PLURAL:$1|starejši|starejša|starejši|starejših}} $1",
        "suppress": "Nadzor",
        "querypage-disabled": "Ta posebna stran je onemogočena iz zmogljivostnih razlogov.",
+       "apihelp": "Pomoč za API",
+       "apihelp-no-such-module": "Modula »$1« nismo našli.",
        "booksources": "Viri knjig",
        "booksources-search-legend": "Išči knjižne vire",
        "booksources-search": "Išči",
        "wlheader-enotif": "Obveščanje po elektronski pošti je omogočeno.",
        "wlheader-showupdated": "Strani, spremenjene od vašega zadnjega ogleda, so prikazane '''krepko'''.",
        "wlnote": "{{PLURAL:$1|Navedena je zadnja|Navedeni sta zadnji|Navedene so zadnje|Navedenih je zadnjih}} <strong>$1</strong> {{PLURAL:$1|sprememba|spremembi|spremembe|sprememb}} v {{PLURAL:$2|zadnji <strong>$2</strong> uri|zadnjih <strong>$2</strong> urah}}, od $3, $4.",
-       "wlshowlast": "Prikaži zadnjih $1 ur; $2 dni; ;",
+       "wlshowlast": "Prikaži zadnjih $1 ur; $2 dni",
        "watchlist-options": "Možnosti spiska nadzorov",
        "watching": "Nadziranje ...",
        "unwatching": "Nenadziranje ...",
        "tooltip-pt-mycontris": "Seznam vaših prispevkov",
        "tooltip-pt-login": "Prijava ni obvezna, vendar je zaželena",
        "tooltip-pt-logout": "Odjavite se",
+       "tooltip-pt-createaccount": "Predlagamo vam, da ustvarite račun in se prijavite, vendar pa to ni obvezno.",
        "tooltip-ca-talk": "Pogovor o strani",
        "tooltip-ca-edit": "Stran lahko uredite. Preden jo shranite, uporabite gumb za predogled.",
        "tooltip-ca-addsection": "Začnite novo razpravo",
        "tooltip-feed-atom": "Atom-vir strani",
        "tooltip-t-contributions": "Preglejte seznam uporabnikovih prispevkov",
        "tooltip-t-emailuser": "Pošljite uporabniku e-pismo",
+       "tooltip-t-info": "Več informacij o strani",
        "tooltip-t-upload": "Naložite slike ali predstavnostne datoteke",
        "tooltip-t-specialpages": "Preglejte seznam vseh posebnih strani",
        "tooltip-t-print": "Natisljiva različica strani",
        "pageinfo-robot-policy": "Robotsko indeksiranje",
        "pageinfo-robot-index": "Dovoljeno",
        "pageinfo-robot-noindex": "Nedovoljeno",
-       "pageinfo-views": "Število ogledov",
        "pageinfo-watchers": "Število spremljevalcev strani",
        "pageinfo-few-watchers": "Manj kot $1 {{PLURAL:$1|spremljevalec|spremljevalca|spremljevalci|spremljevalcev}}",
        "pageinfo-redirects-name": "Število preusmeritev na stran",
        "unknown_extension_tag": "Neznana razširitvena etiketa »$1«",
        "duplicate-defaultsort": "'''Opozorilo:''' Privzeti ključ razvrščanja »$2« prepiše prejšnji privzeti ključ razvrščanja »$1«.",
        "duplicate-displaytitle": "<strong>Opozorilo:</strong> Prikazni naslov »$2« prepiše prejšnji prikazni naslov »$1«.",
+       "invalid-indicator-name": "<strong>Napaka:</strong> Atribut <code>name</code> indikatorjev stanja strani ne sme biti prazen.",
        "version": "Različica",
        "version-extensions": "Nameščene razširitve",
        "version-skins": "Nameščene kože",
        "revdelete-uname-unhid": "uporabniško ime je ponovno prikazano",
        "revdelete-restricted": "uveljavljene omejitve administratorjev",
        "revdelete-unrestricted": "odstranjene omejitve administratorjev",
+       "logentry-merge-merge": "$1 je {{GENDER:$2|združil|združila|združil(-a)}} $3 z $4 (redakcije do $5)",
        "logentry-move-move": "$1 je {{GENDER:$2|premaknil|premaknila|premaknil(-a)}} stran $3 na $4",
        "logentry-move-move-noredirect": "$1 je {{GENDER:$2|prestavil|prestavila|prestavil(-a)}} stran $3 na $4 brez preusmeritve",
        "logentry-move-move_redir": "$1 je {{GENDER:$2|prestavil|prestavila|prestavil(-a)}} stran $3 na $4 prek preusmeritve",
        "api-error-stashfailed": "Notranja napaka: strežnik ni uspel shraniti začasne datoteke.",
        "api-error-publishfailed": "Notranja napaka: strežnik ni uspel objaviti začasne datoteke.",
        "api-error-stasherror": "Pri nalaganju datoteke v hrambo je prišlo do napake.",
+       "api-error-stashedfilenotfound": "Datoteke iz skrite shrambe med poskusom nalaganja iz skrite shrambe nismo našli.",
+       "api-error-stashpathinvalid": "Pot, na kateri naj bi bila datoteka iz skrite shrambe, ni veljavna.",
+       "api-error-stashfilestorage": "Pri shranjevanju datoteke v skrito shrambo je prišlo do napake.",
+       "api-error-stashzerolength": "Strežnik ni mogel dati datoteke v skrito shrambo, ker ima ničelno dolžino.",
+       "api-error-stashnotloggedin": "Da lahko shranite datoteke v skrito shrambo nalaganja, morate biti prijavljeni.",
+       "api-error-stashwrongowner": "Datoteka, do katere ste poskušali dostopati v skriti shrambi, ne pripada vam.",
+       "api-error-stashnosuchfilekey": "Datoteka, do katere ste poskušali dostopati v skriti shrambi, ne obstaja.",
        "api-error-timeout": "Strežnik se ni odzval v pričakovanem času.",
        "api-error-unclassified": "Prišlo je do neznane napake",
        "api-error-unknown-code": "Neznana napaka: »$1«",
        "mediastatistics-header-office": "Pisarna",
        "mediastatistics-header-text": "Besedilno",
        "mediastatistics-header-executable": "Izvedljive datoteke",
-       "mediastatistics-header-archive": "Stisnjene oblike"
+       "mediastatistics-header-archive": "Stisnjene oblike",
+       "json-warn-trailing-comma": "Iz JSON-a smo odstranili $1 {{PLURAL:$1|končno vejico|končni vejici|končne vejice|končnih vejic}}",
+       "json-error-unknown": "Naleteli smo na težavo z JSON-om. Napaka: $1",
+       "json-error-depth": "Presegli smo največjo globino sklada",
+       "json-error-state-mismatch": "Neveljaven ali slabo oblikovan JSON",
+       "json-error-ctrl-char": "Napaka kontrolnega znaka; morda je nepravilno zakodiran",
+       "json-error-syntax": "Skladenjska napaka",
+       "json-error-utf8": "Nepravilno oblikovani znaki UTF-8; morda so nepravilno zakodirani",
+       "json-error-recursion": "En ali več rekurzivnih sklicev v vrednosti za zakodirati",
+       "json-error-inf-or-nan": "Ena ali več vrednosti NAN ali INF v vrednosti za zakodirati",
+       "json-error-unsupported-type": "Podana je bila vrsta, ki je ni mogoče zakodirati"
 }
index 3e72352..da013e8 100644 (file)
        "mergehistory-comment": "„[[:$1]]“ vereinigt noach „[[:$2]]“: $3",
        "mergehistory-same-destination": "Ausgangs- und Zielseyte dirfa ne identisch sei",
        "mergehistory-reason": "Begriendung:",
-       "pagemerge-logentry": "vereinigte [[$1]] ei [[$2]] (Versionen bis $3)",
        "revertmerge": "Vereinigung rieckgängig macha",
        "mergelogpagetext": "Dies ies doas Logbuch dar vereinigta Versionsgeschichta.",
        "history-title": "Versionsgeschichte vun „$1“",
        "statistics": "Statistik",
        "statistics-header-pages": "Seytastatistik",
        "statistics-header-edits": "Beoarbeetungsstatistik",
-       "statistics-header-views": "Seytauffrufstatistik",
        "statistics-header-hooks": "Andere Statistika",
        "statistics-articles": "Inhaltsseyta",
        "statistics-pages": "Seyta",
        "statistics-files": "Huchgeladene Dateien",
        "statistics-edits": "Seytabeoarbeetunga",
        "statistics-edits-average": "Bearbeetunga pro Seite eim Durchschnitt",
-       "statistics-views-total": "Seytaaufrufe gesamt",
-       "statistics-views-peredit": "Seyta uffruffe pro Beoarbeetung",
        "statistics-users": "Registrierte [[Special:ListUsers|Nutzer]]",
        "statistics-users-active-desc": "Nutzer miet Beoarbeetunga {{PLURAL:$1|enn letzta 24 Stunden|enn vergangenen $1 Tagen}}",
-       "statistics-mostpopular": "Meistbesichte Seyta",
        "doubleredirects": "Doppelte Weiterleitunga",
        "doubleredirectstext": "Diese Liste enthält Weiterleitunga, de uff wettere Wetterleitunga verlinka.\nJede Zeile enthält Links zu dar erschta und zweeta Wetterleitung suwie doas Ziel dar zweeta Wetterleitung, welches fier gewehnlich die gewünschte Zielseyte ies, uff de bereits de erschte Wetterleitung zeiga sullte.\n<del>Durchgestrichene</del> Einträge wurden bereits erledigt.",
        "double-redirect-fixed-move": "doppelte Wetterleitung uffgelest: [[$1]] → [[$2]]",
        "uncategorizedcategories": "Ne kategorisierte Kategorien",
        "uncategorizedimages": "Ne kategorisierte Dateien",
        "uncategorizedtemplates": "Ne kategorisierte Vurlagen",
-       "popularpages": "Beliebteste Seyta",
        "wantedcategories": "Nutzte, oaber ne oagelegte Kategorien",
        "wantedpages": "Gewinschte Seyta",
        "wantedfiles": "Fahlende Dateien",
index 33411fb..3f9eaf3 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "sm.wikipedia.org sysops"
-        ]
-    },
-    "sunday": "Aso sa",
-    "monday": "Aso-gafua",
-    "tuesday": "‘O le aso lua",
-    "wednesday": "Aso lulu",
-    "thursday": "Aso totofi",
-    "friday": "Aso falaile",
-    "saturday": "Aso to‘ona‘i",
-    "sun": "Aso sa",
-    "mon": "Aso gafua",
-    "wed": "Aso lulu",
-    "fri": "Aso falaile",
-    "january": "Ianuari",
-    "february": "Fepuari",
-    "march": "Mati",
-    "april": "Aperila",
-    "may_long": "Me",
-    "june": "Iuni",
-    "july": "Iulai",
-    "august": "Aokuso",
-    "september": "Setema",
-    "october": "Oketopa",
-    "november": "Novema",
-    "december": "Tesema",
-    "january-gen": "Ianuari",
-    "february-gen": "Fepuari",
-    "march-gen": "Mati",
-    "april-gen": "Aperila",
-    "may-gen": "Me",
-    "june-gen": "Iuni",
-    "july-gen": "Iulai",
-    "august-gen": "Aokuso",
-    "september-gen": "Setema",
-    "october-gen": "Oketopa",
-    "november-gen": "Novema",
-    "december-gen": "Tesema",
-    "jan": "Ianuari",
-    "feb": "Fepuari",
-    "mar": "Mati",
-    "apr": "Aperila",
-    "may": "Me",
-    "jun": "Iuni",
-    "jul": "Iulai",
-    "aug": "Aokuso",
-    "sep": "Setema",
-    "oct": "Oketopa",
-    "nov": "Novema",
-    "dec": "Tesema",
-    "cancel": "Toe tape",
-    "mytalk": "La'u talanoa",
-    "navigation": "Ulifolau",
-    "help": "Fesoasoani",
-    "search": "Su'e",
-    "searchbutton": "Su'e",
-    "go": "Alu",
-    "searcharticle": "Alu",
-    "history_short": "Tala fa'asolopito",
-    "printableversion": "Kopi e lolomi",
-    "permalink": "So'otaga tumau",
-    "print": "Lolomi",
-    "edit": "Teuteu",
-    "delete": "Tape",
-    "protect": "Puipui",
-    "unprotect": "'Aua le Puipuia",
-    "specialpage": "Itulau fa'apitoa",
-    "talk": "Talanoaga",
-    "toolbox": "Meafaigaluega",
-    "otherlanguages": "I isi gagana",
-    "jumptonavigation": "Ulifolau",
-    "jumptosearch": "Su'e",
-    "currentevents": "Tala Fou",
-    "currentevents-url": "Project:Tala Fou",
-    "edithelp": "Fesoasoani e teuteu",
-    "mainpage": "Itulau Muamua",
-    "mainpage-description": "Itulau Muamua",
-    "portal": "Vaega mo Tagata Lautele",
-    "portal-url": "Project:Vaega mo Tagata Lautele",
-    "youhavenewmessages": "'Ua iai lau $1 ($2).",
-    "youhavenewmessagesmulti": "'Ua iai au fe'au fou i le $1",
-    "editsection": "Teuteu",
-    "editold": "Teuteu",
-    "nstab-main": "Tusitusiga",
-    "nstab-user": "Itulau a 'oe",
-    "nstab-mediawiki": "Fe'au",
-    "yourname": "Igoa o le tagata fa'aaoga",
-    "yourpassword": "'Upu ulufale",
-    "yourpasswordagain": "Toe lolomi 'upu ulufale",
-    "login": "Fa'aola",
-    "userlogin": "Fa'aola / Lesitala le ulufale",
-    "logout": "Tape",
-    "userlogout": "Tape",
-    "notloggedin": "Le'i fa'aolaina",
-    "nologinlink": "Lesitala le ulufale",
-    "createaccount": "Lesitala le ulufale",
-    "gotaccountlink": "Fa'aola",
-    "summary": "'Oto'otoga:",
-    "minoredit": "'O se teuteuga la'itiiti lenei",
-    "watchthis": "Matau lenei itulau",
-    "savearticle": "Sefe le itulau",
-    "showpreview": "Fa'aali teuteuga",
-    "showdiff": "Fa'aali suiga",
-    "loginreqlink": "Fa'aola",
-    "mypreferences": "Mea 'ou te fiafia i ai",
-    "searchresultshead": "Su'e",
-    "youremail": "'Imeli:",
-    "username": "Igoa o le tagata fa'aaoga:",
-    "email": "'Imeli",
-    "group-all": "(mea 'uma)",
-    "recentchanges": "Suiga talu ai nei",
-    "hist": "Tala fa'asolopito",
-    "recentchangeslinked": "Suiga e a'afia ai",
-    "upload": "Si'i mai le faila",
-    "uploadbtn": "Si'i mai le faila",
-    "uploadnologin": "Le'i fa'aolaina",
-    "filedesc": "'Oto'otoga",
-    "fileuploadsummary": "'Oto'otoga:",
-    "watchthisupload": "Matau lenei itulau",
-    "randompage": "Itulau le fa'ailogaina",
-    "newpages-username": "Igoa o le tagata fa'aaoga:",
-    "move": "Si'itia",
-    "booksources-go": "Alu",
-    "allpagessubmit": "Alu",
-    "emailuser": "'Imeli mai le tagata lenei",
-    "emailmessage": "Fe'au",
-    "watchlist": "Lo'u lisi va'ava'aia",
-    "watchnologin": "Le'i fa'aolaina",
-    "watch": "Va'ai",
-    "watchthispage": "Matau lenei itulau",
-    "restriction-move": "Si'itia",
-    "undelete-search-submit": "Su'e",
-    "contributions": "Sao a tagata fa'aaoga",
-    "mycontris": "'O la'u saoga",
-    "whatlinkshere": "Nofoaga e soso'o mai",
-    "move-page-legend": "Si'i le itulau",
-    "movearticle": "Si'i le itulau",
-    "newtitle": "'I le ulutala fou",
-    "move-watch": "Matau lenei itulau",
-    "movepagebtn": "Si'i le itulau",
-    "movetalk": "Sui le itulau e tau i ai",
-    "movereason": "Mafua'aga",
-    "allmessagesname": "Igoa",
-    "ilsubmit": "Su'e",
-    "watchlistall2": "mea 'uma",
-    "namespacesall": "mea 'uma",
-    "imgmultigo": "Alu!",
-    "table_pager_limit_submit": "Alu",
-    "specialpages": "Itulau fa'apitoa"
+       "@metadata": {
+               "authors": [
+                       "sm.wikipedia.org sysops"
+               ]
+       },
+       "sunday": "Aso sa",
+       "monday": "Aso-gafua",
+       "tuesday": "‘O le aso lua",
+       "wednesday": "Aso lulu",
+       "thursday": "Aso totofi",
+       "friday": "Aso falaile",
+       "saturday": "Aso to‘ona‘i",
+       "sun": "Aso sa",
+       "mon": "Aso gafua",
+       "wed": "Aso lulu",
+       "fri": "Aso falaile",
+       "january": "Ianuari",
+       "february": "Fepuari",
+       "march": "Mati",
+       "april": "Aperila",
+       "may_long": "Me",
+       "june": "Iuni",
+       "july": "Iulai",
+       "august": "Aokuso",
+       "september": "Setema",
+       "october": "Oketopa",
+       "november": "Novema",
+       "december": "Tesema",
+       "january-gen": "Ianuari",
+       "february-gen": "Fepuari",
+       "march-gen": "Mati",
+       "april-gen": "Aperila",
+       "may-gen": "Me",
+       "june-gen": "Iuni",
+       "july-gen": "Iulai",
+       "august-gen": "Aokuso",
+       "september-gen": "Setema",
+       "october-gen": "Oketopa",
+       "november-gen": "Novema",
+       "december-gen": "Tesema",
+       "jan": "Ianuari",
+       "feb": "Fepuari",
+       "mar": "Mati",
+       "apr": "Aperila",
+       "may": "Me",
+       "jun": "Iuni",
+       "jul": "Iulai",
+       "aug": "Aokuso",
+       "sep": "Setema",
+       "oct": "Oketopa",
+       "nov": "Novema",
+       "dec": "Tesema",
+       "cancel": "Toe tape",
+       "mytalk": "La'u talanoa",
+       "navigation": "Ulifolau",
+       "help": "Fesoasoani",
+       "search": "Su'e",
+       "searchbutton": "Su'e",
+       "go": "Alu",
+       "searcharticle": "Alu",
+       "history_short": "Tala fa'asolopito",
+       "printableversion": "Kopi e lolomi",
+       "permalink": "So'otaga tumau",
+       "print": "Lolomi",
+       "edit": "Teuteu",
+       "delete": "Tape",
+       "protect": "Puipui",
+       "unprotect": "'Aua le Puipuia",
+       "specialpage": "Itulau fa'apitoa",
+       "talk": "Talanoaga",
+       "toolbox": "Meafaigaluega",
+       "otherlanguages": "I isi gagana",
+       "jumptonavigation": "Ulifolau",
+       "jumptosearch": "Su'e",
+       "currentevents": "Tala Fou",
+       "currentevents-url": "Project:Tala Fou",
+       "edithelp": "Fesoasoani e teuteu",
+       "mainpage": "Itulau Muamua",
+       "mainpage-description": "Itulau Muamua",
+       "portal": "Vaega mo Tagata Lautele",
+       "portal-url": "Project:Vaega mo Tagata Lautele",
+       "youhavenewmessages": "'Ua iai lau $1 ($2).",
+       "youhavenewmessagesmulti": "'Ua iai au fe'au fou i le $1",
+       "editsection": "Teuteu",
+       "editold": "Teuteu",
+       "nstab-main": "Tusitusiga",
+       "nstab-user": "Itulau a 'oe",
+       "nstab-mediawiki": "Fe'au",
+       "yourname": "Igoa o le tagata fa'aaoga",
+       "yourpassword": "'Upu ulufale",
+       "yourpasswordagain": "Toe lolomi 'upu ulufale",
+       "login": "Fa'aola",
+       "userlogin": "Fa'aola / Lesitala le ulufale",
+       "logout": "Tape",
+       "userlogout": "Tape",
+       "notloggedin": "Le'i fa'aolaina",
+       "nologinlink": "Lesitala le ulufale",
+       "createaccount": "Lesitala le ulufale",
+       "gotaccountlink": "Fa'aola",
+       "summary": "'Oto'otoga:",
+       "minoredit": "'O se teuteuga la'itiiti lenei",
+       "watchthis": "Matau lenei itulau",
+       "savearticle": "Sefe le itulau",
+       "showpreview": "Fa'aali teuteuga",
+       "showdiff": "Fa'aali suiga",
+       "loginreqlink": "Fa'aola",
+       "mypreferences": "Mea 'ou te fiafia i ai",
+       "searchresultshead": "Su'e",
+       "youremail": "'Imeli:",
+       "username": "Igoa o le tagata fa'aaoga:",
+       "email": "'Imeli",
+       "group-all": "(mea 'uma)",
+       "recentchanges": "Suiga talu ai nei",
+       "hist": "Tala fa'asolopito",
+       "recentchangeslinked": "Suiga e a'afia ai",
+       "upload": "Si'i mai le faila",
+       "uploadbtn": "Si'i mai le faila",
+       "uploadnologin": "Le'i fa'aolaina",
+       "filedesc": "'Oto'otoga",
+       "fileuploadsummary": "'Oto'otoga:",
+       "watchthisupload": "Matau lenei itulau",
+       "randompage": "Itulau le fa'ailogaina",
+       "newpages-username": "Igoa o le tagata fa'aaoga:",
+       "move": "Si'itia",
+       "allpagessubmit": "Alu",
+       "emailuser": "'Imeli mai le tagata lenei",
+       "emailmessage": "Fe'au",
+       "watchlist": "Lo'u lisi va'ava'aia",
+       "watchnologin": "Le'i fa'aolaina",
+       "watch": "Va'ai",
+       "watchthispage": "Matau lenei itulau",
+       "restriction-move": "Si'itia",
+       "undelete-search-submit": "Su'e",
+       "contributions": "Sao a tagata fa'aaoga",
+       "mycontris": "'O la'u saoga",
+       "whatlinkshere": "Nofoaga e soso'o mai",
+       "move-page-legend": "Si'i le itulau",
+       "movearticle": "Si'i le itulau",
+       "newtitle": "'I le ulutala fou",
+       "move-watch": "Matau lenei itulau",
+       "movepagebtn": "Si'i le itulau",
+       "movetalk": "Sui le itulau e tau i ai",
+       "movereason": "Mafua'aga",
+       "allmessagesname": "Igoa",
+       "ilsubmit": "Su'e",
+       "namespacesall": "mea 'uma",
+       "imgmultigo": "Alu!",
+       "table_pager_limit_submit": "Alu",
+       "specialpages": "Itulau fa'apitoa"
 }
index 1a8edef..4d477e9 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Andrijko Z.",
-            "Bïerne",
-            "M.M.S.",
-            "Urhixidur"
-        ]
-    },
-    "tog-showtoolbar": "Dïrregesïeve vuesehth (JavaScript)",
-    "tog-fancysig": "Saajpe singnatuvreh (namhtah jïjtsistie lïenghke)",
-    "underline-always": "Iktesth",
-    "underline-never": "Aaltere",
-    "sunday": "Aejlege",
-    "monday": "Måanta",
-    "tuesday": "Däjsta",
-    "wednesday": "Gaske-våhkoe",
-    "thursday": "Dåarsta",
-    "friday": "Bearjedh",
-    "saturday": "Laavadahke",
-    "sun": "Aej",
-    "mon": "Måa",
-    "tue": "Däj",
-    "wed": "Gas",
-    "thu": "Dåa",
-    "fri": "Bea",
-    "sat": "Laa",
-    "january": "tsiengele",
-    "february": "goevte",
-    "march": "njoktje",
-    "april": "Voerhtje",
-    "may_long": "Suehpede",
-    "june": "Ruffie",
-    "july": "Snjaltje",
-    "august": "Mïetske",
-    "september": "Gaekere",
-    "october": "Golke",
-    "november": "Rahka",
-    "december": "Goeve",
-    "january-gen": "Tsiengele",
-    "february-gen": "Goevte",
-    "march-gen": "Njoktje",
-    "april-gen": "Voerhtje",
-    "may-gen": "Suehpede",
-    "june-gen": "Ruffie",
-    "july-gen": "Snjaltje",
-    "august-gen": "Mïetske",
-    "september-gen": "Gaekere",
-    "october-gen": "Golke",
-    "november-gen": "Rahka",
-    "december-gen": "Goeve",
-    "jan": "Tsi",
-    "feb": "Goe",
-    "mar": "Njo",
-    "apr": "Voe",
-    "may": "Sue",
-    "jun": "Ruf",
-    "jul": "Snj",
-    "aug": "Mïe",
-    "sep": "Gae",
-    "oct": "Gol",
-    "nov": "Rah",
-    "dec": "Goe",
-    "pagecategories": "{{PLURAL:$1|Kategorije|Kategorijeh}}",
-    "category_header": "Bielie sïjse kategorije \"$1\"",
-    "subcategories": "Subkategorijeh",
-    "category-media-header": "Guvvie sïjse karegorije \"$1\"",
-    "category-empty": "''Dïhte kategorije sisvege ijje bielieh jallh baalkah.''",
-    "listingcontinuesabbrev": "jåar.",
-    "about": "Bïjre",
-    "article": "Sisvege bielie",
-    "newwindow": "(geehpehtidh sïjse orre klaase)",
-    "cancel": "Orrijidh",
-    "moredotdotdot": "Jienebe...",
-    "mypage": "Mov bielie",
-    "mytalk": "Mov dïjveldidh",
-    "anontalk": "Dïjveldidh ihke dïhte IP",
-    "navigation": "Navigasjovne",
-    "and": "&#32;jih",
-    "qbfind": "Gaavnedh",
-    "qbedit": "Värrhtoedimmie",
-    "qbpageoptions": "Dïhte bielie",
-    "qbmyoptions": "Mov bielieh",
-    "faq": "FAQ",
-    "faqpage": "Project:FAQ",
-    "errorpagetitle": "Båajhtode",
-    "returnto": "Bååstide gåajkoe $1.",
-    "tagline": "{{SITENAME}}sta",
-    "help": "Viehkie",
-    "search": "Ohtsedh",
-    "searchbutton": "Ohtsedh",
-    "go": "Vaadtsa",
-    "searcharticle": "Vaadtsa",
-    "history": "Histovrije",
-    "history_short": "Histovrije",
-    "printableversion": "Tjaelije bielie",
-    "permalink": "Permanente lïenghke",
-    "print": "Tjaeledh olkese",
-    "edit": "Sjiehtedh",
-    "editthispage": "Värrhtoedimmie dïhte bielie",
-    "delete": "Tjåegkedh",
-    "protect": "Vaarjelidh",
-    "protectthispage": "Vaarjelidh dïhte bielie",
-    "newpage": "Orre bielie",
-    "talkpage": "Dïjveldidh dïhte bielie",
-    "talkpagelinktext": "Digkiedimmie",
-    "specialpage": "Joekoelaakan Bielie",
-    "personaltools": "Persjovne dïrregeh",
-    "articlepage": "Vuesehte artihkle bielie",
-    "talk": "Dïjveldeme",
-    "views": "Vuesehth",
-    "toolbox": "Dïrregeborhtje",
-    "userpage": "Vuesehte nuhtjienbielie",
-    "projectpage": "Vuesehte Wikipedijebielie",
-    "imagepage": "Vuesehte guvvie bielie",
-    "templatepage": "Vuesehte maale bielie",
-    "viewhelppage": "Vuesehte viehkie bielie",
-    "categorypage": "Vuesehte kategorije bielie",
-    "viewtalkpage": "Vuesehte dïjveldidh",
-    "otherlanguages": "jeatjebh gïele",
-    "redirectedfrom": "(Bïjre-dirisjovne raejeste $1)",
-    "redirectpagesub": "Bïjre-dirisjovne bielie",
-    "protectedpage": "Vaarjelidh bielie",
-    "jumpto": "Vaadtsa gåajkoe:",
-    "jumptonavigation": "navigasjovne",
-    "jumptosearch": "ohtsedh",
-    "aboutsite": "{{SITENAME}}en bïjre",
-    "aboutpage": "Project:Bïjre",
-    "copyrightpage": "{{ns:project}}:Bäjjesereaktah",
-    "currentevents": "Daaletje deahpadimmieh",
-    "currentevents-url": "Project:Daaletje deahpadimmieh",
-    "disclaimers": "Friijavuohte vastideamis",
-    "disclaimerpage": "Project:Bäjjesereaktah",
-    "edithelp": "Sjiehtedimmie viehkie",
-    "mainpage": "Aalkoebielie",
-    "mainpage-description": "Aalkoebielie",
-    "portal": "Meatan portaale",
-    "portal-url": "Project:Meatan portaale",
-    "privacy": "Privaate pålisy",
-    "privacypage": "Project:Privaate pålisy",
-    "retrievedfrom": "Raejeste \"$1\" vïedtjeme",
-    "youhavenewmessages": "Datne åtna $1 ($2).",
-    "editsection": "sjïehtedh",
-    "editold": "värrhtoedimmie",
-    "editsectionhint": "Sektiovne sjiehtedh: $1",
-    "toc": "Sisvege",
-    "showtoc": "vuesehte",
-    "hidetoc": "gaptjedh",
-    "viewdeleted": "Vuesehte $1?",
-    "site-rss-feed": "$1 RSS Feed",
-    "site-atom-feed": "$1 Atom Feed",
-    "page-rss-feed": "\"$1\" RSS Feed",
-    "page-atom-feed": "\"$1\" Atom Feed",
-    "nstab-main": "Bielie",
-    "nstab-user": "Nuhtjien bielie",
-    "nstab-media": "Guvvie",
-    "nstab-special": "Joekoelaakan",
-    "nstab-project": "Prosjekte bielie",
-    "nstab-image": "Baalka",
-    "nstab-mediawiki": "MediaWiki",
-    "nstab-template": "Maale",
-    "nstab-help": "Viehke bielie",
-    "nstab-category": "Kategorije",
-    "error": "Båajhtode",
-    "databaseerror": "Daatabaase båajhtode",
-    "readonly": "Daatabaase steegkeldahkesne",
-    "internalerror": "Sjisjnjie båajhtede",
-    "internalerror_info": "Sjisjnjie båajhtede: $1",
-    "badtitle": "Gååre nomme",
-    "badtitletext": "Dïhte bielietiitele lea nov sån ijje luhpede, bielie lea gåaroes, jallh lea bielie gåarhmede lïenghke gåajkoe.",
-    "viewsource": "Vuesehte tjaalege",
-    "viewsourcetext": "Dov dorje vuesehte jih kåpieerae gaaltjie dejstie dïhte bielie:",
-    "yourname": "Nuhtjiennomme:",
-    "yourpassword": "Loevesbaakoe:",
-    "remembermypassword": "Måjhtije mov loggesïjse nille dïhte daatovre (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "yourdomainname": "Dov domäne:",
-    "login": "Logge sïjse",
-    "nav-login-createaccount": "Logge sïjse / skaepede nuhtjien",
-    "loginprompt": "Dov galkedh luhpede cookies ihke logge sïjse nille {{SITENAME}}.",
-    "userlogin": "Logge sïjse / skaepede nuhtjien",
-    "logout": "Logge olkese",
-    "userlogout": "Logge ålkone",
-    "nologin": "Lea dov ijje registreered? '''$1'''.",
-    "nologinlink": "Skaepede nuhtjien",
-    "createaccount": "Skaepede nuhtjien",
-    "gotaccount": "Åtna dov joe nuhtjiennomme? '''$1'''.",
-    "gotaccountlink": "Logge sïjse",
-    "createaccountmail": "meatan e-påaste",
-    "loginerror": "Logge sïjse båajhtode",
-    "loginsuccesstitle": "Dov lea daelie sïjse logge",
-    "loginsuccess": "'''Dov lea daelie sïjselogge nille {{SITENAME}} goh \"$1\".'''",
-    "nosuchuser": "Dïhte gååvnese ijje nuhtjien goh nomme \"$1\". Gïehtjedidh dov baakoehtidh, jallh skaepede orre nuhtjien.",
-    "nosuchusershort": "Dïhte gååvnese ijje nuhtjien goh nomme \"$1\". Gïehtjedidh baakoehtidh.",
-    "nouserspecified": "Dov galkedh tjaeledh nuhtjiennomme.",
-    "wrongpassword": "Loevesbaakoe lea gåarhmede. Vuejnedh vihth.",
-    "wrongpasswordempty": "Loevesbaakoe lea gåaroes. Vuejnedh vihth.",
-    "passwordtooshort": "Dov loevesbaakoe lea ov-jiltighe jallh ihke åenehks. Dïhte galkedh åtna unnemes $1 vähta jih sjädta jeatjebe raejeste dov nuhtjiennomme.",
-    "mailmypassword": "E-påaste loevesbaakoe",
-    "passwordremindertitle": "Orre loevesbaakoe ihke {{SITENAME}}",
-    "noemail": "Dïhte lea ijje e-påaste tjaalesijjie registreeredh ihke nuhtjien \"$1\".",
-    "passwordsent": "Orre loevesbaakoe åtna sjädta seedtie gåajkoe e-påaste tjaalesijjie\nregistreered ihke \"$1\".\nGïemhpes logge sïjse vihth männgan datne åtna låhka dïhte.",
-    "accountcreated": "Nuhtjien skaepede",
-    "loginlanguagelabel": "Gïele: $1",
-    "changepassword": "Värrhtoedimmie loevesbaakoe",
-    "oldpassword": "Båeries loevesbaakoe:",
-    "newpassword": "Orre loevesbaakoe:",
-    "retypenew": "Odhasit orre loevesbaakoe:",
-    "bold_sample": "Buajtehks tjaalege",
-    "bold_tip": "Buajtehks tjaalege",
-    "italic_sample": "Kursiive tjaalege",
-    "italic_tip": "Kursiive tjaalege",
-    "link_sample": "Lïenghke tiitele",
-    "link_tip": "Sjisjnjie lïenghke",
-    "extlink_sample": "http://www.example.com lïenghke tiitele",
-    "extlink_tip": "Ehkstäärne lïenghke (måjhtajidh http:// prefihkse)",
-    "headline_sample": "Rubriike tjaalege",
-    "headline_tip": "Daltese 2 rubriike",
-    "nowiki_sample": "Bïejedh ijje-hammode tjaalege daesnie",
-    "nowiki_tip": "Rievdde wikïhammode",
-    "image_tip": "Lååtje guvvie",
-    "media_tip": "Meedia baalka lïenghke",
-    "sig_tip": "Dov signatuvre meatan tïjjestäämpele",
-    "hr_tip": "Horisontele sïeve (nuhtjie bïhteles-laakan)",
-    "summary": "Tjohkehtehteme:",
-    "subject": "Ïebne/rubriike:",
-    "minoredit": "Dïhte lea ohtje värrhtoedimmie",
-    "watchthis": "Sïektjedh dïhte bielie",
-    "savearticle": "Spååredh bielie",
-    "preview": "Åvte-vuesiehtidh",
-    "showpreview": "Vuesehte åvte-vuesiehtidh",
-    "showdiff": "Vuesehte värrhtoedimmie",
-    "anoneditwarning": "'''Vaaroehtidh:''' Dov lea ijje logge sïjse. Dov IP tjaalesijjie båetedh spååredh sïjse dïhte bielie värrhtoedimmie histovrije.",
-    "summary-preview": "Tjohkehtehteme åvte-vuesiehtidh:",
-    "loginreqlink": "logge sïjse",
-    "loginreqpagetext": "Dov galkedh $1 ihke vuesehte jeatjebh bielieh.",
-    "accmailtitle": "Loevesbaakoe seedtie.",
-    "accmailtext": "Loevesbaakoe ihke ”$1” utnedh seedtedh gåajkoe $2.",
-    "newarticle": "(Orre)",
-    "noarticletext": "Dïhte lea daelie ijje tjaalege sïjse dïhte bielie, dov dorje [[Special:Search/{{PAGENAME}}|ohtsedh ihke dïhte bielie nomme]] sïjse jeatjebh bielieh jallh [{{fullurl:{{FULLPAGENAME}}|action=edit}} värrhtoedimmie dïhte bielie].",
-    "usercssyoucanpreview": "'''Tiipse:''' Nuhtjie 'Vuesehte åvte-vuesiehtidh' båaloe ihke pryövoe dov orre CSS åvte spååredh.",
-    "userjsyoucanpreview": "'''Tiipse:''' Nuhtjie 'Vuesehte åvte-vuesiehtidh' båaloe ihke pryövoe dov orre JS åvte spååredh.",
-    "updated": "(Orrestahteme)",
-    "note": "'''Galtege:'''",
-    "previewnote": "'''Dïhte lea aktegh åvte-vuesiehtidh; värrhtoedimmieh ånta ijje sjïdtedh spååredh!'''",
-    "editing": "Sjiehtedimmie $1",
-    "editingsection": "Värrhtoedimmie $1 (sektiovne)",
-    "yourtext": "Dov tjaalege",
-    "copyrightwarning": "Tjaeleste gaajhke värrhtoedimmieh gåajkoe {{SITENAME}} lea ahte gïehtjele goh maam buektedh nuelesne $2 (vuajna $1 ihke detaaljeh). Bïjre datne ijje sïjhtedh dov tjaalege galka värrhtoedimmieh jallh kåpieeres minngesne jeatjebh daerpies voete, galka datne ijje tjaala daesnie.<br />\nDatne luhpede mijjieh aaj datne tjaala tjaalege jïjtje, jallh kåpieeret raejeste gaaltjie goh ijje vaarjele dejstie bäjjesereaktah, jallh plïerehke.<br />\n'''LISSEHTE IJJE OLKESE BÄJJESEREAKTAHVAARJELE ÏEBNE NAMHTAH LUHPIE!'''",
-    "templatesused": "{{PLURAL:$1|Maal|Maler}}Maaleh nuhtjie nille dïhte bielie:",
-    "templatesusedpreview": "{{PLURAL:$1|Maal|Maaleh}} nuhtjie sïjse dïhte åvte-vuesiehtidh:",
-    "template-protected": "(vaarjeleme)",
-    "template-semiprotected": "(lehkie-vaarjelidh)",
-    "nocreatetext": "{{SITENAME}} åtna gaertjiedidh nuepieh ahte skaepede orre bielieh.\nDov dorje värrhtoedimmie gååvnese bielieh, jallh [[Special:UserLogin|logge sïjse jallh skaepede nuhtjien]].",
-    "viewpagelogs": "Vuesehte loggeh ihke dïhte bielie",
-    "currentrev": "Daaletje gïehtjedamme",
-    "revisionasof": "Gïehtjedamme ihke $1",
-    "revision-info": "Gïehtjedamme raejeste dïhte $1; $2",
-    "previousrevision": "←Båarasåabpoe gïehtjedamme",
-    "nextrevision": "Minngebe gïehtjedamme→",
-    "currentrevisionlink": "Daaletje gïehtjedamme",
-    "cur": "daaletje",
-    "next": "minngebe",
-    "last": "minngemes",
-    "page_first": "voestegh",
-    "page_last": "minngemes",
-    "histfirst": "Aareh",
-    "histlast": "Minngemes",
-    "historysize": "({{PLURAL:$1|1 byte|$1 byteh}})",
-    "history-feed-title": "Gïehtjedamme histovrije",
-    "history-feed-item-nocomment": "$1 dïhte $2",
-    "mergehistory-from": "Gaaltjie bielie:",
-    "history-title": "Gïehtjedamme histovrije ihke \"$1\"",
-    "lineno": "Sïeve $1:",
-    "compareselectedversions": "Mohtedidh veeljeme låhkoeh",
-    "editundo": "ov-darjodh",
-    "searchresults": "Ohtsedh resultaateh",
-    "prevn": "övtebe {{PLURAL:$1|$1}}",
-    "nextn": "minngeben {{PLURAL:$1|$1}}",
-    "viewprevnext": "Vuesehth ($1 {{int:pipe-separator}} $2) ($3)",
-    "preferences": "Sïjsestäälningeh",
-    "mypreferences": "Mov sïjsesäälningeh",
-    "skin-preview": "Åvte-vuesiehtidh",
-    "saveprefs": "Spååredh",
-    "searchresultshead": "Ohtsedh",
-    "timezonelegend": "Tïjjedajve",
-    "localtime": "Byjrehks tïjje",
-    "youremail": "E-påaste:",
-    "username": "Nuhtjiennomme:",
-    "uid": "Nuhtjien ID:",
-    "yourrealname": "Ov nomme:",
-    "yourlanguage": "Gïele:",
-    "yournick": "Nuhjiennomme:",
-    "email": "E-påaste",
-    "prefs-help-realname": "Ov nomme galkedh ijje tjaeledh. Bïjre datne veeljeme tjaeledh dov ov nomme, båetedh dïhte nuhtjie ihke tjaeledh dov barkoe.",
-    "editinguser": "Värrhtoedimmie nuhtjien '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
-    "group": "Tjïerte:",
-    "group-bot": "Jïjtjesvïhtjije",
-    "group-sysop": "Reeredh",
-    "group-bot-member": "Jïjtjesvïhtjije",
-    "group-sysop-member": "Reerien",
-    "grouppage-sysop": "{{ns:project}}:Reeredh",
-    "rightslog": "Nuhtjienreaktah logge",
-    "nchanges": "$1 {{PLURAL:$1|värrhtoedimmie|värrhtoedimmieh}}",
-    "recentchanges": "Männgan värrhtoedimmieh",
-    "recentchanges-feed-description": "Dåeriedidh männgan värrhtoedimmie sïjse wiki meatan dïhte feed.",
-    "rcnotefrom": "Vuelelen vuesehte dah männgan '''$1''' värrhtoedimmieh männgan '''$2'''.",
-    "rclistfrom": "Vuesehte orre värrhtoedimmieh aelkedh raejeste $1",
-    "rcshowhideminor": "$1 ohtje värrhtoedimmie",
-    "rcshowhidebots": "$1 jïjtjesvïhtjijeh",
-    "rcshowhideliu": "$1 värrhtoedimmie dejstie sïjselogge nuhtjienh",
-    "rcshowhideanons": "$1 anonyyme nuhtjienh",
-    "rcshowhidepatr": "$1 dååhkasjehtedh värrhtoedimmieh",
-    "rcshowhidemine": "$1 mov värrhtoedimmieh",
-    "rclinks": "Vuesehte männgan $1 värrhtoedimmieh nuelesne männgan $2 biejjieh<br />$3",
-    "diff": "joekehts",
-    "hist": "hist",
-    "hide": "Gaptjedh",
-    "show": "Vuesehte",
-    "minoreditletter": "u",
-    "newpageletter": "O",
-    "boteditletter": "j",
-    "recentchangeslinked": "Värrhtoedimmieh nille krïense bielieh",
-    "recentchangeslinked-feed": "Värrhtoedimmieh nille krïense bielieh",
-    "recentchangeslinked-toolbox": "Värrhtoedimmieh nille krïense bielieh",
-    "recentchangeslinked-title": "Värrhtoedimmie laktaseaddji gåajkoe \"$1\"",
-    "recentchangeslinked-summary": "Dïhte joekoelaakan bielie lästoe dah minngemes värrhtoedimmieh nille bielieh goh lea lïenghke. Bielieh [[Special:Watchlist|nille dov]] sïektjedhlästoe lea '''buajtehks'''.",
-    "upload": "Sadde guvvie",
-    "uploadbtn": "Sadde baalka",
-    "uploadlogpage": "Sadde logge",
-    "filename": "Guvvienomme",
-    "filesource": "Gaaltjie",
-    "savefile": "Spååredh guvvie",
-    "uploadedimage": "sadde \"[[$1]]\"",
-    "uploadvirus": "Guvvie tjeekehdidh viirus! Bïevnesh: $1",
-    "sourcefilename": "Gaaltjie guvvienomme",
-    "upload-file-error": "Sjisjnjie båajhtode",
-    "license": "Liseense",
-    "license-header": "Liseense",
-    "listfiles_search_for": "Ohtsedh ihke guvvie nomme:",
-    "imgfile": "guvvie",
-    "listfiles": "Guvvie lästoe",
-    "listfiles_name": "Nomme",
-    "listfiles_user": "Nuhtjien",
-    "listfiles_size": "Stoerre",
-    "file-anchor-link": "Baalka",
-    "filehist": "Baalka histovrije",
-    "filehist-help": "Diedtedh nille biejjie ihke vuajna man baalkan lij bealese dïhte tïjje.",
-    "filehist-current": "daaletje",
-    "filehist-datetime": "Biejjie/Tïjje",
-    "filehist-user": "Nuhtjien",
-    "filehist-dimensions": "Dimisjovneh",
-    "filehist-filesize": "Guvvie stoerre",
-    "filehist-comment": "Lahtestimmie",
-    "imagelinks": "Lïenghkeh",
-    "linkstoimage": "Tjuovvovasj {{PLURAL:$1|side|$1 sider}} bielieh lïenghkeh gåajkoe dïhte baalka:",
-    "nolinkstoimage": "Dïhte lea ijje bielieh goh nuhtjie dïhte baalka.",
-    "sharedupload": "Dïhte baalka lea $1 sadde goh juaka jih dorje sjädta nuhtjie dejstie jeatjebh prosjekte.",
-    "uploadnewversion-linktext": "Sadde orre låhkoe dejstie dïhte baalka",
-    "mimesearch": "MIME ohtsedh",
-    "mimetype": "MIME vuekie:",
-    "listredirects": "Lästoe bïjre-dirisjovneh",
-    "unusedtemplates": "Ov-nuhtjie maaleh",
-    "unusedtemplateswlh": "jeatjebh lïenghkeh",
-    "randompage": "Summal bielie",
-    "randomredirect": "Summal odhasitstivren",
-    "statistics": "Statistiike",
-    "statistics-header-users": "Nuhtjien statistiike",
-    "doubleredirects": "Guektien-gïerth bïjre-dirisjovneh",
-    "brokenredirects": "Earjohks bïrje-dirisjovneh",
-    "brokenredirects-edit": "(värrhtoedimmie)",
-    "withoutinterwiki": "Bielieh namhtah gïele lïenghkeh",
-    "fewestrevisions": "Bielieh meatan dah unnebes gïehtjedamme",
-    "nbytes": "$1 {{PLURAL:$1|byte|byteh}}",
-    "ncategories": "$1 {{PLURAL:$1|kategorije|kategorijeh}}",
-    "nlinks": "$1 {{PLURAL:$1|lïenghke|lïenghkeh}}",
-    "nmembers": "$1 {{PLURAL:$1|lihtsege|lihtsegh}}",
-    "nrevisions": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}}",
-    "nviews": "$1 {{PLURAL:$1|vuesehte|vuesehteh}}",
-    "lonelypages": "Eejhtegapth bielieh",
-    "uncategorizedpages": "Ov-kategorije bielieh",
-    "uncategorizedcategories": "Ov-kategorije kategorijeh",
-    "uncategorizedimages": "Ov-kategorije guvvieh",
-    "uncategorizedtemplates": "Ov-kategorije maaleh",
-    "unusedcategories": "Ov-nuhtjie kategorije",
-    "unusedimages": "Ov-nnuhtjie guvvieh",
-    "wantedcategories": "Vaajtelidh kategorijeh",
-    "wantedpages": "Vaajtelidh bielieh",
-    "mostlinked": "Jeenjebe lïenghkeh gåajkoe bielieh",
-    "mostlinkedcategories": "Jeenjebe lïenghke gåajkoe kategorijeh",
-    "mostlinkedtemplates": "Jeenjebe lïenghke gåajkoe malleh",
-    "mostcategories": "Bielieh meatan jïjnje kategorijeh",
-    "mostimages": "Jeenjebe lïenghke gåajkoe guvvieh",
-    "mostrevisions": "Bielieh meatan jïjnje gïehtjedammeh",
-    "prefixindex": "Prefiikse indeekse",
-    "shortpages": "Åenehks bielieh",
-    "longpages": "Guhkie bielieh",
-    "deadendpages": "Tsuvvedh bielieh",
-    "protectedpages": "Sïektjedh bielieh",
-    "listusers": "Nuhtjien lästoe",
-    "newpages": "Orre bielie",
-    "newpages-username": "Nuhtjiennomme:",
-    "ancientpages": "Båarasåabpoe bielieh",
-    "move": "Jåhta",
-    "movethispage": "Jåhta dïhte bielie",
-    "booksources": "Gärja gaaltjieh",
-    "booksources-search-legend": "Ohtsedh ihke gärja gaaltjieh",
-    "booksources-go": "Vaadtsa",
-    "specialloguserlabel": "Nuhtjien:",
-    "speciallogtitlelabel": "Tiitele:",
-    "log": "Loggeh",
-    "all-logs-page": "Gaajhke loggeh",
-    "allpages": "Gaajhke bielieh",
-    "alphaindexline": "$1 ... $2",
-    "nextpage": "Minngebe bielie ($1)",
-    "prevpage": "Övtebe bielie ($1)",
-    "allpagesfrom": "Vuesehte bielieh goh aelkedh meatan:",
-    "allarticles": "Gaajhke bielieh",
-    "allpagessubmit": "Vaadtsa",
-    "allpagesprefix": "Vuesehte bielieh meatan prefihkse:",
-    "categories": "Karegorijeh",
-    "listusers-submit": "Vuesehte",
-    "emailuser": "E-påaste dïhte nuhtjien",
-    "emailpage": "E-påaste nuhtjien",
-    "defemailsubject": "{{SITENAME}} e-påaste",
-    "emailfrom": "Raejeste",
-    "emailto": "Gåajkoe",
-    "emailsubject": "Ïebne",
-    "emailmessage": "Dïjre",
-    "emailsend": "Seedtie",
-    "emailsent": "E-påaste seedtedh",
-    "watchlist": "Mov sïektjedhlästoe",
-    "mywatchlist": "Mov sïektjedhlästoe",
-    "removedwatchtext": "Bielie \"[[:$1]]\" lea sihkojuvvon raejeste [[Special:Watchlist|dov sïektjedhlästoe]].",
-    "watch": "Sïektjedh",
-    "watchthispage": "Sïektjedh dïhte bielie",
-    "unwatch": "Ov-sïektjedh",
-    "watchlist-details": "{{PLURAL:$1|$1 bielie|$1 bielieh}} sïektjedh (doekoe dïerhkestidhbielieh).",
-    "wlshowlast": "Vuesehte minngemes $1 täjmoeh $2 biejjieh $3",
-    "watching": "Sïektjeminie...",
-    "unwatching": "Ov-sïektjedh...",
-    "enotif_impersonal_salutation": "{{SITENAME}} nuhtjien",
-    "created": "skaepede",
-    "deletepage": "Tjåegkedh bielie",
-    "historywarning": "Vaaroehtidh: Bielie datne gïehtele ahte sihkut åtna histovrije:",
-    "actioncomplete": "Deahpadimmie voerkes",
-    "deletedtext": "\"$1\" lea sihkojuvvon.\nVuajna $2 ihke galtege bïjre männgan sihkojuvvonh.",
-    "dellogpage": "Sihkkun logge",
-    "deletecomment": "Gaavhtan ihke sihkkuma",
-    "deleteotherreason": "Jeatjebh/ehkstre gaavhtan:",
-    "deletereasonotherlist": "Jeatjebh gaavhtan",
-    "rollbacklink": "jurrelde bååstede",
-    "protectlogpage": "Vaarjelidh logge",
-    "prot_1movedto2": "[[$1]] jåhta gåajkoe [[$2]]",
-    "protect-legend": "Skylledh vaarjelidh",
-    "protectcomment": "Lahtestimmie:",
-    "protectexpiry": "Boarasnuvve:",
-    "protect_expiry_invalid": "Ov-jiltiige buaorasjnuvvenaigi.",
-    "protect_expiry_old": "Boarasnuvvenaigi lea vaesedh.",
-    "protect-text": "Daesnie dorje datne vuajna jih värrhtoedimmie vaarjelidhdaltese dejstie bielie '''$1'''.",
-    "protect-locked-access": "Dov nuhtjien åtna ijje luhpie gåajkoe värrhtoedimmie tjaeleste-vaarjelidh.\nDaaletje tjaeleste-vaarjelidh sïjsestäälninge ihke bielie '''$1''' lea:",
-    "protect-default": "(åvte-veeljeme)",
-    "protect-fallback": "Luhpie \"$1\"",
-    "protect-level-autoconfirmed": "Tjöödtjehtidh ov-registreered nuhtjienh",
-    "protect-level-sysop": "Barre reeredh",
-    "protect-summary-cascade": "viididuvvon",
-    "protect-expiring": "boarasnuvve $1 (UTC)",
-    "protect-cascade": "Vaarjelidh bielieh guosket sïjse dïhte bielie (viidit suodjaluse)",
-    "protect-cantedit": "Datne dorje ijje värrhtoedimmie vaarjelidhdaltese ihke dïhte bielie, ihke datne ijja åtna luhpie ahte värrhtoedimmie dïhte.",
-    "protect-expiry-options": "2 täjmoe:2 hours,1 biejjie:1 day,3 biejjie:3 days,1 våhkoe:1 week,2 våhkoe:2 weeks,1 aske:1 month,3 aske:3 months,6 aske:6 months,1 jaepie:1 year,gietjieloeves:infinite",
-    "restriction-type": "Permisjovne:",
-    "restriction-level": "Restriksjovne daltese:",
-    "restriction-edit": "Värrhtoedimmie",
-    "restriction-move": "Jåhta",
-    "restriction-create": "Skaepiedidh",
-    "restriction-level-sysop": "dïeves-vaarjelidh",
-    "undeleterevisions": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}} våarhkoe",
-    "undeletebtn": "Mahtsat",
-    "undelete-search-submit": "Ohtsedh",
-    "namespace": "Nommeïebne:",
-    "invert": "Jarkoe veeljeme",
-    "blanknamespace": "(Bielieh)",
-    "contributions": "Nuhtjien värrhtoedimmieh",
-    "mycontris": "Mov värrhtoedimmieh",
-    "contribsub2": "Ihke $1 ($2)",
-    "uctop": "(gïerege)",
-    "month": "Raejeste aske (jih övtebe):",
-    "year": "Raejeste jaepie (jih övtebe):",
-    "sp-contributions-newbies-sub": "Ihke orre nuhtjienh",
-    "sp-contributions-blocklog": "Tjöödtjehtidh logge",
-    "sp-contributions-talk": "Digkiedimmie",
-    "sp-contributions-username": "IP Tjaalesijjie jallh nuhtjiennomme:",
-    "sp-contributions-submit": "Ohtsedh",
-    "whatlinkshere": "Bilieh goh lïenghkeh diekie",
-    "whatlinkshere-title": "Bielieh goh lïenghke gåajkoe $1",
-    "whatlinkshere-page": "Bielie:",
-    "linkshere": "Tjuovvovasj bielie lïenghke gåajkoe '''[[:$1]]''':",
-    "nolinkshere": "Ijje bielieh lïenghke gåajkoe '''[[:$1]]'''.",
-    "isredirect": "bïjre-dirisjovne bielie",
-    "istemplate": "lasihuvvon goh maale",
-    "whatlinkshere-prev": "{{PLURAL:$1|övtebe|övtebe $1}}",
-    "whatlinkshere-next": "{{PLURAL:$1|minngebe|minngebe $1}}",
-    "whatlinkshere-links": "← lïenghkeh",
-    "blockip": "Tjöödtjehtidh nuhtjien",
-    "ipadressorusername": "IP Tjaalesijjie jallh nuhtjiennomme:",
-    "ipbother": "Jeatjebh tïjje:",
-    "ipboptions": "2 täjmoe:2 hours,1 biejjie:1 day,3 biejjie:3 days,1 våhkoe:1 week,2 våhkoe:2 weeks,1 aske:1 month,3 aske:3 months,6 aske:6 months,1 jaepie:1 year,gietjieloeves:infinite",
-    "ipblocklist": "Lästoe bijjelen tjöödtjehtidh IP tjaalesijjieh jih nuhtjiennommeh",
-    "ipblocklist-submit": "Ohtsedh",
-    "blocklink": "tjöödtjehtidh",
-    "unblocklink": "ov-tjöödtjehtidh",
-    "contribslink": "dåarjoeh",
-    "blocklogpage": "Tjöödtjehtidh logge",
-    "blocklogentry": "blåhkedidh \"[[$1]]\" $2 $3",
-    "lockdb": "Tjuevtedh daatabaase",
-    "lockbtn": "Tjuevtedh daatabaase",
-    "databasenotlocked": "Daatabaase lea ijje tjuevtedh.",
-    "move-page-legend": "Jåhta bielie",
-    "movearticle": "Jåhta bielie:",
-    "newtitle": "Gåajkoe orre tiitele:",
-    "move-watch": "Sïektjedh dïhte bielie",
-    "movepagebtn": "Jåhta bielie",
-    "pagemovedsub": "Jåhta lähkoe",
-    "articleexists": "Bielie meatan dïhte nomme gååvnese joe, jallh\nnome dov åtna veeljeme lea ijje jiiltige.\nGïemhpes veeljeme jeatjebh nomme.",
-    "movetalk": "Jåhta aaj dïerkestidhbielie, bïjre dïhte gååvnese.",
-    "movelogpage": "Jåhta logge",
-    "movereason": "Gaavhtan:",
-    "revertmove": "jåhta bååstede",
-    "export": "Ehksporte bielieh",
-    "export-submit": "Ehksporte",
-    "export-addcat": "Lissiehtidh",
-    "export-templates": "Inkludera mallar",
-    "allmessages": "Systeeme dïrje",
-    "allmessagesname": "Nomme",
-    "thumbnail-more": "Vijriedidh",
-    "thumbnail_error": "Båajhtode nuelesne skaepede dejstie miniatyvreguvvie: $1",
-    "import": "Imporhte bielieh",
-    "import-interwiki-submit": "Imporhte",
-    "importstart": "Imporhte bielieh...",
-    "import-revision-count": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}}",
-    "importfailed": "Imporhte steegkeldahkesne: $1",
-    "importsuccess": "Imporhte lähkoe!",
-    "importlogpage": "Imporhte logge",
-    "import-logentry-upload-detail": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}}",
-    "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}} raejeste $2",
-    "tooltip-pt-userpage": "Mov nuhtjienbielie",
-    "tooltip-pt-mytalk": "Mov dïjveldidh bielie",
-    "tooltip-pt-preferences": "Mov sïjsesäälningeh",
-    "tooltip-pt-watchlist": "Lästoe bijjelen bielieh goh sïektjedh",
-    "tooltip-pt-mycontris": "Lästoe bijjelen mov värrhtoedimmie",
-    "tooltip-pt-login": "Dov åådtje logge sïjse, bine dïhte lea ijje daerpies.",
-    "tooltip-pt-logout": "Logge ålkone",
-    "tooltip-ca-talk": "Dïjveldidh bïjre sisvege bieliej",
-    "tooltip-ca-edit": "Dov dorje värrhtoedimmie dïhte bielie. Nuhtjie åvte-vuesiehtidh båaloe åvte spååredh.",
-    "tooltip-ca-addsection": "Lissiehtidh lahtestimmie gåajkoe dïhte dïjveldidh.",
-    "tooltip-ca-viewsource": "Dïhte bielie lea vaarjelidh. Dov dorje vuesehte gaaltjiej.",
-    "tooltip-ca-protect": "Vaarjelidh dïhte bielie",
-    "tooltip-ca-delete": "Tjåegkedh dïhte bielie",
-    "tooltip-ca-move": "Jåhta dïhte bielie",
-    "tooltip-ca-watch": "Lissiehtidh dïhte bielie gåajkoe dov sïektjedhlästoe",
-    "tooltip-ca-unwatch": "Sirdde dïhte bielie raejeste dov sïektjedhlästoe",
-    "tooltip-search": "Ohtsedh {{SITENAME}}sne",
-    "tooltip-p-logo": "Åejjiebielie",
-    "tooltip-n-mainpage": "Gåajkoe aalkoebielie vaadtsa",
-    "tooltip-n-portal": "Bïjre prosjekte, mij dov dorje, lij dov gaavnedh daeverh",
-    "tooltip-n-currentevents": "Bïevnesh bïjre daaletje deahpadimmieh",
-    "tooltip-n-recentchanges": "Lästoe männganes sjiehtedh bijjelen nille {{SITENAME}}.",
-    "tooltip-n-randompage": "Vaadtsa summal bielie",
-    "tooltip-n-help": "Viehkie jih bïevnesh {{SITENAME}} bïjre.",
-    "tooltip-t-whatlinkshere": "Lästoe bijjelen gaajhke wiki bielieh goh lïenghke diekie",
-    "tooltip-feed-rss": "RSS feed ihke dïhte bielie",
-    "tooltip-feed-atom": "Atom feed ihke dïhte bielie",
-    "tooltip-t-contributions": "Vuesehte lästoe bijjelen värrhtoedimmieh dejstie dïhte nuhtjien",
-    "tooltip-t-emailuser": "Seedtedh e-påaste gåajkoe dïhte nuhtjien",
-    "tooltip-t-upload": "Sadde guvvir jallh meedia baalkah",
-    "tooltip-t-specialpages": "Lästoe gaajhke joekoen bielieh bijjelen",
-    "tooltip-ca-nstab-user": "Vuesehte nuhtjien bieliej",
-    "tooltip-ca-nstab-project": "Vuesehte prosjekte bieliej",
-    "tooltip-ca-nstab-image": "Vuesehte guvvie bieliej",
-    "tooltip-ca-nstab-template": "Vuesehte maalej",
-    "tooltip-ca-nstab-help": "Vuesehte viehkie bieliej",
-    "tooltip-ca-nstab-category": "Vuesehte kategorije bieliej",
-    "tooltip-minoredit": "Mïerhkesjidh dïhte lea ohtje värrhtoedimmie",
-    "tooltip-save": "Spååredh dov värrhtoedimmieh",
-    "tooltip-preview": "Åvte-vuesiehtidh dov värrhtoedimmie, gïemhpes nuhtjie dïhte åvte spååredh!",
-    "tooltip-diff": "Vuesehte guhte värrhtoedimmieh dov åtna dorjeme dejstie tjaalege.",
-    "tooltip-compareselectedversions": "Vuesehte joekehts gaskesne dah göökte vïhtesjidh låhkoeh dejstie dïhte bielie.",
-    "tooltip-watch": "Lissiehtidh dïhte bielie gåajkoe dov sïektjedhlästoe",
-    "siteuser": "{{SITENAME}} nuhtjien $1",
-    "siteusers": "{{SITENAME}} nuhtjien(h) $1",
-    "previousdiff": "← Övtebe joekehts",
-    "nextdiff": "Minngebe joekehts →",
-    "file-info": "baalka stoerre: $1, MIME-vuekie: $2",
-    "file-info-size": "$1 × $2 pixel, baalka stoerre: $3, MIME-vuekie: $4",
-    "file-nohires": "Ijje jïlle bäjjeselöösninge jaksoes.",
-    "svg-long-desc": "SVG baalka, maadth-stoerre $1 × $2 pixel, baalka stoerre: $3",
-    "show-big-image": "Dïeves stoerre",
-    "newimages": "Gallerije dejstie orre baalkah",
-    "ilsubmit": "Ohtsedh",
-    "metadata": "Metadaata",
-    "metadata-expand": "Vuesehte vijriedidh detaaljeh",
-    "metadata-collapse": "Gaptjedh vijrede daeverh",
-    "metadata-fields": "EXIF-dajve goh lästoe sïjse dïhte dïrje vuesehte nille guvviebielie gåessie metadaatataabelle lea unniedidh.\nJeatjebh dajveh lea gaptjedh goh sïejhme, bine vuesehte gåessie taabelle stoerre.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-    "exif-imagewidth": "Gamte",
-    "exif-imagelength": "Gåhkoe",
-    "exif-model": "Guvviedahke hammohke",
-    "exif-software": "Möövhkesvaare nuhtjie",
-    "exif-filesource": "Guvvie gaaltjie",
-    "exif-gpslatituderef": "Noerhte jallh Åarjetje Laatituude",
-    "exif-gpslatitude": "Laatituude",
-    "exif-gpslongituderef": "Lulnie jallh Jillege Låångdituude",
-    "exif-gpslongitude": "Låångdituude",
-    "exif-gpsareainformation": "Nomme ihke GPS davje",
-    "exif-meteringmode-0": "Ammes",
-    "exif-meteringmode-255": "Jeatjebh",
-    "exif-lightsource-0": "Ammes",
-    "exif-scenecapturetype-0": "Sïejhme",
-    "exif-contrast-1": "Möövhkes",
-    "exif-contrast-2": "Garre",
-    "exif-sharpness-1": "Möövhkes",
-    "exif-sharpness-2": "Garre",
-    "exif-subjectdistancerange-0": "Ammes",
-    "exif-gpslatitude-n": "Noerhte latituude",
-    "exif-gpslatitude-s": "Åarjetje laatituude",
-    "exif-gpslongitude-e": "Lulnie låångdituude",
-    "exif-gpslongitude-w": "Jillege låångdituude",
-    "watchlistall2": "gaajhke",
-    "namespacesall": "gaajhke",
-    "monthsall": "gaajhke",
-    "scarytranscludetoolong": "[URL lea ihke guhkie; gaatelassjedh]",
-    "confirm-purge-top": "Döömedh cache ihke dïhte bielie?",
-    "imgmultipageprev": "← övtebe bielie",
-    "imgmultipagenext": "minngebe bielie →",
-    "imgmultigo": "Vaadtsa!",
-    "table_pager_next": "Minngebe bielie",
-    "table_pager_prev": "Övtebe bielie",
-    "table_pager_first": "Voestemes bielie",
-    "table_pager_last": "Minngemes bielie",
-    "table_pager_limit_submit": "Vaadtsa",
-    "autosumm-new": "Orre bielie: $1",
-    "livepreview-loading": "Leedtedh…",
-    "livepreview-ready": "Leedtedh… Voerkes!",
-    "watchlisttools-view": "Sïektjedhlästoe",
-    "watchlisttools-edit": "Vuesehte jih värrhtoedimmie sïektjedhlästoe",
-    "watchlisttools-raw": "Värrhtordimmie saajpe sïektjedhlästoe",
-    "unknown_extension_tag": "Ammes ekshtensjovne lissie \"$1\"",
-    "version": "Låhkoe",
-    "specialpages": "Joekoen bielieh"
+       "@metadata": {
+               "authors": [
+                       "Andrijko Z.",
+                       "Bïerne",
+                       "M.M.S.",
+                       "Urhixidur",
+                       "TMg",
+                       "아라"
+               ]
+       },
+       "tog-showtoolbar": "Dïrregesïeve vuesehth (JavaScript)",
+       "tog-fancysig": "Saajpe singnatuvreh (namhtah jïjtsistie lïenghke)",
+       "underline-always": "Iktesth",
+       "underline-never": "Aaltere",
+       "sunday": "Aejlege",
+       "monday": "Måanta",
+       "tuesday": "Däjsta",
+       "wednesday": "Gaske-våhkoe",
+       "thursday": "Dåarsta",
+       "friday": "Bearjedh",
+       "saturday": "Laavadahke",
+       "sun": "Aej",
+       "mon": "Måa",
+       "tue": "Däj",
+       "wed": "Gas",
+       "thu": "Dåa",
+       "fri": "Bea",
+       "sat": "Laa",
+       "january": "tsiengele",
+       "february": "goevte",
+       "march": "njoktje",
+       "april": "Voerhtje",
+       "may_long": "Suehpede",
+       "june": "Ruffie",
+       "july": "Snjaltje",
+       "august": "Mïetske",
+       "september": "Gaekere",
+       "october": "Golke",
+       "november": "Rahka",
+       "december": "Goeve",
+       "january-gen": "Tsiengele",
+       "february-gen": "Goevte",
+       "march-gen": "Njoktje",
+       "april-gen": "Voerhtje",
+       "may-gen": "Suehpede",
+       "june-gen": "Ruffie",
+       "july-gen": "Snjaltje",
+       "august-gen": "Mïetske",
+       "september-gen": "Gaekere",
+       "october-gen": "Golke",
+       "november-gen": "Rahka",
+       "december-gen": "Goeve",
+       "jan": "Tsïen",
+       "feb": "Goevt",
+       "mar": "Njok",
+       "apr": "Voer",
+       "may": "Sueh",
+       "jun": "Ruff",
+       "jul": "Snja",
+       "aug": "Mïet",
+       "sep": "Gaek",
+       "oct": "Golk",
+       "nov": "Rahk",
+       "dec": "Goev",
+       "pagecategories": "{{PLURAL:$1|Kategorije|Kategorijeh}}",
+       "category_header": "Bielie sïjse kategorije \"$1\"",
+       "subcategories": "Subkategorijeh",
+       "category-media-header": "Guvvie sïjse karegorije \"$1\"",
+       "category-empty": "''Dïhte kategorije sisvege ijje bielieh jallh baalkah.''",
+       "listingcontinuesabbrev": "jåar.",
+       "about": "Bïjre",
+       "article": "Sisvege bielie",
+       "newwindow": "(geehpehtidh sïjse orre klaase)",
+       "cancel": "Orrijidh",
+       "moredotdotdot": "Jienebe...",
+       "mypage": "Mov bielie",
+       "mytalk": "Mov dïjveldidh",
+       "anontalk": "Dïjveldidh ihke dïhte IP",
+       "navigation": "Navigasjovne",
+       "and": "&#32;jih",
+       "qbfind": "Gaavnedh",
+       "qbedit": "Värrhtoedimmie",
+       "qbpageoptions": "Dïhte bielie",
+       "qbmyoptions": "Mov bielieh",
+       "faq": "FAQ",
+       "faqpage": "Project:FAQ",
+       "errorpagetitle": "Båajhtode",
+       "returnto": "Bååstide gåajkoe $1.",
+       "tagline": "{{SITENAME}}sta",
+       "help": "Viehkie",
+       "search": "Ohtsedh",
+       "searchbutton": "Ohtsedh",
+       "go": "Vaadtsa",
+       "searcharticle": "Vaadtsa",
+       "history": "Histovrije",
+       "history_short": "Histovrije",
+       "printableversion": "Tjaelije bielie",
+       "permalink": "Permanente lïenghke",
+       "print": "Tjaeledh olkese",
+       "edit": "Sjiehtedh",
+       "editthispage": "Värrhtoedimmie dïhte bielie",
+       "delete": "Tjåegkedh",
+       "protect": "Vaarjelidh",
+       "protectthispage": "Vaarjelidh dïhte bielie",
+       "newpage": "Orre bielie",
+       "talkpage": "Dïjveldidh dïhte bielie",
+       "talkpagelinktext": "Digkiedimmie",
+       "specialpage": "Joekoelaakan Bielie",
+       "personaltools": "Persjovne dïrregeh",
+       "articlepage": "Vuesehte artihkle bielie",
+       "talk": "Dïjveldeme",
+       "views": "Vuesehth",
+       "toolbox": "Dïrregeborhtje",
+       "userpage": "Vuesehte nuhtjienbielie",
+       "projectpage": "Vuesehte Wikipedijebielie",
+       "imagepage": "Vuesehte guvvie bielie",
+       "templatepage": "Vuesehte maale bielie",
+       "viewhelppage": "Vuesehte viehkie bielie",
+       "categorypage": "Vuesehte kategorije bielie",
+       "viewtalkpage": "Vuesehte dïjveldidh",
+       "otherlanguages": "jeatjebh gïele",
+       "redirectedfrom": "(Bïjre-dirisjovne raejeste $1)",
+       "redirectpagesub": "Bïjre-dirisjovne bielie",
+       "protectedpage": "Vaarjelidh bielie",
+       "jumpto": "Vaadtsa gåajkoe:",
+       "jumptonavigation": "navigasjovne",
+       "jumptosearch": "ohtsedh",
+       "aboutsite": "{{SITENAME}}en bïjre",
+       "aboutpage": "Project:Bïjre",
+       "copyrightpage": "{{ns:project}}:Bäjjesereaktah",
+       "currentevents": "Daaletje deahpadimmieh",
+       "currentevents-url": "Project:Daaletje deahpadimmieh",
+       "disclaimers": "Friijavuohte vastideamis",
+       "disclaimerpage": "Project:Bäjjesereaktah",
+       "edithelp": "Sjiehtedimmie viehkie",
+       "mainpage": "Aalkoebielie",
+       "mainpage-description": "Aalkoebielie",
+       "portal": "Meatan portaale",
+       "portal-url": "Project:Meatan portaale",
+       "privacy": "Privaate pålisy",
+       "privacypage": "Project:Privaate pålisy",
+       "retrievedfrom": "Raejeste \"$1\" vïedtjeme",
+       "youhavenewmessages": "Datne åtna $1 ($2).",
+       "editsection": "sjïehtedh",
+       "editold": "värrhtoedimmie",
+       "editsectionhint": "Sektiovne sjiehtedh: $1",
+       "toc": "Sisvege",
+       "showtoc": "vuesehte",
+       "hidetoc": "gaptjedh",
+       "viewdeleted": "Vuesehte $1?",
+       "site-rss-feed": "$1 RSS Feed",
+       "site-atom-feed": "$1 Atom Feed",
+       "page-rss-feed": "\"$1\" RSS Feed",
+       "page-atom-feed": "\"$1\" Atom Feed",
+       "nstab-main": "Bielie",
+       "nstab-user": "Nuhtjien bielie",
+       "nstab-media": "Guvvie",
+       "nstab-special": "Joekoelaakan",
+       "nstab-project": "Prosjekte bielie",
+       "nstab-image": "Baalka",
+       "nstab-mediawiki": "MediaWiki",
+       "nstab-template": "Maale",
+       "nstab-help": "Viehke bielie",
+       "nstab-category": "Kategorije",
+       "error": "Båajhtode",
+       "databaseerror": "Daatabaase båajhtode",
+       "readonly": "Daatabaase steegkeldahkesne",
+       "internalerror": "Sjisjnjie båajhtede",
+       "internalerror_info": "Sjisjnjie båajhtede: $1",
+       "badtitle": "Gååre nomme",
+       "badtitletext": "Dïhte bielietiitele lea nov sån ijje luhpede, bielie lea gåaroes, jallh lea bielie gåarhmede lïenghke gåajkoe.",
+       "viewsource": "Vuesehte tjaalege",
+       "viewsourcetext": "Dov dorje vuesehte jih kåpieerae gaaltjie dejstie dïhte bielie:",
+       "yourname": "Nuhtjiennomme:",
+       "yourpassword": "Loevesbaakoe:",
+       "remembermypassword": "Måjhtije mov loggesïjse nille dïhte daatovre (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "yourdomainname": "Dov domäne:",
+       "login": "Logge sïjse",
+       "nav-login-createaccount": "Logge sïjse / skaepede nuhtjien",
+       "userlogin": "Logge sïjse / skaepede nuhtjien",
+       "logout": "Logge olkese",
+       "userlogout": "Logge ålkone",
+       "nologin": "Lea dov ijje registreered? '''$1'''.",
+       "nologinlink": "Skaepede nuhtjien",
+       "createaccount": "Skaepede nuhtjien",
+       "gotaccount": "Åtna dov joe nuhtjiennomme? '''$1'''.",
+       "gotaccountlink": "Logge sïjse",
+       "createaccountmail": "meatan e-påaste",
+       "loginerror": "Logge sïjse båajhtode",
+       "loginsuccesstitle": "Dov lea daelie sïjse logge",
+       "loginsuccess": "'''Dov lea daelie sïjselogge nille {{SITENAME}} goh \"$1\".'''",
+       "nosuchuser": "Dïhte gååvnese ijje nuhtjien goh nomme \"$1\". Gïehtjedidh dov baakoehtidh, jallh skaepede orre nuhtjien.",
+       "nosuchusershort": "Dïhte gååvnese ijje nuhtjien goh nomme \"$1\". Gïehtjedidh baakoehtidh.",
+       "nouserspecified": "Dov galkedh tjaeledh nuhtjiennomme.",
+       "wrongpassword": "Loevesbaakoe lea gåarhmede. Vuejnedh vihth.",
+       "wrongpasswordempty": "Loevesbaakoe lea gåaroes. Vuejnedh vihth.",
+       "passwordtooshort": "Dov loevesbaakoe lea ov-jiltighe jallh ihke åenehks. Dïhte galkedh åtna unnemes $1 vähta jih sjädta jeatjebe raejeste dov nuhtjiennomme.",
+       "mailmypassword": "E-påaste loevesbaakoe",
+       "passwordremindertitle": "Orre loevesbaakoe ihke {{SITENAME}}",
+       "noemail": "Dïhte lea ijje e-påaste tjaalesijjie registreeredh ihke nuhtjien \"$1\".",
+       "passwordsent": "Orre loevesbaakoe åtna sjädta seedtie gåajkoe e-påaste tjaalesijjie\nregistreered ihke \"$1\".\nGïemhpes logge sïjse vihth männgan datne åtna låhka dïhte.",
+       "accountcreated": "Nuhtjien skaepede",
+       "loginlanguagelabel": "Gïele: $1",
+       "changepassword": "Värrhtoedimmie loevesbaakoe",
+       "oldpassword": "Båeries loevesbaakoe:",
+       "newpassword": "Orre loevesbaakoe:",
+       "retypenew": "Odhasit orre loevesbaakoe:",
+       "bold_sample": "Buajtehks tjaalege",
+       "bold_tip": "Buajtehks tjaalege",
+       "italic_sample": "Kursiive tjaalege",
+       "italic_tip": "Kursiive tjaalege",
+       "link_sample": "Lïenghke tiitele",
+       "link_tip": "Sjisjnjie lïenghke",
+       "extlink_sample": "http://www.example.com lïenghke tiitele",
+       "extlink_tip": "Ehkstäärne lïenghke (måjhtajidh http:// prefihkse)",
+       "headline_sample": "Rubriike tjaalege",
+       "headline_tip": "Daltese 2 rubriike",
+       "nowiki_sample": "Bïejedh ijje-hammode tjaalege daesnie",
+       "nowiki_tip": "Rievdde wikïhammode",
+       "image_tip": "Lååtje guvvie",
+       "media_tip": "Meedia baalka lïenghke",
+       "sig_tip": "Dov signatuvre meatan tïjjestäämpele",
+       "hr_tip": "Horisontele sïeve (nuhtjie bïhteles-laakan)",
+       "summary": "Tjohkehtehteme:",
+       "subject": "Ïebne/rubriike:",
+       "minoredit": "Dïhte lea ohtje värrhtoedimmie",
+       "watchthis": "Sïektjedh dïhte bielie",
+       "savearticle": "Spååredh bielie",
+       "preview": "Åvte-vuesiehtidh",
+       "showpreview": "Vuesehte åvte-vuesiehtidh",
+       "showdiff": "Vuesehte värrhtoedimmie",
+       "anoneditwarning": "'''Vaaroehtidh:''' Dov lea ijje logge sïjse. Dov IP tjaalesijjie båetedh spååredh sïjse dïhte bielie värrhtoedimmie histovrije.",
+       "summary-preview": "Tjohkehtehteme åvte-vuesiehtidh:",
+       "loginreqlink": "logge sïjse",
+       "loginreqpagetext": "Dov galkedh $1 ihke vuesehte jeatjebh bielieh.",
+       "accmailtitle": "Loevesbaakoe seedtie.",
+       "accmailtext": "Loevesbaakoe ihke ”$1” utnedh seedtedh gåajkoe $2.",
+       "newarticle": "(Orre)",
+       "noarticletext": "Dïhte lea daelie ijje tjaalege sïjse dïhte bielie, dov dorje [[Special:Search/{{PAGENAME}}|ohtsedh ihke dïhte bielie nomme]] sïjse jeatjebh bielieh jallh [{{fullurl:{{FULLPAGENAME}}|action=edit}} värrhtoedimmie dïhte bielie].",
+       "usercssyoucanpreview": "'''Tiipse:''' Nuhtjie 'Vuesehte åvte-vuesiehtidh' båaloe ihke pryövoe dov orre CSS åvte spååredh.",
+       "userjsyoucanpreview": "'''Tiipse:''' Nuhtjie 'Vuesehte åvte-vuesiehtidh' båaloe ihke pryövoe dov orre JS åvte spååredh.",
+       "updated": "(Orrestahteme)",
+       "note": "'''Galtege:'''",
+       "previewnote": "'''Dïhte lea aktegh åvte-vuesiehtidh; värrhtoedimmieh ånta ijje sjïdtedh spååredh!'''",
+       "editing": "Sjiehtedimmie $1",
+       "editingsection": "Värrhtoedimmie $1 (sektiovne)",
+       "yourtext": "Dov tjaalege",
+       "copyrightwarning": "Tjaeleste gaajhke värrhtoedimmieh gåajkoe {{SITENAME}} lea ahte gïehtjele goh maam buektedh nuelesne $2 (vuajna $1 ihke detaaljeh). Bïjre datne ijje sïjhtedh dov tjaalege galka värrhtoedimmieh jallh kåpieeres minngesne jeatjebh daerpies voete, galka datne ijje tjaala daesnie.<br />\nDatne luhpede mijjieh aaj datne tjaala tjaalege jïjtje, jallh kåpieeret raejeste gaaltjie goh ijje vaarjele dejstie bäjjesereaktah, jallh plïerehke.<br />\n'''LISSEHTE IJJE OLKESE BÄJJESEREAKTAHVAARJELE ÏEBNE NAMHTAH LUHPIE!'''",
+       "templatesused": "{{PLURAL:$1|Maal|Maler}}Maaleh nuhtjie nille dïhte bielie:",
+       "templatesusedpreview": "{{PLURAL:$1|Maal|Maaleh}} nuhtjie sïjse dïhte åvte-vuesiehtidh:",
+       "template-protected": "(vaarjeleme)",
+       "template-semiprotected": "(lehkie-vaarjelidh)",
+       "nocreatetext": "{{SITENAME}} åtna gaertjiedidh nuepieh ahte skaepede orre bielieh.\nDov dorje värrhtoedimmie gååvnese bielieh, jallh [[Special:UserLogin|logge sïjse jallh skaepede nuhtjien]].",
+       "viewpagelogs": "Vuesehte loggeh ihke dïhte bielie",
+       "currentrev": "Daaletje gïehtjedamme",
+       "revisionasof": "Gïehtjedamme ihke $1",
+       "revision-info": "Gïehtjedamme raejeste dïhte $1; $2",
+       "previousrevision": "←Båarasåabpoe gïehtjedamme",
+       "nextrevision": "Minngebe gïehtjedamme→",
+       "currentrevisionlink": "Daaletje gïehtjedamme",
+       "cur": "daaletje",
+       "next": "minngebe",
+       "last": "minngemes",
+       "page_first": "voestegh",
+       "page_last": "minngemes",
+       "histfirst": "Aareh",
+       "histlast": "Minngemes",
+       "historysize": "({{PLURAL:$1|1 byte|$1 byteh}})",
+       "history-feed-title": "Gïehtjedamme histovrije",
+       "history-feed-item-nocomment": "$1 dïhte $2",
+       "mergehistory-from": "Gaaltjie bielie:",
+       "history-title": "Gïehtjedamme histovrije ihke \"$1\"",
+       "lineno": "Sïeve $1:",
+       "compareselectedversions": "Mohtedidh veeljeme låhkoeh",
+       "editundo": "ov-darjodh",
+       "searchresults": "Ohtsedh resultaateh",
+       "prevn": "övtebe {{PLURAL:$1|$1}}",
+       "nextn": "minngeben {{PLURAL:$1|$1}}",
+       "viewprevnext": "Vuesehth ($1 {{int:pipe-separator}} $2) ($3)",
+       "preferences": "Sïjsestäälningeh",
+       "mypreferences": "Mov sïjsesäälningeh",
+       "skin-preview": "Åvte-vuesiehtidh",
+       "saveprefs": "Spååredh",
+       "searchresultshead": "Ohtsedh",
+       "timezonelegend": "Tïjjedajve",
+       "localtime": "Byjrehks tïjje",
+       "youremail": "E-påaste:",
+       "username": "Nuhtjiennomme:",
+       "yourrealname": "Ov nomme:",
+       "yourlanguage": "Gïele:",
+       "yournick": "Nuhjiennomme:",
+       "email": "E-påaste",
+       "prefs-help-realname": "Ov nomme galkedh ijje tjaeledh. Bïjre datne veeljeme tjaeledh dov ov nomme, båetedh dïhte nuhtjie ihke tjaeledh dov barkoe.",
+       "editinguser": "Värrhtoedimmie nuhtjien '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+       "group": "Tjïerte:",
+       "group-bot": "Jïjtjesvïhtjije",
+       "group-sysop": "Reeredh",
+       "group-bot-member": "Jïjtjesvïhtjije",
+       "group-sysop-member": "Reerien",
+       "grouppage-sysop": "{{ns:project}}:Reeredh",
+       "rightslog": "Nuhtjienreaktah logge",
+       "nchanges": "$1 {{PLURAL:$1|värrhtoedimmie|värrhtoedimmieh}}",
+       "recentchanges": "Männgan värrhtoedimmieh",
+       "recentchanges-feed-description": "Dåeriedidh männgan värrhtoedimmie sïjse wiki meatan dïhte feed.",
+       "rcnotefrom": "Vuelelen vuesehte dah männgan '''$1''' värrhtoedimmieh männgan '''$2'''.",
+       "rclistfrom": "Vuesehte orre värrhtoedimmieh aelkedh raejeste $3 $2",
+       "rcshowhideminor": "$1 ohtje värrhtoedimmie",
+       "rcshowhidebots": "$1 jïjtjesvïhtjijeh",
+       "rcshowhideliu": "$1 värrhtoedimmie dejstie sïjselogge nuhtjienh",
+       "rcshowhideanons": "$1 anonyyme nuhtjienh",
+       "rcshowhidepatr": "$1 dååhkasjehtedh värrhtoedimmieh",
+       "rcshowhidemine": "$1 mov värrhtoedimmieh",
+       "rclinks": "Vuesehte männgan $1 värrhtoedimmieh nuelesne männgan $2 biejjieh<br />$3",
+       "diff": "joekehts",
+       "hist": "hist",
+       "hide": "Gaptjedh",
+       "show": "Vuesehte",
+       "minoreditletter": "u",
+       "newpageletter": "O",
+       "boteditletter": "j",
+       "recentchangeslinked": "Värrhtoedimmieh nille krïense bielieh",
+       "recentchangeslinked-feed": "Värrhtoedimmieh nille krïense bielieh",
+       "recentchangeslinked-toolbox": "Värrhtoedimmieh nille krïense bielieh",
+       "recentchangeslinked-title": "Värrhtoedimmie laktaseaddji gåajkoe \"$1\"",
+       "recentchangeslinked-summary": "Dïhte joekoelaakan bielie lästoe dah minngemes värrhtoedimmieh nille bielieh goh lea lïenghke. Bielieh [[Special:Watchlist|nille dov]] sïektjedhlästoe lea '''buajtehks'''.",
+       "upload": "Sadde guvvie",
+       "uploadbtn": "Sadde baalka",
+       "uploadlogpage": "Sadde logge",
+       "filename": "Guvvienomme",
+       "filesource": "Gaaltjie",
+       "savefile": "Spååredh guvvie",
+       "uploadvirus": "Guvvie tjeekehdidh viirus! Bïevnesh: $1",
+       "sourcefilename": "Gaaltjie guvvienomme",
+       "upload-file-error": "Sjisjnjie båajhtode",
+       "license": "Liseense",
+       "license-header": "Liseense",
+       "listfiles_search_for": "Ohtsedh ihke guvvie nomme:",
+       "imgfile": "guvvie",
+       "listfiles": "Guvvie lästoe",
+       "listfiles_name": "Nomme",
+       "listfiles_user": "Nuhtjien",
+       "listfiles_size": "Stoerre",
+       "file-anchor-link": "Baalka",
+       "filehist": "Baalka histovrije",
+       "filehist-help": "Diedtedh nille biejjie ihke vuajna man baalkan lij bealese dïhte tïjje.",
+       "filehist-current": "daaletje",
+       "filehist-datetime": "Biejjie/Tïjje",
+       "filehist-user": "Nuhtjien",
+       "filehist-dimensions": "Dimisjovneh",
+       "filehist-filesize": "Guvvie stoerre",
+       "filehist-comment": "Lahtestimmie",
+       "imagelinks": "Lïenghkeh",
+       "linkstoimage": "Tjuovvovasj {{PLURAL:$1|side|$1 sider}} bielieh lïenghkeh gåajkoe dïhte baalka:",
+       "nolinkstoimage": "Dïhte lea ijje bielieh goh nuhtjie dïhte baalka.",
+       "sharedupload": "Dïhte baalka lea $1 sadde goh juaka jih dorje sjädta nuhtjie dejstie jeatjebh prosjekte.",
+       "uploadnewversion-linktext": "Sadde orre låhkoe dejstie dïhte baalka",
+       "mimesearch": "MIME ohtsedh",
+       "mimetype": "MIME vuekie:",
+       "listredirects": "Lästoe bïjre-dirisjovneh",
+       "unusedtemplates": "Ov-nuhtjie maaleh",
+       "unusedtemplateswlh": "jeatjebh lïenghkeh",
+       "randompage": "Summal bielie",
+       "randomredirect": "Summal odhasitstivren",
+       "statistics": "Statistiike",
+       "statistics-header-users": "Nuhtjien statistiike",
+       "doubleredirects": "Guektien-gïerth bïjre-dirisjovneh",
+       "brokenredirects": "Earjohks bïrje-dirisjovneh",
+       "brokenredirects-edit": "(värrhtoedimmie)",
+       "withoutinterwiki": "Bielieh namhtah gïele lïenghkeh",
+       "fewestrevisions": "Bielieh meatan dah unnebes gïehtjedamme",
+       "nbytes": "$1 {{PLURAL:$1|byte|byteh}}",
+       "ncategories": "$1 {{PLURAL:$1|kategorije|kategorijeh}}",
+       "nlinks": "$1 {{PLURAL:$1|lïenghke|lïenghkeh}}",
+       "nmembers": "$1 {{PLURAL:$1|lihtsege|lihtsegh}}",
+       "nrevisions": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}}",
+       "nviews": "$1 {{PLURAL:$1|vuesehte|vuesehteh}}",
+       "lonelypages": "Eejhtegapth bielieh",
+       "uncategorizedpages": "Ov-kategorije bielieh",
+       "uncategorizedcategories": "Ov-kategorije kategorijeh",
+       "uncategorizedimages": "Ov-kategorije guvvieh",
+       "uncategorizedtemplates": "Ov-kategorije maaleh",
+       "unusedcategories": "Ov-nuhtjie kategorije",
+       "unusedimages": "Ov-nnuhtjie guvvieh",
+       "wantedcategories": "Vaajtelidh kategorijeh",
+       "wantedpages": "Vaajtelidh bielieh",
+       "mostlinked": "Jeenjebe lïenghkeh gåajkoe bielieh",
+       "mostlinkedcategories": "Jeenjebe lïenghke gåajkoe kategorijeh",
+       "mostlinkedtemplates": "Jeenjebe lïenghke gåajkoe malleh",
+       "mostcategories": "Bielieh meatan jïjnje kategorijeh",
+       "mostimages": "Jeenjebe lïenghke gåajkoe guvvieh",
+       "mostrevisions": "Bielieh meatan jïjnje gïehtjedammeh",
+       "prefixindex": "Prefiikse indeekse",
+       "shortpages": "Åenehks bielieh",
+       "longpages": "Guhkie bielieh",
+       "deadendpages": "Tsuvvedh bielieh",
+       "protectedpages": "Sïektjedh bielieh",
+       "listusers": "Nuhtjien lästoe",
+       "newpages": "Orre bielie",
+       "newpages-username": "Nuhtjiennomme:",
+       "ancientpages": "Båarasåabpoe bielieh",
+       "move": "Jåhta",
+       "movethispage": "Jåhta dïhte bielie",
+       "booksources": "Gärja gaaltjieh",
+       "booksources-search-legend": "Ohtsedh ihke gärja gaaltjieh",
+       "specialloguserlabel": "Nuhtjien:",
+       "speciallogtitlelabel": "Tiitele:",
+       "log": "Loggeh",
+       "all-logs-page": "Gaajhke loggeh",
+       "allpages": "Gaajhke bielieh",
+       "nextpage": "Minngebe bielie ($1)",
+       "prevpage": "Övtebe bielie ($1)",
+       "allpagesfrom": "Vuesehte bielieh goh aelkedh meatan:",
+       "allarticles": "Gaajhke bielieh",
+       "allpagessubmit": "Vaadtsa",
+       "allpagesprefix": "Vuesehte bielieh meatan prefihkse:",
+       "categories": "Karegorijeh",
+       "listusers-submit": "Vuesehte",
+       "emailuser": "E-påaste dïhte nuhtjien",
+       "emailpage": "E-påaste nuhtjien",
+       "defemailsubject": "{{SITENAME}} e-påaste",
+       "emailfrom": "Raejeste",
+       "emailto": "Gåajkoe",
+       "emailsubject": "Ïebne",
+       "emailmessage": "Dïjre",
+       "emailsend": "Seedtie",
+       "emailsent": "E-påaste seedtedh",
+       "watchlist": "Mov sïektjedhlästoe",
+       "mywatchlist": "Mov sïektjedhlästoe",
+       "removedwatchtext": "Bielie \"[[:$1]]\" lea sihkojuvvon raejeste [[Special:Watchlist|dov sïektjedhlästoe]].",
+       "watch": "Sïektjedh",
+       "watchthispage": "Sïektjedh dïhte bielie",
+       "unwatch": "Ov-sïektjedh",
+       "watchlist-details": "{{PLURAL:$1|$1 bielie|$1 bielieh}} sïektjedh (doekoe dïerhkestidhbielieh).",
+       "wlshowlast": "Vuesehte minngemes $1 täjmoeh $2 biejjieh",
+       "watching": "Sïektjeminie...",
+       "unwatching": "Ov-sïektjedh...",
+       "enotif_impersonal_salutation": "{{SITENAME}} nuhtjien",
+       "created": "skaepede",
+       "deletepage": "Tjåegkedh bielie",
+       "historywarning": "Vaaroehtidh: Bielie datne gïehtele ahte sihkut åtna histovrije:",
+       "actioncomplete": "Deahpadimmie voerkes",
+       "deletedtext": "\"$1\" lea sihkojuvvon.\nVuajna $2 ihke galtege bïjre männgan sihkojuvvonh.",
+       "dellogpage": "Sihkkun logge",
+       "deletecomment": "Gaavhtan ihke sihkkuma",
+       "deleteotherreason": "Jeatjebh/ehkstre gaavhtan:",
+       "deletereasonotherlist": "Jeatjebh gaavhtan",
+       "rollbacklink": "jurrelde bååstede",
+       "protectlogpage": "Vaarjelidh logge",
+       "prot_1movedto2": "[[$1]] jåhta gåajkoe [[$2]]",
+       "protect-legend": "Skylledh vaarjelidh",
+       "protectcomment": "Lahtestimmie:",
+       "protectexpiry": "Boarasnuvve:",
+       "protect_expiry_invalid": "Ov-jiltiige buaorasjnuvvenaigi.",
+       "protect_expiry_old": "Boarasnuvvenaigi lea vaesedh.",
+       "protect-text": "Daesnie dorje datne vuajna jih värrhtoedimmie vaarjelidhdaltese dejstie bielie '''$1'''.",
+       "protect-locked-access": "Dov nuhtjien åtna ijje luhpie gåajkoe värrhtoedimmie tjaeleste-vaarjelidh.\nDaaletje tjaeleste-vaarjelidh sïjsestäälninge ihke bielie '''$1''' lea:",
+       "protect-default": "(åvte-veeljeme)",
+       "protect-fallback": "Luhpie \"$1\"",
+       "protect-level-autoconfirmed": "Tjöödtjehtidh ov-registreered nuhtjienh",
+       "protect-level-sysop": "Barre reeredh",
+       "protect-summary-cascade": "viididuvvon",
+       "protect-expiring": "boarasnuvve $1 (UTC)",
+       "protect-cascade": "Vaarjelidh bielieh guosket sïjse dïhte bielie (viidit suodjaluse)",
+       "protect-cantedit": "Datne dorje ijje värrhtoedimmie vaarjelidhdaltese ihke dïhte bielie, ihke datne ijja åtna luhpie ahte värrhtoedimmie dïhte.",
+       "protect-expiry-options": "2 täjmoe:2 hours,1 biejjie:1 day,3 biejjie:3 days,1 våhkoe:1 week,2 våhkoe:2 weeks,1 aske:1 month,3 aske:3 months,6 aske:6 months,1 jaepie:1 year,gietjieloeves:infinite",
+       "restriction-type": "Permisjovne:",
+       "restriction-level": "Restriksjovne daltese:",
+       "restriction-edit": "Värrhtoedimmie",
+       "restriction-move": "Jåhta",
+       "restriction-create": "Skaepiedidh",
+       "restriction-level-sysop": "dïeves-vaarjelidh",
+       "undeleterevisions": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}} våarhkoe",
+       "undeletebtn": "Mahtsat",
+       "undelete-search-submit": "Ohtsedh",
+       "namespace": "Nommeïebne:",
+       "invert": "Jarkoe veeljeme",
+       "blanknamespace": "(Bielieh)",
+       "contributions": "Nuhtjien värrhtoedimmieh",
+       "mycontris": "Mov värrhtoedimmieh",
+       "contribsub2": "Ihke $1 ($2)",
+       "uctop": "(gïerege)",
+       "month": "Raejeste aske (jih övtebe):",
+       "year": "Raejeste jaepie (jih övtebe):",
+       "sp-contributions-newbies-sub": "Ihke orre nuhtjienh",
+       "sp-contributions-blocklog": "Tjöödtjehtidh logge",
+       "sp-contributions-talk": "Digkiedimmie",
+       "sp-contributions-username": "IP Tjaalesijjie jallh nuhtjiennomme:",
+       "sp-contributions-submit": "Ohtsedh",
+       "whatlinkshere": "Bilieh goh lïenghkeh diekie",
+       "whatlinkshere-title": "Bielieh goh lïenghke gåajkoe $1",
+       "whatlinkshere-page": "Bielie:",
+       "linkshere": "Tjuovvovasj bielie lïenghke gåajkoe '''[[:$1]]''':",
+       "nolinkshere": "Ijje bielieh lïenghke gåajkoe '''[[:$1]]'''.",
+       "isredirect": "bïjre-dirisjovne bielie",
+       "istemplate": "lasihuvvon goh maale",
+       "whatlinkshere-prev": "{{PLURAL:$1|övtebe|övtebe $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|minngebe|minngebe $1}}",
+       "whatlinkshere-links": "← lïenghkeh",
+       "blockip": "Tjöödtjehtidh nuhtjien",
+       "ipaddressorusername": "!!FUZZY!!IP Tjaalesijjie jallh nuhtjiennomme:",
+       "ipbother": "Jeatjebh tïjje:",
+       "ipboptions": "2 täjmoe:2 hours,1 biejjie:1 day,3 biejjie:3 days,1 våhkoe:1 week,2 våhkoe:2 weeks,1 aske:1 month,3 aske:3 months,6 aske:6 months,1 jaepie:1 year,gietjieloeves:infinite",
+       "ipblocklist": "Lästoe bijjelen tjöödtjehtidh IP tjaalesijjieh jih nuhtjiennommeh",
+       "ipblocklist-submit": "Ohtsedh",
+       "blocklink": "tjöödtjehtidh",
+       "unblocklink": "ov-tjöödtjehtidh",
+       "contribslink": "dåarjoeh",
+       "blocklogpage": "Tjöödtjehtidh logge",
+       "blocklogentry": "blåhkedidh \"[[$1]]\" $2 $3",
+       "lockdb": "Tjuevtedh daatabaase",
+       "lockbtn": "Tjuevtedh daatabaase",
+       "databasenotlocked": "Daatabaase lea ijje tjuevtedh.",
+       "move-page-legend": "Jåhta bielie",
+       "movearticle": "Jåhta bielie:",
+       "newtitle": "Gåajkoe orre tiitele:",
+       "move-watch": "Sïektjedh dïhte bielie",
+       "movepagebtn": "Jåhta bielie",
+       "pagemovedsub": "Jåhta lähkoe",
+       "articleexists": "Bielie meatan dïhte nomme gååvnese joe, jallh\nnome dov åtna veeljeme lea ijje jiiltige.\nGïemhpes veeljeme jeatjebh nomme.",
+       "movetalk": "Jåhta aaj dïerkestidhbielie, bïjre dïhte gååvnese.",
+       "movelogpage": "Jåhta logge",
+       "movereason": "Gaavhtan:",
+       "revertmove": "jåhta bååstede",
+       "export": "Ehksporte bielieh",
+       "export-submit": "Ehksporte",
+       "export-addcat": "Lissiehtidh",
+       "export-templates": "Inkludera mallar",
+       "allmessages": "Systeeme dïrje",
+       "allmessagesname": "Nomme",
+       "thumbnail-more": "Vijriedidh",
+       "thumbnail_error": "Båajhtode nuelesne skaepede dejstie miniatyvreguvvie: $1",
+       "import": "Imporhte bielieh",
+       "import-interwiki-submit": "Imporhte",
+       "importstart": "Imporhte bielieh...",
+       "import-revision-count": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}}",
+       "importfailed": "Imporhte steegkeldahkesne: $1",
+       "importsuccess": "Imporhte lähkoe!",
+       "importlogpage": "Imporhte logge",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}}",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|gïehtjedamme|gïehtjedammeh}} raejeste $2",
+       "tooltip-pt-userpage": "Mov nuhtjienbielie",
+       "tooltip-pt-mytalk": "Mov dïjveldidh bielie",
+       "tooltip-pt-preferences": "Mov sïjsesäälningeh",
+       "tooltip-pt-watchlist": "Lästoe bijjelen bielieh goh sïektjedh",
+       "tooltip-pt-mycontris": "Lästoe bijjelen mov värrhtoedimmie",
+       "tooltip-pt-login": "Dov åådtje logge sïjse, bine dïhte lea ijje daerpies.",
+       "tooltip-pt-logout": "Logge ålkone",
+       "tooltip-ca-talk": "Dïjveldidh bïjre sisvege bieliej",
+       "tooltip-ca-edit": "Dov dorje värrhtoedimmie dïhte bielie. Nuhtjie åvte-vuesiehtidh båaloe åvte spååredh.",
+       "tooltip-ca-addsection": "Lissiehtidh lahtestimmie gåajkoe dïhte dïjveldidh.",
+       "tooltip-ca-viewsource": "Dïhte bielie lea vaarjelidh. Dov dorje vuesehte gaaltjiej.",
+       "tooltip-ca-protect": "Vaarjelidh dïhte bielie",
+       "tooltip-ca-delete": "Tjåegkedh dïhte bielie",
+       "tooltip-ca-move": "Jåhta dïhte bielie",
+       "tooltip-ca-watch": "Lissiehtidh dïhte bielie gåajkoe dov sïektjedhlästoe",
+       "tooltip-ca-unwatch": "Sirdde dïhte bielie raejeste dov sïektjedhlästoe",
+       "tooltip-search": "Ohtsedh {{SITENAME}}sne",
+       "tooltip-p-logo": "Åejjiebielie",
+       "tooltip-n-mainpage": "Gåajkoe aalkoebielie vaadtsa",
+       "tooltip-n-portal": "Bïjre prosjekte, mij dov dorje, lij dov gaavnedh daeverh",
+       "tooltip-n-currentevents": "Bïevnesh bïjre daaletje deahpadimmieh",
+       "tooltip-n-recentchanges": "Lästoe männganes sjiehtedh bijjelen nille {{SITENAME}}.",
+       "tooltip-n-randompage": "Vaadtsa summal bielie",
+       "tooltip-n-help": "Viehkie jih bïevnesh {{SITENAME}} bïjre.",
+       "tooltip-t-whatlinkshere": "Lästoe bijjelen gaajhke wiki bielieh goh lïenghke diekie",
+       "tooltip-feed-rss": "RSS feed ihke dïhte bielie",
+       "tooltip-feed-atom": "Atom feed ihke dïhte bielie",
+       "tooltip-t-contributions": "Vuesehte lästoe bijjelen värrhtoedimmieh dejstie dïhte nuhtjien",
+       "tooltip-t-emailuser": "Seedtedh e-påaste gåajkoe dïhte nuhtjien",
+       "tooltip-t-upload": "Sadde guvvir jallh meedia baalkah",
+       "tooltip-t-specialpages": "Lästoe gaajhke joekoen bielieh bijjelen",
+       "tooltip-ca-nstab-user": "Vuesehte nuhtjien bieliej",
+       "tooltip-ca-nstab-project": "Vuesehte prosjekte bieliej",
+       "tooltip-ca-nstab-image": "Vuesehte guvvie bieliej",
+       "tooltip-ca-nstab-template": "Vuesehte maalej",
+       "tooltip-ca-nstab-help": "Vuesehte viehkie bieliej",
+       "tooltip-ca-nstab-category": "Vuesehte kategorije bieliej",
+       "tooltip-minoredit": "Mïerhkesjidh dïhte lea ohtje värrhtoedimmie",
+       "tooltip-save": "Spååredh dov värrhtoedimmieh",
+       "tooltip-preview": "Åvte-vuesiehtidh dov värrhtoedimmie, gïemhpes nuhtjie dïhte åvte spååredh!",
+       "tooltip-diff": "Vuesehte guhte värrhtoedimmieh dov åtna dorjeme dejstie tjaalege.",
+       "tooltip-compareselectedversions": "Vuesehte joekehts gaskesne dah göökte vïhtesjidh låhkoeh dejstie dïhte bielie.",
+       "tooltip-watch": "Lissiehtidh dïhte bielie gåajkoe dov sïektjedhlästoe",
+       "siteuser": "{{SITENAME}} nuhtjien $1",
+       "siteusers": "{{SITENAME}} nuhtjien(h) $1",
+       "previousdiff": "← Övtebe joekehts",
+       "nextdiff": "Minngebe joekehts →",
+       "file-info": "baalka stoerre: $1, MIME-vuekie: $2",
+       "file-info-size": "$1 × $2 pixel, baalka stoerre: $3, MIME-vuekie: $4",
+       "file-nohires": "Ijje jïlle bäjjeselöösninge jaksoes.",
+       "svg-long-desc": "SVG baalka, maadth-stoerre $1 × $2 pixel, baalka stoerre: $3",
+       "show-big-image": "Dïeves stoerre",
+       "newimages": "Gallerije dejstie orre baalkah",
+       "ilsubmit": "Ohtsedh",
+       "metadata": "Metadaata",
+       "metadata-expand": "Vuesehte vijriedidh detaaljeh",
+       "metadata-collapse": "Gaptjedh vijrede daeverh",
+       "metadata-fields": "EXIF-dajve goh lästoe sïjse dïhte dïrje vuesehte nille guvviebielie gåessie metadaatataabelle lea unniedidh.\nJeatjebh dajveh lea gaptjedh goh sïejhme, bine vuesehte gåessie taabelle stoerre.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-imagewidth": "Gamte",
+       "exif-imagelength": "Gåhkoe",
+       "exif-model": "Guvviedahke hammohke",
+       "exif-software": "Möövhkesvaare nuhtjie",
+       "exif-filesource": "Guvvie gaaltjie",
+       "exif-gpslatituderef": "Noerhte jallh Åarjetje Laatituude",
+       "exif-gpslatitude": "Laatituude",
+       "exif-gpslongituderef": "Lulnie jallh Jillege Låångdituude",
+       "exif-gpslongitude": "Låångdituude",
+       "exif-gpsareainformation": "Nomme ihke GPS davje",
+       "exif-meteringmode-0": "Ammes",
+       "exif-meteringmode-255": "Jeatjebh",
+       "exif-lightsource-0": "Ammes",
+       "exif-scenecapturetype-0": "Sïejhme",
+       "exif-contrast-1": "Möövhkes",
+       "exif-contrast-2": "Garre",
+       "exif-sharpness-1": "Möövhkes",
+       "exif-sharpness-2": "Garre",
+       "exif-subjectdistancerange-0": "Ammes",
+       "exif-gpslatitude-n": "Noerhte latituude",
+       "exif-gpslatitude-s": "Åarjetje laatituude",
+       "exif-gpslongitude-e": "Lulnie låångdituude",
+       "exif-gpslongitude-w": "Jillege låångdituude",
+       "namespacesall": "gaajhke",
+       "monthsall": "gaajhke",
+       "scarytranscludetoolong": "[URL lea ihke guhkie; gaatelassjedh]",
+       "confirm-purge-top": "Döömedh cache ihke dïhte bielie?",
+       "imgmultipageprev": "← övtebe bielie",
+       "imgmultipagenext": "minngebe bielie →",
+       "imgmultigo": "Vaadtsa!",
+       "table_pager_next": "Minngebe bielie",
+       "table_pager_prev": "Övtebe bielie",
+       "table_pager_first": "Voestemes bielie",
+       "table_pager_last": "Minngemes bielie",
+       "table_pager_limit_submit": "Vaadtsa",
+       "autosumm-new": "Orre bielie: $1",
+       "watchlisttools-view": "Sïektjedhlästoe",
+       "watchlisttools-edit": "Vuesehte jih värrhtoedimmie sïektjedhlästoe",
+       "watchlisttools-raw": "Värrhtordimmie saajpe sïektjedhlästoe",
+       "unknown_extension_tag": "Ammes ekshtensjovne lissie \"$1\"",
+       "version": "Låhkoe",
+       "specialpages": "Joekoen bielieh"
 }
index 94e2a25..fcec449 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Hakka"
-        ]
-    },
-    "sunday": "Svondo",
-    "monday": "Muvhuro",
-    "tuesday": "Chipiri",
-    "wednesday": "Chitatu",
-    "thursday": "China",
-    "friday": "Chishanu",
-    "saturday": "Mugovera",
-    "january": "Ndira",
-    "february": "Kukadzi",
-    "march": "Kurume",
-    "april": "Kubvumbi",
-    "may_long": "Chivabvu",
-    "june": "Chikumi",
-    "july": "Chikunguru",
-    "august": "Nyamavhuvhu",
-    "september": "Gunyana",
-    "october": "Gumiguru",
-    "november": "Mbudzi",
-    "december": "Zvita",
-    "january-gen": "Ndira",
-    "february-gen": "Kukadzi",
-    "march-gen": "Kurume",
-    "april-gen": "Kubvumbi",
-    "may-gen": "Chivabvu",
-    "june-gen": "Chikumi",
-    "july-gen": "Chikunguru",
-    "august-gen": "Nyamavhuvhu",
-    "september-gen": "Gunyana",
-    "october-gen": "Gumiguru",
-    "november-gen": "Mbudzi",
-    "december-gen": "Zvita",
-    "cancel": "Kanzura",
-    "mytalk": "Hurukuro dzangu",
-    "navigation": "Banguranyika",
-    "qbedit": "Chinja",
-    "help": "Rubatsiro",
-    "search": "Tsvaga",
-    "searchbutton": "Tsvaga",
-    "go": "Enda",
-    "searcharticle": "Enda",
-    "history_short": "Zvemakare",
-    "printableversion": "Rinoita kuprinta",
-    "permalink": "Zvikochekero Zvisingachinje",
-    "edit": "Chinja",
-    "delete": "Bharanura",
-    "protect": "Chengetedza",
-    "talk": "Hurukuro",
-    "toolbox": "Maturuzi",
-    "otherlanguages": "Mimwe Mitauro",
-    "currentevents": "Zvirikuitika",
-    "currentevents-url": "Project:Zvirikuitika",
-    "disclaimers": "Matandanyadzi",
-    "edithelp": "Mashandurirwo",
-    "mainpage": "Peji Rekutanga",
-    "mainpage-description": "Peji Rekutanga",
-    "portal": "Mukova wegutse",
-    "youhavenewmessagesmulti": "Une mashoko matsva pa$1",
-    "editsection": "chinja",
-    "editold": "chinja",
-    "nstab-main": "Gani",
-    "viewsource": "Wona mabviro",
-    "yourname": "Zita:",
-    "yourpassword": "Password:",
-    "yourpasswordagain": "Nyorazve password:",
-    "remembermypassword": "Ndiyeuke (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Gamuchirwa",
-    "userlogin": "Gamuchirwa / Gadzira Akaunzi",
-    "logout": "Chibuda",
-    "userlogout": "Chibuda",
-    "notloggedin": "Hauna kugamuchirwa",
-    "createaccount": "Gadzira Akaunzi",
-    "summary": "Muchidimbu:",
-    "minoredit": "Uku kushandurwa kudiki",
-    "watchthis": "Ringa peji rino",
-    "savearticle": "Kotsa peji",
-    "showpreview": "Ratidza chipandwa",
-    "showdiff": "Ratidza zvasandurwa",
-    "mypreferences": "Zvandinosarudza",
-    "prefs-rc": "Zvaba Kuchinjwa",
-    "searchresultshead": "Tsvaga",
-    "youremail": "E-mail:",
-    "username": "Zita:",
-    "recentchanges": "Zvaba Kuchinjwa",
-    "recentchangeslinked": "Zvinoenderana nezvachinjwa",
-    "recentchangeslinked-feed": "Zvinoenderana nezvachinjwa",
-    "recentchangeslinked-toolbox": "Zvinoenderana nezvachinjwa",
-    "upload": "Isa fayera",
-    "uploadbtn": "Isa fayera",
-    "uploadnologin": "Hauna kugamuchirwa",
-    "watchthisupload": "Ringa peji rino",
-    "randompage": "Peji nhemwa",
-    "move": "Chichinura",
-    "movethispage": "Chichinura kupeji iri",
-    "watchlist": "Zvandakarinda",
-    "mywatchlist": "Zvandakarinda",
-    "watch": "Rinda",
-    "watchthispage": "Ringa peji rino",
-    "prot_1movedto2": "[[$1]] rachichinurwa ku [[$2]]",
-    "restriction-edit": "Chinja",
-    "restriction-move": "Chichinura",
-    "undelete-search-submit": "Tsvaga",
-    "contributions": "Mushandisi Kanzatu",
-    "mycontris": "Kanzatu kangu",
-    "sp-contributions-submit": "Tsvaga",
-    "whatlinkshere": "Zvakakochekera pano",
-    "move-page-legend": "Chichinura peji",
-    "movepagebtn": "Chichinura peji",
-    "movereason": "Chikonzero",
-    "allmessages": "Mashoko esystem",
-    "tooltip-pt-preferences": "Zvandinosarudza",
-    "tooltip-pt-logout": "Chibuda",
-    "tooltip-ca-move": "Chichinura kupeji iri",
-    "tooltip-p-logo": "Peji Rekutanga",
-    "table_pager_limit_submit": "Enda",
-    "specialpages": "Mapeji akakosha"
+       "@metadata": {
+               "authors": [
+                       "Hakka"
+               ]
+       },
+       "sunday": "Svondo",
+       "monday": "Muvhuro",
+       "tuesday": "Chipiri",
+       "wednesday": "Chitatu",
+       "thursday": "China",
+       "friday": "Chishanu",
+       "saturday": "Mugovera",
+       "january": "Ndira",
+       "february": "Kukadzi",
+       "march": "Kurume",
+       "april": "Kubvumbi",
+       "may_long": "Chivabvu",
+       "june": "Chikumi",
+       "july": "Chikunguru",
+       "august": "Nyamavhuvhu",
+       "september": "Gunyana",
+       "october": "Gumiguru",
+       "november": "Mbudzi",
+       "december": "Zvita",
+       "january-gen": "Ndira",
+       "february-gen": "Kukadzi",
+       "march-gen": "Kurume",
+       "april-gen": "Kubvumbi",
+       "may-gen": "Chivabvu",
+       "june-gen": "Chikumi",
+       "july-gen": "Chikunguru",
+       "august-gen": "Nyamavhuvhu",
+       "september-gen": "Gunyana",
+       "october-gen": "Gumiguru",
+       "november-gen": "Mbudzi",
+       "december-gen": "Zvita",
+       "cancel": "Kanzura",
+       "mytalk": "Hurukuro dzangu",
+       "navigation": "Banguranyika",
+       "qbedit": "Chinja",
+       "help": "Rubatsiro",
+       "search": "Tsvaga",
+       "searchbutton": "Tsvaga",
+       "go": "Enda",
+       "searcharticle": "Enda",
+       "history_short": "Zvemakare",
+       "printableversion": "Rinoita kuprinta",
+       "permalink": "Zvikochekero Zvisingachinje",
+       "edit": "Chinja",
+       "delete": "Bharanura",
+       "protect": "Chengetedza",
+       "talk": "Hurukuro",
+       "toolbox": "Maturuzi",
+       "otherlanguages": "Mimwe Mitauro",
+       "currentevents": "Zvirikuitika",
+       "currentevents-url": "Project:Zvirikuitika",
+       "disclaimers": "Matandanyadzi",
+       "edithelp": "Mashandurirwo",
+       "mainpage": "Peji Rekutanga",
+       "mainpage-description": "Peji Rekutanga",
+       "portal": "Mukova wegutse",
+       "youhavenewmessagesmulti": "Une mashoko matsva pa$1",
+       "editsection": "chinja",
+       "editold": "chinja",
+       "nstab-main": "Gani",
+       "viewsource": "Wona mabviro",
+       "yourname": "Zita:",
+       "yourpassword": "Password:",
+       "yourpasswordagain": "Nyorazve password:",
+       "remembermypassword": "Ndiyeuke (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Gamuchirwa",
+       "userlogin": "Gamuchirwa / Gadzira Akaunzi",
+       "logout": "Chibuda",
+       "userlogout": "Chibuda",
+       "notloggedin": "Hauna kugamuchirwa",
+       "createaccount": "Gadzira Akaunzi",
+       "summary": "Muchidimbu:",
+       "minoredit": "Uku kushandurwa kudiki",
+       "watchthis": "Ringa peji rino",
+       "savearticle": "Kotsa peji",
+       "showpreview": "Ratidza chipandwa",
+       "showdiff": "Ratidza zvasandurwa",
+       "mypreferences": "Zvandinosarudza",
+       "prefs-rc": "Zvaba Kuchinjwa",
+       "searchresultshead": "Tsvaga",
+       "youremail": "E-mail:",
+       "username": "Zita:",
+       "recentchanges": "Zvaba Kuchinjwa",
+       "recentchangeslinked": "Zvinoenderana nezvachinjwa",
+       "recentchangeslinked-feed": "Zvinoenderana nezvachinjwa",
+       "recentchangeslinked-toolbox": "Zvinoenderana nezvachinjwa",
+       "upload": "Isa fayera",
+       "uploadbtn": "Isa fayera",
+       "uploadnologin": "Hauna kugamuchirwa",
+       "watchthisupload": "Ringa peji rino",
+       "randompage": "Peji nhemwa",
+       "move": "Chichinura",
+       "movethispage": "Chichinura kupeji iri",
+       "watchlist": "Zvandakarinda",
+       "mywatchlist": "Zvandakarinda",
+       "watch": "Rinda",
+       "watchthispage": "Ringa peji rino",
+       "prot_1movedto2": "[[$1]] rachichinurwa ku [[$2]]",
+       "restriction-edit": "Chinja",
+       "restriction-move": "Chichinura",
+       "undelete-search-submit": "Tsvaga",
+       "contributions": "Mushandisi Kanzatu",
+       "mycontris": "Kanzatu kangu",
+       "sp-contributions-submit": "Tsvaga",
+       "whatlinkshere": "Zvakakochekera pano",
+       "move-page-legend": "Chichinura peji",
+       "movepagebtn": "Chichinura peji",
+       "movereason": "Chikonzero",
+       "allmessages": "Mashoko esystem",
+       "tooltip-pt-preferences": "Zvandinosarudza",
+       "tooltip-pt-logout": "Chibuda",
+       "tooltip-ca-move": "Chichinura kupeji iri",
+       "tooltip-p-logo": "Peji Rekutanga",
+       "table_pager_limit_submit": "Enda",
+       "specialpages": "Mapeji akakosha"
 }
index 64d48e6..b538424 100644 (file)
        "nmembers": " $1 {{PLURAL:$1|ka mid ah|ka mid ah}}",
        "lonelypages": "Boggaga agoonta ah",
        "uncategorizedpages": "Maqaalada aan la aruurin",
-       "popularpages": "Boggaga caanka ah",
        "prefixindex": "Dhamaan bogagga leh qoraalka hore",
        "shortpages": "Boggaga gaaban",
        "longpages": "Boggaga dhaadheer",
index 6d7a6a3..1f216ea 100644 (file)
        "mergehistory-same-destination": "Burimi dhe faqja e përcaktimit nuk mund të jenë të njëjta",
        "mergehistory-reason": "Arsyeja:",
        "mergelog": "Regjistri i bashkimeve",
-       "pagemerge-logentry": "u bashkua [[$1]] në [[$2]] (versione deri më $3)",
        "revertmerge": "Ndaj",
        "mergelogpagetext": "Më poshtë jepet një listë e bashkimeve së fundmi nga historiku i një faqeje në historikun e një faqeje tjetër.",
        "history-title": "Historiku i redaktimeve të \"$1\"",
        "statistics": "Statistika",
        "statistics-header-pages": "Statistikat e faqes",
        "statistics-header-edits": "Statistikat e redaktimit",
-       "statistics-header-views": "Statistikat e shikimit",
        "statistics-header-users": "Statistikat e përdoruesve",
        "statistics-header-hooks": "Statistikat të tjera",
        "statistics-articles": "Përmbajtja e faqeve",
        "statistics-files": "Skedat e ngarkuara",
        "statistics-edits": "Redaktimet e faqes që kur {{SITENAME}} u regjistrua",
        "statistics-edits-average": "Ndryshime mesatare për faqe",
-       "statistics-views-total": "Shikimet gjithsej",
-       "statistics-views-total-desc": "Shikimet tek faqet joekzistuese dhe faqet speciale nuk janë të përfshira",
-       "statistics-views-peredit": "Shikimet për redaktim",
        "statistics-users": "[[Special:ListUsers|Përdoruesit]] e regjistruar",
        "statistics-users-active": "Përdoruesit aktiv",
        "statistics-users-active-desc": "Përdoruesit që kanë së paku një veprim në {{PLURAL:$1|ditën|$1 ditët}} e fundit",
-       "statistics-mostpopular": "Faqet më të shikuara",
        "doubleredirects": "Përcjellime dopjo",
        "doubleredirectstext": "Kjo faqe liston faqet përcjellëse tek faqet e tjera përcjellëse.\nSecili rresht përmban lidhjet tek përcjellimi i parë dhe përcjellimi i dytë, gjithashtu synimin e përcjellimit të dytë, që është zakonisht faqja synuese '''e vërtetë''', që faqja w parë duhej të ishte përcjellëse e kësaj faqeje.\n<del>Kalimet nga</del> hyrjet janë zgjidhur.",
        "double-redirect-fixed-move": "[[$1]] u zhvendos, tani është gjendet në [[$2]]",
        "uncategorizedtemplates": "Stampa të pakategorizuara",
        "unusedcategories": "Kategori të papërdorura",
        "unusedimages": "Figura të papërdorura",
-       "popularpages": "Artikuj të frekuentuar shpesh",
        "wantedcategories": "Kategori më të dëshiruara",
        "wantedpages": "Artikuj më të dëshiruar",
        "wantedpages-badtitle": "Titull i pavlefshëm në vendosjen e rezultateve: $1",
        "simpleantispam-label": "Kontroll anti-spam.\n'''MOS''' e plotësoni këtë!",
        "pageinfo-title": "Informacion për \" $1 \"",
        "pageinfo-header-edits": "Redaktimet",
-       "pageinfo-views": "Numri i shikimeve",
        "pageinfo-watchers": "Numri i mbikqyrësve",
        "pageinfo-edits": "Numri i redaktimeve",
        "pageinfo-authors": "Numri i autorëve të veçantë",
index 3cd21d8..bf93633 100644 (file)
        "mergehistory-same-destination": "Изворна и одредишна страница не могу бити исте",
        "mergehistory-reason": "Разлог:",
        "mergelog": "Дневник спајања",
-       "pagemerge-logentry": "је спојио [[$1]] у [[$2]] (све до измене $3)",
        "revertmerge": "растави",
        "mergelogpagetext": "Испод је списак најскоријих спајања историја двеју страница.",
        "history-title": "Историја измена странице „$1“",
        "statistics": "Статистике",
        "statistics-header-pages": "Странице",
        "statistics-header-edits": "Измене",
-       "statistics-header-views": "Прегледи",
        "statistics-header-users": "Корисници",
        "statistics-header-hooks": "Остало",
        "statistics-articles": "Странице са садржајем",
        "statistics-files": "Број послатих датотека",
        "statistics-edits": "Број измена страница откад постоји {{SITENAME}}",
        "statistics-edits-average": "Просечан број измена по страници",
-       "statistics-views-total": "Укупно прегледа",
-       "statistics-views-total-desc": "Прегледи непостојећих и посебних страница нису укључени",
-       "statistics-views-peredit": "Прегледа по измени",
        "statistics-users": "Регистровани [[Special:ListUsers|корисници]]",
        "statistics-users-active": "Активни корисници",
        "statistics-users-active-desc": "Корисници који су извршили бар једну радњу {{PLURAL:$1|1=претходни дан|у последња $1 дана|у последњих $1 дана}}",
-       "statistics-mostpopular": "Најпосећеније странице",
        "pageswithprop": "Стране с особином стране",
        "pageswithprop-legend": "Стране с особином стране",
        "pageswithprop-text": "Ова страна излистава стране које имају одређену особину",
        "uncategorizedtemplates": "Некатегорисани шаблони",
        "unusedcategories": "Некоришћене категорије",
        "unusedimages": "Некоришћене датотеке",
-       "popularpages": "Популарне странице",
        "wantedcategories": "Тражене категорије",
        "wantedpages": "Тражене странице",
        "wantedpages-badtitle": "Неисправан наслов у низу резултата: $1",
        "emailsubject": "Наслов:",
        "emailmessage": "Порука:",
        "emailsend": "Пошаљи",
-       "emailccme": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ð¿Ñ\80имеÑ\80ак Ð¿Ð¾Ñ\80Ñ\83ке Ðµ-поÑ\88Ñ\82ом",
-       "emailccsubject": "Ð\9fÑ\80имеÑ\80ак Ð²Ð°Ñ\88е Ð¿Ð¾Ñ\80Ñ\83ке Ð·Ð° $1: $2",
+       "emailccme": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\98Ñ\83 Ð¿Ð¾Ñ\80Ñ\83ке Ð½Ð° Ð¼Ð¾Ñ\98Ñ\83 Ðµ-поÑ\88Ñ\82Ñ\83.",
+       "emailccsubject": "Ð\9aопиÑ\98а Ð²Ð°Ñ\88е Ð¿Ð¾Ñ\80Ñ\83ке ÐºÐ¾Ñ\80иÑ\81никÑ\83 $1: $2",
        "emailsent": "Порука је послата",
-       "emailsenttext": "Ð\92аÑ\88а Ð¿Ð¾Ñ\80Ñ\83ка Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а Ðµ-поÑ\88Ñ\82ом.",
+       "emailsenttext": "Ð\92аÑ\88а Ðµ-поÑ\80Ñ\83ка Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а.",
        "emailuserfooter": "Ову е-поруку је {{GENDER:|послао|послала|послао}} $1 кориснику $2 путем е-поште с викија {{SITENAME}}.",
        "usermessage-summary": "Слање системске поруке.",
        "usermessage-editor": "Уређивач системских порука",
        "deletepage": "Обриши страницу",
        "confirm": "Потврди",
        "excontent": "садржај је био: „$1“",
-       "excontentauthor": "садржај је био: „$1“ (а једини уредник је био „[[Special:Contribs/$2|$2]]“)",
+       "excontentauthor": "садржај је био: „$1“ (а једини уредник [[Special:Contribs/$2|$2]])",
        "exbeforeblank": "садржај пре брисања је био: „$1“",
        "delete-confirm": "Брисање странице „$1“",
        "delete-legend": "Обриши",
        "pageinfo-robot-policy": "Индексирање од стране робота",
        "pageinfo-robot-index": "Дозвољено",
        "pageinfo-robot-noindex": "Није дозвољено",
-       "pageinfo-views": "Број прегледа",
        "pageinfo-watchers": "Број надгледача странице",
        "pageinfo-few-watchers": "Мање од $1 {{PLURAL:$1|пратиоца|пратилаца}}",
        "pageinfo-redirects-name": "Број преусмерења на ову страницу",
        "logentry-delete-delete": "$1 је {{GENDER:$2|обрисао|обрисала}} страницу $3",
        "logentry-delete-restore": "$1 је {{GENDER:$2|вратио|вратила}} страницу $3",
        "logentry-delete-event": "$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|1=догађаја|$5 догађаја|$5 догађаја}} у дневнику на $3: $4",
-       "logentry-delete-revision": "$1 је {{GENDER:$2|променио|променила}} видљивост $5 {{PLURAL:$5|измене|измена|1=измене}} на страници $3: $4",
+       "logentry-delete-revision": "$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|$5 измене|$5 измена|1=једне измене}} на страници $3: $4",
        "logentry-delete-event-legacy": "$1 је {{GENDER:$2|променио|променила}} видљивост догађаја у дневнику на $3",
        "logentry-delete-revision-legacy": "$1 је {{GENDER:$2|променио|променила}} видљивост измена на страници $3",
        "logentry-suppress-delete": "$1 је {{GENDER:$2|потиснуо|потиснула}} страницу $3",
        "pagelang-select-lang": "Изабери језик",
        "right-pagelang": "мењање језика странице",
        "action-pagelang": "промену језика странице",
+       "mediastatistics-summary": "Статистике о типовима послатих датотека. Овде су урачунате само најновије верзије датотека. Старе или обрисане верзије нису урачунате.",
        "mediastatistics-table-mimetype": "MIME тип",
-       "mediastatistics-table-count": "Број датотека"
+       "mediastatistics-table-extensions": "Могуће екстензије",
+       "mediastatistics-table-count": "Број датотека",
+       "mediastatistics-table-totalbytes": "Укупна величина",
+       "mediastatistics-header-bitmap": "Битмап слике",
+       "mediastatistics-header-drawing": "Цртежи (векторске слике)",
+       "mediastatistics-header-audio": "Аудио",
+       "mediastatistics-header-video": "Видео",
+       "mediastatistics-header-office": "Канцеларија"
 }
index fad5f2b..fe87203 100644 (file)
        "mergehistory-same-destination": "Izvorna i odredišna stranica ne mogu biti iste",
        "mergehistory-reason": "Razlog:",
        "mergelog": "Dnevnik spajanja",
-       "pagemerge-logentry": "je spojio [[$1]] u [[$2]] (sve do izmene $3)",
        "revertmerge": "rastavi",
        "mergelogpagetext": "Ispod je spisak najskorijih spajanja istorija dveju stranica.",
        "history-title": "Istorija izmena stranice „$1“",
        "statistics": "Statistike",
        "statistics-header-pages": "Stranice",
        "statistics-header-edits": "Izmene",
-       "statistics-header-views": "Pregledi",
        "statistics-header-users": "Korisnici",
        "statistics-header-hooks": "Ostalo",
        "statistics-articles": "Stranice sa sadržajem",
        "statistics-files": "Broj poslatih datoteka",
        "statistics-edits": "Broj izmena stranica otkad postoji {{SITENAME}}",
        "statistics-edits-average": "Prosečan broj izmena po stranici",
-       "statistics-views-total": "Ukupno pregleda",
-       "statistics-views-total-desc": "Pregledi nepostojećih i posebnih stranica nisu uključeni",
-       "statistics-views-peredit": "Pregleda po izmeni",
        "statistics-users": "Registrovani [[Special:ListUsers|korisnici]]",
        "statistics-users-active": "Aktivni korisnici",
        "statistics-users-active-desc": "Korisnici koji su izvršili bar jednu radnju {{PLURAL:$1|1=prethodni dan|u poslednja $1 dana|u poslednjih $1 dana}}",
-       "statistics-mostpopular": "Najposećenije stranice",
        "pageswithprop": "Strane s osobinom strane",
        "pageswithprop-legend": "Strane s osobinom strane",
        "pageswithprop-text": "Ova strana izlistava strane koje imaju određenu osobinu",
        "uncategorizedtemplates": "Nekategorisani šabloni",
        "unusedcategories": "Nekorišćene kategorije",
        "unusedimages": "Nekorišćene datoteke",
-       "popularpages": "Popularne stranice",
        "wantedcategories": "Tražene kategorije",
        "wantedpages": "Tražene stranice",
        "wantedpages-badtitle": "Neispravan naslov u nizu rezultata: $1",
        "emailsubject": "Naslov:",
        "emailmessage": "Poruka:",
        "emailsend": "Pošalji",
-       "emailccme": "Pošalji mi primerak poruke e-poštom",
-       "emailccsubject": "Primerak vaše poruke za $1: $2",
+       "emailccme": "Pošalji mi kopiju poruke na moju e-poštu.",
+       "emailccsubject": "Kopija vaše poruke korisniku $1: $2",
        "emailsent": "Poruka je poslata",
-       "emailsenttext": "Vaša poruka je poslata e-poštom.",
+       "emailsenttext": "Vaša e-poruka je poslata.",
        "emailuserfooter": "Ovu e-poruku je {{GENDER:|poslao|poslala|poslao}} $1 korisniku $2 putem e-pošte s vikija {{SITENAME}}.",
        "usermessage-summary": "Slanje sistemske poruke.",
        "usermessage-editor": "Uređivač sistemskih poruka",
        "deletepage": "Obriši stranicu",
        "confirm": "Potvrdi",
        "excontent": "sadržaj je bio: „$1“",
-       "excontentauthor": "sadržaj je bio: „$1“ (a jedini urednik je bio „[[Special:Contribs/$2|$2]]“)",
+       "excontentauthor": "sadržaj je bio: „$1“ (a jedini urednik [[Special:Contribs/$2|$2]])",
        "exbeforeblank": "sadržaj pre brisanja je bio: „$1“",
        "delete-confirm": "Brisanje stranice „$1“",
        "delete-legend": "Obriši",
        "pageinfo-robot-policy": "Indeksiranje od strane robota",
        "pageinfo-robot-index": "Dozvoljeno",
        "pageinfo-robot-noindex": "Nije dozvoljeno",
-       "pageinfo-views": "Broj pregleda",
        "pageinfo-watchers": "Broj nadgledača stranicе",
        "pageinfo-few-watchers": "Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}",
        "pageinfo-redirects-name": "Broj preusmerenja na ovu stranicu",
        "logentry-delete-delete": "$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3",
        "logentry-delete-restore": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3",
        "logentry-delete-event": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=događaja|$5 događaja|$5 događaja}} u dnevniku na $3: $4",
-       "logentry-delete-revision": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost $5 {{PLURAL:$5|izmene|izmena|1=izmene}} na stranici $3: $4",
+       "logentry-delete-revision": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|$5 izmene|$5 izmena|1=jedne izmene}} na stranici $3: $4",
        "logentry-delete-event-legacy": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost događaja u dnevniku na $3",
        "logentry-delete-revision-legacy": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost izmena na stranici $3",
        "logentry-suppress-delete": "$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3",
        "pagelang-language": "Jezik",
        "pagelang-select-lang": "Izaberi jezik",
        "right-pagelang": "menjanje jezika stranice",
-       "action-pagelang": "promenu jezika stranice"
+       "action-pagelang": "promenu jezika stranice",
+       "mediastatistics-summary": "Statistike o tipovima poslatih datoteka. Ovde su uračunate samo najnovije verzije datoteka. Stare ili obrisane verzije nisu uračunate.",
+       "mediastatistics-table-mimetype": "MIME tip",
+       "mediastatistics-table-extensions": "Moguće ekstenzije",
+       "mediastatistics-table-count": "Broj datoteka",
+       "mediastatistics-table-totalbytes": "Ukupna veličina",
+       "mediastatistics-header-bitmap": "Bitmap slike",
+       "mediastatistics-header-drawing": "Crteži (vektorske slike)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Video",
+       "mediastatistics-header-office": "Kancelarija"
 }
index af91034..c65edf6 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Jatrobat",
-            "MF-Warburg",
-            "Sibande"
-        ]
-    },
-    "sunday": "LiSontfo",
-    "monday": "Msombuluko",
-    "tuesday": "Lesibili",
-    "wednesday": "Lesitsatfu",
-    "thursday": "Lesine",
-    "friday": "Lesihlanu",
-    "saturday": "Mgcibelo",
-    "sun": "LiSontfo",
-    "mon": "Msombuluko",
-    "tue": "Lesibili",
-    "wed": "Lesitsatfu",
-    "thu": "Lesine",
-    "fri": "Lesihlanu",
-    "sat": "Mgcibelo",
-    "january": "Bhimbidvwane",
-    "february": "iNdlovana",
-    "march": "iNdlovu",
-    "april": "Mabasa",
-    "may_long": "iNkhwekhweti",
-    "june": "iNhlaba",
-    "july": "Kholwane",
-    "august": "iNgci",
-    "september": "iNyoni",
-    "october": "iMphala",
-    "november": "Lweti",
-    "december": "iNgongoni",
-    "january-gen": "Bhimbidvwane",
-    "february-gen": "iNdlovana",
-    "march-gen": "iNdlovu",
-    "april-gen": "Mabasa",
-    "may-gen": "iNkhwekhweti",
-    "june-gen": "iNhlaba",
-    "july-gen": "Kholwane",
-    "august-gen": "iNgci",
-    "september-gen": "iNyoni",
-    "october-gen": "iMphala",
-    "november-gen": "Lweti",
-    "december-gen": "iNgongoni",
-    "jan": "Bhi",
-    "feb": "iNdlova",
-    "mar": "iNdlovu",
-    "apr": "Mab",
-    "may": "iNkhwe",
-    "jun": "iNhla",
-    "jul": "Kho",
-    "aug": "iNgci",
-    "sep": "iNyo",
-    "oct": "iMpha",
-    "nov": "Lwe",
-    "dec": "iNgo",
-    "category_header": "Makhasi lakulomkhakha \"$1\"",
-    "subcategories": "Mikhakha lengaphansi",
-    "category-media-header": "i-Media lekulomkhakha \"$1\"",
-    "category-empty": "''Lomkhakha ute makhasi nobe i-media lewuphetse.''",
-    "hidden-category-category": "Mikhakha lefihliwe",
-    "listingcontinuesabbrev": "chubeka.",
-    "index-category": "Makhasi lacokelelwe",
-    "noindex-category": "Makhasi lasabalele",
-    "about": "Kabanti",
-    "article": "Likhasi lentfo",
-    "newwindow": "(kuvulekela tukweli-window lelisha)",
-    "cancel": "Yekela",
-    "moredotdotdot": "Lokunyenti...",
-    "mypage": "Likhasi lami",
-    "mytalk": "Tingcoco tami",
-    "anontalk": "Tingcogco letentwe ngulelikheli lale-IP",
-    "qbfind": "Tfola",
-    "qbbrowse": "Browse",
-    "qbedit": "Hlela",
-    "qbpageoptions": "Lelikhasi",
-    "qbmyoptions": "Makhasi ami",
-    "vector-action-addsection": "Ngeta sihloko",
-    "vector-action-move": "Khweshisa",
-    "vector-view-create": "Create",
-    "vector-view-edit": "Hlela",
-    "vector-view-history": "Bona umlandvo",
-    "vector-view-view": "Fundza",
-    "actions": "Tento",
-    "returnto": "Buyela ku $1.",
-    "help": "Sita",
-    "search": "Sesha",
-    "searchbutton": "Sesha",
-    "go": "Hamba",
-    "searcharticle": "Hamba",
-    "history": "Umlandvo walelikhasi",
-    "history_short": "Umlandvo",
-    "print": "Print",
-    "edit": "Hlela",
-    "create": "Yakha",
-    "editthispage": "Hlela lelikhasi",
-    "create-this-page": "Yakha lelikhasi",
-    "delete": "Sula",
-    "deletethispage": "Sula lelikhasi",
-    "protect": "Vikela",
-    "protect_change": "gucula",
-    "protectthispage": "Vikela lelikhasi",
-    "unprotect": "Yekelela",
-    "unprotectthispage": "Yekelela lelikhasi",
-    "newpage": "Likhasi lelisha",
-    "talkpage": "Coca ngalelikhasi",
-    "talkpagelinktext": "Ingcoco",
-    "specialpage": "Likhasi lelibalulekile",
-    "personaltools": "Mathulusi emuntfu",
-    "postcomment": "Sihloko lesinsha",
-    "articlepage": "Bona likhasi lelicuketse",
-    "talk": "Ingcoco",
-    "views": "Kubukeka",
-    "toolbox": "Libhokisi Lemathulusi",
-    "userpage": "Buna likhasi lemuntfu",
-    "projectpage": "Bona likhasi leprojekthi",
-    "imagepage": "Bona lelifayela likhasi",
-    "mediawikipage": "Bona likhasi lemiyaleto",
-    "viewhelppage": "Bona likhasi lelusito",
-    "categorypage": "Bona likhasi lemikhakha",
-    "viewtalkpage": "Bona ingcoco",
-    "otherlanguages": "Ngaletinye tilwimi",
-    "redirectedfrom": "(Utfunyelelwe likhasi $1)",
-    "redirectpagesub": "Likhasi lekutfumela",
-    "lastmodifiedat": "Lelikhasi ligcine kushintjwa ngetingu $1, ngo $2.",
-    "viewcount": "Lelikhasi selibonwe {{PLURAL:$1|kanye|kayi $1}}.",
-    "protectedpage": "Likhasi lelivikelekile",
-    "jumpto": "Zuba ku:",
-    "jumptosearch": "sesha",
-    "view-pool-error": "Siyacolisa, maseva etfu agwele kakhulu ngalesikhatsi.\nKunebantfu labanyenti labatama kubona lelikhasi.\nSicela ume kancane ngaphambi lwekuphindze ubone lelikhasi.\n\n$1",
-    "aboutsite": "Kabanti nge {{SITENAME}}",
-    "aboutpage": "Project:Kabanti",
-    "copyright": "Lokucuketfwe kungaphansi kwe $1.",
-    "copyrightpage": "{{ns:project}}:Malungelo ekukhicita",
-    "currentevents": "Tentakalo tanyalo",
-    "currentevents-url": "Project:Tentakalo tanyalo",
-    "edithelp": "Lusito ngekuhlela",
-    "mainpage": "Likhasi Lelikhulu",
-    "mainpage-description": "Likhasi lelikhulu",
-    "policy-url": "Project:Umtsetfo",
-    "portal": "Likhefi le-inthanethi",
-    "portal-url": "Project:Likhefi le-inthanethi",
-    "badaccess": "Liphutsa lemalungelo",
-    "badaccess-group0": "Awukavunyelwa kwenta lesento lobowutama kusenta.",
-    "badaccess-groups": "Lesento losicelile sincishiselwe bantfu labakule {{PLURAL:$2|ncumbi|labakunobe nguyiphi incumbi}}: $1.",
-    "ok": "Kulungile",
-    "retrievedfrom": "Kutsatfwe ku \"$1\"",
-    "youhavenewmessages": "Una $1 ($2).",
-    "youhavenewmessagesmulti": "Unemilayeto lemisha nge $1",
-    "editsection": "hlela",
-    "editold": "hlela",
-    "viewsourceold": "Bona kwakheka",
-    "editlink": "hlela",
-    "viewsourcelink": "Bona kwakheka",
-    "editsectionhint": "Hlela sihloko: $1",
-    "toc": "Lokucuketfwe",
-    "showtoc": "khomba",
-    "hidetoc": "fihla",
-    "thisisdeleted": "Bona nobe buyisela esimweni $1?",
-    "viewdeleted": "Bona $1?",
-    "nstab-main": "Likhasi",
-    "nstab-user": "Umuntfu",
-    "nstab-help": "Likhasi lelusito",
-    "loginlanguagelabel": "Lulwimi: $1",
-    "search-relatedarticle": "Lokuhlobene",
-    "searcheverything-enable": "Sesha onke ma namespaces",
-    "searchrelated": "lokuhlobene",
-    "searchall": "konke",
-    "showingresults": "Ngaphasi kukhonjiswa kuya ku {{PLURAL:$1|'''1''' umphumela|'''$1''' miphumela}} kucalwa nga #'''$2'''.",
-    "showingresultsnum": "Ngaphansi kukhonjiswa {{PLURAL:$3|'''1''' umphumela|'''$3''' miphumela}} kucalwa nga #'''$2'''.",
-    "showingresultsheader": "{{PLURAL:$5|Umphumela '''$1''' of '''$3'''|Imiphumela '''$1 - $2''' ye '''$3'''}} ya '''$4'''",
-    "search-nonefound": "Kute umphume lotfolwe/lofanele lesicelo sakho.",
-    "powersearch-legend": "Sesha ngalokuphakeme",
-    "powersearch-ns": "Sesha ku namespaces:",
-    "powersearch-redir": "Makhasi latfumelayo",
-    "powersearch-togglelabel": "Buka:",
-    "powersearch-toggleall": "Konke",
-    "powersearch-togglenone": "Kute",
-    "search-external": "Sesha ngelithulusi langaphandle",
-    "searchdisabled": "{{SITENAME}} kusesha kuvinjiwe.\nUngasesha nge Google.\nNaka kutsi makhasi abo e {{SITENAME}} angaba sekadlulelwe sikhatsi.",
-    "searchresultshead": "Sesha",
-    "uid": "Matisi Wemuntfu:",
-    "yourlanguage": "Lulwimi:",
-    "listfiles_date": "Lusuku",
-    "listfiles_name": "Ligama",
-    "listfiles_user": "Umuntfu",
-    "filehist-datetime": "Lusuku/Sikhatsi",
-    "filehist-user": "Umuntfu",
-    "brokenredirects-edit": "hlela",
-    "withoutinterwiki-submit": "Khomba",
-    "move": "Khweshisa",
-    "booksources-go": "Hamba",
-    "specialloguserlabel": "Umuntfu:",
-    "allpagessubmit": "Hamba",
-    "linksearch-ok": "Sesha",
-    "listusers-submit": "Khomba",
-    "watch": "Gadza",
-    "unwatch": "Yekela kugadza",
-    "restriction-edit": "Hlela",
-    "restriction-move": "Khweshisa",
-    "restriction-create": "Create",
-    "undelete-search-submit": "Sesha",
-    "sp-contributions-talk": "ingcoco",
-    "sp-contributions-submit": "Sesha",
-    "ipblocklist-submit": "Sesha",
-    "movelogpage": "Khweshisa i-log",
-    "allmessagesname": "Ligama",
-    "tooltip-search": "Sesha i-{{SITENAME}}",
-    "tooltip-p-logo": "Vakashela likhasi lelikhulu",
-    "ilsubmit": "Sesha",
-    "imgmultigo": "Hamba!",
-    "table_pager_limit_submit": "Hamba",
-    "version-specialpages": "Emakhasi labalulekile",
-    "specialpages": "Emakhasi labalulekile"
+       "@metadata": {
+               "authors": [
+                       "Jatrobat",
+                       "MF-Warburg",
+                       "Sibande",
+                       "Bobbyshabangu"
+               ]
+       },
+       "sunday": "LiSontfo",
+       "monday": "Msombuluko",
+       "tuesday": "Lesibili",
+       "wednesday": "Lesitsatfu",
+       "thursday": "Lesine",
+       "friday": "Lesihlanu",
+       "saturday": "Mgcibelo",
+       "sun": "LiSontfo",
+       "mon": "Msombuluko",
+       "tue": "Lesibili",
+       "wed": "Lesitsatfu",
+       "thu": "Lesine",
+       "fri": "Lesihlanu",
+       "sat": "Mgcibelo",
+       "january": "Bhimbidvwane",
+       "february": "iNdlovana",
+       "march": "iNdlovu",
+       "april": "Mabasa",
+       "may_long": "iNkhwekhweti",
+       "june": "iNhlaba",
+       "july": "Kholwane",
+       "august": "iNgci",
+       "september": "iNyoni",
+       "october": "iMphala",
+       "november": "Lweti",
+       "december": "iNgongoni",
+       "january-gen": "Bhimbidvwane",
+       "february-gen": "iNdlovana",
+       "march-gen": "iNdlovu",
+       "april-gen": "Mabasa",
+       "may-gen": "iNkhwekhweti",
+       "june-gen": "iNhlaba",
+       "july-gen": "Kholwane",
+       "august-gen": "iNgci",
+       "september-gen": "iNyoni",
+       "october-gen": "iMphala",
+       "november-gen": "Lweti",
+       "december-gen": "iNgongoni",
+       "jan": "Bhi",
+       "feb": "iNdlova",
+       "mar": "iNdlovu",
+       "apr": "Mab",
+       "may": "iNkhwe",
+       "jun": "iNhla",
+       "jul": "Kho",
+       "aug": "iNgci",
+       "sep": "iNyo",
+       "oct": "iMpha",
+       "nov": "Lwe",
+       "dec": "iNgo",
+       "category_header": "Makhasi lakulomkhakha \"$1\"",
+       "subcategories": "Mikhakha lengaphansi",
+       "category-media-header": "i-Media lekulomkhakha \"$1\"",
+       "category-empty": "''Lomkhakha ute makhasi nobe i-media lewuphetse.''",
+       "hidden-category-category": "Mikhakha lefihliwe",
+       "listingcontinuesabbrev": "chubeka.",
+       "index-category": "Makhasi lacokelelwe",
+       "noindex-category": "Makhasi lasabalele",
+       "about": "Kabanti",
+       "article": "Likhasi lentfo",
+       "newwindow": "(kuvulekela tukweli-window lelisha)",
+       "cancel": "Yekela",
+       "moredotdotdot": "Lokunyenti...",
+       "mypage": "Likhasi lami",
+       "mytalk": "Tingcoco tami",
+       "anontalk": "Tingcogco letentwe ngulelikheli lale-IP",
+       "qbfind": "Tfola",
+       "qbbrowse": "Browse",
+       "qbedit": "Hlela",
+       "qbpageoptions": "Lelikhasi",
+       "qbmyoptions": "Makhasi ami",
+       "actions": "Tento",
+       "returnto": "Buyela ku $1.",
+       "help": "Sita",
+       "search": "Sesha",
+       "searchbutton": "Sesha",
+       "go": "Hamba",
+       "searcharticle": "Hamba",
+       "history": "Umlandvo walelikhasi",
+       "history_short": "Umlandvo",
+       "print": "Print",
+       "edit": "Hlela",
+       "create": "Yakha",
+       "editthispage": "Hlela lelikhasi",
+       "create-this-page": "Yakha lelikhasi",
+       "delete": "Sula",
+       "deletethispage": "Sula lelikhasi",
+       "protect": "Vikela",
+       "protect_change": "gucula",
+       "protectthispage": "Vikela lelikhasi",
+       "unprotect": "Yekelela",
+       "unprotectthispage": "Yekelela lelikhasi",
+       "newpage": "Likhasi lelisha",
+       "talkpage": "Coca ngalelikhasi",
+       "talkpagelinktext": "Ingcoco",
+       "specialpage": "Likhasi lelibalulekile",
+       "personaltools": "Mathulusi emuntfu",
+       "articlepage": "Bona likhasi lelicuketse",
+       "talk": "Ingcoco",
+       "views": "Kubukeka",
+       "toolbox": "Libhokisi Lemathulusi",
+       "userpage": "Buna likhasi lemuntfu",
+       "projectpage": "Bona likhasi leprojekthi",
+       "imagepage": "Bona lelifayela likhasi",
+       "mediawikipage": "Bona likhasi lemiyaleto",
+       "viewhelppage": "Bona likhasi lelusito",
+       "categorypage": "Bona likhasi lemikhakha",
+       "viewtalkpage": "Bona ingcoco",
+       "otherlanguages": "Ngaletinye tilwimi",
+       "redirectedfrom": "(Utfunyelelwe likhasi $1)",
+       "redirectpagesub": "Likhasi lekutfumela",
+       "lastmodifiedat": "Lelikhasi ligcine kushintjwa ngetingu $1, ngo $2.",
+       "viewcount": "Lelikhasi selibonwe {{PLURAL:$1|kanye|kayi $1}}.",
+       "protectedpage": "Likhasi lelivikelekile",
+       "jumpto": "Zuba ku:",
+       "jumptosearch": "sesha",
+       "view-pool-error": "Siyacolisa, maseva etfu agwele kakhulu ngalesikhatsi.\nKunebantfu labanyenti labatama kubona lelikhasi.\nSicela ume kancane ngaphambi lwekuphindze ubone lelikhasi.\n\n$1",
+       "aboutsite": "Kabanti nge {{SITENAME}}",
+       "aboutpage": "Project:Kabanti",
+       "copyright": "Lokucuketfwe kungaphansi kwe $1.",
+       "copyrightpage": "{{ns:project}}:Malungelo ekukhicita",
+       "currentevents": "Tentakalo tanyalo",
+       "currentevents-url": "Project:Tentakalo tanyalo",
+       "edithelp": "Lusito ngekuhlela",
+       "mainpage": "Likhasi Lelikhulu",
+       "mainpage-description": "Likhasi lelikhulu",
+       "policy-url": "Project:Umtsetfo",
+       "portal": "Likhefi le-inthanethi",
+       "portal-url": "Project:Likhefi le-inthanethi",
+       "badaccess": "Liphutsa lemalungelo",
+       "badaccess-group0": "Awukavunyelwa kwenta lesento lobowutama kusenta.",
+       "badaccess-groups": "Lesento losicelile sincishiselwe bantfu labakule {{PLURAL:$2|ncumbi|labakunobe nguyiphi incumbi}}: $1.",
+       "ok": "Kulungile",
+       "retrievedfrom": "Kutsatfwe ku \"$1\"",
+       "youhavenewmessages": "Una $1 ($2).",
+       "youhavenewmessagesmulti": "Unemilayeto lemisha nge $1",
+       "editsection": "hlela",
+       "editold": "hlela",
+       "viewsourceold": "Bona kwakheka",
+       "editlink": "hlela",
+       "viewsourcelink": "Bona kwakheka",
+       "editsectionhint": "Hlela sihloko: $1",
+       "toc": "Lokucuketfwe",
+       "showtoc": "khomba",
+       "hidetoc": "fihla",
+       "thisisdeleted": "Bona nobe buyisela esimweni $1?",
+       "viewdeleted": "Bona $1?",
+       "nstab-main": "Likhasi",
+       "nstab-user": "Umuntfu",
+       "nstab-help": "Likhasi lelusito",
+       "loginlanguagelabel": "Lulwimi: $1",
+       "pt-login-button": "Ngena",
+       "revdelete-text-file": "emaveshini lacishiwe atosolo avela emlandvweni, kodvwa letinye tincenywe talendzaba ngete yabakhona emphakatsini.",
+       "revdelete-text-others": "Labanye bahleli {{LIGAMALELISAYITHI}} batokhona kutfola mibiko lecishiwe baphindze bakhone kuyibuyisa kutsi ibekhona besebentisa tinhlelo letifanako te interface, loku kungenteka kuphela uma kunemigomo letsite nemibandzela.",
+       "search-relatedarticle": "Lokuhlobene",
+       "searchrelated": "lokuhlobene",
+       "searchall": "konke",
+       "showingresults": "Ngaphasi kukhonjiswa kuya ku {{PLURAL:$1|'''1''' umphumela|'''$1''' miphumela}} kucalwa nga #'''$2'''.",
+       "search-nonefound": "Kute umphume lotfolwe/lofanele lesicelo sakho.",
+       "powersearch-legend": "Sesha ngalokuphakeme",
+       "powersearch-ns": "Sesha ku namespaces:",
+       "powersearch-togglelabel": "Buka:",
+       "powersearch-toggleall": "Konke",
+       "powersearch-togglenone": "Kute",
+       "search-external": "Sesha ngelithulusi langaphandle",
+       "searchdisabled": "{{SITENAME}} kusesha kuvinjiwe.\nUngasesha nge Google.\nNaka kutsi makhasi abo e {{SITENAME}} angaba sekadlulelwe sikhatsi.",
+       "searchresultshead": "Sesha",
+       "yourlanguage": "Lulwimi:",
+       "listfiles_date": "Lusuku",
+       "listfiles_name": "Ligama",
+       "listfiles_user": "Umuntfu",
+       "filehist-datetime": "Lusuku/Sikhatsi",
+       "filehist-user": "Umuntfu",
+       "brokenredirects-edit": "hlela",
+       "withoutinterwiki-submit": "Khomba",
+       "move": "Khweshisa",
+       "specialloguserlabel": "Umuntfu:",
+       "allpagessubmit": "Hamba",
+       "linksearch-ok": "Sesha",
+       "listusers-submit": "Khomba",
+       "watch": "Gadza",
+       "unwatch": "Yekela kugadza",
+       "restriction-edit": "Hlela",
+       "restriction-move": "Khweshisa",
+       "restriction-create": "Create",
+       "undelete-search-submit": "Sesha",
+       "sp-contributions-talk": "ingcoco",
+       "sp-contributions-submit": "Sesha",
+       "ipblocklist-submit": "Sesha",
+       "movelogpage": "Khweshisa i-log",
+       "allmessagesname": "Ligama",
+       "tooltip-search": "Sesha i-{{SITENAME}}",
+       "tooltip-p-logo": "Vakashela likhasi lelikhulu",
+       "ilsubmit": "Sesha",
+       "imgmultigo": "Hamba!",
+       "table_pager_limit_submit": "Hamba",
+       "version-specialpages": "Emakhasi labalulekile",
+       "specialpages": "Emakhasi labalulekile"
 }
index ad862c8..27e4dca 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Cbrown1023",
-            "Zyxoas (on st.wikipedia.org)"
-        ]
-    },
-    "sunday": "Sontaha",
-    "monday": "Mantaha",
-    "tuesday": "Labobedi",
-    "wednesday": "Laboraro",
-    "thursday": "Labone",
-    "friday": "Labohlano",
-    "saturday": "Moqebelo",
-    "january": "Pherekgong",
-    "february": "Hlakola",
-    "march": "Hlakubele",
-    "april": "Mmesa",
-    "may_long": "Motsheanong",
-    "june": "Phupjane",
-    "july": "Phupu",
-    "august": "Phato",
-    "september": "Lwetse",
-    "october": "Mphalane",
-    "november": "Pudungwana",
-    "december": "Tshitwe",
-    "may-gen": "Motsheanong",
-    "jan": "Phere",
-    "feb": "Hlako",
-    "mar": "Hlaku",
-    "apr": "Mmesa",
-    "may": "Motshe",
-    "jun": "Phupjane",
-    "jul": "Phupu",
-    "aug": "Phato",
-    "sep": "Lwetse",
-    "oct": "Mphala",
-    "nov": "Pudu",
-    "dec": "Tshitwe",
-    "category_header": "Dingolwa tse mokgeng wa \"$1\"",
-    "mypage": "Leqephe la ka",
-    "mytalk": "Leqephe la ka la moqoqo",
-    "navigation": "Eya ho",
-    "faq": "Dipotso-mehla",
-    "returnto": "Kgutlela ho $1.",
-    "tagline": "E tswa ho {{SITENAME}}",
-    "search": "Fuputsa",
-    "history": "Nalane",
-    "history_short": "Nalane",
-    "newpage": "Leqephe le letjha",
-    "talkpage": "Qoqa ka leqephe lena",
-    "talk": "Moqoqo",
-    "categorypage": "Mpontshe leqephe la mekga",
-    "otherlanguages": "Ka maleme a mang",
-    "jumptosearch": "phuputso",
-    "mainpage": "Leqephe la pele",
-    "mainpage-description": "Leqephe la pele",
-    "portal": "Potjho e kopano",
-    "portal-url": "Project:Potjho e kopano",
-    "retrievedfrom": "E tswa ho \"$1\"",
-    "nstab-main": "Sengolwa",
-    "nstab-mediawiki": "Molaetsa",
-    "nstab-help": "Leqephe la thusa",
-    "nstab-category": "Mokga",
-    "yourpasswordagain": "Ngola lepetjo hape",
-    "remembermypassword": "O nkgopole (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "nologinlink": "Ingodisetse",
-    "createaccount": "Ingodisetse",
-    "gotaccount": "O se o ingodisitse? '''$1'''.",
-    "createaccountmail": "ka e-mail",
-    "badretype": "Mapetjo a mabedi o a ngotseng ha a tshwane.",
-    "mailmypassword": "Nthomele password ya ka ka email",
-    "changepassword": "Fetola lepetjo",
-    "oldpassword": "Lepetjo la kgale:",
-    "newpassword": "Lepetjo le letjha:",
-    "retypenew": "Ngola lepetjo le letjha hape:",
-    "savearticle": "Le boloke",
-    "showpreview": "Mpontshe hore le tlo ba jwang",
-    "showdiff": "Mpontshe hore ho tlo fetoha eng",
-    "accmailtitle": "Lepetjo le rometswe.",
-    "accmailtext": "Lepetjo la \"$1\" le se le rometswe ho $2.",
-    "note": "'''Ela hloko:'''",
-    "searchresultshead": "Phuputso",
-    "allowemail": "Dumella batho ba bang hore ba nthomelle di-email",
-    "download": "Jarolla",
-    "randompage": "Mpontshe leqephe le leng le le leng",
-    "statistics": "Dipalopalo",
-    "mostcategories": "Dingolwa tse mekga e mengata",
-    "shortpages": "Maqephe a makgutshwane",
-    "longpages": "Maqephe a matelele",
-    "newpages": "Maqephe a matjha",
-    "allpages": "Maqephe ohle",
-    "categories": "Mekga",
-    "categoriespagetext": "The following {{PLURAL:$1|category contains|categories contain}} pages or media.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
-    "emailuser": "Romela motho enwa email",
-    "emailfrom": "E tswa ho:",
-    "emailto": "Ho:",
-    "emailsubject": "Ka:",
-    "emailmessage": "O re:",
-    "emailsend": "E romele",
-    "emailsent": "E rometswe",
-    "emailsenttext": "Email ya molaetsa wa hao e se e rometswe.",
-    "contributions": "Tse ngotsweng ke motho enwa",
-    "mycontris": "Tse ngotsweng ke nna",
-    "ipbreason": "Lebaka",
-    "infiniteblock": "ho eya ho ile",
-    "allmessagesname": "Lebitso",
-    "allmessagesdefault": "Se neng se ngotswe pele",
-    "allmessagescurrent": "Se ngotsweng hona jwale"
+       "@metadata": {
+               "authors": [
+                       "Cbrown1023",
+                       "Zyxoas (on st.wikipedia.org)"
+               ]
+       },
+       "sunday": "Sontaha",
+       "monday": "Mantaha",
+       "tuesday": "Labobedi",
+       "wednesday": "Laboraro",
+       "thursday": "Labone",
+       "friday": "Labohlano",
+       "saturday": "Moqebelo",
+       "january": "Pherekgong",
+       "february": "Hlakola",
+       "march": "Hlakubele",
+       "april": "Mmesa",
+       "may_long": "Motsheanong",
+       "june": "Phupjane",
+       "july": "Phupu",
+       "august": "Phato",
+       "september": "Lwetse",
+       "october": "Mphalane",
+       "november": "Pudungwana",
+       "december": "Tshitwe",
+       "may-gen": "Motsheanong",
+       "jan": "Phere",
+       "feb": "Hlako",
+       "mar": "Hlaku",
+       "apr": "Mmesa",
+       "may": "Motshe",
+       "jun": "Phupjane",
+       "jul": "Phupu",
+       "aug": "Phato",
+       "sep": "Lwetse",
+       "oct": "Mphala",
+       "nov": "Pudu",
+       "dec": "Tshitwe",
+       "category_header": "Dingolwa tse mokgeng wa \"$1\"",
+       "mypage": "Leqephe la ka",
+       "mytalk": "Leqephe la ka la moqoqo",
+       "navigation": "Eya ho",
+       "faq": "Dipotso-mehla",
+       "returnto": "Kgutlela ho $1.",
+       "tagline": "E tswa ho {{SITENAME}}",
+       "search": "Fuputsa",
+       "history": "Nalane",
+       "history_short": "Nalane",
+       "newpage": "Leqephe le letjha",
+       "talkpage": "Qoqa ka leqephe lena",
+       "talk": "Moqoqo",
+       "categorypage": "Mpontshe leqephe la mekga",
+       "otherlanguages": "Ka maleme a mang",
+       "jumptosearch": "phuputso",
+       "mainpage": "Leqephe la pele",
+       "mainpage-description": "Leqephe la pele",
+       "portal": "Potjho e kopano",
+       "portal-url": "Project:Potjho e kopano",
+       "retrievedfrom": "E tswa ho \"$1\"",
+       "nstab-main": "Sengolwa",
+       "nstab-mediawiki": "Molaetsa",
+       "nstab-help": "Leqephe la thusa",
+       "nstab-category": "Mokga",
+       "yourpasswordagain": "Ngola lepetjo hape",
+       "remembermypassword": "O nkgopole (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "nologinlink": "Ingodisetse",
+       "createaccount": "Ingodisetse",
+       "gotaccount": "O se o ingodisitse? '''$1'''.",
+       "createaccountmail": "ka e-mail",
+       "badretype": "Mapetjo a mabedi o a ngotseng ha a tshwane.",
+       "mailmypassword": "Nthomele password ya ka ka email",
+       "changepassword": "Fetola lepetjo",
+       "oldpassword": "Lepetjo la kgale:",
+       "newpassword": "Lepetjo le letjha:",
+       "retypenew": "Ngola lepetjo le letjha hape:",
+       "savearticle": "Le boloke",
+       "showpreview": "Mpontshe hore le tlo ba jwang",
+       "showdiff": "Mpontshe hore ho tlo fetoha eng",
+       "accmailtitle": "Lepetjo le rometswe.",
+       "accmailtext": "Lepetjo la \"$1\" le se le rometswe ho $2.",
+       "note": "'''Ela hloko:'''",
+       "searchresultshead": "Phuputso",
+       "allowemail": "Dumella batho ba bang hore ba nthomelle di-email",
+       "download": "Jarolla",
+       "randompage": "Mpontshe leqephe le leng le le leng",
+       "statistics": "Dipalopalo",
+       "mostcategories": "Dingolwa tse mekga e mengata",
+       "shortpages": "Maqephe a makgutshwane",
+       "longpages": "Maqephe a matelele",
+       "newpages": "Maqephe a matjha",
+       "allpages": "Maqephe ohle",
+       "categories": "Mekga",
+       "categoriespagetext": "The following {{PLURAL:$1|category contains|categories contain}} pages or media.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
+       "emailuser": "Romela motho enwa email",
+       "emailfrom": "E tswa ho:",
+       "emailto": "Ho:",
+       "emailsubject": "Ka:",
+       "emailmessage": "O re:",
+       "emailsend": "E romele",
+       "emailsent": "E rometswe",
+       "emailsenttext": "Email ya molaetsa wa hao e se e rometswe.",
+       "contributions": "Tse ngotsweng ke motho enwa",
+       "mycontris": "Tse ngotsweng ke nna",
+       "ipbreason": "Lebaka",
+       "infiniteblock": "ho eya ho ile",
+       "allmessagesname": "Lebitso",
+       "allmessagesdefault": "Se neng se ngotswe pele",
+       "allmessagescurrent": "Se ngotsweng hona jwale"
 }
index 1496896..5563bfd 100644 (file)
        "mergehistory-same-destination": "Uutgongs- un Sielsiede duuren nit identisk weese",
        "mergehistory-reason": "Begruundenge:",
        "mergelog": "Fereenigengs-Logbouk",
-       "pagemerge-logentry": "fereenigede [[$1]] in [[$2]] (Versione bit $3)",
        "revertmerge": "tourääch annerd Fereenigenge",
        "mergelogpagetext": "Dit is dät Logbouk fon do fereenigede Versionsgeskichten.",
        "history-title": "Versionsgeskichte fon \"$1\"",
        "statistics": "Statistik",
        "statistics-header-pages": "Siedenstatistik",
        "statistics-header-edits": "Beoarbaidengsstatistik",
-       "statistics-header-views": "Siedenaproupstatistik",
        "statistics-header-users": "Benutserstatistik",
        "statistics-header-hooks": "Uur Statistike",
        "statistics-articles": "Inhooldssieden",
        "statistics-files": "Hoochleedene Doatäie",
        "statistics-edits": "Siedenbeoarbaidengen siet {{SITENAME}} waas ounfangd",
        "statistics-edits-average": "Beoarbaidengen pro Siede in n Truchsleek",
-       "statistics-views-total": "Siedenaproupe mädnunner",
-       "statistics-views-total-desc": "Aproupe fon nit bestoundende Sieden un fon Spezialsieden wäide nit in Reekenge nuumen",
-       "statistics-views-peredit": "Siedenaproupe pro Beoarbaidenge",
        "statistics-users": "Registrierde [[Special:ListUsers|Benutsere]]",
        "statistics-users-active": "Aktive Benutsere",
        "statistics-users-active-desc": "Benutsere mäd Beoarbaidengen {{PLURAL:$1|in do lääste 24 Uuren|in do fergeene $1 Deege}}",
-       "statistics-mostpopular": "Maast besoachte Sieden",
        "doubleredirects": "Dubbelde Fäärelaitengen",
        "doubleredirectstext": "Disse Lieste änthoalt Fääreleedengen, do der ap wiedere Fääreleedengen ferlinkje.\nÄlke Riege änthoalt Links tou ju eerste un twäide Fääreleedenge as uk dät Siel fon ju twäide Fääreleedenge, wät foar gewöönelk ju wonskede Sielsiede is, ap ju al ju eerste Fääreleedenge wiese skuul.\n<del>Truchstriekene</del> Iendraage wuuden al oumoaked.",
        "double-redirect-fixed-move": "dubbelde Fäärelaitenge aplöösd: [[$1]] → [[$2]]",
        "uncategorizedtemplates": "Nit kategorisierde Foarloagen",
        "unusedcategories": "Ferwaisede Kategorien",
        "unusedimages": "Ferwaisede Bielden",
-       "popularpages": "Sieden do oafte bekieked wäide",
        "wantedcategories": "Benutsede, man nit anlaide Kategorien",
        "wantedpages": "Wonskede Sieden",
        "wantedpages-badtitle": "Uungultigen Tittel in dat Resultoat: $1",
        "simpleantispam-label": "Spamskuts-Wröige. Hier '''niks''' iendreege!",
        "pageinfo-title": "Informatione tou „$1“",
        "pageinfo-header-edits": "Beoarbaidengen",
-       "pageinfo-views": "Antaal fon Siedenaproupe",
        "pageinfo-watchers": "Antaal fon do Besäikere",
        "pageinfo-edits": "Antaal fon do  Beoarbaidengen",
        "pageinfo-authors": "Antaal fon unnerskeedelke Autoren",
index 1272c13..012b957 100644 (file)
        "morenotlisted": "Ieu béréndélan tacan lengkep.",
        "mypage": "Kaca",
        "mytalk": "Obrolan",
-       "anontalk": "Obrolan pikeun IP ieu",
+       "anontalk": "Obrolan pikeun alamat IP ieu",
        "navigation": "Pituduh",
        "and": "&#32;jeung",
        "qbfind": "Panggihan",
        "viewyourtext": "Anjeun bisa némbongkeun sarta nyalin sumber '''éditan anjeun''' ka ieu kaca:",
        "protectedinterface": "Kaca ieu eusina teks antarmuka pikeun dipaké ku pakakas beyé sarta geus dikunci pikeun ngahindar ti kasalahan.",
        "editinginterface": "'''Awas:''' Anjeun keur ngédit kaca nu dipaké pikeun nyadiakeun téks antarmuka pikeun sopwérna.\nParobahan kana ieu kaca bakal mangaruhan pidangan antarmuka pikeun pamaké séjén.\nPikeun alihbasa, mangga sumping ka [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], proyék lokalisasi MediaWiki.",
+       "translateinterface": "Pikeun nambahkeun atawa ngarobah tarjamah keur sakabéh wiki, paké [//translatewiki.net/ translatewiki.net], proyék lokalisasi MediaWiki.",
        "cascadeprotected": "Kaca ieu geus dikonci ti éditan alatan disartakeun di {{PLURAL:$1|kaca|kaca-kaca}} katut anu geus dikonci kalawan pilihan \"runtun\": $2",
        "namespaceprotected": "Anjeun teu ngabogaan hak pikeun ngédit kaca di ngaranspasi '''$1'''.",
        "customcssprotected": "Anjeun teu teu diwenangkeun pikeun ngédit ieu kaca CSS, sabab ngandung setélan pribadi kontributor séjén.",
        "noemail": "Teu aya alamat surélék karékam pikeun \"$1\".",
        "noemailcreate": "Anjeun kudu nyadiakeun alamat surélék anu bener",
        "passwordsent": "Sandi anyar geus dikirim ka alamat surélék nu kadaptar pikeun \"$1\". Mangga asup log deui satutasna katarima.",
-       "blocked-mailpassword": "Alamat IP anjeun dipeungpeuk, moal bisa ngédit, and so\nis not allowed to use the password recovery function to prevent abuse.",
+       "blocked-mailpassword": "Alamat IP anjeun dipeungpeuk tina kabisa ngédit, sarta moal bisa maké fungsi ganti kecap sandi ngarah hanteu disalahgunakeun.",
        "eauthentsent": "Surélék konfirmasi geus dikirim ka alamat bieu.\nMéméh aya surat séjén asup ka akunna, anjeun kudu nuturkeun pituduh dina surélékna pikeun mastikeun yén akun éta téh bener boga anjeun.",
        "throttled-mailpassword": "Surélék pikeun ngarobah kecap sandi geus dikirim {{PLURAL:$1|jam|$1 jam}} kaliwat.\nNgarah hanteu disalahgunakeun, ngan hiji surélék anu bakal dikirim saban {{PLURAL:$1|jam|$1 jam}}.",
        "mailerror": "Kasalahan ngirim surat: $1",
        "resetpass-temp-password": "Sandi samentara:",
        "resetpass-expired": "Kecap sandi anjeun geus kadaluwarsa. Mangga jieun anu anyar pikeun asup log.",
        "passwordreset": "Setél ulang sandi",
+       "passwordreset-text-one": "Eusian formulir ieu pikeun ngirimkeun kecap sandi saheulaanan kana surélék.",
        "passwordreset-legend": "Setél ulang sandi",
        "passwordreset-disabled": "Dina ieu wiki, sandi teu bisa disetél ulang.",
+       "passwordreset-emaildisabled": "Fitur surélék ditumpurkeun di ieu wiki.",
        "passwordreset-username": "Sandiasma:",
        "passwordreset-domain": "Domain:",
        "passwordreset-capture": "Témbongkeun surat-é hasilna?",
        "preview": "Pramidang",
        "showpreview": "Témbongkeun pramidang",
        "showdiff": "Témbongkeun parobahan",
-       "anoneditwarning": "'''Perhatosan:''' Anjeun can asup log. IP anjeun kacatet dina jujutan kaca ieu",
+       "blankarticle": "<strong>Awas:</strong> Kaca anu dijieun ku anjeun kosong kénéh.\nUpama anjeun ngaklik \"{{int:savearticle}}\" deui, kacana bakal dijieun tanpa eusi.",
+       "anoneditwarning": "<strong>Awas:</strong> Anjeun can asup log. Lamun ngédit, alamat IP anjeun bakal katempo ku balaréa. Lamun anjeun <strong>[$1 asup log]</strong> atawa <strong>[$2 nyieun akun]</strong>, ngaran anjeun bakal natrat dina jujutan éditanana, kalayan sababaraha kauntungan lianna.",
        "anonpreviewwarning": "\"Anjeun can asup log. Mun disimpen, alamat IP anjeun bakal kacatet dina jujutan ieu kaca.\"",
        "missingsummary": "'''Pépéling:''' Anjeun can ngeusian sari éditan. Mun anjeun ngaklik deui Simpen, éditan anjeun bakal disimpen tanpa sari éditan",
        "missingcommenttext": "Mangga tulis koméntar di handapeun ieu.",
        "mergehistory-same-destination": "Kaca sumber jeung tujulna teu bisa sarua",
        "mergehistory-reason": "Alesan:",
        "mergelog": "Log gabung",
-       "pagemerge-logentry": "[[$1]] geus ngagabung jeung [[$2]] (révisi nepi ka $3)",
        "revertmerge": "Pisahkeun",
        "mergelogpagetext": "Di handap ieu béréndélan prosés gabung jujutan kaca.",
        "history-title": "Jujutan révisi \"$1\"",
        "filehist-comment": "Kamandang",
        "imagelinks": "Pamakéan berkas",
        "linkstoimage": "Kaca ieu  {{PLURAL:$1|numbu|$1 numbu}} ka gambar ieu :",
-       "nolinkstoimage": "Teu aya kaca nu numbu ka gambar ieu.",
+       "nolinkstoimage": "Teu aya kaca anu nutumbu ka ieu berkas.",
        "sharedupload": "Ieu koropak téh ti $1 nu bisa jadi dipaké ku proyék-proyék lianna.",
        "sharedupload-desc-here": "Ieu berkas asalna ti $1 anu bisa jadi dipaké ku proyék séjén. \nPedaran ti [$2 kaca pedaranana] dipidangkeun di handap.",
        "uploadnewversion-linktext": "ngamuatkeun vérsi anyar koropak ieu",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik kaca",
        "statistics-header-edits": "Statistik éditan",
-       "statistics-header-views": "Statistik pidangan",
        "statistics-header-users": "Statistik pamaké",
        "statistics-header-hooks": "Statistika lianna",
        "statistics-articles": "Halaman eusi",
        "statistics-files": "Koropak nu geus dimuat",
        "statistics-edits": "Ëditan kaca ti saprak {{SITENAME}} mimiti dibuka",
        "statistics-edits-average": "Rata-rata éditan unggal kaca",
-       "statistics-views-total": "Lobana dibuka",
-       "statistics-views-total-desc": "Muka kaca nu can aya jeung kaca husus teu diitung",
-       "statistics-views-peredit": "Muka unggal édit",
        "statistics-users": "[[Special:ListUsers|Kontributor]] kadaptar",
        "statistics-users-active": "Pamaké getol",
        "statistics-users-active-desc": "Kontributor nu ngoprék salila {{PLURAL:$1|poé|$1 poé}} panungtung",
-       "statistics-mostpopular": "Kaca nu pangmindengna dibuka",
        "pageswithprop-submit": "Jung",
        "doubleredirects": "Alihan ganda",
        "doubleredirectstext": "Ieu kaca ngabéréndélkeun kaca-kaca alihan ka kaca alihan lianna. Unggal baris ngandung tutumbu ka alihan kahiji jeung kadua, ogé tujul alihan kadua anu biasana tujul kaca anu \"bener\", anu sakuduna dituju ku alihan kahiji. Ëntri nu <del>dicorét</del> geus diropéa.",
        "uncategorizedtemplates": "Citakan nu can boga kategori",
        "unusedcategories": "Kategori nu teu kapaké",
        "unusedimages": "Gambar-gambar nu teu kapaké",
-       "popularpages": "Kaca-kaca kawentar",
        "wantedcategories": "Kategori nu dipikabutuh",
        "wantedpages": "Kaca nu dipikabutuh",
        "wantedfiles": "Berkas nu dipikabutuh",
        "sp-contributions-talk": "obrolan",
        "sp-contributions-userrights": "ngatur hak pamaké",
        "sp-contributions-blocked-notice": "Ieu pamaké keur dipeungpeuk.\nPikeun rujukan, éntri log panungtung dipidangkeun di handap:",
+       "sp-contributions-blocked-notice-anon": "Ieu alamat IP keur dipeungpeuk.\nPikeun rujukan, éntri log panungtung dipidangkeun di handap:",
        "sp-contributions-search": "Paluruh kontribusi",
-       "sp-contributions-username": "Alamat IP atawa landihan:",
+       "sp-contributions-username": "Alamat IP atawa sandiasma:",
        "sp-contributions-toponly": "Témbongkeun éditan anu révisi panungtung wungkul",
        "sp-contributions-submit": "Paluruh",
-       "whatlinkshere": "Nu numbu ka dieu",
-       "whatlinkshere-title": "Kaca-kaca nu numbu ka \"$1\"",
+       "whatlinkshere": "Anu nutumbu ka dieu",
+       "whatlinkshere-title": "Kaca anu nutumbu ka \"$1\"",
        "whatlinkshere-page": "Kaca:",
        "linkshere": "Kaca di handap ieu numbu ka '''[[:$1]]''':",
-       "nolinkshere": "Euweuh kaca nu numbu ka '''[[:$1]]'''.",
-       "nolinkshere-ns": "Euweuh kaca nu numbu ka '''[[:$1]]''' dina namespace nu dipilih.",
+       "nolinkshere": "Euweuh kaca anu nutumbu ka <strong>[[:$1]]</strong>.",
+       "nolinkshere-ns": "Euweuh kaca anu nutumbu ka <strong>[[:$1]]</strong> dina ruang-nama anu dipilih.",
        "isredirect": "Kaca alihan",
        "istemplate": "ku citakan",
        "isimage": "tutumbu berkas",
        "blockip": "Peungpeuk pamaké",
        "blockip-legend": "Peungpeuk pamaké",
        "blockiptext": "Paké formulir di handap pikeun meungpeuk aksés nulis ti alamat IP atawa ngaran pamaké husus. Ieu sakuduna ditujukeun pikeun nyegah vandalisme, sarta saluyu jeung [[{{MediaWiki:Policy-url}}|kawijakan]]. Eusi alesan nu jéntré (misal, ngarujuk kaca tinangtu nu geus diruksak).",
-       "ipaddressorusername": "Alamat IP atawa ngaran pamaké",
+       "ipaddressorusername": "Alamat IP atawa sandiasma:",
        "ipbexpiry": "Kadaluarsa",
        "ipbreason": "Alesan:",
+       "ipb-hardblock": "Nyegah pamaké anu asup log pikeun ngédit ti ieu alamat IP",
        "ipbcreateaccount": "Tong bisa nyieun rekening",
        "ipbemailban": "Henteu kaci pamaké ngirimkeun surélék",
        "ipbenableautoblock": "Peungpeuk sacara otomatis alamat IP anu panungtungan dipaké ku pamaké sarta sakabéh alamat IP anu kungsi dipaké.",
        "ip_range_invalid": "Angka IP teu bener.",
        "proxyblocker": "Pameungpeuk proxy",
        "proxyblockreason": "Alamat IP anjeun dipeungpeuk sabab mangrupa proxy muka. Mangga tepungan ''Internet service provider'' atanapi ''tech support'' anjeun, béjakeun masalah serius ieu.",
-       "sorbsreason": "Alamat IP anjeun kadaptar salaku ''open proxy'' dina DNSBL.",
+       "sorbsreason": "Alamat IP anjeun kadaptar salaku ''open proxy'' dina DNSBL anu dipaké ku {{SITENAME}}.",
        "sorbs_create_account_reason": "Alamat IP anjeun kadaptar salaku ''open proxy'' dina DNSBL. Anjeun teu bisa nyieun rekening",
        "ipbblocked": "Anjeun teu bisa meungpeuk atawa muka peungpeuk séjén kontributor ku sabab anjeun sorangan keur dipeungpeuk",
        "lockdb": "Konci pangkalan data",
        "tooltip-n-recentchanges": "Béréndélan nu anyar robah dina wiki",
        "tooltip-n-randompage": "Muatkeun kaca naon baé",
        "tooltip-n-help": "Tempat pikeun néangan pitulung",
-       "tooltip-t-whatlinkshere": "Daptar kaca-kaca wiki nu numbu ka dieu",
-       "tooltip-t-recentchangeslinked": "Nu anyar robah na kaca-kaca nu numbu ka dieu",
+       "tooltip-t-whatlinkshere": "Béréndélan sakabéh kaca wiki anu nutumbu ka dieu",
+       "tooltip-t-recentchangeslinked": "Anu anyar robah dina kaca-kaca anu nutumbu ti dieu",
        "tooltip-feed-rss": "Asupan RSS pikeun kaca ieu",
        "tooltip-feed-atom": "Asupan atom pikeun kaca ieu",
        "tooltip-t-contributions": "Témbongkeun béréndélan kontribusi ti ieu kontributor",
        "file-info-size-pages": "$1 × $2 pixel, ukuran berkas: $3, tipeu MIME: $4, $5 {{PLURAL:$5|kaca|kaca}}",
        "file-nohires": "Euweuh résolusi nu leuwih luhur.",
        "svg-long-desc": "Koropak SVG, nominalna $1 × $2 piksel, ukuranana $3",
-       "show-big-image": "Résolusi pinuh",
+       "show-big-image": "Berkas asli",
        "show-big-image-preview": "Ukuran ieu pramidang: $1.",
        "show-big-image-other": "Résolusi lianna: $1.",
        "show-big-image-size": "$1 × $2 pixel",
        "exif-orientation-3": "Diputer 180°",
        "exif-orientation-4": "Dibalikkeun vértikal",
        "exif-orientation-5": "Diputer 90° CCW jeung dibalikkeun vértikal",
-       "exif-orientation-6": "Diputer 90° CW",
+       "exif-orientation-6": "Diputer 90° CCW",
        "exif-orientation-7": "Diputer 90° CW jeung dibalikkeun vértikal",
        "exif-orientation-8": "Diputer 90° CCW",
        "exif-planarconfiguration-2": "format datar",
        "version-hook-name": "Ngaran kait",
        "version-hook-subscribedby": "Didaptarkeun ku",
        "version-version": "(Vérsi $1)",
-       "version-license": "Lisénsi",
+       "version-license": "Lisénsi MediaWiki",
        "version-software": "Sopwér nu geus diinstal",
        "version-software-product": "Produk",
        "version-software-version": "Vérsi",
        "fileduplicatesearch-result-1": "Koropak \"$1\" teu boga duplikat idéntik.",
        "fileduplicatesearch-result-n": "Koropak \"$1\" mibanda {{PLURAL:$2|1 duplikat idéntik|$2 duplikat idéntik}}.",
        "specialpages": "Kaca husus",
-       "specialpages-note": "* Kaca husus bisa di buka ku umum.\n* <strong class=\"mw-specialpagerestricted\">Cetak kandel kaca husus nu kawates.</strong>",
+       "specialpages-note": "* Kaca husus normal.\n* <span class=\"mw-specialpagerestricted\">Kaca husus diwates.</span>",
        "specialpages-group-maintenance": "Laporan pigawéeun",
        "specialpages-group-other": "Kaca husus lainna",
-       "specialpages-group-login": "Asup log / Nyieun rekening",
+       "specialpages-group-login": "Asup log / jieun akun",
        "specialpages-group-changes": "Nuanyar robah sarta log",
        "specialpages-group-media": "Laporan sarta muatkeun koropak",
        "specialpages-group-users": "Pamaké sarta hak pamaké",
        "specialpages-group-highuse": "Pamakéan kaca nu badag",
        "specialpages-group-pages": "Daptar kaca",
        "specialpages-group-pagetools": "Parabot kaca",
-       "specialpages-group-wiki": "Data wiki jeung parabot",
+       "specialpages-group-wiki": "Data jeung parabot",
        "specialpages-group-redirects": "Alihan kaca husus",
        "specialpages-group-spam": "Parabot Spam",
        "blankpage": "Kaca kosong",
index 0aae5b0..6b0bac8 100644 (file)
        "viewsourcetext": "Du kan se och kopiera denna sidas källtext:",
        "viewyourtext": "Du kan se och kopiera källan för '''dina redigeringar''' av denna sida:",
        "protectedinterface": "Denna sida innehåller text för mjukvarans gränssnitt på denna wiki, och är skrivskyddad för att förebygga missbruk.\nFör att lägga till eller ändra översättningar för alla wikis, var god använd [//translatewiki.net/ translatewiki.net], lokaliseringsprojektet för MediaWiki.",
-       "editinginterface": "<strong>Varning:</strong> Du redigerar en sida som används för texten i gränssnittet.\nÄndringar på denna sida kommer att påverka användargränssnittets utseende för andra användare på denna wiki.\nFör att lägga till eller ändra översättningar för alla wikis, var god använd [//translatewiki.net/ translatewiki.net], översättningsprojektet för MediaWiki.",
+       "editinginterface": "<strong>Varning:</strong> Du redigerar en sida som används för texten i gränssnittet.\nÄndringar på denna sida kommer att påverka användargränssnittets utseende för andra användare på denna wiki.",
+       "translateinterface": "För att lägga till eller ändra översättningar för alla wikis, använd [//translatewiki.net/ translatewiki.net], lokaliseringsprojektet för MediaWiki.",
        "cascadeprotected": "Den här sidan har skyddats från redigering eftersom den inkluderas på följande {{PLURAL:$1|sida|sidor}} som skrivskyddats med \"kaskaderande skydd\":\n$2",
        "namespaceprotected": "Du har inte behörighet att redigera sidor i namnrymden '''$1'''.",
        "customcssprotected": "Du har inte behörighet att redigera denna CSS-sida eftersom den innehåller en annan användares personliga inställningar.",
        "content-model-text": "oformaterad text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Sidor som använder upprepade argument i mallanrop",
+       "duplicate-args-category-desc": "Sidan innehåller mallanrop som använder repeterade argument, så som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Varning: Denna sida innehåller för många anrop av resurskrävande parserfunktioner.\n\nAntalet anrop får vara högst $2, nu görs {{PLURAL:$1|$1 anrop}}",
        "expensive-parserfunction-category": "Sidor med för många resurskrävande parserfunktioner",
        "post-expand-template-inclusion-warning": "Varning: Den här sidan innehåller för mycket mallinklusioner.\nNågra av mallarna kommer inte att inkluderas.",
        "mergehistory-reason": "Anledning:",
        "mergehistory-revisionrow": "$1($2) $3 . .$4 $5 $6",
        "mergelog": "Sammanfogningslogg",
-       "pagemerge-logentry": "infogade [[$1]] i [[$2]] (versioner t.o.m. $3)",
        "revertmerge": "Återställ infogning",
        "mergelogpagetext": "Detta är en lista över de senaste sammansfogningarna av sidhistoriker.",
        "history-title": "Versionshistorik för \"$1\"",
        "search-result-category-size": "{{PLURAL:$1|1 medlem|$1 medlemmar}} ({{PLURAL:$2|1 underkategori|$2 underkategorier}}, {{PLURAL:$3|1 fil|$3 filer}})",
        "search-redirect": "(omdirigering $1)",
        "search-section": "(avsnitt $1)",
+       "search-category": "(kategorin $1)",
        "search-file-match": "(överensstämmer filens innehåll)",
        "search-suggest": "Menade du: $1",
        "search-interwiki-caption": "Systerprojekt",
        "gender-female": "Hon redigerar wikisidor",
        "prefs-help-gender": "Denna inställning är valfri.\nProgramvaran använder detta värde för att adressera dig till andra med rätt genus. Denna information kommer att vara offentlig.",
        "email": "E-post",
-       "prefs-help-realname": "Riktigt namn behöver inte anges.\nOm du väljer att ange ditt riktiga namn, kommer det att användas för att tillskriva dig ditt arbete.",
+       "prefs-help-realname": "Riktigt namn behöver inte anges.\nOm angivet, kan det komma att användas för att tillskriva dig ditt arbete.",
        "prefs-help-email": "Att ange e-postadress är valfritt, men gör det möjligt att få ditt lösenord mejlat till dig om du glömmer det.",
        "prefs-help-email-others": "Du kan också välja att låta andra kontakta dig via e-post genom en länk på din användar- eller diskussionssida. Din e-postadress avslöjas inte när andra användare kontaktar dig.",
        "prefs-help-email-required": "E-postadress måste anges.",
        "recentchanges-legend-heading": "'''Teckenförklaring:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se även [[Special:NewPages|listan över nya sidor]])",
        "recentchanges-legend-plusminus": "(''±123'')",
-       "rcnotefrom": "Nedan visas {{PLURAL:$5|ändringar|ändringen}} sedan <strong>$3, $4</strong> (upp till <strong>$1</strong> ändringar visas).",
+       "rcnotefrom": "Nedan visas {{PLURAL:$5|ändringen|ändringar}} sedan <strong>$3, $4</strong> (upp till <strong>$1</strong> ändringar visas).",
        "rclistfrom": "Visa ändringar från och med $3 $2",
        "rcshowhideminor": "$1 mindre ändringar",
        "rcshowhideminor-show": "Visa",
        "statistics": "Statistik",
        "statistics-header-pages": "Sidstatistik",
        "statistics-header-edits": "Redigeringsstatistik",
-       "statistics-header-views": "Sidvisningsstatistik",
        "statistics-header-users": "Användarstatistik",
        "statistics-header-hooks": "Övrig statistik",
        "statistics-articles": "Sidor med innehåll",
        "statistics-files": "Uppladdade filer",
        "statistics-edits": "Sidredigeringar sedan {{SITENAME}} startades",
        "statistics-edits-average": "Redigeringar per sida i genomsnitt",
-       "statistics-views-total": "Totalt antal sidvisningar",
-       "statistics-views-total-desc": "Visningar av icke-existerande sidor och specialsidor ingår inte",
-       "statistics-views-peredit": "Antal sidvisningar per redigering",
        "statistics-users": "Registrerade [[Special:ListUsers|användare]]",
        "statistics-users-active": "Aktiva användare",
        "statistics-users-active-desc": "Användare som utfört någon åtgärd under {{PLURAL:$1|det senaste dygnet|de senaste $1 dygnen}}",
-       "statistics-mostpopular": "Mest besökta sidor",
        "pageswithprop": "Sidor med en sidegenskap",
        "pageswithprop-legend": "Sidor med en sidegenskap",
        "pageswithprop-text": "Denna sida listar sidor som använder en speciell sidegenskap.",
        "uncategorizedtemplates": "Ej kategoriserade mallar",
        "unusedcategories": "Oanvända kategorier",
        "unusedimages": "Oanvända filer",
-       "popularpages": "Populära sidor",
        "wantedcategories": "Önskade kategorier",
        "wantedpages": "Önskade sidor",
        "wantedpages-badtitle": "Ogiltig titel bland resultaten: $1",
        "pager-older-n": "{{PLURAL:$1|1 äldre|$1 äldre}}",
        "suppress": "Censur",
        "querypage-disabled": "Den här specialsidan är inaktiverad av prestandaskäl.",
+       "apihelp": "API-hjälp",
+       "apihelp-no-such-module": "Modulen ”$1” hittades inte",
        "booksources": "Bokkällor",
        "booksources-search-legend": "Sök efter bokkällor",
        "booksources-search": "Sök",
        "ipboptions": "2 timmar:2 hours,1 dygn:1 day,3 dygn:3 days,1 vecka:1 week,2 veckor:2 weeks,1 månad:1 month,3 månader:3 months,6 månader:6 months,1 år:1 year,oändlig:infinite",
        "ipbhidename": "Dölj användarnamnet från redigeringar och listor",
        "ipbwatchuser": "Bevaka användarens användarsida och diskussionssida",
-       "ipb-disableusertalk": "Hindra användaren från att redigera sina egna diskussionssida under blockeringen",
+       "ipb-disableusertalk": "Hindra användaren från att redigera sin egen diskussionssida under blockeringen",
        "ipb-change-block": "Återblockera användaren med de här inställningarna",
        "ipb-confirm": "Bekräfta blockering",
        "badipaddress": "Du har inte skrivit IP-adressen korrekt.",
        "tooltip-pt-mycontris": "Lista över dina bidrag",
        "tooltip-pt-login": "Du uppmuntras att logga in, men det är inte nödvändigt",
        "tooltip-pt-logout": "Logga ut",
+       "tooltip-pt-createaccount": "Du uppmuntras att skapa ett konto och logga in, men det är inte obligatoriskt",
        "tooltip-ca-talk": "Diskussion om innehållssidan",
        "tooltip-ca-edit": "Du kan redigera den här sidan.\nVänligen använd förhandsgranskningsknappen innan du sparar.",
        "tooltip-ca-addsection": "Starta ett nytt avsnitt",
        "tooltip-feed-atom": "Atom-flöde för den här sidan",
        "tooltip-t-contributions": "En lista över bidrag från den här användaren",
        "tooltip-t-emailuser": "Skicka e-post till den här användaren",
+       "tooltip-t-info": "Mer information om denna sida",
        "tooltip-t-upload": "Ladda upp filer",
        "tooltip-t-specialpages": "Lista över alla specialsidor",
        "tooltip-t-print": "Utskriftvänlig version av den här sidan",
        "tooltip-recreate": "Återskapa sidan fast den har tagits bort",
        "tooltip-upload": "Starta uppladdning",
        "tooltip-rollback": "\"Tillbakarullning\" tar med en knapptryckning bort ändringar som gjorts av den som senast redigerade sidan",
-       "tooltip-undo": "\"Gör ogjord\" återställer denna redigering och öppnar redigeringsrutan med förhandsgranskning.\nDen ger möjlighet att skriva en motivering i redigeringssammanfattningen.",
+       "tooltip-undo": "\"Gör ogjord\" återställer denna redigering och öppnar redigeringsrutan med förhandsgranskning. Det ger möjlighet att skriva en motivering i redigeringssammanfattningen.",
        "tooltip-preferences-save": "Spara inställningar",
        "tooltip-summary": "Skriv en kort sammanfattning",
        "interlanguage-link-title": "$1 - $2",
        "pageinfo-robot-policy": "Indexering av robotar",
        "pageinfo-robot-index": "Tillåten",
        "pageinfo-robot-noindex": "Inte tillåten",
-       "pageinfo-views": "Antal visningar",
        "pageinfo-watchers": "Antal användare som bevakar sidan",
        "pageinfo-few-watchers": "Färre än $1 {{PLURAL:$1|bevakare}}",
        "pageinfo-redirects-name": "Antal omdirigeringar till denna sida",
        "unknown_extension_tag": "Okänd tagg \"$1\"",
        "duplicate-defaultsort": "'''Varning:''' Standardsorteringsnyckeln \"$2\" tar över från den tidigare standardsorteringsnyckeln \"$1\".",
        "duplicate-displaytitle": "<strong>Varning:</strong> Visningstiteln \"$2\" skriver över den tidigare visningstiteln \"$1\".",
+       "invalid-indicator-name": "<p>Fel:</strong> Sidstatus-indikatorernas <code>namn</code>-attributet får inte vara tomt.",
        "version": "Version",
        "version-extensions": "Installerade programtillägg",
        "version-skins": "Installerade utseenden",
        "revdelete-uname-unhid": "användarnamn synligt",
        "revdelete-restricted": "satte begränsningar för administratörer",
        "revdelete-unrestricted": "tog bort begränsningar för administratörer",
+       "logentry-merge-merge": "$1 {{GENDER:$2|slog ihop}} $3 i $4 (versioner t.o.m. $5)",
        "logentry-move-move": "$1 {{GENDER:$2|flyttade}} sidan $3 till $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|flyttade}} sidan $3 till $4 utan att lämna en omdirigering",
        "logentry-move-move_redir": "$1 {{GENDER:$2|flyttade}} sidan $3 till $4 över en omdirigering",
        "mediastatistics-header-archive": "Komprimerade format",
        "json-warn-trailing-comma": "$1 avslutande {{PLURAL:$1|kommatecken}} togs bort från JSON",
        "json-error-unknown": "Det var ett problem med JSON. Fel: $1",
+       "json-error-depth": "Listans maximala djup har överskridits",
        "json-error-state-mismatch": "Ogiltig eller felaktig JSON",
+       "json-error-ctrl-char": "Kontrollteckenfel, möjligen felaktigt kodad",
        "json-error-syntax": "Syntaxfel",
-       "json-error-utf8": "Felaktiga UTF-8-tecken, möjligen felkodade"
+       "json-error-utf8": "Felaktiga UTF-8-tecken, möjligen felkodade",
+       "json-error-recursion": "En eller flera rekursiva referenser i värde som ska kodas",
+       "json-error-inf-or-nan": "En eller flera NAN- eller INF-värden i värdet som ska kodas",
+       "json-error-unsupported-type": "Ett värde av en typ som inte kan kodas angavs"
 }
index 113f13c..be5d21c 100644 (file)
        "mergehistory-same-destination": "Kurasa za chanzo na za mwishilio haziwezi kuwa sawa",
        "mergehistory-reason": "Sababu:",
        "mergelog": "Kumbukumbu za kuunganisha",
-       "pagemerge-logentry": "aliunganisha [[$1]] ndani wa [[$2]] (mapitio hadi $3)",
        "revertmerge": "Toa muungano",
        "mergelogpagetext": "Hapo chini yanaorodheshwa matukio ya hivi karibuni ya kuunganisha historia za kurasa mbili.",
        "history-title": "Historia ya mapitio ya \"$1\"",
        "statistics": "Takwimu",
        "statistics-header-pages": "Takwimu za kurasa",
        "statistics-header-edits": "Takwimu za kuhariri",
-       "statistics-header-views": "Onyesha takwimu",
        "statistics-header-users": "Takwimu za watumiaji",
        "statistics-header-hooks": "Takwimu zingine",
        "statistics-articles": "Kurasa zilizopo",
        "statistics-files": "Faili zilizopakiwa",
        "statistics-edits": "Kurasa zilizohaririwa tangu {{SITENAME}} ilivyoanzishwa",
        "statistics-edits-average": "Wastani wa uhariri kwa kurasa",
-       "statistics-views-total": "Jumla ya mitazamaji",
-       "statistics-views-total-desc": "Tazamo za kurasa zisizokuwepo na kurasa maalumu hazionikani.",
-       "statistics-views-peredit": "Mitazamaji kwa haririo",
        "statistics-users": "[[Special:ListUsers|Watumiaji]] waliojisajiri",
        "statistics-users-active": "Watumiaji wanaofanya kazi",
        "statistics-users-active-desc": "Watumiaji waliofanya kazi katika siku {{PLURAL:$1|iliyopita|$1 zilizopita}}",
-       "statistics-mostpopular": "Kurasa zinazotazamwa sana",
        "pageswithprop-submit": "Nenda",
        "doubleredirects": "Maelekezo mawilimawili",
        "doubleredirectstext": "Ukurasa huu unaorodhesha kurasa zinazoelekeza kurasa zingine za kuelekeza.\nKatika kila mstari kuna viungo vinavyokwenda katika kurasa za kuelekeza zote mbili, pamoja na ukurasa wa mwishilio mwa elekezo la pili. Ukurasa huu wa mwishilio huwa ni ukurasa unaostahili kuelekezwa kutoka kwa ukurasa wa kuelekeza wa kwanza. Vitu <del>vilivyokatwa kwa mstari</del> vimeshatatuliwa.",
        "uncategorizedtemplates": "Vigezo ambavyo havijawekwa katika jamii",
        "unusedcategories": "Jamii ambazo hazitumiwi",
        "unusedimages": "Mafaili ambayo hayatumiwi",
-       "popularpages": "Kurasa zinazopendelewa",
        "wantedcategories": "Jamii zinazotakiwa",
        "wantedpages": "Kurasa zinazotakiwa",
        "wantedpages-badtitle": "Kichwa batili katika seti ya matokeo: $1",
index 3f5a78f..00766b7 100644 (file)
        "mergehistory-same-destination": "Zajta zdřuduowo a docelowo ńy mogům być te same.",
        "mergehistory-reason": "Kůmyntorz:",
        "mergelog": "Pouůnčůne",
-       "pagemerge-logentry": "Pouůnčůno [[$1]] ze [[$2]] (historja pomjyńań aže do $3)",
        "revertmerge": "Uodkupluj",
        "mergelogpagetext": "Půńižej znojduje śe lista uostatńich pouůnčyń historyji půmjyńań zajtůw.",
        "history-title": "Gyszichta sprowjyń \"$1\"",
        "statistics": "Sztatystyka",
        "statistics-header-pages": "Statystyka zajtůw",
        "statistics-header-edits": "Statystyka sprowjyń",
-       "statistics-header-views": "Statystyka bezuchůw",
        "statistics-header-users": "Statystyka užytkowńikůw",
        "statistics-articles": "Zajty",
        "statistics-pages": "Zajty",
        "statistics-files": "Wćepane pliki",
        "statistics-edits": "Sprowjyńa wykůnane uod powstańo {{grammar:D.lp|{{SITENAME}}}}",
        "statistics-edits-average": "Strzedńo liczba sprowjyń na zajta",
-       "statistics-views-total": "Cołkowito liczba bezuchůw",
-       "statistics-views-peredit": "Liczba bezuchůw na sprowjyńy",
        "statistics-users": "Zarejerowanych [[Special:ListUsers|użytkowńikůw]]",
        "statistics-users-active": "Aktywnych użytkowńikůw",
        "statistics-users-active-desc": "Użytkowńiki, kere bůły aktywne bez {{PLURAL:$1|uostatńi dźyń|uostatńich $1 dńi}}",
-       "statistics-mostpopular": "Zajty we kere nojčyńśći sam filujom",
        "doubleredirects": "Podwůjne překierowańa",
        "doubleredirectstext": "Na tyi liśće mogům znojdować śe překerowańo pozorne. Uoznača to, aže půńižej pjyrwšej lińii artikla, zawjerajůncyj \"#REDIRECT ...\", može znojdować śe dodotkowy tekst. Koždy wjerš listy zawjero uodwouańo do pjyrwšygo i drůgygo překerowańo a pjyrwšom lińjům tekstu drůgygo překerowańo. Uůmožliwjo to na ogůu uodnaleźyńy wuaśćiwygo artikla, do kerygo powinno śe překerowywać.",
        "double-redirect-fixed-move": "zajta [[$1]] zostoła zastůmpjůno bez przekerowańy, skiż jeij przekludzyńo ku [[$2]]",
        "uncategorizedtemplates": "Mustry bez kategorii",
        "unusedcategories": "Ńyużywane kategoryje",
        "unusedimages": "Ńyużywane pliki",
-       "popularpages": "Zajty we kere nojczynśćij sam filujům",
        "wantedcategories": "Potrzebne katygoryje",
        "wantedpages": "Nojpotrzebńijsze zajty",
        "wantedfiles": "Potrzebne pliki",
index e960979..9c7d2b9 100644 (file)
        "userlogout": "விடுபதிகை",
        "notloggedin": "புகுபதிகை செய்யப்படவில்லை",
        "userlogin-noaccount": "பயனர் கணக்கு இல்லையா?",
-       "userlogin-joinproject": "இணைக {{SITENAME}}",
+       "userlogin-joinproject": "{{SITENAME}}-இல் இணைக",
        "nologin": "பயனர் கணக்கு இல்லையா? '''$1'''.",
        "nologinlink": "கணக்கு ஒன்றை உருவாக்கவும்",
        "createaccount": "புதிய கணக்கை உருவாக்கு",
        "mergehistory-same-destination": "மூலப் பக்கமும் முடிவிடப் பக்கமும் ஒன்றாக இருக்கமுடியாது",
        "mergehistory-reason": "காரணம்:",
        "mergelog": "இணைப்புப் பதிகை",
-       "pagemerge-logentry": "[[$1]] பக்கம் [[$2]] பக்கத்துடன் இணைக்கப்பட்டது ($3 வரையான திருத்தங்கள்)",
        "revertmerge": "பிரி",
        "mergelogpagetext": "பின்வருவது அண்மையில் செய்யப்பட்ட பக்க வரலாறு இணைப்புகளின் பட்டியலாகும்.",
        "history-title": "திருத்த வரலாறு - \"$1\"",
        "statistics": "புள்ளிவிவரங்கள்",
        "statistics-header-pages": "பக்கங்களின் புள்ளிவிவரங்கள்",
        "statistics-header-edits": "தொகுப்புக்கள் பற்றிய புள்ளிவிவரங்கள்",
-       "statistics-header-views": "எத்தனைத்தடவை பார்க்கப்பட்டது எனபது பற்றிய புள்ளிவிவரங்கள்",
        "statistics-header-users": "பயனர் புள்ளி விபரங்கள்",
        "statistics-header-hooks": "மற்ற புள்ளிவிவரங்கள்",
        "statistics-articles": "உள்ளடக்கம் கொண்ட பக்கங்கள்",
        "statistics-files": "பதிவேற்றப்பட்டக் கோப்புகள்",
        "statistics-edits": "{{SITENAME}} அமைக்கப்பட்டதிலிருந்து பக்க திருத்தங்கள்",
        "statistics-edits-average": "ஒரு பக்கத்திற்கான சராசரி தொகுப்புக்கள்",
-       "statistics-views-total": "பார்வையிடப்பட்டதின் மொத்த எண்ணிக்கை",
-       "statistics-views-total-desc": "தற்பொழுது இல்லாத மற்றும் சிறப்பு பக்கங்களின் காட்சிகள் இதில் சேர்க்கபடவில்லை",
-       "statistics-views-peredit": "ஒரு தொகுத்தலுக்காக பார்க்கப்பட்ட எண்ணிக்கை",
        "statistics-users": "பதிவு செய்யப்பட்ட [[Special:ListUsers|பயனர்கள்]]",
        "statistics-users-active": "தொடர் பங்களிப்பாளர்கள் (பயனர்கள்)",
        "statistics-users-active-desc": "கடந்த {{PLURAL:$1|நாள்|$1 நாட்களில்}} ஒன்று அல்லது அதற்கு மேற்பட்ட செயலைச் செய்த பயனர்கள்",
-       "statistics-mostpopular": "அதிகம் பார்க்கப்பட்ட பக்கங்கள்",
        "pageswithprop": "பக்கப் பண்புடைய பக்கங்கள்",
        "pageswithprop-submit": "செல்க",
        "doubleredirects": "இரட்டை வழிமாற்றுகள்",
        "uncategorizedtemplates": "வகைப்படுத்தப்படாத வார்ப்புருக்கள்",
        "unusedcategories": "பயன்படுத்தப்படாத பகுப்புகள்",
        "unusedimages": "பயன்படுத்தப்படாத படிமங்கள்",
-       "popularpages": "அடிக்கடி பார்க்கப்படும் பக்கங்கள்",
        "wantedcategories": "வேண்டிய பகுப்புகள்",
        "wantedpages": "வேண்டிய பக்கங்கள்",
        "wantedpages-badtitle": "முடிவு குழு :$1 லில் உள்ள செல்லாத தலைப்பு",
        "tooltip-feed-atom": "இப்பக்கத்துக்கான அடொம் ஓடை கிடையாது",
        "tooltip-t-contributions": "இப்பயனரின்  பங்களிப்புக்களின் பட்டியலைப் பார்",
        "tooltip-t-emailuser": "இப் பயனருக்கு மின்னஞ்சல் செய்",
+       "tooltip-t-info": "இப்பக்கத்தைப்பற்றி மேலதிக விபரம்",
        "tooltip-t-upload": "கோப்புகளைப் பதிவேற்றுக",
        "tooltip-t-specialpages": "அனைத்துச் சிறப்புப் பக்கங்களின் பட்டியல்",
        "tooltip-t-print": "இப்பக்கத்தின் அச்சுக்குகந்தப் பதிப்பு",
        "pageinfo-robot-policy": "தானியங்கி மூலம் அட்டவணைப்படுத்தல்",
        "pageinfo-robot-index": "அனுமதிக்கப்படுகிறது",
        "pageinfo-robot-noindex": "அனுமதிக்கப்படாதது",
-       "pageinfo-views": "காட்சிகள் எண்ணிக்கை",
        "pageinfo-watchers": "பக்கப் பார்வையாளர்கள் எண்ணிக்கை",
        "pageinfo-few-watchers": "விட குறைவானது $1 {{PLURAL:$1|watcher|watchers}}",
        "pageinfo-redirects-name": "இந்தப் பக்கத்திற்கான வழிமாற்றுகளின் எண்ணிக்கை",
        "logentry-newusers-newusers": "பயனர் கணக்கு $1 உருவாக்கப்பட்டது",
        "logentry-newusers-create": "$1 ஒரு புதிய பயனர் கணக்கை உருவாக்கியுள்ளார்.",
        "logentry-newusers-create2": "$3 பயனர் கணக்கினை $1 உருவாக்கினார்",
-       "logentry-newusers-autocreate": "பயணர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
+       "logentry-newusers-autocreate": "பயனர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
        "rightsnone": "(எதுவுமில்லை)",
        "revdelete-summary": "தொகுப்பு சுருக்கத்தை",
        "feedback-bugornote": "நீங்கள் ஒரு தொழில்நுட்பக் கோளாறு குறித்து விரிவாக விளக்க தாயாராக இருந்தால் தயவுசெய்து [ $1  ஒரு bug பற்றி கூறு].\nஇல்லையெனில், நீங்கள் கீழேயுள்ள எளிதான படிவத்தை பயன்படுத்தலாம்.உங்கள் கருத்துரை \"[$3 $2]\" பக்கத்தில் உங்கள் பயனர் பெயர் மற்றும் உங்கள் உலாவியின் பெயருடன் சேர்க்கப்படும்.",
index 4b6eb59..f070329 100644 (file)
        "passwordreset-username": "ಸದಸ್ಯೆರ್ನ ಪುದರ್:",
        "passwordreset-email": "ಇ-ಅಂಚೆ ವಿಳಾಸೊ",
        "changeemail-submit": "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
-       "changeemail-cancel": "ವಜಾ ಮಲ್ಪುಲೆ",
        "bold_sample": "ದಪ್ಪ ಅಕ್ಷರ",
        "bold_tip": "ದಪ್ಪ ಅಕ್ಷರೊಲು",
        "italic_sample": "ಓರೆ ಅಕ್ಷರೊಲು",
        "pager-older-n": "{{PLURAL:$1|ಪರತ್ತ್ ೧|ಪರತ್ತ್ $1}}",
        "booksources": "ಪುಸ್ತಕೊಲ್ದ ಮೂಲ",
        "booksources-search-legend": "ಪುಸ್ತಕೊದ ಮೂಲೊನು ನಾಡ್ಲ",
-       "booksources-go": "ಪೋ",
        "log": "ದಾಖಲೆಲು",
        "allpages": "ಪೂರಾ ಪೂಟೊಲು",
        "allpagesfrom": "ಇಂದೆರ್ದ್ ಶುರುವಾಪುನ ಪುಟೊಲೆನ್ ತೊಜ್ಪಾವು:",
        "metadata-expand": "ವಿಸ್ತಾರವಾಯಿನ ವಿವರೊಲೆನ್ ತೊಜ್ಪಾವು",
        "metadata-collapse": "ವಿಸ್ತಾರವಾಯಿನ ವಿವರೊಲೆನ್ ದೆಂಗಾವು",
        "metadata-fields": "ಈ ಸಂದೇಶೊಡು ಪಟ್ಟಿ ಮಲ್ತಿನಂಚಿನ EXIF ಮೆಟಡೇಟ ಮಾಹಿತಿನ್ ಚಿತ್ರ ಪುಟೊಕು ಸೇರ್ಪಾಯೆರೆ ಆವೊಂದುಂಡು. ಪುಟೊಟು ಮೆಟಡೇಟ ಮಾಹಿತಿದ ಪಟ್ಟಿನ್ ದೆಪ್ಪುನಗ ಉಂದು ತೋಜುಂಡು.\nಒರಿದನವು ಮೂಲಸ್ಥಿತಿಟ್ ಅಗೋಚರವಾದುಪ್ಪುಂಡು.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "watchlistall2": "ಪೂರ",
        "namespacesall": "ಪೂರಾ",
        "monthsall": "ಪೂರಾ",
        "watchlisttools-view": "ಪ್ರಸ್ತುತ ಬದಲಾವಣೆಲ್ ತೋಜಾಲೆ",
index e95efe4..14ebeaf 100644 (file)
        "mergehistory-same-destination": "మూల మరియు గమ్యస్థాన పేజీలు ఒకటే కాకూడదు",
        "mergehistory-reason": "కారణం:",
        "mergelog": "విలీనాల చిట్టా",
-       "pagemerge-logentry": "[[$1]] ను [[$2]] లోకి విలీనం చేసాం ($3 కూర్పు దాకా)",
        "revertmerge": "విలీనాన్ని రద్దుచెయ్యి",
        "mergelogpagetext": "ఒక పేజీ చరితాన్ని మరో పేజీ చరితం లోకి ఇటీవల చేసిన విలీనాల జాబితా ఇది.",
        "history-title": "\"$1\" యొక్క కూర్పుల చరిత్ర",
        "statistics": "గణాంకాలు",
        "statistics-header-pages": "పేజీ గణాంకాలు",
        "statistics-header-edits": "మార్పుల గణాంకాలు",
-       "statistics-header-views": "వీక్షణల గణాంకాలు",
        "statistics-header-users": "వాడుకరులు",
        "statistics-header-hooks": "ఇతర గణాంకాలు",
        "statistics-articles": "విషయపు పేజీలు",
        "statistics-files": "ఎక్కించిన దస్త్రాలు",
        "statistics-edits": "{{SITENAME}}ని మొదలుపెట్టినప్పటినుండి జరిగిన మార్పులు",
        "statistics-edits-average": "పేజీకి సగటు మార్పులు",
-       "statistics-views-total": "మొత్తం వీక్షణలు",
-       "statistics-views-total-desc": "ఉనికిలో లేని పుటలకు మరియు ప్రత్యేక పుటలకు వచ్చిన సందర్శనలని కలుపలేదు",
-       "statistics-views-peredit": "ఒక మార్పుకి వీక్షణలు",
        "statistics-users": "నమోదైన [[Special:ListUsers|వాడుకరులు]]",
        "statistics-users-active": "క్రియాశీల వాడుకరులు",
        "statistics-users-active-desc": "గత {{PLURAL:$1|రోజు|$1 రోజుల}}లో పని చేసిన వాడుకరులు",
-       "statistics-mostpopular": "ఎక్కువగా చూసిన పేజీలు",
        "pageswithprop": "ఒక పేజీ లక్షణం కలిగిన పేజీలు",
        "pageswithprop-legend": "ఒక పేజీ లక్షణం కలిగిన పేజీలు",
        "pageswithprop-text": "ఫలానా పేజీ లక్షణం కలిగిన పేజీల జాబితాను ఈ పేజీలో చూడవచ్చు.",
        "uncategorizedtemplates": "వర్గీకరించని మూసలు",
        "unusedcategories": "ఉపయోగించని వర్గాలు",
        "unusedimages": "ఉపయోగించని ఫైళ్ళు",
-       "popularpages": "ప్రజాదరణ పొందిన పేజీలు",
        "wantedcategories": "కోరిన వర్గాలు",
        "wantedpages": "కోరిన పేజీలు",
        "wantedpages-badtitle": "ఫలితాల సమితిలో తప్పుడు శీర్షిక: $1",
        "pageinfo-robot-policy": "రోబోట్లచే ఇండెక్సవుతోంది",
        "pageinfo-robot-index": "అనుమతించబడింది",
        "pageinfo-robot-noindex": "అనుమతించబడలేదు",
-       "pageinfo-views": "వీక్షణల సంఖ్య",
        "pageinfo-watchers": "పేజీ వీక్షకుల సంఖ్య",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|వీక్షకుడి|వీక్షకుల}} కంటే తక్కువ",
        "pageinfo-redirects-name": "ఈ పేజీకి ఉన్న దారిమార్పుల సంఖ్య",
index e460181..22b84d5 100644 (file)
        "mergehistory-comment": "[[:$1]] ба [[:$2]] идғом шуд: $3",
        "mergehistory-reason": "Сабаб:",
        "mergelog": "Гузориши идғом",
-       "pagemerge-logentry": "идгом шуд [[$1]] дар [[$2]] (нусхаҳо то $3)",
        "revertmerge": "Вогардонии идғом",
        "mergelogpagetext": "Дар зер феҳристи идғоми охирини таърихи як саҳифаро ба дигар саҳифаро мебинед.",
        "history-title": "Таърихчаи вироишҳои \"$1\"",
        "statistics": "Омор\\Статистика",
        "statistics-header-pages": "Саҳифаи омор",
        "statistics-header-edits": "Вироиши омор",
-       "statistics-header-views": "Дидани омор",
        "statistics-header-users": "Омори корбарон",
        "statistics-header-hooks": "Дигар омор",
        "statistics-articles": "Саҳифаҳои мӯҳтаво",
        "statistics-pages": "Саҳифаҳо",
        "statistics-files": "Парвандаҳои боршуда",
-       "statistics-views-total": "Маҷмуаъи боздидҳо",
        "statistics-users": "[[Special:ListUsers|Корбарони]] сабтиномшуда",
        "statistics-users-active": "Корбарони фаъол",
-       "statistics-mostpopular": "Саҳифаҳои бисёр назаркардашуда",
        "pageswithprop-submit": "Бирав",
        "doubleredirects": "Тағйири масирҳои дутоӣ",
        "doubleredirectstext": "Ҳар сатр дар бар дорандаи пайвандҳое ба тағйири масири аввал ва дувум ва ҳамчунин хати нахуст тагйири масири дувум аст. Маъмулан саҳифаи мақсади воқеъӣ, ки нахустин тағйири масир бояд ба он бошад ба ин гуна мушаххас мешавад.",
        "uncategorizedtemplates": "Шаблонҳое, ки ба ягон гурӯҳ дохил нестанд",
        "unusedcategories": "Гурӯҳҳои истифоданашуда",
        "unusedimages": "Файлҳои истифоданашуда",
-       "popularpages": "Саҳифаҳои машҳур",
        "wantedcategories": "Гурӯҳҳои дархостӣ",
        "wantedpages": "Саҳифаҳои дархостӣ",
        "wantedfiles": "Парвандаҳои дархостӣ",
index 1a27487..76ef9bd 100644 (file)
        "mergehistory-comment": "[[:$1]] ba [[:$2]] idƣom şud: $3",
        "mergehistory-reason": "Sabab:",
        "mergelog": "Guzorişi idƣom",
-       "pagemerge-logentry": "idgom şud [[$1]] dar [[$2]] (nusxaho to $3)",
        "revertmerge": "Vogardoniji idƣom",
        "mergelogpagetext": "Dar zer fehristi idƣomi oxirini ta'rixi jak sahifaro ba digar sahifaro mebined.",
        "history-title": "Ta'rixcai viroişhoi \"$1\"",
        "statistics": "Omor\\Statistika",
        "statistics-header-pages": "Sahifai omor",
        "statistics-header-edits": "Viroişi omor",
-       "statistics-header-views": "Didani omor",
        "statistics-header-users": "Omori korbaron",
        "statistics-articles": "Sahifahoi mūhtavo",
        "statistics-pages": "Sahifaho",
        "statistics-files": "Parvandahoi borşuda",
        "statistics-users": "[[Special:ListUsers|Korbaroni]] sabtinomşuda",
        "statistics-users-active": "Korbaroni fa'ol",
-       "statistics-mostpopular": "Sahifahoi bisjor nazarkardaşuda",
        "doubleredirects": "Taƣjiri masirhoi dutoī",
        "double-redirect-fixer": "Ta'mirkori taƣjirmasirho",
        "brokenredirects": "Sahifahoi kandaşudai ravonakunī",
        "uncategorizedtemplates": "Şablonhoe, ki ba jagon gurūh doxil nestand",
        "unusedcategories": "Gurūhhoi istifodanaşuda",
        "unusedimages": "Fajlhoi istifodanaşuda",
-       "popularpages": "Sahifahoi maşhur",
        "wantedcategories": "Gurūhhoi darxostī",
        "wantedpages": "Sahifahoi darxostī",
        "wantedfiles": "Parvandahoi darxostī",
index e8d274a..1fa4813 100644 (file)
        },
        "tog-underline": "การขีดเส้นใต้ลิงก์:",
        "tog-hideminor": "ซ่อนการแก้ไขเล็กน้อยในหน้าปรับปรุงล่าสุด",
-       "tog-hidepatrolled": "ซ่อนการแก้ไขที่ตรวจแล้วในหน้าปรับปรุงล่าสุด",
-       "tog-newpageshidepatrolled": "à¸\8bà¹\88อà¸\99หà¸\99à¹\89าà¸\97ีà¹\88à¸\95รวà¸\88à¹\81ลà¹\89วà¸\88าà¸\81รายการหน้าใหม่",
+       "tog-hidepatrolled": "à¸\8bà¹\88อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\97ีà¹\88à¸\95รวà¸\88สอà¸\9aà¹\81ลà¹\89วà¹\83à¸\99หà¸\99à¹\89าà¸\9bรัà¸\9aà¸\9bรุà¸\87ลà¹\88าสุà¸\94",
+       "tog-newpageshidepatrolled": "à¸\8bà¹\88อà¸\99หà¸\99à¹\89าà¸\97ีà¹\88à¸\95รวà¸\88สอà¸\9aà¹\81ลà¹\89วà¹\83à¸\99รายการหน้าใหม่",
        "tog-extendwatchlist": "ขยายรายการเฝ้าดูให้แสดงการเปลี่ยนแปลงทั้งหมด ไม่เพียงการเปลี่ยนแปลงล่าสุด",
        "tog-usenewrc": "จัดกลุ่มการเปลี่ยนแปลงแบ่งตามหน้าในรายการปรับปรุงล่าสุดและรายการเฝ้าดู",
-       "tog-numberheadings": "à¹\83สà¹\88เลขหัวเรื่องอัตโนมัติ",
+       "tog-numberheadings": "à¸\81ำหà¸\99à¸\94เลขหัวเรื่องอัตโนมัติ",
        "tog-showtoolbar": "แสดงแถบเครื่องมือแก้ไข",
        "tog-editondblclick": "แก้ไขหน้าเมื่อดับเบิลคลิก",
-       "tog-editsectiononrightclick": "à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\80à¸\89à¸\9eาะสà¹\88วà¸\99à¹\82à¸\94ยà¸\84ลิà¸\81à¸\82วาà¸\97ีà¹\88à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87à¸\82อà¸\87สà¹\88วà¸\99à¸\99ัà¹\89à¸\99",
+       "tog-editsectiononrightclick": "เปิดใช้งานการแก้ไขส่วนโดยคลิกขวาที่ชื่อเรื่องของส่วนนั้น",
        "tog-watchcreations": "เพิ่มหน้าที่ฉันสร้างและไฟล์ที่ฉันอัปโหลดเข้ารายการเฝ้าดู",
        "tog-watchdefault": "เพิ่มหน้าและไฟล์ที่ฉันแก้ไขเข้ารายการเฝ้าดู",
-       "tog-watchmoves": "à¹\80à¸\9eิà¹\88มà¹\81ละà¹\84à¸\9fลà¹\8cà¸\97ีà¹\88à¸\89ัà¸\99à¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88อเข้ารายการเฝ้าดู",
+       "tog-watchmoves": "à¹\80à¸\9eิà¹\88มà¹\81ละà¹\84à¸\9fลà¹\8cà¸\97ีà¹\88à¸\89ัà¸\99ยà¹\89ายเข้ารายการเฝ้าดู",
        "tog-watchdeletion": "เพิ่มหน้าและไฟล์ที่ฉันลบเข้ารายการเฝ้าดู",
        "tog-watchrollback": "เพิ่มหน้าที่ฉันย้อนกลับฉุกเฉินเข้ารายการเฝ้าดู",
        "tog-minordefault": "กำหนดการแก้ไขทุกครั้งเป็นการแก้ไขเล็กน้อยโดยปริยาย",
-       "tog-previewontop": "à¹\83หà¹\89à¸\95ัวอยà¹\88าà¸\87à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\81สà¸\94งก่อนกล่องแก้ไข",
+       "tog-previewontop": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88างก่อนกล่องแก้ไข",
        "tog-previewonfirst": "แสดงตัวอย่างในการแก้ไขครั้งแรก",
        "tog-enotifwatchlistpages": "อีเมลหาเมื่อหน้าหรือไฟล์ในรายการเฝ้าดูเปลี่ยนแปลง",
        "tog-enotifusertalkpages": "อีเมลหาเมื่อมีการเปลี่ยนแปลงหน้าคุยกับผู้ใช้ของฉัน",
@@ -55,7 +55,7 @@
        "tog-watchlisthideminor": "ซ่อนการแก้ไขเล็กน้อยจากรายการเฝ้าดู",
        "tog-watchlisthideliu": "ซ่อนการแก้ไขโดยผู้ใช้ล็อกอินจากรายการเฝ้าดู",
        "tog-watchlisthideanons": "ซ่อนการแก้ไขโดยผู้ใช้นิรนามจากรายการเฝ้าดู",
-       "tog-watchlisthidepatrolled": "ซ่อนการแก้ไขที่ตรวจแล้วจากรายการเฝ้าดู",
+       "tog-watchlisthidepatrolled": "à¸\8bà¹\88อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\97ีà¹\88à¸\95รวà¸\88สอà¸\9aà¹\81ลà¹\89วà¸\88าà¸\81รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ู",
        "tog-ccmeonemails": "ส่งสำเนาอีเมลที่ฉันส่งหาผู้อื่นให้ฉัน",
        "tog-diffonly": "ไม่แสดงเนื้อหาหน้าใต้ผลต่าง",
        "tog-showhiddencats": "แสดงหมวดหมู่ที่ซ่อนอยู่",
        "undo-failure": "การแก้ไขนี้ไม่สามารถย้อนกลับได้ เนื่องจากขัดแย้งกับการแก้ไขระหว่างกลาง",
        "undo-norev": "ไม่สามารถย้อนการแก้ไขนี้กลับ เพราะไม่มีหรือถูกลบไปแล้ว",
        "undo-nochange": "ดูเหมือนว่าการแก้ไขดังกล่าวถูกย้อนกลับแล้ว",
-       "undo-summary": "ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82รุà¹\88à¸\99 $1 โดย [[Special:Contributions/$2|$2]] ([[User talk:$2|พูดคุย]])",
-       "undo-summary-username-hidden": "ยà¹\89อà¸\99รุà¹\88à¸\99 $1 โดยผู้ใช้ไม่ระบุชื่อ",
+       "undo-summary": "à¸\97ำà¸\81ลัà¸\9aรุà¹\88à¸\99à¹\81à¸\81à¹\89à¹\84à¸\82 $1 โดย [[Special:Contributions/$2|$2]] ([[User talk:$2|พูดคุย]])",
+       "undo-summary-username-hidden": "à¸\97ำà¸\81ลัà¸\9aรุà¹\88à¸\99à¹\81à¸\81à¹\89à¹\84à¸\82 $1 โดยผู้ใช้ไม่ระบุชื่อ",
        "cantcreateaccounttitle": "ไม่สามารถสร้างบัญชีได้",
        "cantcreateaccount-text": "การสร้างบัญชีใหม่จากที่อยู่ไอพีนี้ ('''$1''') ถูกระงับโดย [[User:$3|$3]]\n\nเหตุผลที่ $3 ให้ไว้ คือ ''$2''",
        "cantcreateaccount-range-text": "การสร้างบัญชีจากเลขที่อยู่ไอพีในช่วง '''$1''' ซึ่งรวมเลขที่อยู่ไอพีของคุณ ('''$4''') ถูกบล็อกโดย [[User:$3|$3]] \n\nเหตุผลที่ $3 ชี้แจง คือ ''$2''",
        "mergehistory-same-destination": "หน้าต้นทางและปลายทางเป็นหน้าเดียวกันไม่ได้",
        "mergehistory-reason": "เหตุผล:",
        "mergelog": "ปูมการรวม",
-       "pagemerge-logentry": "รวม [[$1]] กับ [[$2]] (รุ่นปรับปรุงถึง $3)",
        "revertmerge": "เลิกรวม",
        "mergelogpagetext": "ด้านล่างนี้เป็นรายการการรวมประวัติหน้าหนึ่งกับของอีกหน้าหนึ่งล่าสุด",
        "history-title": "ประวัติรุ่นปรับปรุงของ \"$1\"",
        "lineno": "แถว $1:",
        "compareselectedversions": "เปรียบเทียบรุ่นที่เลือก",
        "showhideselectedversions": "เปลี่ยนทัศนวิสัยของรุ่นที่เลือก",
-       "editundo": "ยà¹\89อà¸\99",
+       "editundo": "à¸\97ำà¸\81ลัà¸\9a",
        "diff-empty": "(ไม่แตกต่าง)",
        "diff-multi-sameuser": "(ไม่แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)",
        "diff-multi-otherusers": "(ไม่แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้ $2 คน)",
        "filepage.css": "/* สไตล์ชีตในหน้านี้ถูกรวมในหน้าคำอธิบายไฟล์ และถูกรวมในวิกิผู้รับบริการต่างถิ่นด้วย */",
        "upload-disallowed-here": "คุณไม่สามารถบันทึกทับไฟล์นี้",
        "filerevert": "ย้อน $1",
-       "filerevert-legend": "ย้อนไฟล์กลับ",
+       "filerevert-legend": "ย้อนไฟล์",
        "filerevert-intro": "คุณกำลังย้อนไฟล์ <strong>[[Media:$1|$1]]</strong> ไปยัง [รุ่น $4 เมื่อ $2, $3]",
        "filerevert-comment": "เหตุผล:",
        "filerevert-defaultcomment": "ย้อนไปรุ่นเมื่อ $1, $2",
        "statistics": "สถิติ",
        "statistics-header-pages": "สถิติหน้า",
        "statistics-header-edits": "สถิติการแก้ไข",
-       "statistics-header-views": "สถิติการชม",
        "statistics-header-users": "สถิติผู้ใช้",
        "statistics-header-hooks": "สถิติอื่น",
        "statistics-articles": "หน้าเนื้อหา",
        "statistics-files": "ไฟล์ที่อัปโหลด",
        "statistics-edits": "การแก้ไขหน้านับแต่ก่อตั้ง {{SITENAME}}",
        "statistics-edits-average": "การแก้ไขต่อหน้าเฉลี่ย",
-       "statistics-views-total": "การชมทั้งหมด",
-       "statistics-views-total-desc": "ไม่นับรวมการชมหน้าที่ไม่มีและหน้าพิเศษ",
-       "statistics-views-peredit": "การชมต่อการแก้ไข",
        "statistics-users": "[[Special:ListUsers|ผู้ใช้]]ลงทะเบียน",
        "statistics-users-active": "ผู้ใช้ที่ยังมีความเคลื่อนไหว",
        "statistics-users-active-desc": "ผู้ใช้ที่ดำเนินปฏิบัติการในช่วง $1 วันหลังสุด",
-       "statistics-mostpopular": "หน้าที่มีการชมมากที่สุด",
        "pageswithprop": "หน้าพร้อมคุณสมบัติหน้า",
        "pageswithprop-legend": "หน้าพร้อมคุณสมบัติหน้า",
        "pageswithprop-text": "หน้านี้แสดงรายการหน้าที่ใช้คุณสมบัติหน้าเฉพาะ",
        "uncategorizedtemplates": "แม่แบบที่ยังไม่จัดหมวดหมู่",
        "unusedcategories": "หมวดหมู่ไม่ได้ใช้",
        "unusedimages": "ไฟล์ไม่ได้ใช้",
-       "popularpages": "หน้าที่นิยม",
        "wantedcategories": "หมวดหมู่ที่ต้องการ",
        "wantedpages": "หน้าที่ต้องการ",
        "wantedpages-badtitle": "ชื่อเรื่องไม่สมเหตุสมผลในเซตผลลัพธ์: $1",
        "cantrollback": "ไม่สามารถย้อนการแก้ไขได้ ผู้เขียนคนล่าสุดเป็นผู้เขียนคนเดียวของหน้านี้",
        "alreadyrolled": "ไม่สามารถย้อนกลับฉุกเฉินการแก้ไขสุดท้ายโดย [[User:$2|$2]] ([[User talk:$2|พูดคุย]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) ในหน้า [[:$1]] มีผู้อื่นได้แก้ไขหรือย้อนกลับฉุกเฉินหน้านี้ไปก่อนแล้ว\n\nผู้แก้ไขล่าสุดของหน้านี้คือ [[User:$3|$3]] ([[User talk:$3|พูดคุย]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])",
        "editcomment": "คำอธิบายการแก้ไขคือ: \"''$1''\"",
-       "revertpage": "ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\82อà¸\87 [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) à¹\84à¸\9bยัà¸\87รุà¹\88à¸\99à¸\82อà¸\87 [[User:$1|$1]]",
-       "revertpage-nouser": "ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\82à¸\94ยà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\84มà¹\88ระà¸\9aุà¸\8aืà¹\88อà¹\84à¸\9bยัà¸\87รุà¹\88à¸\99สุà¸\94à¸\97à¹\89ายโดย {{GENDER:$1|[[User:$1|$1]]}}",
-       "rollback-success": "ย้อนการแก้ไขโดย $1 ไปยังรุ่นล่าสุดโดย $2",
+       "revertpage": "ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\82à¸\94ย [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) à¹\84à¸\9bยัà¸\87รุà¹\88à¸\99à¹\81à¸\81à¹\89à¹\84à¸\82ลà¹\88าสุà¸\94à¹\82à¸\94ย [[User:$1|$1]]",
+       "revertpage-nouser": "ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\82à¸\94ยà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¹\84มà¹\88ระà¸\9aุà¸\8aืà¹\88อà¹\84à¸\9bยัà¸\87รุà¹\88à¸\99ลà¹\88าสุà¸\94โดย {{GENDER:$1|[[User:$1|$1]]}}",
+       "rollback-success": "ย้อนการแก้ไขโดย $1; \nเปลี่ยนกลับไปรุ่นล่าสุดโดย $2",
        "sessionfailure-title": "ช่วงเวลาสื่อสารล้มเหลว",
        "sessionfailure": "ดูเหมือนมีปัญหากับช่วงเวลาสื่อสารล็อกอินของคุณ\nการกระทำนี้ถูกยกเลิกเป็นการป้องกันการลักลอบช่วงเวลาสื่อสารไว้ก่อน \nกลับไปหน้าที่แล้ว โหลดหน้าใหม่ แล้วลองอีกครั้ง",
        "protectlogpage": "ปูมการล็อก",
        "tooltip-n-portal": "เกี่ยวกับโครงการ สิ่งที่คุณทำได้ วิธีการค้นหา",
        "tooltip-n-currentevents": "ค้นหาเหตุการณ์ปัจจุบัน",
        "tooltip-n-recentchanges": "รายการปรับปรุงล่าสุดในวิกินี้",
-       "tooltip-n-randompage": "สุà¹\88มหà¸\99à¹\89าà¸\82ึà¹\89à¸\99มา",
+       "tooltip-n-randompage": "à¹\82หลà¸\94หà¸\99à¹\89าสุà¹\88ม",
        "tooltip-n-help": "อธิบายการใช้งาน",
        "tooltip-t-whatlinkshere": "รายการทุกหน้าวิกิที่ลิงก์มาที่นี่",
        "tooltip-t-recentchangeslinked": "รายการปรับปรุงล่าสุดในหน้าที่ลิงก์จากหน้านี้",
        "tooltip-recreate": "สร้างหน้านี้อีกครั้งแม้เคยถูกลบ",
        "tooltip-upload": "เริ่มอัปโหลด",
        "tooltip-rollback": "\"ย้อนกลับฉุกเฉิน\" ใช้ย้อนการแก้ไขในหน้านี้ของผู้เขียนคนล่าสุดในคลิกเดียว",
-       "tooltip-undo": "\"ยà¹\89อà¸\99\" à¹\83à¸\8aà¹\89ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\84รัà¹\89à¸\87à¸\99ีà¹\89à¹\81ละà¹\80à¸\9bิà¸\94à¹\81à¸\9aà¸\9aà¹\81à¸\81à¹\89à¹\84à¸\82 à¸ªà¸²à¸¡à¸²à¸£à¸\96à¹\80à¸\9eิà¹\88มà¸\84ำอà¸\98ิà¸\9aายà¹\83à¸\99à¸\95อà¸\99à¸\97à¹\89าย",
+       "tooltip-undo": "\"ยà¹\89อà¸\99\" à¸¢à¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\99ีà¹\89à¹\81ละà¹\80à¸\9bิà¸\94à¹\81à¸\9aà¸\9aà¹\81à¸\81à¹\89à¹\84à¸\82à¹\83à¸\99ภาวะà¸\95ัวอยà¹\88าà¸\87 à¹\80à¸\9bิà¸\94à¹\83หà¹\89à¹\80à¸\9eิà¹\88มà¹\80หà¸\95ุà¸\9cลà¹\83à¸\99à¸\84ำอà¸\98ิà¸\9aาย",
        "tooltip-preferences-save": "บันทึกการตั้งค่า",
        "tooltip-summary": "ใส่คำอธิบายอย่างย่อสั้น ๆ",
        "common.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ทุกสกิน */",
        "spamprotectiontext": "ข้อความที่คุณต้องการบันทึกถูกตัวกรองสแปมบล็อก\nอาจเกิดจากลิงก์ไปยังเว็บไซต์ภายนอกที่ถูกขึ้นบัญชีดำ",
        "spamprotectionmatch": "ข้อความต่อไปนี้ทำให้ตัวกรองสแปมของเราทำงาน: $1",
        "spambot_username": "กวาดล้างมีเดียวิกิสแปม",
-       "spam_reverting": "ยà¹\89อà¸\99à¸\81ลัà¸\9aà¹\84à¸\9bรุà¹\88à¸\99à¸\81à¹\88อà¸\99หà¸\99à¹\89าà¸\97ีà¹\88à¹\84มà¹\88มีลิà¸\87à¸\81à¹\8cà¹\84à¸\9bยัà¸\87à¹\80วà¹\87à¸\9a $1",
+       "spam_reverting": "ยà¹\89อà¸\99à¹\84à¸\9bรุà¹\88à¸\99à¹\81à¸\81à¹\89à¹\84à¸\82สุà¸\94à¸\97à¹\89ายà¸\97ีà¹\88à¹\84มà¹\88มีลิà¸\87à¸\81à¹\8cà¹\84à¸\9b $1",
        "spam_blanking": "รุ่นการปรับปรุงทุกรุ่นประกอบไปด้วยลิงก์ไปยังเว็บ $1 (ทำหน้าว่าง)",
        "spam_deleting": "ทุกรุ่นที่มีลิงก์ไปยัง $1 กำลังลบ",
        "simpleantispam-label": "การตรวจสอบสแปม\n<strong>อย่า</strong>กรอกช่องนี้!",
        "pageinfo-robot-policy": "การทำดัชนีโดยบอต",
        "pageinfo-robot-index": "อนุญาต",
        "pageinfo-robot-noindex": "ไม่อนุญาต",
-       "pageinfo-views": "จำนวนการเข้าดู",
        "pageinfo-watchers": "จำนวนผู้เฝ้าดูหน้า",
        "pageinfo-few-watchers": "{{PLURAL:$1|ผู้เฝ้าดู|ผู้เฝ้าดู}}น้อยกว่า $1 คน",
        "pageinfo-redirects-name": "จำนวนการเปลี่ยนทางมาหน้านี้",
index e1c5fba..928f728 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Blake",
-            "Node ue",
-            "Teak"
-        ]
-    },
-    "underline-always": "ጥራይ",
-    "underline-never": "ኣይትግበሩ",
-    "sunday": "ሰንበት",
-    "monday": "ሰኑይ",
-    "tuesday": "ሰሉስ",
-    "wednesday": "ረብዓ",
-    "thursday": "ኃሙስ",
-    "friday": "ዓርቢ",
-    "saturday": "ቀዳም",
-    "sun": "ሰንበ",
-    "mon": "ሰኑይ",
-    "tue": "ሠሉስ",
-    "wed": "ረቡዕ",
-    "thu": "ኃሙስ",
-    "fri": "ዓርቢ",
-    "sat": "ቀዳም",
-    "january": "ትሪ",
-    "february": "ለካቲት",
-    "march": "መጋቢት",
-    "april": "ሚያዝያ",
-    "may_long": "ግንቦት",
-    "june": "ሰነ",
-    "july": "ሓምለ",
-    "august": "ነሓሰ",
-    "september": "መስከረም",
-    "october": "ጥቅምቲ",
-    "november": "ኅዳር",
-    "december": "ታኅሣሥ",
-    "jan": "ጃንዩ",
-    "feb": "ፌብሩ",
-    "mar": "ማርች",
-    "apr": "ኤፕረ",
-    "may": "ሜይ",
-    "jun": "ጁን",
-    "about": "ብዛዕባ ብጠቅላላ",
-    "mypage": "ፅሑፈይ",
-    "qbpageoptions": "ፅሑፍዚ",
-    "qbmyoptions": "ፅሑፋተይ",
-    "help": "ፍንጪ",
-    "search": "ድሉይ",
-    "searchbutton": "ድሉይ",
-    "history": "ናይ ፅሑፍ ታሪኽ",
-    "history_short": "ታሪኽ",
-    "newpage": "ሓዳስ ፅሑፍ",
-    "jumptosearch": "ድሉይ",
-    "aboutsite": "ብዛዕባ ዊኪፒዲያ ብጠቅላላ",
-    "mainpage": "መበገሲ ገጽ",
-    "mainpage-description": "መበገሲ ገጽ",
-    "nstab-main": "ፅሑፍ",
-    "nstab-user": "ናይ ፅሑፍ ኣባል",
-    "nstab-project": "ናይ ፅሑፍ ፕሮጀክት",
-    "nstab-image": "ምስሊ",
-    "yourname": "ናይ ኣባል ሽም:",
-    "loginlanguagelabel": "ቋንቋ: $1",
-    "savearticle": "ፅሑፍ ኣቐምጥ",
-    "newarticle": "(ሓዳስ)",
-    "next": "ዝቕጽል",
-    "historysize": "($1 {{PLURAL:$1|ባይታት|ባይታት}})",
-    "prevn": "ናይ ቀደም {{PLURAL:$1|$1}}",
-    "nextn": "ዝቕጽል {{PLURAL:$1|$1}}",
-    "preferences": "ኣማረጽቲ",
-    "mypreferences": "ናተይ ኣማረጽቲ",
-    "saveprefs": "ኣቐምጥ",
-    "searchresultshead": "ድሉይ",
-    "savedprefs": "ዘቕረብኩሞ መርኣይ ብትክክል ተቀሚጡ ኣሎ።",
-    "prefs-files": "ምስልታት",
-    "youremail": "ኢ-መይል:",
-    "yourlanguage": "ቋንቋ:",
-    "email": "ኢ-መይል",
-    "group": "ብሓበር:",
-    "group-sysop": "ሲሶፓት",
-    "group-sysop-member": "{{GENDER:$1|ሲሶፕ}}",
-    "hist": "ታሪኽ",
-    "newpageletter": "ሓ",
-    "savefile": "ምስሊ ኣቐምጥ",
-    "imgfile": "ምስሊ",
-    "listfiles": "ምስልታት",
-    "listfiles_name": "ሽም",
-    "listfiles_user": "ኣባል",
-    "file-anchor-link": "ምስሊ",
-    "nbytes": "$1 {{PLURAL:$1|ባይት|ባይታት}}",
-    "longpages": "ነዋሕቲ ፅሑፋት",
-    "listusers": "ኣባላት",
-    "newpages": "ሓደሽቲ ዛዕባታት",
-    "newpages-username": "ናይ ኣባል ሽም:",
-    "booksources-go": "ኪድ",
-    "specialloguserlabel": "ኣባል:",
-    "alphaindexline": "$1 ናብ $2",
-    "nextpage": "ዝቕጽል ፅሑፍ ($1)",
-    "prevpage": "ናይ ቀደም ፅሑፍ ($1)",
-    "allarticles": "ኵሎም ፅሑፋት",
-    "allpagessubmit": "ኪድ",
-    "pagesize": "(ባይታት)",
-    "undelete-search-submit": "ድሉይ",
-    "contribsub2": "ን$1 ($2)",
-    "sp-contributions-submit": "ድሉይ",
-    "ipblocklist-submit": "ድሉይ",
-    "allmessagesname": "ሽም",
-    "tooltip-pt-preferences": "ናተይ ኣማረጽቲ",
-    "ilsubmit": "ድሉይ",
-    "metadata": "ሜታዳታ",
-    "imgmultipageprev": "← ናይ ቀደም ፅሑፍ",
-    "imgmultipagenext": "ዝቕጽል ፅሑፍ →",
-    "table_pager_next": "ዝቕጽል ፅሑፍ",
-    "table_pager_prev": "ናይ ቀደም ፅሑፍ",
-    "table_pager_limit_submit": "ኪድ",
-    "autosumm-new": "ሓዳስ ፅሑፍ: $1",
-    "size-bytes": "$1 ባይታት",
-    "size-kilobytes": "$1 ኪሎባይታት",
-    "size-megabytes": "$1 ሜጋባይታት",
-    "size-gigabytes": "$1 ጊጋባይታት"
+       "@metadata": {
+               "authors": [
+                       "Blake",
+                       "Node ue",
+                       "Teak"
+               ]
+       },
+       "underline-always": "ጥራይ",
+       "underline-never": "ኣይትግበሩ",
+       "sunday": "ሰንበት",
+       "monday": "ሰኑይ",
+       "tuesday": "ሰሉስ",
+       "wednesday": "ረብዓ",
+       "thursday": "ኃሙስ",
+       "friday": "ዓርቢ",
+       "saturday": "ቀዳም",
+       "sun": "ሰንበ",
+       "mon": "ሰኑይ",
+       "tue": "ሠሉስ",
+       "wed": "ረቡዕ",
+       "thu": "ኃሙስ",
+       "fri": "ዓርቢ",
+       "sat": "ቀዳም",
+       "january": "ትሪ",
+       "february": "ለካቲት",
+       "march": "መጋቢት",
+       "april": "ሚያዝያ",
+       "may_long": "ግንቦት",
+       "june": "ሰነ",
+       "july": "ሓምለ",
+       "august": "ነሓሰ",
+       "september": "መስከረም",
+       "october": "ጥቅምቲ",
+       "november": "ኅዳር",
+       "december": "ታኅሣሥ",
+       "jan": "ጃንዩ",
+       "feb": "ፌብሩ",
+       "mar": "ማርች",
+       "apr": "ኤፕረ",
+       "may": "ሜይ",
+       "jun": "ጁን",
+       "about": "ብዛዕባ ብጠቅላላ",
+       "mypage": "ፅሑፈይ",
+       "qbpageoptions": "ፅሑፍዚ",
+       "qbmyoptions": "ፅሑፋተይ",
+       "help": "ፍንጪ",
+       "search": "ድሉይ",
+       "searchbutton": "ድሉይ",
+       "history": "ናይ ፅሑፍ ታሪኽ",
+       "history_short": "ታሪኽ",
+       "newpage": "ሓዳስ ፅሑፍ",
+       "jumptosearch": "ድሉይ",
+       "aboutsite": "ብዛዕባ ዊኪፒዲያ ብጠቅላላ",
+       "mainpage": "መበገሲ ገጽ",
+       "mainpage-description": "መበገሲ ገጽ",
+       "nstab-main": "ፅሑፍ",
+       "nstab-user": "ናይ ፅሑፍ ኣባል",
+       "nstab-project": "ናይ ፅሑፍ ፕሮጀክት",
+       "nstab-image": "ምስሊ",
+       "yourname": "ናይ ኣባል ሽም:",
+       "loginlanguagelabel": "ቋንቋ: $1",
+       "savearticle": "ፅሑፍ ኣቐምጥ",
+       "newarticle": "(ሓዳስ)",
+       "next": "ዝቕጽል",
+       "historysize": "($1 {{PLURAL:$1|ባይታት|ባይታት}})",
+       "prevn": "ናይ ቀደም {{PLURAL:$1|$1}}",
+       "nextn": "ዝቕጽል {{PLURAL:$1|$1}}",
+       "preferences": "ኣማረጽቲ",
+       "mypreferences": "ናተይ ኣማረጽቲ",
+       "saveprefs": "ኣቐምጥ",
+       "searchresultshead": "ድሉይ",
+       "savedprefs": "ዘቕረብኩሞ መርኣይ ብትክክል ተቀሚጡ ኣሎ።",
+       "prefs-files": "ምስልታት",
+       "youremail": "ኢ-መይል:",
+       "yourlanguage": "ቋንቋ:",
+       "email": "ኢ-መይል",
+       "group": "ብሓበር:",
+       "group-sysop": "ሲሶፓት",
+       "group-sysop-member": "{{GENDER:$1|ሲሶፕ}}",
+       "hist": "ታሪኽ",
+       "newpageletter": "ሓ",
+       "savefile": "ምስሊ ኣቐምጥ",
+       "imgfile": "ምስሊ",
+       "listfiles": "ምስልታት",
+       "listfiles_name": "ሽም",
+       "listfiles_user": "ኣባል",
+       "file-anchor-link": "ምስሊ",
+       "nbytes": "$1 {{PLURAL:$1|ባይት|ባይታት}}",
+       "longpages": "ነዋሕቲ ፅሑፋት",
+       "listusers": "ኣባላት",
+       "newpages": "ሓደሽቲ ዛዕባታት",
+       "newpages-username": "ናይ ኣባል ሽም:",
+       "specialloguserlabel": "ኣባል:",
+       "nextpage": "ዝቕጽል ፅሑፍ ($1)",
+       "prevpage": "ናይ ቀደም ፅሑፍ ($1)",
+       "allarticles": "ኵሎም ፅሑፋት",
+       "allpagessubmit": "ኪድ",
+       "pagesize": "(ባይታት)",
+       "undelete-search-submit": "ድሉይ",
+       "contribsub2": "ን$1 ($2)",
+       "sp-contributions-submit": "ድሉይ",
+       "ipblocklist-submit": "ድሉይ",
+       "allmessagesname": "ሽም",
+       "tooltip-pt-preferences": "ናተይ ኣማረጽቲ",
+       "ilsubmit": "ድሉይ",
+       "metadata": "ሜታዳታ",
+       "imgmultipageprev": "← ናይ ቀደም ፅሑፍ",
+       "imgmultipagenext": "ዝቕጽል ፅሑፍ →",
+       "table_pager_next": "ዝቕጽል ፅሑፍ",
+       "table_pager_prev": "ናይ ቀደም ፅሑፍ",
+       "table_pager_limit_submit": "ኪድ",
+       "autosumm-new": "ሓዳስ ፅሑፍ: $1",
+       "size-bytes": "$1 ባይታት",
+       "size-kilobytes": "$1 ኪሎባይታት",
+       "size-megabytes": "$1 ሜጋባይታት",
+       "size-gigabytes": "$1 ጊጋባይታት"
 }
index 3930fdb..d90b67e 100644 (file)
        "mergehistory-same-destination": "Çeşme we  niýetlenilýän sahypalar birmeňzeş bolup bilmeýär",
        "mergehistory-reason": "Sebäp:",
        "mergelog": "Birleşdirme gündeligi",
-       "pagemerge-logentry": "[[$1]] bilen [[$2]] birleşdirildi (şuňa çenliki wersiýalar: $3)",
        "revertmerge": "Dargat",
        "mergelogpagetext": "Aşakdaky sanaw sahypalaryň geçmişleriniň iň soňky birleşdirmelerini görkezýär.",
        "history-title": "\"$1\" — sahypa geçmişi",
        "statistics": "Statistika",
        "statistics-header-pages": "Sahypa statistikalary",
        "statistics-header-edits": "Özgerdiş statistikalary",
-       "statistics-header-views": "Synlama statistikalary",
        "statistics-header-users": "Ulanyjy statistikalary",
        "statistics-header-hooks": "Başga statistikalar",
        "statistics-articles": "Makalalar",
        "statistics-files": "Ýüklenen faýllar",
        "statistics-edits": "{{SITENAME}} gurulaly bäri edilen sahypa özgerdişleri",
        "statistics-edits-average": "Sahypa başyna ortaça özgerdiş",
-       "statistics-views-total": "Jemi synlama",
-       "statistics-views-peredit": "Özgerdiş başyna synlama",
        "statistics-users": "Hasaba alnan [[Special:ListUsers|ulanyjylar]]",
        "statistics-users-active": "Işjeň ulanyjylar",
        "statistics-users-active-desc": "Soňky {{PLURAL:$1|1 günde|$1 günde}} haýsydyr bir iş geçiren ulanyjylar",
-       "statistics-mostpopular": "Iň köp görülýän sahypalar",
        "doubleredirects": "Jübüt gönükdirmeler",
        "doubleredirectstext": "Bu sahypa başga gönükdirme sahypalaryna gönükdirýän sahypalaryň sanawyny görkezýär.\nHer bir hatar birinji we ikinji gönükdirmeleri, şeýle-de ikinji gönükdirmäniň maksady bolup durýan hem-de şol bir wagtyň özünde birinji gönükdirmäniň adatça barmaly ýeri bolan \"hakyky\" maksat edinilýän sahypany öz içine alýar.\n<del>Üsti çyzylan</del> ýazgylar düzedilenlerdir.",
        "double-redirect-fixed-move": "[[$1]] sahypasynyň ady üýtgedildi.\nOl indi [[$2]] sahypasyna gönükdirýär.",
        "uncategorizedtemplates": "Kategoriýa goýulmadyk şablonlar",
        "unusedcategories": "Ulanylmaýan kategoriýalar",
        "unusedimages": "Ulanylmaýan faýllar",
-       "popularpages": "Ýörgünli sahypalar",
        "wantedcategories": "Talap edilýän kategoriýalar",
        "wantedpages": "Talap edilýän sahypalar",
        "wantedpages-badtitle": "Netijeler toplumyndaky nädogry at: $1",
index def9d1b..e23eb02 100644 (file)
@@ -12,7 +12,8 @@
                        "Sky Harbor",
                        "tl.wikipedia.org sysops",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Ianlopez1115"
                ]
        },
        "tog-underline": "Pagsasalungguhit ng link:",
        "permalink": "Palagiang kawing",
        "print": "Ilimbag",
        "view": "Tingnan",
+       "view-foreign": "Tingnan sa $1",
        "edit": "Baguhin",
        "create": "Likhain",
        "editthispage": "Baguhin ang pahinang ito",
        "mergehistory-reason": "Dahilan:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "Tala ng pagsasanib",
-       "pagemerge-logentry": "sinanib ang [[$1]] sa [[$2]] (mga pagbabago hanggang sa $3)",
        "revertmerge": "Paghiwalayin",
        "mergelogpagetext": "Nasa ibaba ang isang talaan ng mga pinakakamakailan lamang na mga pagsasanib ng isang kasaysayan ng pahina patungo sa isa pa.",
        "history-title": "Kasaysayan sa pagbago ng \"$1\"",
        "statistics": "Mga estadistika",
        "statistics-header-pages": "Mga estadistika ng pahina",
        "statistics-header-edits": "Mga estadistika sa mga pagbabago",
-       "statistics-header-views": "Tingnan ang mga estadistika",
        "statistics-header-users": "Mga estadistika sa mga tagagamit",
        "statistics-header-hooks": "Ibang mga estadistika",
        "statistics-articles": "Mga pahina ng nilalaman",
        "statistics-files": "Ikinargang mga talaksan",
        "statistics-edits": "Naihanda na ang mga pagbabago ng pahina mula sa {{SITENAME}}",
        "statistics-edits-average": "Karaniwang pagbabago sa bawat pahina",
-       "statistics-views-total": "Kabuuan ng mga pagtanaw",
-       "statistics-views-total-desc": "Hindi kabilang ang mga pagtanaw sa mga pahinang hindi umiiral at mga pahinang natatangi",
-       "statistics-views-peredit": "Pagtingin sa bawat pagbabago",
        "statistics-users": "Mga nakatalang [[Special:ListUsers|tagagamit]]",
        "statistics-users-active": "Mga masusugid na tagagamit <small>(mga nakatalang mang-aambag sa buwang ito)</small>",
        "statistics-users-active-desc": "Mga tagagamit na nagsagawa ng isang galaw/gawain sa huling {{PLURAL:$1|araw|$1 mga araw}}",
-       "statistics-mostpopular": "Mga pinakarinarayong pahina",
        "doubleredirects": "Mga dobleng karga",
        "doubleredirectstext": "Nagtatala ang pahinang ito ng mga pahinang pumupunta sa iba pang mga pahinang nililipatan.  Naglalaman ang bawat hanay ng mga kawing sa una ang pangalawang kapupuntahan, maging ng puntiryang pangalawang kapupuntahan, na karaniwang \"tunay\" na puntiryang pahina, na dapat kinatuturuan ng unang pupuntahan.\nNasugpo na ang mga ipinasok na <del>inekisan</del>.",
        "double-redirect-fixed-move": "Inilipat na ang [[$1]], isa na ngayon itong panuto/panturo patungo sa [[$2]]",
        "uncategorizedtemplates": "Hindi nakakategoryang mga suleras",
        "unusedcategories": "Hindi ginagamit na mga kategorya",
        "unusedimages": "Hindi ginagamit na mga talaksan",
-       "popularpages": "Mga popular na pahina",
        "wantedcategories": "Kinakailangang mga kategorya",
        "wantedpages": "Kinakailangang mga pahina",
        "wantedpages-badtitle": "Hindi tanggap na pamagat sa loob ng pangkat ng kinalabasan: $1",
        "booksources": "Mga mapagkukunang aklat",
        "booksources-search-legend": "Maghanap ng mapagkukunang aklat",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "Hanapin",
        "booksources-text": "Matatagpuan sa ibaba ang isang tala ng mga kawil patungo sa ibang mga website na nagtitinda ng mga bago at gamit nang aklat, at maaaring may iba pang impormasyon ito tungkol sa mga aklat na hinahanap mo:",
        "booksources-invalid-isbn": "Tila mukhang hindi yata katanggap-tanggap ang ibinigay na ISBN; pakisuri kung may mga kamalian ang pagkakasip/pagkakakopya mula sa orihinal na pinagmulan.",
        "specialloguserlabel": "Tagaganap:",
        "pageinfo-robot-policy": "Katayuan ng makinang panghanap",
        "pageinfo-robot-index": "Matataluntunan",
        "pageinfo-robot-noindex": "Hindi matataluntunan",
-       "pageinfo-views": "Bilang ng mga pagtanaw",
        "pageinfo-watchers": "Bilang ng mga nagbabantay ng pahina",
        "pageinfo-redirects-name": "Napapapunta sa pahinang ito",
        "pageinfo-redirects-value": "$1",
index e8169f7..df34310 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Cbrown1023",
-            "Hakka"
-        ]
-    },
-    "sunday": "Tshipi",
-    "monday": "Mosupologo",
-    "tuesday": "Labobedi",
-    "wednesday": "Laboraro",
-    "thursday": "Labone",
-    "friday": "Labotlhano",
-    "saturday": "Matlhatso",
-    "january": "Firikgong",
-    "february": "Tlhakole",
-    "march": "Mopitlo",
-    "april": "Moranang",
-    "may_long": "Motsheganong",
-    "june": "Seetebosigo",
-    "july": "Phukwi",
-    "august": "Phatwe",
-    "september": "Lwetse",
-    "october": "Phalane",
-    "november": "Ngwanatsele",
-    "december": "Sedimonthole",
-    "january-gen": "Firikgong",
-    "february-gen": "Tlhakole",
-    "march-gen": "Mopitlo",
-    "april-gen": "Moranang",
-    "may-gen": "Motsheganong",
-    "june-gen": "Seetebosigo",
-    "july-gen": "Phukwi",
-    "august-gen": "Phatwe",
-    "september-gen": "Lwetse",
-    "october-gen": "Phalane",
-    "november-gen": "Ngwanatsele",
-    "december-gen": "Sedimonthole",
-    "cancel": "Sutlha",
-    "mytalk": "Puo yame",
-    "navigation": "Tsweletso",
-    "help": "Thuso",
-    "search": "Senka",
-    "searchbutton": "Senka",
-    "go": "Tsamaya",
-    "searcharticle": "Tsamaya",
-    "history_short": "Ditso",
-    "printableversion": "Mokwalo o o ka gatisiwang motlhofo",
-    "permalink": "Kgolagano ya sennelaruri",
-    "edit": "Baakanya",
-    "delete": "Sutlha",
-    "protect": "Sireletsa",
-    "talk": "Puisano",
-    "toolbox": "Lebokoso la dithulusu",
-    "otherlanguages": "Ka dipuo di sele",
-    "currentevents": "Ditiragalo tsa sešeng",
-    "disclaimers": "Tlhapa diatla",
-    "edithelp": "Thuso ya go fetola",
-    "mainpage": "Tsebe ya konokono",
-    "mainpage-description": "Tsebe ya konokono",
-    "portal": "Patlelo ya setšhaba",
-    "portal-url": "Project:Patlelo ya setšhaba",
-    "privacy": "Melawana ya sephiri",
-    "youhavenewmessages": "O na le $1 ($2).",
-    "youhavenewmessagesmulti": "O na le molaetsa o moša mo $1",
-    "editsection": "baakanya",
-    "editold": "baakanya",
-    "nstab-main": "Mokwalo",
-    "nstab-mediawiki": "Molaetsa",
-    "viewsource": "Lebelela motswedi",
-    "yourname": "Leina la modirisi:",
-    "yourpassword": "Selotlolo sa sephiri:",
-    "yourpasswordagain": "Kwala selotlolo sa gago sa sephiri gape:",
-    "remembermypassword": "Gakologelwa ikwadiso yame mo khompiutareng e (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Ikwadise",
-    "userlogin": "Ikwadise / ipulela tsebe",
-    "logout": "Tswala",
-    "userlogout": "Tswala",
-    "notloggedin": "Ga o a ikwadisa",
-    "createaccount": "Ipulela tsebe",
-    "summary": "Tshoboko:",
-    "minoredit": "Se ke paakanyo e potlana",
-    "watchthis": "Lebelela tsebe e",
-    "savearticle": "Boloka tsebe",
-    "showpreview": "Supa gore go tlaa lebega jang",
-    "showdiff": "Supa diphetogo",
-    "currentrev": "Dipaakanyo tsa sešeng",
-    "currentrevisionlink": "Dipaakanyo tsa sešeng",
-    "mypreferences": "Dikgatlhegelo tsa me",
-    "youremail": "E-mail:",
-    "username": "Leina la modirisi:",
-    "recentchanges": "Diphetogo tsa sešeng",
-    "recentchangeslinked": "Diphetogo tse di tsamaelanang",
-    "recentchangeslinked-feed": "Diphetogo tse di tsamaelanang",
-    "recentchangeslinked-toolbox": "Diphetogo tse di tsamaelanang",
-    "upload": "Tsenya mokwalo o o tswang kwantle",
-    "uploadbtn": "Tsenya mokwalo o o tswang kwantle",
-    "watchthisupload": "Lebelela tsebe e",
-    "randompage": "Tsebe e e sa tlhomamang",
-    "move": "Suta",
-    "movethispage": "Sutisa tsebe e",
-    "mywatchlist": "Mafoko a ke a etseng tlhoko",
-    "watchnologin": "Ga o a ikwadisa",
-    "watch": "Lebelela",
-    "watchthispage": "Lebelela tsebe e",
-    "prot_1movedto2": "[[$1]] o sutisediwa kwa go [[$2]]",
-    "undelete-search-submit": "Senka",
-    "mycontris": "Seabe same",
-    "whatlinkshere": "Ke eng se se gokaganang fa",
-    "move-page-legend": "Sutisa tsebe",
-    "movearticle": "Sutisa tsebe:",
-    "movepagebtn": "Sutisa tsebe",
-    "movereason": "Lebaka:",
-    "allmessages": "Melaetsa ya maranyane",
-    "specialpages": "Diphetogo tse di faphegileng"
+       "@metadata": {
+               "authors": [
+                       "Cbrown1023",
+                       "Hakka"
+               ]
+       },
+       "sunday": "Tshipi",
+       "monday": "Mosupologo",
+       "tuesday": "Labobedi",
+       "wednesday": "Laboraro",
+       "thursday": "Labone",
+       "friday": "Labotlhano",
+       "saturday": "Matlhatso",
+       "january": "Firikgong",
+       "february": "Tlhakole",
+       "march": "Mopitlo",
+       "april": "Moranang",
+       "may_long": "Motsheganong",
+       "june": "Seetebosigo",
+       "july": "Phukwi",
+       "august": "Phatwe",
+       "september": "Lwetse",
+       "october": "Phalane",
+       "november": "Ngwanatsele",
+       "december": "Sedimonthole",
+       "january-gen": "Firikgong",
+       "february-gen": "Tlhakole",
+       "march-gen": "Mopitlo",
+       "april-gen": "Moranang",
+       "may-gen": "Motsheganong",
+       "june-gen": "Seetebosigo",
+       "july-gen": "Phukwi",
+       "august-gen": "Phatwe",
+       "september-gen": "Lwetse",
+       "october-gen": "Phalane",
+       "november-gen": "Ngwanatsele",
+       "december-gen": "Sedimonthole",
+       "cancel": "Sutlha",
+       "mytalk": "Puo yame",
+       "navigation": "Tsweletso",
+       "help": "Thuso",
+       "search": "Senka",
+       "searchbutton": "Senka",
+       "go": "Tsamaya",
+       "searcharticle": "Tsamaya",
+       "history_short": "Ditso",
+       "printableversion": "Mokwalo o o ka gatisiwang motlhofo",
+       "permalink": "Kgolagano ya sennelaruri",
+       "edit": "Baakanya",
+       "delete": "Sutlha",
+       "protect": "Sireletsa",
+       "talk": "Puisano",
+       "toolbox": "Lebokoso la dithulusu",
+       "otherlanguages": "Ka dipuo di sele",
+       "currentevents": "Ditiragalo tsa sešeng",
+       "disclaimers": "Tlhapa diatla",
+       "edithelp": "Thuso ya go fetola",
+       "mainpage": "Tsebe ya konokono",
+       "mainpage-description": "Tsebe ya konokono",
+       "portal": "Patlelo ya setšhaba",
+       "portal-url": "Project:Patlelo ya setšhaba",
+       "privacy": "Melawana ya sephiri",
+       "youhavenewmessages": "O na le $1 ($2).",
+       "youhavenewmessagesmulti": "O na le molaetsa o moša mo $1",
+       "editsection": "baakanya",
+       "editold": "baakanya",
+       "nstab-main": "Mokwalo",
+       "nstab-mediawiki": "Molaetsa",
+       "viewsource": "Lebelela motswedi",
+       "yourname": "Leina la modirisi:",
+       "yourpassword": "Selotlolo sa sephiri:",
+       "yourpasswordagain": "Kwala selotlolo sa gago sa sephiri gape:",
+       "remembermypassword": "Gakologelwa ikwadiso yame mo khompiutareng e (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Ikwadise",
+       "userlogin": "Ikwadise / ipulela tsebe",
+       "logout": "Tswala",
+       "userlogout": "Tswala",
+       "notloggedin": "Ga o a ikwadisa",
+       "createaccount": "Ipulela tsebe",
+       "summary": "Tshoboko:",
+       "minoredit": "Se ke paakanyo e potlana",
+       "watchthis": "Lebelela tsebe e",
+       "savearticle": "Boloka tsebe",
+       "showpreview": "Supa gore go tlaa lebega jang",
+       "showdiff": "Supa diphetogo",
+       "currentrev": "Dipaakanyo tsa sešeng",
+       "currentrevisionlink": "Dipaakanyo tsa sešeng",
+       "mypreferences": "Dikgatlhegelo tsa me",
+       "youremail": "E-mail:",
+       "username": "Leina la modirisi:",
+       "recentchanges": "Diphetogo tsa sešeng",
+       "recentchangeslinked": "Diphetogo tse di tsamaelanang",
+       "recentchangeslinked-feed": "Diphetogo tse di tsamaelanang",
+       "recentchangeslinked-toolbox": "Diphetogo tse di tsamaelanang",
+       "upload": "Tsenya mokwalo o o tswang kwantle",
+       "uploadbtn": "Tsenya mokwalo o o tswang kwantle",
+       "watchthisupload": "Lebelela tsebe e",
+       "randompage": "Tsebe e e sa tlhomamang",
+       "move": "Suta",
+       "movethispage": "Sutisa tsebe e",
+       "mywatchlist": "Mafoko a ke a etseng tlhoko",
+       "watchnologin": "Ga o a ikwadisa",
+       "watch": "Lebelela",
+       "watchthispage": "Lebelela tsebe e",
+       "prot_1movedto2": "[[$1]] o sutisediwa kwa go [[$2]]",
+       "undelete-search-submit": "Senka",
+       "mycontris": "Seabe same",
+       "whatlinkshere": "Ke eng se se gokaganang fa",
+       "move-page-legend": "Sutisa tsebe",
+       "movearticle": "Sutisa tsebe:",
+       "movepagebtn": "Sutisa tsebe",
+       "movereason": "Lebaka:",
+       "allmessages": "Melaetsa ya maranyane",
+       "specialpages": "Diphetogo tse di faphegileng"
 }
index 86e6e3a..f8f2986 100644 (file)
        "randomredirect": "Leʻei noa pē",
        "statistics": "Sitesitesika",
        "statistics-header-users": "Sitesitesika ʻo e ʻetita",
-       "statistics-mostpopular": "Ko e ngaahi peesi naʻe vakai ki ai lahi taha",
        "doubleredirects": "Ngaahi leʻeleʻei",
        "doubleredirectstext": "ʻOku ʻasi ʻi he ʻotu kotoa pē ha ongo fehokotaki ki he leʻei, mo e leʻeleʻei, mo e kamataʻanga ʻo e leʻeleʻei, taimi ʻe niʻihi ko e peesi totonu ia, ʻoku taau ʻe tuhu ki ai ʻe he leʻei.",
        "brokenredirects": "Ngaahi leʻei maumau",
        "uncategorizedtemplates": "Sīpinga taʻefaʻahingaʻi",
        "unusedcategories": "Faʻahinga taʻengāueʻaki",
        "unusedimages": "Faitā taʻengāueʻaki",
-       "popularpages": "Peesi manakoa",
        "wantedcategories": "Faʻahinga fiemaʻu",
        "wantedpages": "Kupu fiemaʻu",
        "wantedfiles": "Faile fiemaʻu",
index 9f1b09e..67f4b5f 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "http://tokipona.wikia.com sysops"
-        ]
-    },
-    "january": "tenpo mun pi nanpa wan",
-    "february": "tenpo mun pi nanpa tu",
-    "march": "tenpo mun pi nanpa tu wan",
-    "april": "tenpo mun pi nanpa tu tu",
-    "may_long": "tenpo mun pi nanpa luka",
-    "june": "tenpo mun pi nanpa luka wan",
-    "july": "tenpo mun pi nanpa luka tu",
-    "august": "tenpo mun pi nanpa luka tu wan",
-    "september": "tenpo mun pi nanpa luka tu tu",
-    "october": "tenpo mun pi nanpa luka luka",
-    "november": "tenpo mun pi nanpa luka luka wan",
-    "december": "tenpo mun pi nanpa luka luka tu",
-    "category_header": "lipu lon kulupu lipu \"$1\"",
-    "subcategories": "kulupu lipu lili",
-    "listingcontinuesabbrev": " li awen",
-    "article": "lipu sona",
-    "newwindow": "(ona li open e lupa sin)",
-    "cancel": "ike",
-    "mytalk": "toki mi",
-    "navigation": "lipu suli",
-    "help": "mi sona ala",
-    "search": "o lukin jo",
-    "go": "o tawa",
-    "history": "o lukin e lipu ni pi tenpo pini",
-    "history_short": "lipu ni pi tenpo pini",
-    "printableversion": "lipu ni o kama lipu len",
-    "permalink": "nimi open kiwen",
-    "edit": "o ante",
-    "editthispage": "o ante e lipu ni",
-    "delete": "o weka",
-    "deletethispage": "o weka e lipu ni",
-    "protect": "mi taso o ken ante",
-    "protectthispage": "mi taso o ken ante e lipu ni",
-    "unprotect": "jan ali o ken ante",
-    "unprotectthispage": "jan ale o ken ante e lipu ni",
-    "talkpage": "Talk page",
-    "specialpage": "lipu suli",
-    "talk": "o toki",
-    "toolbox": "ilo",
-    "otherlanguages": "toki ante",
-    "redirectedfrom": "(tan $1)",
-    "aboutsite": "lipu sona pi toki pona li seme?",
-    "aboutpage": "Project:lipu sona pi toki pona li seme?",
-    "copyright": "lipu ken $1 li lawa e lipu ni.",
-    "currentevents": "seme li sin lon ma?",
-    "disclaimers": "wile ala",
-    "edithelp": "mi sona ala e ante",
-    "mainpage": "lipu lawa",
-    "mainpage-description": "lipu lawa",
-    "portal": "lipu pi kulupu ni",
-    "privacy": "ken pi awen weka",
-    "ok": "pona",
-    "retrievedfrom": "tan $1",
-    "editsection": "o ante",
-    "toc": "poki lawa",
-    "showtoc": "o suli e poki ni.",
-    "hidetoc": "o lili e poki ni",
-    "nstab-main": "lipu sona",
-    "nstab-user": "lipu jan",
-    "nstab-special": "suli",
-    "nstab-image": "lipu nanpa",
-    "nstab-mediawiki": "nimi",
-    "nstab-template": "lipu mama",
-    "nstab-help": "pana pona",
-    "nstab-category": "kulupu lipu",
-    "logout": "mi o tawa",
-    "userlogout": "mi o tawa",
-    "summary": "ante li seme:",
-    "minoredit": "ante ni li lili taso",
-    "watchthis": "mi wile sona e ante ale pi lipu ni lon tenpo kama",
-    "savearticle": "o awen",
-    "preview": "lukin taso",
-    "showpreview": "mi wile lukin taso e ante",
-    "editing": "mi ante e: $1",
-    "editingcomment": "mi ante e lipu $1 (wan sin)",
-    "copyrightwarning": "o sona e ni: ken $2 (o lukin e $1) li lawa tawa ante ali lon {{SITENAME}} li. jan li ken ante e toki sina li ken pana e ona tawa jan ante. sina wile ala e ni la, o sitelen ala lon lipu ni.<br />\nkin la sina toki e ni: toki sina ni li tan sina taso anu lipu pi ken ali.\n'''SINA KEN ALA LA, O PANA ALA E TOKI PI KEN LILI TAWA LIPU NI!'''",
-    "templatesused": "{{PLURAL:$1|Template|Templates}} used on this page:",
-    "histfirst": "pini taso",
-    "histlast": "sin taso",
-    "prevn": "nanpa {{PLURAL:$1|$1}} pini",
-    "nextn": "nanpa {{PLURAL:$1|$1}} kama",
-    "viewprevnext": "o lukin e ($1 {{int:pipe-separator}} $2) ($3).",
-    "preferences": "seme li pona tawa mi",
-    "recentchanges": "lipu seme li ante?",
-    "minoreditletter": "ante lili",
-    "newpageletter": "lipu sin",
-    "recentchangeslinked": "ante sama",
-    "recentchangeslinked-feed": "ante sama",
-    "recentchangeslinked-toolbox": "ante sama",
-    "upload": "o pana e lipu nanpa",
-    "filedesc": "ante li seme",
-    "fileuploadsummary": "ante li seme:",
-    "file-anchor-link": "Lipu nanpa",
-    "randompage": "mi wile lukin e lipu ante",
-    "lonelypages": "lipu ni li jo ala e lipu sama",
-    "move": "o tawa",
-    "movethispage": "o pana e nimi sin",
-    "allpages": "lipu ale",
-    "categories": "kulupu lipu",
-    "watchlist": "mi sona e ante pi lipu seme",
-    "watch": "o sona e ante",
-    "watchthispage": "mi wile sona e ante ale pi lipu ni lon tenpo kama",
-    "unwatchthispage": "mi wile ala sona e ante ale pi lipu ni lon tenpo kama",
-    "mycontris": "mi ante e lipu seme",
-    "whatlinkshere": "lipu seme li tawa ni?",
-    "specialpages": "lipu suli"
+       "@metadata": {
+               "authors": [
+                       "http://tokipona.wikia.com sysops"
+               ]
+       },
+       "january": "tenpo mun pi nanpa wan",
+       "february": "tenpo mun pi nanpa tu",
+       "march": "tenpo mun pi nanpa tu wan",
+       "april": "tenpo mun pi nanpa tu tu",
+       "may_long": "tenpo mun pi nanpa luka",
+       "june": "tenpo mun pi nanpa luka wan",
+       "july": "tenpo mun pi nanpa luka tu",
+       "august": "tenpo mun pi nanpa luka tu wan",
+       "september": "tenpo mun pi nanpa luka tu tu",
+       "october": "tenpo mun pi nanpa luka luka",
+       "november": "tenpo mun pi nanpa luka luka wan",
+       "december": "tenpo mun pi nanpa luka luka tu",
+       "category_header": "lipu lon kulupu lipu \"$1\"",
+       "subcategories": "kulupu lipu lili",
+       "listingcontinuesabbrev": " li awen",
+       "article": "lipu sona",
+       "newwindow": "(ona li open e lupa sin)",
+       "cancel": "ike",
+       "mytalk": "toki mi",
+       "navigation": "lipu suli",
+       "help": "mi sona ala",
+       "search": "o lukin jo",
+       "go": "o tawa",
+       "history": "o lukin e lipu ni pi tenpo pini",
+       "history_short": "lipu ni pi tenpo pini",
+       "printableversion": "lipu ni o kama lipu len",
+       "permalink": "nimi open kiwen",
+       "edit": "o ante",
+       "editthispage": "o ante e lipu ni",
+       "delete": "o weka",
+       "deletethispage": "o weka e lipu ni",
+       "protect": "mi taso o ken ante",
+       "protectthispage": "mi taso o ken ante e lipu ni",
+       "unprotect": "jan ali o ken ante",
+       "unprotectthispage": "jan ale o ken ante e lipu ni",
+       "talkpage": "Talk page",
+       "specialpage": "lipu suli",
+       "talk": "o toki",
+       "toolbox": "ilo",
+       "otherlanguages": "toki ante",
+       "redirectedfrom": "(tan $1)",
+       "aboutsite": "lipu sona pi toki pona li seme?",
+       "aboutpage": "Project:lipu sona pi toki pona li seme?",
+       "copyright": "lipu ken $1 li lawa e lipu ni.",
+       "currentevents": "seme li sin lon ma?",
+       "disclaimers": "wile ala",
+       "edithelp": "mi sona ala e ante",
+       "mainpage": "lipu lawa",
+       "mainpage-description": "lipu lawa",
+       "portal": "lipu pi kulupu ni",
+       "privacy": "ken pi awen weka",
+       "ok": "pona",
+       "retrievedfrom": "tan $1",
+       "editsection": "o ante",
+       "toc": "poki lawa",
+       "showtoc": "o suli e poki ni.",
+       "hidetoc": "o lili e poki ni",
+       "nstab-main": "lipu sona",
+       "nstab-user": "lipu jan",
+       "nstab-special": "suli",
+       "nstab-image": "lipu nanpa",
+       "nstab-mediawiki": "nimi",
+       "nstab-template": "lipu mama",
+       "nstab-help": "pana pona",
+       "nstab-category": "kulupu lipu",
+       "logout": "mi o tawa",
+       "userlogout": "mi o tawa",
+       "summary": "ante li seme:",
+       "minoredit": "ante ni li lili taso",
+       "watchthis": "mi wile sona e ante ale pi lipu ni lon tenpo kama",
+       "savearticle": "o awen",
+       "preview": "lukin taso",
+       "showpreview": "mi wile lukin taso e ante",
+       "editing": "mi ante e: $1",
+       "editingcomment": "mi ante e lipu $1 (wan sin)",
+       "copyrightwarning": "o sona e ni: ken $2 (o lukin e $1) li lawa tawa ante ali lon {{SITENAME}} li. jan li ken ante e toki sina li ken pana e ona tawa jan ante. sina wile ala e ni la, o sitelen ala lon lipu ni.<br />\nkin la sina toki e ni: toki sina ni li tan sina taso anu lipu pi ken ali.\n'''SINA KEN ALA LA, O PANA ALA E TOKI PI KEN LILI TAWA LIPU NI!'''",
+       "templatesused": "{{PLURAL:$1|Template|Templates}} used on this page:",
+       "histfirst": "pini taso",
+       "histlast": "sin taso",
+       "prevn": "nanpa {{PLURAL:$1|$1}} pini",
+       "nextn": "nanpa {{PLURAL:$1|$1}} kama",
+       "viewprevnext": "o lukin e ($1 {{int:pipe-separator}} $2) ($3).",
+       "preferences": "seme li pona tawa mi",
+       "recentchanges": "lipu seme li ante?",
+       "minoreditletter": "ante lili",
+       "newpageletter": "lipu sin",
+       "recentchangeslinked": "ante sama",
+       "recentchangeslinked-feed": "ante sama",
+       "recentchangeslinked-toolbox": "ante sama",
+       "upload": "o pana e lipu nanpa",
+       "filedesc": "ante li seme",
+       "fileuploadsummary": "ante li seme:",
+       "file-anchor-link": "Lipu nanpa",
+       "randompage": "mi wile lukin e lipu ante",
+       "lonelypages": "lipu ni li jo ala e lipu sama",
+       "move": "o tawa",
+       "movethispage": "o pana e nimi sin",
+       "allpages": "lipu ale",
+       "categories": "kulupu lipu",
+       "watchlist": "mi sona e ante pi lipu seme",
+       "watch": "o sona e ante",
+       "watchthispage": "mi wile sona e ante ale pi lipu ni lon tenpo kama",
+       "unwatchthispage": "mi wile ala sona e ante ale pi lipu ni lon tenpo kama",
+       "mycontris": "mi ante e lipu seme",
+       "whatlinkshere": "lipu seme li tawa ni?",
+       "specialpages": "lipu suli"
 }
index 62e90fc..89f476c 100644 (file)
@@ -6,7 +6,8 @@
                        "Iketsi",
                        "Wantok",
                        "Wytukaze",
-                       "לערי ריינהארט"
+                       "לערי ריינהארט",
+                       "सरोज कुमार ढकाल"
                ]
        },
        "tog-underline": "Putim lain ananit long ol link:",
        "unusedcategoriestext": "Ol dispela grup istap yet, tasol i no gat wanpela pes o grup i stap insait long ol.",
        "booksources": "Ol as bilong buk",
        "booksources-search-legend": "Painim long ol buk as",
-       "booksources-go": "Go",
        "specialloguserlabel": "Yusa:",
        "speciallogtitlelabel": "Nem:",
        "log": "Ol ripot",
        "unwatchthispage": "Pinis long lukautim",
        "watchlist-details": "$1 pes istap long lukautbuk (dispela namba i no kaunim ol pes bilong toktok).",
        "wlheader-showupdated": "Ol pes i senis pinis bihain long taim yu lukim ol igat nem i '''strongpela'''",
-       "wlshowlast": "Lukim dispela $1 aua $2 de $3",
+       "wlshowlast": "Lukim dispela $1 aua $2 de",
        "watchlist-options": "Ol laik bilong Lukautbuk",
        "watching": "Wet liklik, i go insait long lukautbuk nau...",
        "unwatching": "Wet liklik, i raus nau long lukautbuk...",
        "metadata": "Metadata",
        "exif-imagedescription": "Nem bilong piksa",
        "exif-meteringmode-255": "Narapela",
-       "watchlistall2": "olgeta",
        "namespacesall": "ol",
        "monthsall": "olgeta",
        "scarytranscludetoolong": "[URL i longpela tumas]",
index 74d4457..4c3c97e 100644 (file)
@@ -62,7 +62,9 @@
                        "Arystanbek",
                        "Sayginer",
                        "Sucsuzz",
-                       "Kafkasmurat"
+                       "Kafkasmurat",
+                       "Violetanka",
+                       "Trockya"
                ]
        },
        "tog-underline": "Bağlantıların altını çiz:",
@@ -79,6 +81,7 @@
        "tog-watchdefault": "Düzenleme yaptığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchmoves": "Taşıdığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchdeletion": "Sildiğim sayfaları ve dosyaları izleme listeme ekle",
+       "tog-watchrollback": "Eski haline getirme kullandığım sayfaları izleme listeme ekle",
        "tog-minordefault": "Varsayılan olarak bütün düzenlemeleri küçük olarak işaretle",
        "tog-previewontop": "Ön izlemeyi düzenleme kutusunun üstünde göster",
        "tog-previewonfirst": "İlk düzenlemede ön izlemeyi göster",
        "index-category": "Dizinli sayfalar",
        "noindex-category": "Dizinli olmayan sayfalar",
        "broken-file-category": "Bozuk dosya bağlantıları içeren sayfalar",
+       "categoryviewer-pagedlinks": "($1) ($2)",
        "about": "Hakkında",
        "article": "İçerik sayfası",
        "newwindow": "(yeni bir pencerede açılır)",
        "pool-timeout": "Kilit için zaman bitimi bekleniyor",
        "pool-queuefull": "Havuz sırası dolu",
        "pool-errorunknown": "Bilinmeyen hata",
+       "pool-servererror": "Anket sayacı hizmeti kullanılamıyor ($1).",
        "aboutsite": "{{SITENAME}} hakkında",
        "aboutpage": "Project:Hakkında",
        "copyright": "Aksi belirtilmedikçe içerik $1 altındadır.",
        "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz:",
        "viewyourtext": "Bu sayfaya '''yaptığınız değişikliklerin''' kaynağını görünteleyip kopyalayabilirsiniz:",
        "protectedinterface": "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır. Eklemek ya da bütün vikilerdeki çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
-       "editinginterface": "'''UYARI:''' Wiki yazılımı için arayüz sağlamakta kullanılan bir sayfayı değiştirmektesiniz. Bu sayfadaki değişiklikler kullanıcı arayüzünü diğer kullanıcılar için de değiştirecektir. Çeviriler için, lütfen [//translatewiki.net/wiki/Main_Page?setlang=tr translatewiki.net]'yi kullanarak MediaWiki yerelleştirme projesini dikkate alınız.",
+       "editinginterface": "<strong>Uyarı:</strong> Yazılım için arayüz metni sağlayan bir sayfayı değiştiriyorsunuz.\nBu sayfada yapılacak değişiklikler diğer kullanıcıların vikilerindeki kullanıcı arayüzlerinin görünümünü de etkileyecektir.",
+       "translateinterface": "Tüm vikilerde çeviri eklemek veya çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesini [//translatewiki.net/] kullanın.",
        "cascadeprotected": "Bu sayfa değişiklik yapılması engellenmiştir, çünkü  \"kademeli\" seçeneği aktif hale getirilerek koruma altına alınan {{PLURAL:$1|sayfada|sayfada}} kullanılmaktadır:\n$2",
        "namespaceprotected": "'''$1''' alandındaki sayfaları düzenlemeye izniniz bulunmamaktadır.",
        "customcssprotected": "Bu sayfayı değiştirmeye yetkiniz bulunmamaktadır, çünkü bu sayfa başka bir kullanıcının kişisel ayarlarını içermektedir.",
        "createaccount-text": "Birisi {{SITENAME}} sitesinde ($4) sizin e-posta adresinizi kullarak, şifresi \"$3\" olan, \"$2\" isimli bir hesap oluşturdu.\n\nSiteye giriş yapmalı ve parolanızı değiştirmelisiniz.\n\nEğer kullanıcı hesabını yanlışlıkla oluşturmuş iseniz, bu mesajı yoksayabilirsiniz.",
        "login-throttled": "Çok fazla yeni oturum açma girişiminde bulundunuz.\nDevam etmeden önce $1 bekleyin.",
        "login-abort-generic": "Girişiniz başarısız - iptal edilmiş",
+       "login-migrated-generic": "Hesabınız aktarılmış ve kullanıcı adınız artık bu vikide yok.",
        "loginlanguagelabel": "Dil: $1",
        "suspicious-userlogout": "Çıkış isteğiniz reddedildi çünkü bozuk bir tarayıcı ya da önbellekli vekil tarafından gönerilmiş gibi görünüyor.",
        "createacct-another-realname-tip": "Gerçek adınız isteğe bağlıdır.\nEğer gerçek adınızı belirtirseniz, çalışmalarınıza atıfta bulunulması için de kullanılacaktır.",
        "showpreview": "Önizlemeyi göster",
        "showdiff": "Değişiklikleri göster",
        "blankarticle": "<strong>Uyarı:</strong> Oluşturduğunuz sayfa boş.\nEğer \"{{int:savearticle}}\" düğmesine tekrar tıklarsanız, sayfa içerik olmadan oluşturulacaktır.",
-       "anoneditwarning": "'''Uyarı:''' Oturum açmadınız.\nIP adresiniz sayfanın değişiklik geçmişine kaydedilecektir.",
+       "anoneditwarning": "<strong>Uyarı:</strong> Giriş yapmadınız. Herhangi bir değişiklik yapmanız durumunda IP adresiniz herkese gözükecektir. Eğer <strong>[$1 giriş yaparsanız]</strong> veya <strong>[$2 bir hesap oluşturursanız]</strong>, edineceğiniz çeşitli yararların yanı sıra yaptığınız değişiklikler de kullanıcı adınıza atfedilecektir.",
        "anonpreviewwarning": "''Giriş yapmadınız. Kaydederseniz, sayfanın değişiklik geçmişine IP adresiniz yazılır.''",
        "missingsummary": "'''Uyarı:''' Herhangi bir özet yazmadın.\nKaydet tuşuna tekrar basarsan sayfa özetsiz kaydedilecek.",
        "missingcommenttext": "Lütfen aşağıda bir açıklama yazınız.",
        "content-model-text": "düz metin",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Yinelenen şablon değişkenleri kullanan sayfalar",
        "expensive-parserfunction-warning": "Uyarı: Bu sayfa çok fazla zengin derleyici fonksiyonu çağrısı içeriyor.\n\nBu $2 çağrıdan az olmalı, şu anda {{PLURAL:$1|1 çağrı var|$1 çağrı var}}.",
        "expensive-parserfunction-category": "Çok fazla zengin derleyici fonksiyonu çağrısına sahip sayfalar",
        "post-expand-template-inclusion-warning": "'''Uyarı''': Şablon içeriği çok büyük.\nBazı şablonlar eklenemeyecek.",
        "logdelete-selected": "{{PLURAL:$1|Seçili kayıt olayı|Seçili kayıt olayları}}:",
        "revdelete-text-text": "Silinen sürümler sayfa geçmişinde yer almaya devam edecek ancak okuyucular tarafından içeriklerine erişilemeyecektir.",
        "revdelete-text-file": "Silinen dosya sürümleri dosya geçmişinde yer almaya devam edecek ancak okuyucular tarafından içerik bölümlerine erişilemeyecektir.",
+       "revdelete-text-others": "Ek kısıtlamalar konulmadıkça diğer yöneticiler silinen bir gizli içeriğe işlemi geri almak için erişebilecek.",
        "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:\n* Muhtemel iftira niteliğindeki bilgi\n* Uygunsuz kişisel bilgi\n*: ''ev adresleri ve telefon numaraları, sosyal güvenlik numaraları, vs.''",
        "revdelete-legend": "Görünürlük kısıtlamaları ayarla",
        "mergehistory-comment": "[[:$1]] ile [[:$2]] birleştirildi: $3",
        "mergehistory-same-destination": "Kaynak ve hedef sayfaları aynı olamaz",
        "mergehistory-reason": "Sebep:",
+       "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "Birleştirme kaydı",
-       "pagemerge-logentry": "[[$1]] ile [[$2]] birleştirildi ($3'e kadar olan revizyonlar)",
        "revertmerge": "Ayır",
        "mergelogpagetext": "Aşağıdaki liste, sayfaların geçmiş versiyonlarının birbirleriyle en son birleştirilmelerini içerir",
        "history-title": "\"$1\" sayfasının geçmişi",
        "search-file-match": "(dosya içeriğiyle eşleşiyor)",
        "search-suggest": "Bunu mu demek istediniz: $1",
        "search-interwiki-caption": "Kardeş projeler",
-       "search-interwiki-default": "$1 sonuçlar:",
+       "search-interwiki-default": "$1 sonuçları:",
        "search-interwiki-more": "(daha çok)",
        "search-relatedarticle": "ilgili",
        "searchrelated": "ilgili",
        "youremail": "E-posta:",
        "username": "{{GENDER:$1|Kullanıcı adı}}:",
        "prefs-memberingroups": "{{GENDER:$2|Üye}} {{PLURAL:$1|group|grupları}}:",
+       "prefs-memberingroups-type": "$1",
        "prefs-registration": "Kayıt zamanı:",
+       "prefs-registration-date-time": "$1",
        "yourrealname": "Gerçek adınız:",
        "yourlanguage": "Dil:",
        "yourvariant": "İçerik dili türevi:",
        "gender-female": "Viki sayfalarını kadın olarak düzenliyorum",
        "prefs-help-gender": "Bu tercih ayarı isteğe bağlıdır.\nYazılımda söz değerlerinin başlarında bulunan cinsiyete uygun gramerler için kullanılır.\nBu bilgiler herkes tarafından görülebilir.",
        "email": "E-posta",
-       "prefs-help-realname": "* Gerçek isim (isteğe bağlı): eğer gerçek isminizi vermeyi seçerseniz, çalışmanızı size atfederken kullanılacaktır.",
+       "prefs-help-realname": "Gerçek ismi vermek isteğe bağlıdır.\nEğer verirseniz yaptığınız çalışmalara ithafen kullanılabilir.",
        "prefs-help-email": "E-posta adresi isteğe bağlıdır; ancak parolanızı unutmanız durumunda parola sıfırlamak için gerekecektir.",
        "prefs-help-email-others": "Ayrıca kullanıcı sayfanızdaki bir bağlantı yoluyla diğer kullanıcıların size e-posta atmasına izin vermeyi seçebilirsiniz.\nDiğer kullanıcılar sizinle bu yolla iletişime geçtiğinde e-posta adresiniz açıklanmaz.",
        "prefs-help-email-required": "E-posta adresi gerekmektedir.",
        "prefs-tokenwatchlist": "Anahtar",
        "prefs-diffs": "Farklar",
        "prefs-help-prefershttps": "Bu tercih bir sonraki girişinizde etkili olacaktır.",
+       "prefswarning-warning": "Henüz kaydedilmemiş değişiklikler yaptınız. \"$\"'e basmadığınız takdirde tercihleriniz güncellenmeyecektir.",
        "prefs-tabs-navigation-hint": "İpucu: Sekmeler listesindeki sekmeler arasında gezinmek için sağ ve sol ok tuşlarını kullanabilirsiniz.",
        "email-address-validity-valid": "E-posta adresi geçerli görünüyor",
        "email-address-validity-invalid": "Geçerli bir e-posta adresi girin",
        "saveusergroups": "Kullanıcı grupları kaydet",
        "userrights-groupsmember": "İçinde olduğu gruplar:",
        "userrights-groupsmember-auto": "Saklı olarak içinde olduğu gruplar:",
+       "userrights-groupsmember-type": "$1",
        "userrights-groups-help": "Bu kullanıcının içinde olduğu grupları değiştirebilirsiniz:\n* Seçili bir kutu, kullanıcının o gruba dahil olduğu anlamına gelir\n* Seçilmemiş bir kutu, kullanıcının o grupta olmadığı anlamına gelir.\n* *, grubu bir kez oluşturduktan sonra silemeceğinizi belirtir, ya da karşılıklı olarak.",
        "userrights-reason": "Neden:",
        "userrights-no-interwiki": "Diğer vikilerdeki kullanıcıların izinlerini değiştirmeye yetkiniz yok.",
        "license": "Lisans:",
        "license-header": "Lisanslama",
        "nolicense": "Hiçbirini seçme",
+       "licenses-edit": "Lisans seçeneklerini düzenle",
        "license-nopreview": "(Önizleme etkin değil)",
        "upload_source_url": "(geçerli, herkesin ulaşabileceği bir URL'den seçtiğiniz dosya)",
        "upload_source_file": "(bilgisayarınızdan seçtiğiniz dosya)",
        "uploadnewversion-linktext": "Dosyanın yenisini yükleyin",
        "shared-repo-from": "$1'dan",
        "shared-repo": "ortak bir havuz",
+       "shared-repo-name-wikimediacommons": "Wikimedia Commons'ta",
        "upload-disallowed-here": "Bu dosyanın üzerine yazamazsınız.",
        "filerevert": "$1 dosyasını eski haline döndür",
        "filerevert-legend": "Dosyayı eski haline döndür",
        "statistics": "İstatistikler",
        "statistics-header-pages": "Sayfa istatistikleri",
        "statistics-header-edits": "Değişiklik istatistikleri",
-       "statistics-header-views": "Görüntüleme istatistikleri",
        "statistics-header-users": "Kullanıcı istatistikleri",
        "statistics-header-hooks": "Diğer istatistikler",
        "statistics-articles": "Maddeler",
        "statistics-files": "Yüklenmiş dosyalar",
        "statistics-edits": "{{SITENAME}} kurulduğundan beri yapılan sayfa değişiklikleri",
        "statistics-edits-average": "Her sayfadaki ortalama değişiklik",
-       "statistics-views-total": "Toplam görüntüleme",
-       "statistics-views-total-desc": "Varolmayan ve özel sayfaların görüntülenmeleri dahil edilmemiştir.",
-       "statistics-views-peredit": "Değişiklik başına görüntüleme",
        "statistics-users": "Kayıtlı [[Special:ListUsers|kullanıcılar]]",
        "statistics-users-active": "Aktif kullanıcılar",
        "statistics-users-active-desc": "Son {{PLURAL:$1|gün|$1 günde}} çalışma yapan kullanıcılar",
-       "statistics-mostpopular": "En çok ziyaret edilen sayfalar",
        "pageswithprop": "Bir sayfa özelliğine sahip sayfalar",
        "pageswithprop-legend": "Bir sayfa özelliğine sahip sayfalar",
        "pageswithprop-text": "Bu sayfa belirli bir sayfa özelliğini kullanan sayfaları listeler.",
        "uncategorizedtemplates": "Kategorisiz şablonlar",
        "unusedcategories": "Kullanılmayan kategoriler",
        "unusedimages": "Kullanılmayan dosyalar",
-       "popularpages": "Popüler sayfalar",
        "wantedcategories": "İstenen kategoriler",
        "wantedpages": "İstenen sayfalar",
        "wantedpages-badtitle": "Sonuç kümesinde geçersiz başlık: $1",
        "pager-older-n": "$1 daha eski",
        "suppress": "Gözetim",
        "querypage-disabled": "Bu özel sayfa, performansa dayalı nedenlerle devre dışı bırakılır.",
+       "apihelp-no-such-module": "\"$1\" modülü bulunamadı.",
        "booksources": "Kaynak kitaplar",
        "booksources-search-legend": "Kitap kaynaklarını ara",
+       "booksources-isbn": "ISBN:",
        "booksources-search": "Ara",
        "booksources-text": "Aşağıdaki, yeni ve kullanılmış kitap satan diğer sitelere bağlantıların listesidir, ve aradığınız kitaplar hakkında daha fazla bilgiye sahip olabilirler:",
        "booksources-invalid-isbn": "Verilen ISBN geçersiz gibi görünüyor; orijinal kaynaktan kopyalama hataları için kontrol edin.",
        "listgrouprights-removegroup-self": "Kendi hesabından {{PLURAL:$2|grup|grupları}} çıkarabilir: $1",
        "listgrouprights-addgroup-self-all": "Kendi hesabına tüm grupları ekleyebilir",
        "listgrouprights-removegroup-self-all": "Kendi hesabından tüm grupları çıkarabilir",
+       "listgrouprights-namespaceprotection-restrictedto": "Kullanıcının değişiklik yapmasına izin veren hak(lar)",
+       "broken-file-category-desc": "Sayfa bozuk dosya bağlantısı (mevcut olmayan bir dosyayı kullanmaya çalışan bağlantı) içeriyor.",
        "trackingcategories-nodesc": "Açıklama yok.",
        "mailnologin": "Gönderi adresi yok.",
        "mailnologintext": "Diğer kullanıcılara e-posta gönderebilmeniz için [[Special:UserLogin|oturum aç]]malısınız ve [[Special:Preferences|tercihler]] sayfasında geçerli bir e-posta adresiniz olmalı.",
        "protect-othertime": "Farklı zaman:",
        "protect-othertime-op": "farklı zaman",
        "protect-existing-expiry": "Mevcut bitiş zamanı: $3, $2",
+       "protect-existing-expiry-infinity": "Mevcut sona erme zamanı: sonsuz",
        "protect-otherreason": "Diğer/ilave gerekçe:",
        "protect-otherreason-op": "Diğer gerekçe",
        "protect-dropdown": "*Genel koruma gerekçeleri\n** Aşırı vandalizm\n** Aşırı spam\n** Değişiklik savaşı\n** Yüksek trafiğe sahip sayfa",
        "movepagetalktext": "İlişikteki tartışma sayfası da (eğer varsa) otomatik olarak yeni isme taşınacaktır. Ama şu durumlarda '''taşınmaz''':\n\n*Alanlar arası bir taşıma ise, (örnek: \"Project:\" --> \"Help:\")\n*Yeni isimde bir tartışma sayfası zaten var ise,\n*Alttaki kutucuğu seçmediyseniz.\n\nBu durumlarda sayfayı kendiniz aktarmalısınız.",
        "movearticle": "Eski isim",
        "moveuserpage-warning": "'''Uyarı:''' Bir kullanıcı sayfasını taşımak üzeresiniz. Lütfen sadece sayfanın taşınacağına, ancak kullanıcının yeniden ''adlandırılmayacağına'' dikkat edin.",
+       "movecategorypage-warning": "<strong>Uyarı:</strong> Bir kategori sayfasını taşımak üzeresiniz. Lütfen yalnızca sayfanın taşınacağını ve eski kategoride yer alan sayfaların yeniden kategorize <em>edilmeyeceğini</em> unutmayın.",
        "movenologintext": "Sayfanın adını değiştirebilmek için kayıtlı ve [[Special:UserLogin|sisteme]] giriş yapmış olmanız gerekmektedir.",
        "movenotallowed": "Sayfaları taşımaya izniniz yok.",
        "movenotallowedfile": "Sayfaları taşımaya izniniz yok.",
        "import-error-create": "\"$1\" sayfası içe aktarılamadı çünkü sayfayı oluşturmaya yetkiniz yok.",
        "import-error-interwiki": "\"$1\" sayfası içe aktarılamadı çünkü sayfanın adı dış bağlantı için ayrılmış (vikilerarası).",
        "import-error-special": "\"$1\" sayfası içe aktarılamadı çünkü sayfalara izin vermeyen özel bir ad alanına ait.",
-       "import-error-invalid": "\"$1\" sayfası içe aktarılamadı çünkü sayfa adı geçersiz.",
+       "import-error-invalid": "\"$1\" sayfası içe aktarılamadı çünkü sayfa adı bu vikide geçersiz.",
        "import-error-unserialize": "\"$1\" sayfasının $2 revizyonu serileştirilmesi geri alınamıyor. Revizyonun $4 olarak serileştirilmiş $3 içerik modelini kullandığı raporlandı.",
        "import-error-bad-location": "\"$1\" sayfası için $3 içerik modelini kullanan $2 revizyonu, model sayfada desteklenmediğinden, bu vikide saklanamıyor.",
        "import-options-wrong": "Yanlış {{PLURAL:$2|seçenek|seçenek}}: <nowiki>$1</nowiki>",
        "importlogpage": "Aktarım günlüğü",
        "importlogpagetext": "Diğer vikilerden sayfaların değişiklik geçmişiyle idari içe aktarımları.",
        "import-logentry-upload": "[[$1]] dosya yüklemesiyle içe aktarıldı",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|revizyon|revizyon}}",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|revizyon|revizyon}} içe aktarıldı",
        "import-logentry-interwiki": "$1 transvikileşmiş",
-       "import-logentry-interwiki-detail": "$2 sayfasından $1 {{PLURAL:$1|revizyon|revizyon}}",
+       "import-logentry-interwiki-detail": "$2 sayfasından $1 {{PLURAL:$1|revizyon|revizyon}} içe aktarıldı",
        "javascripttest": "JavaScript denemesi",
        "javascripttest-title": "$1 testleri çalışıyor",
        "javascripttest-pagetext-noframework": "Bu sayfa JavaScript testleri çalıştırmak için ayrılmıştır.",
        "tooltip-pt-mycontris": "Katkılarınızın listesi",
        "tooltip-pt-login": "Oturum açmanızı tavsiye ederiz; ancak zorunda değilsiniz",
        "tooltip-pt-logout": "Sistemden çık",
+       "tooltip-pt-createaccount": "Bir hesap oluşturup oturum açmanız tavsiye edilmektedir ancak bu zorunlu değildir",
        "tooltip-ca-talk": "İçerik ile ilgili tartışma",
        "tooltip-ca-edit": "Bu sayfayı değiştirebilirsiniz. Lütfen kaydetmeden önce önizleme düğmesini kullanın.",
        "tooltip-ca-addsection": "Yeni bir altbaşlık aç",
        "tooltip-feed-atom": "Bu sayfa için atom beslemesi",
        "tooltip-t-contributions": "Kullanıcının katkılarının listesini gör",
        "tooltip-t-emailuser": "Bu kullanıcıya e-posta gönder",
+       "tooltip-t-info": "Bu sayfa hakkında daha fazla bilgi",
        "tooltip-t-upload": "Dosya yükle",
        "tooltip-t-specialpages": "Tüm özel sayfaların listesi",
        "tooltip-t-print": "Bu sayfanın basılmaya uygun sürümü",
        "pageinfo-robot-policy": "Robotlar tarafından endeksleniyor",
        "pageinfo-robot-index": "İzin verilmiş",
        "pageinfo-robot-noindex": "İzin verilmedi",
-       "pageinfo-views": "Görüntülenme sayısı",
        "pageinfo-watchers": "Sayfanın izleyici sayısı",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|izleyiciden|izleyiciden}} az",
        "pageinfo-redirects-name": "Bu sayfaya yönlendirme sayısı",
        "pagelang-select-lang": "Dil seçin",
        "right-pagelang": "Sayfa dilini değiştir",
        "action-pagelang": "sayfa dilini değiştir",
-       "json-error-inf-or-nan": "Değerde kodlanacak bir veya daha fazla NAN veya INF değerleri"
+       "logentry-pagelang-pagelang": "$1, $3 sayfasının dilini $4 dilinden $5 diline {{GENDER:$2|çevirdi}}.",
+       "mediastatistics": "Medya istatistikleri",
+       "mediastatistics-summary": "Karşıya yüklenen dosya türlerine ilişkin istatistikler. Bu yalnızca bir dosyanın en son sürümünü içerir. Eski veya silinen dosyala sürümleri hariç tutulur.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 byte}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME türü",
+       "mediastatistics-table-extensions": "Olası uzantılar",
+       "mediastatistics-table-count": "Dosya sayısı",
+       "mediastatistics-table-totalbytes": "Toplam boyut",
+       "mediastatistics-header-unknown": "Bilinmeyen",
+       "mediastatistics-header-bitmap": "Bitmap görüntüleri",
+       "mediastatistics-header-drawing": "Çizimler (vektör görüntüler)",
+       "mediastatistics-header-audio": "Ses",
+       "mediastatistics-header-video": "Videolar",
+       "mediastatistics-header-multimedia": "Zengin medya",
+       "mediastatistics-header-office": "Ofis",
+       "mediastatistics-header-text": "Metin türü",
+       "mediastatistics-header-executable": "Yürütülebilir dosyalar",
+       "mediastatistics-header-archive": "Sıkıştırılmış biçimler",
+       "json-warn-trailing-comma": "$1 takip eden {{PLURAL:$1|virgül|virgüller}} JSON'dan kaldırılmıştır.",
+       "json-error-unknown": "JSON ile ilgili bir sorun oluştu. Hata:$1",
+       "json-error-depth": "Azami yığın derinliği aşıldı",
+       "json-error-state-mismatch": "Geçersiz veya hatalı biçimlendirilmiş JSON",
+       "json-error-ctrl-char": "Kontrol karakteri hatası, muhtemelen yanlış kodlanmış",
+       "json-error-syntax": "Sözdizimi hatası",
+       "json-error-utf8": "Hatalı biçimlendirilmiş UTF-8 karakterleri bulundu, muhtemelen yanlış kodlanmış",
+       "json-error-recursion": "Kodlanacak değeri bir veya daha fazla tekrarlı başvurular",
+       "json-error-inf-or-nan": "Değerde kodlanacak bir veya daha fazla NAN veya INF değerleri",
+       "json-error-unsupported-type": "Kodlanamaz bir değer çeşidi girildi"
 }
index 2d27fd8..8dcc5d8 100644 (file)
        "statistics": "Хисапнамә",
        "statistics-header-pages": "Битләр хисапнамәсе",
        "statistics-header-edits": "Үзгәртүләр хисапнамәсе",
-       "statistics-header-views": "Караулар хисапнамәсе",
        "statistics-header-users": "Кулланучылар буенча хисапнамә",
        "statistics-header-hooks": "Башка хисапнамәләр",
        "statistics-articles": "Мәкаләләр саны",
        "statistics-files": "Йөкләнелгән файллар",
        "statistics-edits": "{{grammar:genitive|{{SITENAME}}}} проекты ачылганнан бирле булган барлык үзгәртүләр исәбе",
        "statistics-edits-average": "Бер биткә уртача үзгәртүләр исәбе",
-       "statistics-views-total": "Барлык каралган битләр",
-       "statistics-views-peredit": "Үзгәртүләргә карау",
        "statistics-users": "Теркәлгән [[Special:ListUsers|кулланучылар]]",
        "statistics-users-active": "Актив кулланучылар",
        "statistics-users-active-desc": "{{PLURAL:$1|$1 көн }} өчендә нинди дә булса үзгәртүләр керткән кулланучылар",
-       "statistics-mostpopular": "Иң күп каралучы битләр",
        "doubleredirects": "Икеләтә юнәлтүләр",
        "brokenredirects": "Бәйләнешсез юнәлтүләр",
        "brokenredirectstext": "Бу юнәлтүләр булмаган битләргә сылтыйлар:",
        "uncategorizedtemplates": "Төркемләнмәгән үрнәкләр",
        "unusedcategories": "Кулланмаган төркемнәр",
        "unusedimages": "Кулланмаган сүрәтләр",
-       "popularpages": "Популяр битләр",
        "wantedcategories": "Зарур төркемнәр",
        "wantedpages": "Зарур битләр",
        "wantedfiles": "Кирәкле файллар",
index fb54e68..4fd905f 100644 (file)
        "statistics": "Xisapnamä",
        "statistics-header-pages": "Bitlär xisapnamäse",
        "statistics-header-edits": "Üzgärtülär xisapnamäse",
-       "statistics-header-views": "Qarawlar xisapnamäse",
        "statistics-header-users": "Qullanuçılar buyınça xisapnamä",
        "statistics-header-hooks": "Başqa xisapnamälär",
        "statistics-articles": "Mäqälälär sanı",
        "statistics-files": "Yöklänelgän fayllar",
        "statistics-edits": "{{grammar:genitive|{{SITENAME}}}} proyektı açılğannan birle bulğan barlıq üzgärtülär isäbe",
        "statistics-edits-average": "Ber bitkä urtaça üzgärtülär isäbe",
-       "statistics-views-total": "Barlıq qaralğan bitlär",
-       "statistics-views-peredit": "Üzgärtülärgä qaraw",
        "statistics-users": "Terkälgän [[Special:ListUsers|qullanuçılar]]",
        "statistics-users-active": "Aktiv qullanuçılar",
        "statistics-users-active-desc": "{{PLURAL:$1|$1 kön }} öçendä nindi dä bulsa üzgärtülär kertkän qullanuçılar",
-       "statistics-mostpopular": "İñ küp qaraluçı bitlär",
        "doubleredirects": "İkelätä yünältülär",
        "brokenredirects": "Bäyläneşsez yünältülär",
        "brokenredirectstext": "Bu yünältülär bulmağan bitlärgä sıltıylar:",
        "uncategorizedtemplates": "Törkemlänmägän ürnäklär",
        "unusedcategories": "Qullanmağan törkemnär",
        "unusedimages": "Qullanmağan sürätlär",
-       "popularpages": "Populyar bitlär",
        "wantedcategories": "Zarur törkemnär",
        "wantedpages": "Zarur bitlär",
        "wantedfiles": "Kiräkle fayllar",
index f9cef95..9c3140e 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Sab",
-            "Sainte-Rose (on ty.wikipedia.org)",
-            "Tahitoa (on ty.wikipedia.org)"
-        ]
-    },
-    "sunday": "tāpati",
-    "monday": "monirē",
-    "tuesday": "mahana piti",
-    "wednesday": "mahana toru",
-    "thursday": "mahana maha",
-    "friday": "mahana pae",
-    "saturday": "mahana mā’a",
-    "sun": "tāpati",
-    "mon": "monirē",
-    "tue": "mahana piti",
-    "wed": "mahana toru",
-    "thu": "mahana maha",
-    "fri": "mahana pae",
-    "sat": "mahana mā’a",
-    "january": "nō tēnuare",
-    "february": "nō fepuare",
-    "march": "nō māti",
-    "april": "nō ’ēperēra",
-    "may_long": "nō mē",
-    "june": "nō tiunu",
-    "july": "nō tiurai",
-    "august": "nō tiurai",
-    "september": "nō tetepa",
-    "october": "nō ’ātopa",
-    "november": "nō novema",
-    "december": "nō tītema",
-    "january-gen": "nō tēnuare",
-    "february-gen": "nō fepuare",
-    "march-gen": "nō māti",
-    "april-gen": "nō ’ēperēra",
-    "may-gen": "nō mē",
-    "june-gen": "nō tiunu",
-    "july-gen": "nō tiurai",
-    "august-gen": "nō tiurai",
-    "september-gen": "nō tetepa",
-    "october-gen": "nō ’ātopa",
-    "november-gen": "nō novema",
-    "december-gen": "nō tītema",
-    "jan": "nō tēnuare",
-    "feb": "nō fepuare",
-    "mar": "nō māti",
-    "apr": "nō ’ēperēra",
-    "may": "nō mē",
-    "jun": "nō tiunu",
-    "jul": "nō tiurai",
-    "aug": "nō tiurai",
-    "sep": "nō tetepa",
-    "oct": "nō ’ātopa",
-    "nov": "nō novema",
-    "dec": "nō tītema",
-    "about": "Nō",
-    "article": "Parau pāpa’i",
-    "navigation": "Arata’i",
-    "qbedit": "Fa’ahuru ’ē",
-    "qbmyoptions": "ta’u ’api",
-    "help": "Tauturu",
-    "search": "Roromā’imi",
-    "searchbutton": "Roromā’imi",
-    "searcharticle": "Haere",
-    "history_short": "Parau tuatāpapa",
-    "edit": "Fa’ahuru ’ē",
-    "delete": "Fa’a’ore",
-    "protect": "Pāruru",
-    "specialpage": "’Api ta’a ’ē",
-    "talk": "Paraparaura’a",
-    "jumptonavigation": "arata’i",
-    "jumptosearch": "haere",
-    "aboutsite": "Nō {{SITENAME}}",
-    "aboutpage": "Project:Nō",
-    "edithelp": "Tauturu",
-    "mainpage": "Fa’ari’ira’a",
-    "mainpage-description": "Fa’ari’ira’a",
-    "portal": "Fare auhoa",
-    "editsection": "fa’ahuru ’ē",
-    "editold": "fa’ahuru ’ē",
-    "nstab-main": "Parau pāpa’i",
-    "nstab-user": "Ta’ata",
-    "nstab-special": "Ta’a ’ē",
-    "nstab-image": "Hōho’a",
-    "nstab-mediawiki": "Poro’i",
-    "nstab-template": "Hōho’a fāito",
-    "nstab-help": "Tauturu",
-    "nstab-category": "Huru",
-    "history-feed-title": "Parau tuatāpapa",
-    "prefs-rc": "Te mau fa’ahuru-’ē-ra’a ’āpī",
-    "prefs-files": "Te mau putu’ite",
-    "youremail": "Tā’u ’āfata rata uira",
-    "yourlanguage": "Te reo:",
-    "email": "’Imere",
-    "recentchanges": "Te mau fa’ahuru-’ē-ra’a ’āpī",
-    "listfiles_user": "Ta’ata fa’a’ohipa",
-    "file-anchor-link": "Hōho’a",
-    "filehist-user": "Ta’ata",
-    "randompage": "’Api mā’iti-haere-noa",
-    "specialloguserlabel": "Ta’ata fa’a’ohipa :",
-    "allpagessubmit": "Haere",
-    "categories": "Te mau huru o te ’api",
-    "watch": "Ha’apa’o",
-    "prot_1movedto2": "’Ua tāhitihia te ’api [[$1]] e ana i te ’api ’āpī [[$2]]",
-    "restriction-edit": "Fa’ahuru ’ē",
-    "restriction-move": "Tāhiti",
-    "whatlinkshere": "Te mau ’api i tū’atihia mai",
-    "tooltip-search": "Roromā’imi {{SITENAME}}",
-    "specialpages": "Te mau ’api ta’a ’ē"
+       "@metadata": {
+               "authors": [
+                       "Sab",
+                       "Sainte-Rose (on ty.wikipedia.org)",
+                       "Tahitoa (on ty.wikipedia.org)",
+                       "TMg"
+               ]
+       },
+       "sunday": "tāpati",
+       "monday": "monirē",
+       "tuesday": "mahana piti",
+       "wednesday": "mahana toru",
+       "thursday": "mahana maha",
+       "friday": "mahana pae",
+       "saturday": "mahana mā’a",
+       "sun": "tāpati",
+       "mon": "monirē",
+       "tue": "mahana piti",
+       "wed": "mahana toru",
+       "thu": "mahana maha",
+       "fri": "mahana pae",
+       "sat": "mahana mā’a",
+       "january": "nō tēnuare",
+       "february": "nō fepuare",
+       "march": "nō māti",
+       "april": "nō ’ēperēra",
+       "may_long": "nō mē",
+       "june": "nō tiunu",
+       "july": "nō tiurai",
+       "august": "nō ʻātete",
+       "september": "nō tetepa",
+       "october": "nō ’ātopa",
+       "november": "nō novema",
+       "december": "nō tītema",
+       "january-gen": "nō tēnuare",
+       "february-gen": "nō fepuare",
+       "march-gen": "nō māti",
+       "april-gen": "nō ’ēperēra",
+       "may-gen": "nō mē",
+       "june-gen": "nō tiunu",
+       "july-gen": "nō tiurai",
+       "august-gen": "nō ʻātete",
+       "september-gen": "nō tetepa",
+       "october-gen": "nō ’ātopa",
+       "november-gen": "nō novema",
+       "december-gen": "nō tītema",
+       "jan": "nō tēnuare",
+       "feb": "nō fepuare",
+       "mar": "nō māti",
+       "apr": "nō ’ēperēra",
+       "may": "nō mē",
+       "jun": "nō tiunu",
+       "jul": "nō tiurai",
+       "aug": "nō ʻātete",
+       "sep": "nō tetepa",
+       "oct": "nō ’ātopa",
+       "nov": "nō novema",
+       "dec": "nō tītema",
+       "about": "Nō",
+       "article": "Parau pāpa’i",
+       "navigation": "Arata’i",
+       "qbedit": "Fa’ahuru ’ē",
+       "qbmyoptions": "ta’u ’api",
+       "help": "Tauturu",
+       "search": "Roromā’imi",
+       "searchbutton": "Roromā’imi",
+       "searcharticle": "Haere",
+       "history_short": "Parau tuatāpapa",
+       "edit": "Fa’ahuru ’ē",
+       "delete": "Fa’a’ore",
+       "protect": "Pāruru",
+       "specialpage": "’Api ta’a ’ē",
+       "talk": "Paraparaura’a",
+       "jumptonavigation": "arata’i",
+       "jumptosearch": "haere",
+       "aboutsite": "Nō {{SITENAME}}",
+       "aboutpage": "Project:Nō",
+       "edithelp": "Tauturu",
+       "mainpage": "Fa’ari’ira’a",
+       "mainpage-description": "Fa’ari’ira’a",
+       "portal": "Fare auhoa",
+       "editsection": "fa’ahuru ’ē",
+       "editold": "fa’ahuru ’ē",
+       "nstab-main": "Parau pāpa’i",
+       "nstab-user": "Ta’ata",
+       "nstab-special": "Ta’a ’ē",
+       "nstab-image": "Hōho’a",
+       "nstab-mediawiki": "Poro’i",
+       "nstab-template": "Hōho’a fāito",
+       "nstab-help": "Tauturu",
+       "nstab-category": "Huru",
+       "history-feed-title": "Parau tuatāpapa",
+       "prefs-rc": "Te mau fa’ahuru-’ē-ra’a ’āpī",
+       "prefs-files": "Te mau putu’ite",
+       "youremail": "Tā’u ’āfata rata uira",
+       "yourlanguage": "Te reo:",
+       "email": "’Imere",
+       "recentchanges": "Te mau fa’ahuru-’ē-ra’a ’āpī",
+       "listfiles_user": "Ta’ata fa’a’ohipa",
+       "file-anchor-link": "Hōho’a",
+       "filehist-user": "Ta’ata",
+       "randompage": "’Api mā’iti-haere-noa",
+       "specialloguserlabel": "Ta’ata fa’a’ohipa :",
+       "allpagessubmit": "Haere",
+       "categories": "Te mau huru o te ’api",
+       "watch": "Ha’apa’o",
+       "prot_1movedto2": "’Ua tāhitihia te ’api [[$1]] e ana i te ’api ’āpī [[$2]]",
+       "restriction-edit": "Fa’ahuru ’ē",
+       "restriction-move": "Tāhiti",
+       "whatlinkshere": "Te mau ’api i tū’atihia mai",
+       "tooltip-search": "Roromā’imi {{SITENAME}}",
+       "specialpages": "Te mau ’api ta’a ’ē"
 }
index bbc4284..00047d7 100644 (file)
        "uncategorizedtemplates": "Аңгылалдаваан майыктар",
        "unusedcategories": "Ажыглаваан бөлүктер",
        "unusedimages": "Ажыглаваан файлдар",
-       "popularpages": "Чоннуң арыннар",
        "wantedcategories": "Күзээринге бөлүктер",
        "wantedpages": "Күзээрүнге арыннар",
        "mostlinked": "Эң холбаалар арыннар",
index 843ceff..04f2eb2 100644 (file)
        "search-relatedarticle": "ⵜⴰⵎⵣⴷⴰⵢⵜ",
        "searchrelated": "ⵜⴰⵎⵣⴷⴰⵢⵜ",
        "searchall": "ⵎⴰⵕⵕⴰ",
-       "showingresultsheader": "{{PLURAL:$5|ⵜⴰⵢⴰⴼⵓⵜ '''$1'''|ⵜⵉⵢⴰⴼⵓⵜⵉⵏ '''$1–$2'''}} ⵙⴳ '''$3''' ⵉ '''$4'''",
        "powersearch-toggleall": "ⵎⴰⵕⵕⴰ",
        "powersearch-togglenone": "ⴰⵎⵢⴰ (ⵓⵍⴰⵛ)",
        "search-external": "ⴰⵔⵣⵣⵓ ⴰⴱⵕⵕⴰⵏⵉ",
        "mimesearch": "ⴰⵔⵣⵣⵓ ⵏ MIME",
        "mimetype": "ⴰⵏⴰⵡ ⵓⵙⴷⴰⵡ:",
        "statistics-pages": "ⵜⵉⵙⵏⴰⵡⵉⵏ",
-       "statistics-views-total": "ⵎⴰⵕⵕⴰ ⵉⵎⵥⵕⴰⵏ",
        "brokenredirects-edit": "ⴱⴷⴷⴻⵍ",
        "brokenredirects-delete": "ⵓⴽⵓⵙ",
        "withoutinterwiki-submit": "ⵥⵕ",
        "booksources": "ⵉⵖⴱⵓⵍⴰ ⵏ ⵓⴷⵍⵉⵙ",
        "booksources-search-legend": "ⵔⵣⵣⵓ ⵅⴼ ⵉⵖⴱⵓⵍⴰ ⵏ ⵉⴷⵍⵉⵙⵏ",
        "booksources-isbn": "ISBN:",
-       "booksources-go": "ⴷⴷⵓ",
        "allpages": "ⵎⴰⵕⵕⴰ ⵜⵉⵙⵏⴰⵡⵉⵏ",
        "allarticles": "ⵎⴰⵕⵕⴰ ⵜⵉⵙⵏⴰⵡⵉⵏ",
        "allpagessubmit": "ⴷⴷⵓ",
        "watchlistfor2": "ⵉ $1 $2",
        "watch": "ⵥⵕ",
        "unwatch": "ⵙⴱⴻⴷⴷ ⵍⵄⵙⵙⴰ",
-       "wlshowlast": "ⵉⵥⵕⵉ ⵏⵉⴹⵏ $1 ⵜⴰⵔⴰⴳⵉⵏ $2 ⵓⵙⵙⴰⵏ $3",
+       "wlshowlast": "ⵉⵥⵕⵉ ⵏⵉⴹⵏ $1 ⵜⴰⵔⴰⴳⵉⵏ $2 ⵓⵙⵙⴰⵏ",
        "changed": "ⵜⴱⴷⴷⴻⵍⴷ",
        "delete-legend": "ⵓⴽⵓⵙ",
        "protectcomment": "ⴰⵙⵔⴰⴳ:",
        "exif-iimcategory-rel": "ⴰⵙⴳⴷ ⴷ ⵜⵉⴼⵍⵙⵉⵏ",
        "exif-iimcategory-spo": "ⵜⵓⵏⵏⵓⵏⵜ",
        "exif-iimcategory-wea": "ⴰⵏⵣⵡⵉ",
-       "watchlistall2": "ⵎⴰⵕⵕⴰ",
        "namespacesall": "ⵎⴰⵕⵕⴰ",
        "monthsall": "ⵎⴰⵕⵕⴰ",
        "confirm_purge_button": "ⵡⴰⵅⵅⴰ",
index c2591b8..7bff7f2 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Andrewboltachev",
-            "Kaganer",
-            "Udmwiki",
-            "ОйЛ",
-            "לערי ריינהארט"
-        ]
-    },
-    "tog-underline": "Линкъёс ултӥз гожен сызоно",
-    "tog-hideminor": "Берпуметӥ тупатонъёслэн списоксэс ичи воштонъёстэк возьматыны",
-    "tog-hidepatrolled": "Берпуметӥ тупатонъёслэн списоксэс партрулировать каремын воштонъёстэк возьматыны",
-    "tog-newpageshidepatrolled": "Выль бамъёслэн списоксэс партрулировать каремын бамъёстэк возьматыны",
-    "tog-extendwatchlist": "Чаклан списокын вань тупатонъёсты возьматыны (озьытэк берпуметӥоссэс гинэ)",
-    "tog-usenewrc": "Выль тупатонъёслэсь списоксэс умояллям сямен возьматыны (JavsScript кулэ)",
-    "tog-numberheadings": "Заголовокъёсты автоматически нумеровать карыны",
-    "tog-showtoolbar": "Тупатон тӥрлыкъёслэн панельзэс возьматыны (JavaScript кулэ)",
-    "tog-editondblclick": "Бамъёсты шырлэсь зӥбонзэ кык пол зӥбыса тупатыны (JavaScript кулэ)",
-    "tog-editsectiononrightclick": "Cекциолэсь заголовок вылазы шырлэн бур кнопкаеныз зӥбыса тупатонзэс лэзьыны (JavaScript кулэ)",
-    "tog-rememberpassword": "Мынэсьтым пыроннимме та браузерын возьыны ($1 нуналлэсь кемагес ӧвӧл)",
-    "tog-watchcreations": "Мынэсьтым кылдытэм бамъёсме но ӝуткам файлъёсме чаклан списокам пыртыны",
-    "tog-watchdefault": "Мынэсьтым тупатэм бамъёсме но файлъёсме чаклан списокам пыртыны",
-    "tog-watchmoves": "Мынэсьтым мукет интые выжтэм бамъёсме но файлъёсме чаклан списокам пыртыны",
-    "tog-watchdeletion": "Мынэсьтым ӵушыса быдтэм бамъёсме но файлъёсме чаклан списоке пыртыны",
-    "tog-minordefault": "Вань воштонъёсты «ичи воштон» пусэн пусйыны",
-    "tog-previewontop": "Утён азьвыл учконлэсь укнозэ тупатон укнолэсь азьвылгес возьматыны",
-    "tog-previewonfirst": "Бам нырысьсэ утиськыкуз уётн азьвыл учконэз возьматыны",
-    "underline-always": "Котьку",
-    "underline-never": "Ноку",
-    "underline-default": "Браузерлэсь настройкаоссэ уже кутоно",
-    "editfont-style": "Тупатон бусыысь шрифтлэн стилез",
-    "editfont-default": "Браузерлэн настройкаосысьтыз шрифтэз уже кутоно",
-    "editfont-monospace": "Огпасьтала пусъёсын шрифт",
-    "editfont-sansserif": "Засечкатэк шрифт",
-    "editfont-serif": "Засечкаен шрифт",
-    "sunday": "арнянунал",
-    "monday": "вордӥськон",
-    "tuesday": "пуксён",
-    "wednesday": "вирнунал",
-    "thursday": "покчиарня",
-    "friday": "удмуртарня",
-    "saturday": "кӧснунал",
-    "sun": "Арн",
-    "mon": "Врд",
-    "tue": "Пкс",
-    "wed": "Врн",
-    "thu": "Пкч",
-    "fri": "Удм",
-    "sat": "Ксн",
-    "january": "толшор",
-    "february": "тулыспал",
-    "march": "южтолэзь",
-    "april": "оштолэзь",
-    "may_long": "куартолэзь",
-    "june": "инвожо",
-    "july": "пӧсьтолэзь",
-    "august": "гудырикошкон",
-    "september": "куарусён",
-    "october": "коньывуон",
-    "november": "шуркынмон",
-    "december": "толсур",
-    "january-gen": "толшоре",
-    "february-gen": "тулыспалэ",
-    "march-gen": "южтолэзе",
-    "april-gen": "оштолэзе",
-    "may-gen": "куартолэзе",
-    "june-gen": "инвожое",
-    "july-gen": "пӧсьтолэзе",
-    "august-gen": "гудырикошконэ",
-    "september-gen": "куарусёнэ",
-    "october-gen": "коньывуонэ",
-    "november-gen": "шуркынмонэ",
-    "december-gen": "толсурэ",
-    "jan": "тшт",
-    "feb": "тпт",
-    "mar": "южт",
-    "apr": "ошт",
-    "may": "южт",
-    "jun": "ивт",
-    "jul": "пст",
-    "aug": "гкт",
-    "sep": "кст",
-    "oct": "квт",
-    "nov": "шкт",
-    "dec": "тст",
-    "pagecategories": "{{PLURAL:$1|1=Категория|Категориос}}",
-    "category_header": "«$1» категориысь бамъёс",
-    "subcategories": "Подкатегориос",
-    "category-media-header": "«$1» категориысь файлъёс",
-    "category-empty": "''Та категориын али бамъёс но, файлъёс но ӧвӧл.''",
-    "hidden-categories": "{{PLURAL:$1|1=Ватэм категория|Ватэм категориос}}",
-    "hidden-category-category": "Ватэм категориос",
-    "category-subcat-count": "{{PLURAL:$2|1=Со категориын одӥг подкатегория гинэ.|Возьматэмын $1 подкатегория $2 пӧлысь.}}",
-    "category-subcat-count-limited": "Со категориын $1 подкатегория.",
-    "category-article-count": "{{PLURAL:$2|1=Со категориын одӥг бам гинэ.|Возьматэмын $1 бам $2 пӧлысь.}}",
-    "category-article-count-limited": "Со категориын $1 бам.",
-    "category-file-count": "{{PLURAL:$2|1=Со категориын одӥг файл гинэ.|Возьматэмын $1 файл $2 пӧлысь.}}",
-    "category-file-count-limited": "Со категориын $1 файл.",
-    "listingcontinuesabbrev": "азьлань",
-    "index-category": "Индексировать кароно бамъёс",
-    "noindex-category": "Индексировать каронтэм бамъёс",
-    "about": "Та сярысь",
-    "article": "Статья",
-    "mypage": "Ас бам",
-    "mytalk": "Викиавтор сярысь вераськон",
-    "anontalk": "Со IP-адрес сярысь вераськон",
-    "navigation": "Навигация",
-    "qbpageoptions": "Бамлэн настройкаосыз",
-    "faq": "Юан-веран",
-    "faqpage": "Project:Юан-веран",
-    "vector-action-addsection": "Выль темаез ватсано",
-    "vector-action-delete": "Быдтоно",
-    "vector-action-move": "Мукет интые выжтыны",
-    "vector-action-protect": "Утьыны",
-    "vector-view-create": "Кылдытоно",
-    "vector-view-edit": "Тупатоно",
-    "vector-view-history": "История",
-    "vector-view-view": "Лыдӟоно",
-    "vector-view-viewsource": "Кодзэ учкыны",
-    "errorpagetitle": "Янгыш",
-    "tagline": "{{SITENAME}}-ысь материал",
-    "help": "Валэктонъёс",
-    "search": "Утчан",
-    "searchbutton": "Утчано",
-    "searcharticle": "Мыноно",
-    "history": "Бамлэн историез",
-    "history_short": "история",
-    "printableversion": "Печатламон версия",
-    "permalink": "Ӵапак та версиезлы линк",
-    "print": "Печатлано",
-    "edit": "тупатыны",
-    "delete": "Быдтыны",
-    "protect": "Утьыны",
-    "talkpagelinktext": "Вераськон",
-    "talk": "Вераськон",
-    "toolbox": "Тӥрлык",
-    "jumptonavigation": "навигация",
-    "jumptosearch": "утчан",
-    "currentevents": "Выль иворъёс",
-    "currentevents-url": "Project:Выль иворъёс",
-    "mainpage": "Кутскон бам",
-    "mainpage-description": "Кутскон бам",
-    "portal": "Сообщество",
-    "portal-url": "Project:Портал сообщества",
-    "retrievedfrom": "«$1»-лэсь басьтэмын",
-    "editsection": "тупатыны",
-    "editsectionhint": "$1 секциез тупатоно",
-    "showtoc": "возьматоно",
-    "hidetoc": "ватоно",
-    "site-rss-feed": "$1 — RSS-лента",
-    "site-atom-feed": "$1 — Atom-лента",
-    "red-link-title": "$1 (со бам ӧвӧл на)",
-    "nstab-user": "Викиавтор",
-    "nstab-mediawiki": "Ивортон",
-    "viewsource": "Кодзэ учкыны",
-    "login": "Пырон",
-    "nav-login-createaccount": "Нимдэс вераны / Регистрациез ортчытыны",
-    "userlogin": "Регистрациез ортчытыны яке Википедие пырыны",
-    "userloginnocreate": "Пырон",
-    "logout": "Кошкыны",
-    "userlogout": "Кошкыны",
-    "createaccount": "выль вики-авторлэн регистрациез",
-    "summary": "Мар но малы тупатэмын? (вакчияк):",
-    "minoredit": "Ичи воштон",
-    "noarticletext": "В настоящий момент текст на данной странице отсутствует.\nВы можете [[Special:Search/{{PAGENAME}}|найти упоминание данного названия]] на других страницах,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} найти соответствующие записи журналов],\nили '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} создать страницу с таким названием]'''</span>.",
-    "revdelete-radio-set": "Ватэм",
-    "revdelete-radio-unset": "Адӟымон",
-    "searchresults": "Шедьтэмын",
-    "search-result-size": "$1 кыл({{PLURAL:$2|1=1 word|$2 words}})",
-    "preferences": "настройкаос",
-    "mypreferences": "Настройкаос",
-    "prefs-watchlist": "Чаклан список",
-    "recentchanges": "Выль тупатонъёс",
-    "hist": "история",
-    "recentchangeslinked": "Герӟаськем тупатонъёс",
-    "recentchangeslinked-feed": "Герӟаськем тупатонъёс",
-    "recentchangeslinked-toolbox": "Герӟаськем тупатонъёс",
-    "upload": "Файл поныны",
-    "sharedupload": "Та файл — $1-ысь, сое мукет проектъёсын но уже кутыны луэ.",
-    "randompage": "Олокыӵе статья",
-    "nbytes": "$1 байт",
-    "move": "Мукет интые выжтыны",
-    "emailmessage": "Ивортон:",
-    "watchlist": "Чаклано статьяос",
-    "mywatchlist": "Чаклан список",
-    "watch": "Чаклано",
-    "unwatch": "Чакламысь дугдыны",
-    "mycontris": "Мынам гожтэмъёсы",
-    "whatlinkshere": "Татчы линкъёс",
-    "movearticle": "Статьяез мукет интые выжтыны",
-    "move-watch": "Та бамез чаклан списоке пыртыны",
-    "delete_and_move": "Быдтыны но мукет интые выжтыны",
-    "allmessagesname": "Ивортон",
-    "tooltip-ca-talk": "Бамлэн контентэз сярысь вераськон",
-    "tooltip-search": "Утчано {{SITENAME}}",
-    "tooltip-n-mainpage": "Кутскон баме мыноно",
-    "tooltip-n-mainpage-description": "Кутскон баме мыноно",
-    "tooltip-n-portal": "Проект сярысь, мар карыны быгатоды, ужлы кулэ луэмзэ кытысь шедьтоно",
-    "tooltip-n-recentchanges": "Берпуметӥ тупатонъёслэн списоксы",
-    "tooltip-n-randompage": "Олокыӵе бамез учконо",
-    "tooltip-t-whatlinkshere": "Ваньмыз бамъёс, кудъёсаз та бамлы линксы вань",
-    "tooltip-t-specialpages": "Специальной бамъёслэн списоксы",
-    "pageinfo-toolboxlink": "Бам сярысь тодэтъёс",
-    "specialpages": "Ваньмыз панельёс"
+       "@metadata": {
+               "authors": [
+                       "Andrewboltachev",
+                       "Kaganer",
+                       "Udmwiki",
+                       "ОйЛ",
+                       "לערי ריינהארט",
+                       "TMg"
+               ]
+       },
+       "tog-underline": "Линкъёс ултӥз гожен сызоно",
+       "tog-hideminor": "Берпуметӥ тупатонъёслэн списоксэс ичи воштонъёстэк возьматыны",
+       "tog-hidepatrolled": "Берпуметӥ тупатонъёслэн списоксэс партрулировать каремын воштонъёстэк возьматыны",
+       "tog-newpageshidepatrolled": "Выль бамъёслэн списоксэс партрулировать каремын бамъёстэк возьматыны",
+       "tog-extendwatchlist": "Чаклан списокын вань тупатонъёсты возьматыны (озьытэк берпуметӥоссэс гинэ)",
+       "tog-usenewrc": "Выль тупатонъёслэсь списоксэс умояллям сямен возьматыны (JavsScript кулэ)",
+       "tog-numberheadings": "Заголовокъёсты автоматически нумеровать карыны",
+       "tog-showtoolbar": "Тупатон тӥрлыкъёслэн панельзэс возьматыны (JavaScript кулэ)",
+       "tog-editondblclick": "Бамъёсты шырлэсь зӥбонзэ кык пол зӥбыса тупатыны (JavaScript кулэ)",
+       "tog-editsectiononrightclick": "Cекциолэсь заголовок вылазы шырлэн бур кнопкаеныз зӥбыса тупатонзэс лэзьыны (JavaScript кулэ)",
+       "tog-watchcreations": "Мынэсьтым кылдытэм бамъёсме но ӝуткам файлъёсме чаклан списокам пыртыны",
+       "tog-watchdefault": "Мынэсьтым тупатэм бамъёсме но файлъёсме чаклан списокам пыртыны",
+       "tog-watchmoves": "Мынэсьтым мукет интые выжтэм бамъёсме но файлъёсме чаклан списокам пыртыны",
+       "tog-watchdeletion": "Мынэсьтым ӵушыса быдтэм бамъёсме но файлъёсме чаклан списоке пыртыны",
+       "tog-minordefault": "Вань воштонъёсты «ичи воштон» пусэн пусйыны",
+       "tog-previewontop": "Утён азьвыл учконлэсь укнозэ тупатон укнолэсь азьвылгес возьматыны",
+       "tog-previewonfirst": "Бам нырысьсэ утиськыкуз уётн азьвыл учконэз возьматыны",
+       "underline-always": "Котьку",
+       "underline-never": "Ноку",
+       "underline-default": "Браузерлэсь настройкаоссэ уже кутоно",
+       "editfont-style": "Тупатон бусыысь шрифтлэн стилез",
+       "editfont-default": "Браузерлэн настройкаосысьтыз шрифтэз уже кутоно",
+       "editfont-monospace": "Огпасьтала пусъёсын шрифт",
+       "editfont-sansserif": "Засечкатэк шрифт",
+       "editfont-serif": "Засечкаен шрифт",
+       "sunday": "арнянунал",
+       "monday": "вордӥськон",
+       "tuesday": "пуксён",
+       "wednesday": "вирнунал",
+       "thursday": "покчиарня",
+       "friday": "удмуртарня",
+       "saturday": "кӧснунал",
+       "sun": "Арн",
+       "mon": "Врд",
+       "tue": "Пкс",
+       "wed": "Врн",
+       "thu": "Пкч",
+       "fri": "Удм",
+       "sat": "Ксн",
+       "january": "толшор",
+       "february": "тулыспал",
+       "march": "южтолэзь",
+       "april": "оштолэзь",
+       "may_long": "куартолэзь",
+       "june": "инвожо",
+       "july": "пӧсьтолэзь",
+       "august": "гудырикошкон",
+       "september": "куарусён",
+       "october": "коньывуон",
+       "november": "шуркынмон",
+       "december": "толсур",
+       "january-gen": "толшоре",
+       "february-gen": "тулыспалэ",
+       "march-gen": "южтолэзе",
+       "april-gen": "оштолэзе",
+       "may-gen": "куартолэзе",
+       "june-gen": "инвожое",
+       "july-gen": "пӧсьтолэзе",
+       "august-gen": "гудырикошконэ",
+       "september-gen": "куарусёнэ",
+       "october-gen": "коньывуонэ",
+       "november-gen": "шуркынмонэ",
+       "december-gen": "толсурэ",
+       "jan": "тшт",
+       "feb": "тпт",
+       "mar": "южт",
+       "apr": "ошт",
+       "may": "крт",
+       "jun": "ивт",
+       "jul": "пст",
+       "aug": "гкт",
+       "sep": "кст",
+       "oct": "квт",
+       "nov": "шкт",
+       "dec": "тст",
+       "pagecategories": "{{PLURAL:$1|1=Категория|Категориос}}",
+       "category_header": "«$1» категориысь бамъёс",
+       "subcategories": "Подкатегориос",
+       "category-media-header": "«$1» категориысь файлъёс",
+       "category-empty": "''Та категориын али бамъёс но, файлъёс но ӧвӧл.''",
+       "hidden-categories": "{{PLURAL:$1|1=Ватэм категория|Ватэм категориос}}",
+       "hidden-category-category": "Ватэм категориос",
+       "category-subcat-count": "{{PLURAL:$2|1=Со категориын одӥг подкатегория гинэ.|Возьматэмын $1 подкатегория $2 пӧлысь.}}",
+       "category-subcat-count-limited": "Со категориын $1 подкатегория.",
+       "category-article-count": "{{PLURAL:$2|1=Со категориын одӥг бам гинэ.|Возьматэмын $1 бам $2 пӧлысь.}}",
+       "category-article-count-limited": "Со категориын $1 бам.",
+       "category-file-count": "{{PLURAL:$2|1=Со категориын одӥг файл гинэ.|Возьматэмын $1 файл $2 пӧлысь.}}",
+       "category-file-count-limited": "Со категориын $1 файл.",
+       "listingcontinuesabbrev": "азьлань",
+       "index-category": "Индексировать кароно бамъёс",
+       "noindex-category": "Индексировать каронтэм бамъёс",
+       "about": "Та сярысь",
+       "article": "Статья",
+       "mypage": "Ас бам",
+       "mytalk": "Викиавтор сярысь вераськон",
+       "anontalk": "Со IP-адрес сярысь вераськон",
+       "navigation": "Навигация",
+       "qbpageoptions": "Бамлэн настройкаосыз",
+       "faq": "Юан-веран",
+       "faqpage": "Project:Юан-веран",
+       "errorpagetitle": "Янгыш",
+       "tagline": "{{SITENAME}}-ысь материал",
+       "help": "Валэктонъёс",
+       "search": "Утчан",
+       "searchbutton": "Утчано",
+       "searcharticle": "Мыноно",
+       "history": "Бамлэн историез",
+       "history_short": "история",
+       "printableversion": "Печатламон версия",
+       "permalink": "Ӵапак та версиезлы линк",
+       "print": "Печатлано",
+       "edit": "тупатыны",
+       "delete": "Быдтыны",
+       "protect": "Утьыны",
+       "talkpagelinktext": "Вераськон",
+       "talk": "Вераськон",
+       "toolbox": "Тӥрлык",
+       "jumptonavigation": "навигация",
+       "jumptosearch": "утчан",
+       "currentevents": "Выль иворъёс",
+       "currentevents-url": "Project:Выль иворъёс",
+       "mainpage": "Кутскон бам",
+       "mainpage-description": "Кутскон бам",
+       "portal": "Сообщество",
+       "portal-url": "Project:Портал сообщества",
+       "retrievedfrom": "«$1»-лэсь басьтэмын",
+       "editsection": "тупатыны",
+       "editsectionhint": "$1 секциез тупатоно",
+       "showtoc": "возьматоно",
+       "hidetoc": "ватоно",
+       "site-rss-feed": "$1 — RSS-лента",
+       "site-atom-feed": "$1 — Atom-лента",
+       "red-link-title": "$1 (со бам ӧвӧл на)",
+       "nstab-user": "Викиавтор",
+       "nstab-mediawiki": "Ивортон",
+       "viewsource": "Кодзэ учкыны",
+       "login": "Пырон",
+       "nav-login-createaccount": "Нимдэс вераны / Регистрациез ортчытыны",
+       "userlogin": "Регистрациез ортчытыны яке Википедие пырыны",
+       "userloginnocreate": "Пырон",
+       "logout": "Кошкыны",
+       "userlogout": "Кошкыны",
+       "createaccount": "выль вики-авторлэн регистрациез",
+       "summary": "Мар но малы тупатэмын? (вакчияк):",
+       "minoredit": "Ичи воштон",
+       "noarticletext": "В настоящий момент текст на данной странице отсутствует.\nВы можете [[Special:Search/{{PAGENAME}}|найти упоминание данного названия]] на других страницах,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} найти соответствующие записи журналов],\nили '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} создать страницу с таким названием]'''</span>.",
+       "revdelete-radio-set": "Ватэм",
+       "revdelete-radio-unset": "Адӟымон",
+       "searchresults": "Шедьтэмын",
+       "search-result-size": "$1 кыл({{PLURAL:$2|1=1 word|$2 words}})",
+       "preferences": "настройкаос",
+       "mypreferences": "Настройкаос",
+       "prefs-watchlist": "Чаклан список",
+       "recentchanges": "Выль тупатонъёс",
+       "hist": "история",
+       "recentchangeslinked": "Герӟаськем тупатонъёс",
+       "recentchangeslinked-feed": "Герӟаськем тупатонъёс",
+       "recentchangeslinked-toolbox": "Герӟаськем тупатонъёс",
+       "upload": "Файл поныны",
+       "sharedupload": "Та файл — $1-ысь, сое мукет проектъёсын но уже кутыны луэ.",
+       "randompage": "Олокыӵе статья",
+       "nbytes": "$1 байт",
+       "move": "Мукет интые выжтыны",
+       "emailmessage": "Ивортон:",
+       "watchlist": "Чаклано статьяос",
+       "mywatchlist": "Чаклан список",
+       "watch": "Чаклано",
+       "unwatch": "Чакламысь дугдыны",
+       "mycontris": "Мынам гожтэмъёсы",
+       "whatlinkshere": "Татчы линкъёс",
+       "movearticle": "Статьяез мукет интые выжтыны",
+       "move-watch": "Та бамез чаклан списоке пыртыны",
+       "delete_and_move": "Быдтыны но мукет интые выжтыны",
+       "allmessagesname": "Ивортон",
+       "tooltip-ca-talk": "Бамлэн контентэз сярысь вераськон",
+       "tooltip-search": "Утчано {{SITENAME}}",
+       "tooltip-n-mainpage": "Кутскон баме мыноно",
+       "tooltip-n-mainpage-description": "Кутскон баме мыноно",
+       "tooltip-n-portal": "Проект сярысь, мар карыны быгатоды, ужлы кулэ луэмзэ кытысь шедьтоно",
+       "tooltip-n-recentchanges": "Берпуметӥ тупатонъёслэн списоксы",
+       "tooltip-n-randompage": "Олокыӵе бамез учконо",
+       "tooltip-t-whatlinkshere": "Ваньмыз бамъёс, кудъёсаз та бамлы линксы вань",
+       "tooltip-t-specialpages": "Специальной бамъёслэн списоксы",
+       "pageinfo-toolboxlink": "Бам сярысь тодэтъёс",
+       "specialpages": "Ваньмыз панельёс"
 }
index 9e5168f..902c9c1 100644 (file)
        "mergehistory-reason": "سەۋەب:",
        "mergehistory-revisionrow": "$1 ($2) $3 . . $4 $5 $6",
        "mergelog": "بىرلەشتۈرۈش خاتىرىسى",
-       "pagemerge-logentry": "[[$1]] نى [[$2]] غا بىرلەشتۈرۈلدى: ( تۈزىتىلگەن نەشرى $3)",
        "revertmerge": "پارچىلا",
        "mergelogpagetext": "تۆۋەندىكىسى يېقىندا بىر بەتنىڭ تۈزىتىش تارىخىنىڭ باشقا بىر بەتكە بىرلەشتۈرۈلگەنلىك تىزىملىكى",
        "history-title": "\"$1\" نىڭ ئۆزگەرتىش خاتىرىسى",
        "statistics": "ستاتىستىكا",
        "statistics-header-pages": "بەت ستاتىستىكا",
        "statistics-header-edits": "تەھرىر ستاتىستىكا",
-       "statistics-header-views": "كۆرۈش ستاتىستىكا",
        "statistics-header-users": "ئىشلەتكۈچى ستاتىستىكا",
        "statistics-header-hooks": "باشقا سىتاتىستىكا",
        "statistics-articles": "مەزمۇن بېتى",
        "statistics-files": "يۈكلەنگەن ھۆججەتلەر",
        "statistics-edits": " {{SITENAME}} تەڭشىگەن بەتنىڭ تەھرىر سانى",
        "statistics-edits-average": "ھەر بىر بەتنىڭ ئوتتۇرىچە تەھرىر سانى",
-       "statistics-views-total": "كۆرسىتىش ئومۇمى سانى",
-       "statistics-views-total-desc": "مەۋجۇت بولمىغان بەت ۋە ئالاھىدە بەتلەرنىڭ كۆرۈلۈش سانىنى ئۆز ئىچىگە ئالمايدۇ",
-       "statistics-views-peredit": "ھەر قېتىملىق تەھرىرنى كۆرسىتىش سانى",
        "statistics-users": "خەتلەتكەن [[Special:ListUsers|ئىشلەتكۈچى]]",
        "statistics-users-active": "ئاكتىپ ئىشلەتكۈچى",
        "statistics-users-active-desc": "ئالدىنقى {{PLURAL:$1|كۈن|$1 كۈن}} دىكى مەشغۇلات قىلغان ئىشلەتكۈچىلەر",
-       "statistics-mostpopular": "ئەڭ كۆپ كۆرۈلگەن بەتلەر",
        "doubleredirects": "قوش قايتا نىشانلانغان بەت",
        "doubleredirectstext": "بۇ بەتتە قايتا نىشانلانغان بەت يەنە بىر قايتا نىشانلانغان بەتنى نىشانغانلىق تىزىملىكى كۆرسىتىلدى.\nھەر بىر قۇردا بىرىنچى ۋە ئىككىنچى قايتا نىشانلانغان بەتنىڭ ئۇلانمىسىنى شۇنداقلا ئىككىنچى قايتا نىشانلانغان بەتنىڭ نىشانىنى ئۆز ئىچىگە ئالىدۇ، ئادەتتە كۆرسىتىلىدىغىنى  \"ھەقىقىي\" نىشان بەت، مۇنداقچە ئېيتقاندا بىرىنچى نىشانلانغان بەت نىشانلايدىغان بەتتۇر.",
        "double-redirect-fixed-move": "[[$1]] يۆتكەلدى.\\n\nھازىر [[$2]] نى قايتا نىشانلىدى.",
        "uncategorizedtemplates": "تۈرگە ئايرىلمىغان قېلىپلار",
        "unusedcategories": "ئىشلىتىلمىگەن تۈرلەر",
        "unusedimages": "ئىشلىتىلمىگەن ھۆججەتلەر",
-       "popularpages": "جەلپكار بەتلەر",
        "wantedcategories": "لازىملىق تۈرلەر",
        "wantedpages": "كېرەكلىك بەتلەر",
        "wantedpages-badtitle": "نەتىجە گۇرۇپپىسىدىكى ئىناۋەتسىز ماۋزۇ: $1",
        "pageinfo-robot-policy": "ئىزدەش ماتور ھالىتى",
        "pageinfo-robot-index": "چەكلەنمىگەن",
        "pageinfo-robot-noindex": "چەكلەنگەن",
-       "pageinfo-views": "كۆرۈنۈش سانى",
        "pageinfo-watchers": "بەت كۆزەتكۈچىلەر سانى",
        "pageinfo-redirects-name": "بۇ بەتكە قايتا نىشانلايدۇ",
        "pageinfo-redirects-value": "$1",
index 08bc086..8944f40 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Jose77",
-            "M.erdem",
-            "לערי ריינהארט"
-        ]
-    },
-    "sunday": "Yekshenbe",
-    "monday": "Düshenbe",
-    "tuesday": "Seyshenbe",
-    "wednesday": "Charshenbe",
-    "thursday": "Peyshenbe",
-    "friday": "Jüme",
-    "saturday": "Shenbe",
-    "january": "Yanwar",
-    "february": "Féwral",
-    "march": "Mart",
-    "april": "Aprél",
-    "may_long": "May",
-    "june": "Iyun",
-    "july": "Iyul",
-    "august": "Awghust",
-    "september": "Séntebr",
-    "october": "Öktebir",
-    "november": "Noyabr",
-    "december": "Dékabr",
-    "may-gen": "May",
-    "september-gen": "Séntebr",
-    "october-gen": "Öktebir",
-    "november-gen": "Noyabr",
-    "december-gen": "Dékabr",
-    "jan": "1-Ay",
-    "feb": "2-Ay",
-    "mar": "3-Ay",
-    "apr": "4-Ay",
-    "may": "May",
-    "jun": "6-Ay",
-    "jul": "7-Ay",
-    "aug": "8-Ay",
-    "sep": "9-Ay",
-    "oct": "10-Ay",
-    "nov": "11-Ay",
-    "dec": "12-Ay",
-    "mypage": "Mening beti",
-    "navigation": "Körüsh",
-    "qbedit": "Uzgartish",
-    "help": "Yardem",
-    "search": "Izdash",
-    "searchbutton": "Izdash",
-    "go": "Kuchush",
-    "searcharticle": "Kuchush",
-    "history_short": "Tarih",
-    "printableversion": "Basma Nushisi",
-    "permalink": "Menggülük bet",
-    "edit": "Uzgartish",
-    "delete": "Yukhutush",
-    "protect": "Koghdash",
-    "talkpagelinktext": "Monazire",
-    "talk": "Monazire",
-    "toolbox": "Qural sanduqlari",
-    "otherlanguages": "Bashqa tillarda",
-    "jumptosearch": "izdash",
-    "currentevents": "Hazirqi weqeler",
-    "edithelp": "Uzgartish yardemi",
-    "mainpage": "Bash Bet",
-    "mainpage-description": "Bash Bet",
-    "portal": "Tor Jemiyiti",
-    "ok": "MAQUL",
-    "editsection": "uzgartish",
-    "editold": "uzgartish",
-    "red-link-title": "$1 (bet yoq)",
-    "nstab-main": "Bet",
-    "nstab-user": "Ishletkuqi tor beti",
-    "nstab-special": "Alahide betleri",
-    "nstab-help": "Yardem beti",
-    "yourname": "Ishletkuqi ismi:",
-    "yourpassword": "Achkuch:",
-    "yourpasswordagain": "Achkuchni khayta besing:",
-    "login": "Kirish",
-    "logout": "Chiqish",
-    "userlogout": "Chikish",
-    "gotaccountlink": "Kirish",
-    "loginlanguagelabel": "Til: $1",
-    "passwordreset-username": "Ishletkuchi ismi:",
-    "summary": "Hulasa:",
-    "minoredit": "Bu Kichik Uzgartish",
-    "watchthis": "Bu Batka Kharang",
-    "savearticle": "Betni saqlang",
-    "showpreview": "Aldinala kurux",
-    "showdiff": "Uzgurushlerni kursutung",
-    "loginreqlink": "kirish",
-    "newarticle": "(Yéngi)",
-    "prevn": "aldinqi {{PLURAL:$1|$1}}",
-    "nextn": "kéyinki {{PLURAL:$1|$1}}",
-    "prefs-rc": "Yengi uzgurush",
-    "searchresultshead": "Izdash",
-    "timezoneregion-asia": "Asiya",
-    "timezoneregion-europe": "Yawropa",
-    "youremail": "Élxet:",
-    "username": "Ishletkuqi ismi:",
-    "yourlanguage": "Til:",
-    "email": "Élxet:",
-    "recentchanges": "Yéngi özgirish",
-    "recentchangeslinked": "Yéqinqi özgirishler",
-    "recentchangeslinked-feed": "Yéqinqi özgirishler",
-    "recentchangeslinked-toolbox": "Yéqinqi özgirishler",
-    "recentchangeslinked-page": "Betning ismi:",
-    "upload": "Yéngi höjjet kirgüzush",
-    "uploadbtn": "Yengi Hujjat Kirguzush",
-    "filedesc": "Hulasa",
-    "watchthisupload": "Bu Batka Kharang",
-    "filehist-user": "Ishletkuchi",
-    "filedelete-submit": "Yukhutush",
-    "randompage": "Halighan Tor Beti",
-    "brokenredirects-edit": "uzgartish",
-    "brokenredirects-delete": "yukhutush",
-    "newpages": "Yéngi betler",
-    "newpages-username": "Ishletkuqi ismi:",
-    "move": "Yotkash",
-    "movethispage": "Bu batni yotkang",
-    "booksources-go": "Kuchush",
-    "nextpage": "Kéyinki bet ($1)",
-    "prevpage": "Aldinqi bet ($1)",
-    "allpagessubmit": "Kuchush",
-    "linksearch-ok": "Izdash",
-    "watchlist": "Men kharawatkhan tor betleri",
-    "watch": "Karang",
-    "watchthispage": "Bu Batka Kharang",
-    "restriction-edit": "Uzgartish",
-    "restriction-move": "Yotkash",
-    "undelete-search-submit": "Izdash",
-    "sp-contributions-talk": "Monazire",
-    "sp-contributions-submit": "Izdash",
-    "whatlinkshere": "Bashqa tor betler",
-    "whatlinkshere-page": "Bet:",
-    "ipblocklist-submit": "Izdash",
-    "movearticle": "Yotkigen beti:",
-    "move-watch": "Bu Batka Kharang",
-    "movepagebtn": "Yotkigen beti",
-    "allmessages": "System havarleri",
-    "tooltip-pt-logout": "Chikish",
-    "tooltip-ca-move": "Bu batni yotkang",
-    "tooltip-search": "Izdash {{SITENAME}}",
-    "tooltip-p-logo": "Bash Bet",
-    "ilsubmit": "Izdash",
-    "confirm_purge_button": "Maqul",
-    "imgmultipageprev": "← aldinqi bet",
-    "imgmultipagenext": "kéyinki bet →",
-    "imgmultigo": "Kuchush!",
-    "table_pager_next": "Kéyinki bet",
-    "table_pager_prev": "Aldinqi bet",
-    "table_pager_first": "Birinchi bet",
-    "table_pager_last": "Eng axirqi bet",
-    "table_pager_limit_submit": "Kuchush",
-    "specialpages": "Alahide tor betleri",
-    "expand_templates_ok": "Maqul"
+       "@metadata": {
+               "authors": [
+                       "Jose77",
+                       "M.erdem",
+                       "לערי ריינהארט"
+               ]
+       },
+       "sunday": "Yekshenbe",
+       "monday": "Düshenbe",
+       "tuesday": "Seyshenbe",
+       "wednesday": "Charshenbe",
+       "thursday": "Peyshenbe",
+       "friday": "Jüme",
+       "saturday": "Shenbe",
+       "january": "Yanwar",
+       "february": "Féwral",
+       "march": "Mart",
+       "april": "Aprél",
+       "may_long": "May",
+       "june": "Iyun",
+       "july": "Iyul",
+       "august": "Awghust",
+       "september": "Séntebr",
+       "october": "Öktebir",
+       "november": "Noyabr",
+       "december": "Dékabr",
+       "may-gen": "May",
+       "september-gen": "Séntebr",
+       "october-gen": "Öktebir",
+       "november-gen": "Noyabr",
+       "december-gen": "Dékabr",
+       "jan": "1-Ay",
+       "feb": "2-Ay",
+       "mar": "3-Ay",
+       "apr": "4-Ay",
+       "may": "May",
+       "jun": "6-Ay",
+       "jul": "7-Ay",
+       "aug": "8-Ay",
+       "sep": "9-Ay",
+       "oct": "10-Ay",
+       "nov": "11-Ay",
+       "dec": "12-Ay",
+       "mypage": "Mening beti",
+       "navigation": "Körüsh",
+       "qbedit": "Uzgartish",
+       "help": "Yardem",
+       "search": "Izdash",
+       "searchbutton": "Izdash",
+       "go": "Kuchush",
+       "searcharticle": "Kuchush",
+       "history_short": "Tarih",
+       "printableversion": "Basma Nushisi",
+       "permalink": "Menggülük bet",
+       "edit": "Uzgartish",
+       "delete": "Yukhutush",
+       "protect": "Koghdash",
+       "talkpagelinktext": "Monazire",
+       "talk": "Monazire",
+       "toolbox": "Qural sanduqlari",
+       "otherlanguages": "Bashqa tillarda",
+       "jumptosearch": "izdash",
+       "currentevents": "Hazirqi weqeler",
+       "edithelp": "Uzgartish yardemi",
+       "mainpage": "Bash Bet",
+       "mainpage-description": "Bash Bet",
+       "portal": "Tor Jemiyiti",
+       "ok": "MAQUL",
+       "editsection": "uzgartish",
+       "editold": "uzgartish",
+       "red-link-title": "$1 (bet yoq)",
+       "nstab-main": "Bet",
+       "nstab-user": "Ishletkuqi tor beti",
+       "nstab-special": "Alahide betleri",
+       "nstab-help": "Yardem beti",
+       "yourname": "Ishletkuqi ismi:",
+       "yourpassword": "Achkuch:",
+       "yourpasswordagain": "Achkuchni khayta besing:",
+       "login": "Kirish",
+       "logout": "Chiqish",
+       "userlogout": "Chikish",
+       "gotaccountlink": "Kirish",
+       "loginlanguagelabel": "Til: $1",
+       "passwordreset-username": "Ishletkuchi ismi:",
+       "summary": "Hulasa:",
+       "minoredit": "Bu Kichik Uzgartish",
+       "watchthis": "Bu Batka Kharang",
+       "savearticle": "Betni saqlang",
+       "showpreview": "Aldinala kurux",
+       "showdiff": "Uzgurushlerni kursutung",
+       "loginreqlink": "kirish",
+       "newarticle": "(Yéngi)",
+       "prevn": "aldinqi {{PLURAL:$1|$1}}",
+       "nextn": "kéyinki {{PLURAL:$1|$1}}",
+       "prefs-rc": "Yengi uzgurush",
+       "searchresultshead": "Izdash",
+       "timezoneregion-asia": "Asiya",
+       "timezoneregion-europe": "Yawropa",
+       "youremail": "Élxet:",
+       "username": "Ishletkuqi ismi:",
+       "yourlanguage": "Til:",
+       "email": "Élxet:",
+       "recentchanges": "Yéngi özgirish",
+       "recentchangeslinked": "Yéqinqi özgirishler",
+       "recentchangeslinked-feed": "Yéqinqi özgirishler",
+       "recentchangeslinked-toolbox": "Yéqinqi özgirishler",
+       "recentchangeslinked-page": "Betning ismi:",
+       "upload": "Yéngi höjjet kirgüzush",
+       "uploadbtn": "Yengi Hujjat Kirguzush",
+       "filedesc": "Hulasa",
+       "watchthisupload": "Bu Batka Kharang",
+       "filehist-user": "Ishletkuchi",
+       "filedelete-submit": "Yukhutush",
+       "randompage": "Halighan Tor Beti",
+       "brokenredirects-edit": "uzgartish",
+       "brokenredirects-delete": "yukhutush",
+       "newpages": "Yéngi betler",
+       "newpages-username": "Ishletkuqi ismi:",
+       "move": "Yotkash",
+       "movethispage": "Bu batni yotkang",
+       "nextpage": "Kéyinki bet ($1)",
+       "prevpage": "Aldinqi bet ($1)",
+       "allpagessubmit": "Kuchush",
+       "linksearch-ok": "Izdash",
+       "watchlist": "Men kharawatkhan tor betleri",
+       "watch": "Karang",
+       "watchthispage": "Bu Batka Kharang",
+       "restriction-edit": "Uzgartish",
+       "restriction-move": "Yotkash",
+       "undelete-search-submit": "Izdash",
+       "sp-contributions-talk": "Monazire",
+       "sp-contributions-submit": "Izdash",
+       "whatlinkshere": "Bashqa tor betler",
+       "whatlinkshere-page": "Bet:",
+       "ipblocklist-submit": "Izdash",
+       "movearticle": "Yotkigen beti:",
+       "move-watch": "Bu Batka Kharang",
+       "movepagebtn": "Yotkigen beti",
+       "allmessages": "System havarleri",
+       "tooltip-pt-logout": "Chikish",
+       "tooltip-ca-move": "Bu batni yotkang",
+       "tooltip-search": "Izdash {{SITENAME}}",
+       "tooltip-p-logo": "Bash Bet",
+       "ilsubmit": "Izdash",
+       "confirm_purge_button": "Maqul",
+       "imgmultipageprev": "← aldinqi bet",
+       "imgmultipagenext": "kéyinki bet →",
+       "imgmultigo": "Kuchush!",
+       "table_pager_next": "Kéyinki bet",
+       "table_pager_prev": "Aldinqi bet",
+       "table_pager_first": "Birinchi bet",
+       "table_pager_last": "Eng axirqi bet",
+       "table_pager_limit_submit": "Kuchush",
+       "specialpages": "Alahide tor betleri",
+       "expand_templates_ok": "Maqul"
 }
index a33d17d..4d3384b 100644 (file)
        "viewsourcetext": "Ви можете переглянути та скопіювати початковий текст цієї сторінки:",
        "viewyourtext": "Ви можете переглянути та скопіювати текст '''ваших редагувань''' на цій сторінці:",
        "protectedinterface": "Ця сторінка містить текст інтерфейсу програмного забезпечення цієї Вікі, захищений від небажаного втручання. Щоб додати або змінити переклади для всіх вікі, перейдіть до [//translatewiki.net/ translatewiki.net], проекту локалізації MediaWiki.",
-       "editinginterface": "'''Увага:''' Ви редагуєте сторінку, що є частиною текстового інтерфейсу програм. \nЗміни цієї сторінки спричинять зміну інтерфейсу для інших користувачів цієї Вікі. \nЩоб додати чи змінити переклади для всіх вікі, використовуйте [//translatewiki.net/wiki/Main_Page?setlang=uk translatewiki.net] — проект локалізації MediaWiki.",
+       "editinginterface": "'''Увага:''' Ви редагуєте сторінку, що є частиною текстового інтерфейсу програм. \nЗміни цієї сторінки спричинять зміну інтерфейсу для інших користувачів цієї Вікі.",
+       "translateinterface": "Для того, щоб додати чи змінити переклад повідомлень інтерфейсу для всіх вікі-проектів, скористайтеся будь ласка проектом локалізації MediaWiki: [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Сторінка захищена від змін, оскільки вона належить до {{PLURAL:$1|1=сторінки, для якої|сторінок, для яких}} установлено каскадний захист: $2",
        "namespaceprotected": "У вас нема дозволу редагувати сторінки в просторі назв «$1».",
        "customcssprotected": "У вас немає дозволу на редагування цієї CSS-сторінки, бо вона містить особисті налаштування іншого користувача.",
        "content-model-text": "звичайний текст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Сторінки, що містять шаблон із кількома значеннями одного й того ж параметра",
+       "duplicate-args-category-desc": "Тут перелічено сторінки, що містять дублікатне визначення аргументу при включенні шаблону, приміром, <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> або <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Увага:''' Ця сторінка містить дуже багато викликів ресурсомістких функцій.\n\nКількість викликів не повинна перевищувати $2, зараз потрібно зробити $1 {{PLURAL:$1|виклик|виклики|викликів}}.",
        "expensive-parserfunction-category": "Сторінки з дуже великою кількістю викликів ресурсомістких функцій",
        "post-expand-template-inclusion-warning": "'''Увага:''' розмір шаблонів для включення занадто великий.\nДеякі шаблони не буде включено.",
        "mergehistory-same-destination": "Початкова і цільова сторінки повинні відрізнятися",
        "mergehistory-reason": "Причина:",
        "mergelog": "Журнал об'єднань",
-       "pagemerge-logentry": "об'єднані [[$1]] і [[$2]] (версії до $3)",
        "revertmerge": "Розділити",
        "mergelogpagetext": "Нижче наведений список останніх об'єднань історій сторінок.",
        "history-title": "$1: Історія змін",
        "search-result-category-size": "{{PLURAL:$1|$1 елемент|$1 елементи|$1 елементів}} ({{PLURAL:$2|$2 підкатегорія|$2 підкатегорії|$2 підкатегорій}}, {{PLURAL:$3|$3 файл|$3 файли|$3 файлів}})",
        "search-redirect": "(перенаправлення $1)",
        "search-section": "(розділ $1)",
+       "search-category": "(категорія $1)",
        "search-file-match": "(збігається із вмістом файлу)",
        "search-suggest": "Можливо, ви мали на увазі: $1",
        "search-interwiki-caption": "Братні проекти",
        "gender-female": "Жіноча",
        "prefs-help-gender": "Задання цього параметру - необов'язкове. Застосовується рушієм у тих звертаннях до користувача, які залежать від статі.\nЦя інформація загальнодоступна.",
        "email": "Електронна пошта",
-       "prefs-help-realname": "СпÑ\80авжнÑ\94 Ñ\96м'Ñ\8f Ð½ÐµÐ¾Ð±Ð¾Ð²'Ñ\8fзково Ð²ÐºÐ°Ð·Ñ\83ваÑ\82и.\nЯкÑ\89о Ð²Ð¸ Ð¹Ð¾Ð³Ð¾ Ð·Ð°Ð·Ð½Ð°Ñ\87иÑ\82е, Ñ\82о Ð²Ð¾Ð½Ð¾ Ð±Ñ\83де Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83ваÑ\82иÑ\81Ñ\8f, Ñ\89об Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ\82и, Ñ\85Ñ\82о Ñ\80едагÑ\83вав Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83.",
+       "prefs-help-realname": "СпÑ\80авжнÑ\94 Ñ\96м'Ñ\8f Ð²ÐºÐ°Ð·Ñ\83ваÑ\82и Ð½ÐµÐ¾Ð±Ð¾Ð²'Ñ\8fзково.\nЯкÑ\89о Ð²Ð¸ Ð¹Ð¾Ð³Ð¾ Ð·Ð°Ð·Ð½Ð°Ñ\87иÑ\82е, Ñ\82о Ñ\81аме Ð· Ð½Ð¸Ð¼ Ð¼Ð¾Ð¶Ðµ Ð±Ñ\83Ñ\82и Ð¿Ð¾Ð²'Ñ\8fзаний Ñ\83веÑ\81Ñ\8c Ð²Ð°Ñ\88 Ð´Ð¾Ñ\80обок.",
        "prefs-help-email": "Адреса електронної пошти не є обов'язковою, але необхідна для скидання пароля, якщо ви його забудете.",
        "prefs-help-email-others": "Також вона дозволить іншим користувачам зв'язатися з вами через вашу особисту сторінку без необхідності розкриття вашої електронної адреси.",
        "prefs-help-email-required": "Потрібно зазначити адресу електронної пошти.",
        "nolicense": "Відсутнє",
        "licenses-edit": "Редагувати параметри ліцензії",
        "license-nopreview": "(Попередній перегляд недоступний)",
-       "upload_source_url": " (вірна, публічно доступна інтернет-адреса)",
+       "upload_source_url": "(ви вибрали правильну, публічно доступну інтернет-адресу)",
        "upload_source_file": " (файл на вашому комп'ютері)",
        "listfiles-delete": "видалити",
        "listfiles-summary": "Ця спеціальна сторінка показує всі завантажені файли.",
        "statistics": "Статистика",
        "statistics-header-pages": "Статистика сторінок",
        "statistics-header-edits": "Статистика редагувань",
-       "statistics-header-views": "Статистика переглядів",
        "statistics-header-users": "Статистика користувачів",
        "statistics-header-hooks": "Інша статистика",
        "statistics-articles": "Статей",
        "statistics-files": "Завантажено файлів",
        "statistics-edits": "Кількість редагувань з моменту установки {{grammar:genitive|{{SITENAME}}}}",
        "statistics-edits-average": "Середнє число редагувань на сторінку",
-       "statistics-views-total": "Усього переглядів",
-       "statistics-views-total-desc": "Перегляди неіснуючих та спеціальних сторінок не враховані",
-       "statistics-views-peredit": "Переглядів на редагування",
        "statistics-users": "Зареєстрованих [[Special:ListUsers|користувачів]]",
        "statistics-users-active": "Активні користувачі",
        "statistics-users-active-desc": "Користувачі, які здійснили якусь дію протягом {{PLURAL:$1|1=минулого дня|$1 минулих днів}}",
-       "statistics-mostpopular": "Сторінки, які найчастіше переглядають",
        "pageswithprop": "Сторінки з перевизначеними властивостями",
        "pageswithprop-legend": "Сторінки з перевизначеними властивостями",
        "pageswithprop-text": "Тут перераховані сторінки, у яких були вручну перевизначені окремі властивості.",
        "uncategorizedtemplates": "Некатегоризовані шаблони",
        "unusedcategories": "Категорії, що не використовуються",
        "unusedimages": "Файли, що не використовуються",
-       "popularpages": "Популярні статті",
        "wantedcategories": "Необхідні категорії",
        "wantedpages": "Необхідні статті",
        "wantedpages-badtitle": "Неправильний заголовок у результатах запиту: $1",
        "pager-older-n": "{{PLURAL:$1|старіша|старіші|старіших}} $1",
        "suppress": "Ревізор",
        "querypage-disabled": "Цю спеціальну сторінку вимкнуто для покращення продуктивності.",
+       "apihelp": "Довідка з API",
+       "apihelp-no-such-module": "Додаток \"$1\" не знайдено.",
        "booksources": "Джерела книг",
        "booksources-search-legend": "Пошук інформації про книгу",
        "booksources-isbn": "ISBN:",
        "move-page": "Перейменування сторінки «$1»",
        "move-page-legend": "Перейменування сторінки",
        "movepagetext": "Скориставшись формою нижче, ви можете перейменувати сторінку, одночасно перемістивши на нове місце і журнал її редагувань.\nСтара назва стане перенаправленням на нову назву.\nВи можете автоматично оновити перенаправлення на стару назву.\nЯкщо ви цього не зробите, будь ласка, перевірте наявність [[Special:DoubleRedirects|подвійних]] чи [[Special:BrokenRedirects|розірваних]] перенаправлень.\nВи відповідаєте за те, щоб посилання і надалі вказували туди, куди припускалося.\n\nЗверніть увагу, що сторінка '''не''' буде перейменована, якщо сторінка з новою назвою вже існує, окрім випадків, коли остання порожня або є перенаправленням, а журнал її редагувань порожній.\nЦе означає, що ви можете повернути сторінці стару назву, якщо ви перейменували її помилково, але ви не можете затерти існуючу сторінку.\n\n'''ПОПЕРЕДЖЕННЯ!'''\nЦя дія може стати причиною серйозних та неочікуваних змін популярних сторінок.\nБудь ласка, перед продовженням переконайтесь, що ви розумієте всі можливі наслідки.",
-       "movepagetext-noredirectfixer": "ЦÑ\8f Ñ\84оÑ\80ма Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\8fÑ\94 Ð¿ÐµÑ\80ейменÑ\83ваÑ\82и Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83 Ð· Ð¾Ð´Ð½Ð¾Ñ\87аÑ\81ним Ð¿ÐµÑ\80емÑ\96Ñ\89еннÑ\8fм Ñ\97Ñ\97 Ð¶Ñ\83Ñ\80налÑ\83 Ð·Ð¼Ñ\96н.\nСÑ\82аÑ\80а Ð½Ð°Ð·Ð²Ð° Ñ\81Ñ\82ане Ð¿ÐµÑ\80енапÑ\80авленнÑ\8fм Ð½Ð° Ð½Ð¾Ð²Ñ\83.\nÐ\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ð½Ðµ Ð·Ð°Ð±Ñ\83дÑ\8cÑ\82е Ð²Ð¸Ð¿Ñ\80авиÑ\82и [[Special:DoubleRedirects|подвÑ\96йнÑ\96]] Ñ\96 [[Special:BrokenRedirects|розірвані перенаправлення]].\nВи відповідаєте за те, щоб посилання і далі вказували туди, куди треба.\n\nЗверніть увагу, що сторінка '''не буде''' перейменована, якщо сторінка з новою назвою вже існує, крім випадків, коли вона є перенаправленням або порожня та не має історії редагувань.\nЦе означає, що Ви можете перейменувати сторінку назад, якщо Ви допустилися помилки, і при цьому не зможете випадково перезаписати наявну сторінку.\n\n'''Попередження!'''\nПерейменування може призвести до масштабних і несподіваних змін для ''популярних'' сторінок.\nТому перед перейменуванням упевніться, що Ви оцінили можливі наслідки.",
+       "movepagetext-noredirectfixer": "ЦÑ\8f Ñ\84оÑ\80ма Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\8fÑ\94 Ð¿ÐµÑ\80ейменÑ\83ваÑ\82и Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83 Ð· Ð¾Ð´Ð½Ð¾Ñ\87аÑ\81ним Ð¿ÐµÑ\80емÑ\96Ñ\89еннÑ\8fм Ñ\97Ñ\97 Ð¶Ñ\83Ñ\80налÑ\83 Ð·Ð¼Ñ\96н.\nСÑ\82аÑ\80а Ð½Ð°Ð·Ð²Ð° Ñ\81Ñ\82ане Ð¿ÐµÑ\80енапÑ\80авленнÑ\8fм Ð½Ð° Ð½Ð¾Ð²Ñ\83.\nÐ\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ð½Ðµ Ð·Ð°Ð±Ñ\83дÑ\8cÑ\82е Ð²Ð¸Ð¿Ñ\80авиÑ\82и [[Special:DoubleRedirects|подвÑ\96йнÑ\96]] Ñ\82а [[Special:BrokenRedirects|розірвані перенаправлення]].\nВи відповідаєте за те, щоб посилання і далі вказували туди, куди треба.\n\nЗверніть увагу, що сторінка '''не буде''' перейменована, якщо сторінка з новою назвою вже існує, крім випадків, коли вона є перенаправленням або порожня та не має історії редагувань.\nЦе означає, що Ви можете перейменувати сторінку назад, якщо Ви допустилися помилки, і при цьому не зможете випадково перезаписати наявну сторінку.\n\n'''Попередження!'''\nПерейменування може призвести до масштабних і несподіваних змін для ''популярних'' сторінок.\nТому перед перейменуванням упевніться, що Ви оцінили можливі наслідки.",
        "movepagetalktext": "Приєднана сторінка обговорення також буде автоматично перейменована, '''окрім таких випадків:'''\n* Непорожня сторінка обговорення з такою назвою вже існує або\n* Ви не поставили галочку в полі нижче.\n\nУ цих випадках ви будете змушені перейменувати чи об'єднати сторінки вручну в разі необхідності",
        "movearticle": "Перейменувати сторінку",
        "moveuserpage-warning": "'''Увага:''' Ви збираєтеся перейменувати сторінку користувача. Будь ласка, зверніть увагу, що  буде перейменовано тільки сторінку, але користувача '''не''' буде перейменовано.",
        "tooltip-pt-mycontris": "Ваш внесок",
        "tooltip-pt-login": "Тут можна зареєструватися в системі, але це не обов'язково.",
        "tooltip-pt-logout": "Вихід із системи",
+       "tooltip-pt-createaccount": "Пропонуємо створити обліковий запис і увійти в систему; однак, це не обов'язково",
        "tooltip-ca-talk": "Обговорення змісту сторінки",
        "tooltip-ca-edit": "Ви можете редагувати цю сторінку. Будь ласка, використовуйте кнопку попереднього перегляду перед збереженням",
        "tooltip-ca-addsection": "Створити новий розділ",
        "tooltip-feed-atom": "Трансляція в Atom для цієї сторінки",
        "tooltip-t-contributions": "Перегляд внеску цього користувача",
        "tooltip-t-emailuser": "Надіслати листа цьому користувачеві",
+       "tooltip-t-info": "Додаткові відомості про цю сторінку",
        "tooltip-t-upload": "Завантажити файли",
        "tooltip-t-specialpages": "Перелік спеціальних сторінок",
        "tooltip-t-print": "Версія цієї сторінки для друку",
        "pageinfo-robot-policy": "Індексація пошуковими системами",
        "pageinfo-robot-index": "Індексується",
        "pageinfo-robot-noindex": "Не індексується",
-       "pageinfo-views": "Кількість переглядів",
        "pageinfo-watchers": "Кількість спостерігачів",
        "pageinfo-few-watchers": "Менше ніж $1 {{PLURAL:$1|спостерігач|спостерігачі|спостерігачів}}",
        "pageinfo-redirects-name": "Число перенаправлень на цю сторінку",
        "unknown_extension_tag": "Невідомий тег доповнення «$1»",
        "duplicate-defaultsort": "Увага. Ключ сортування «$2» перекриває попередній ключ сортування «$1».",
        "duplicate-displaytitle": "<strong>Увага:</strong> Відображений заголовок \"$2\" заміщує раніше відображений заголовок \"$1\".",
+       "invalid-indicator-name": "<strong>Помилка:</strong> Сторінка індикатора стану <code>name</code> атрибута не може бути пуста.",
        "version": "Версія MediaWiki",
        "version-extensions": "Установлені розширення",
        "version-skins": "Встановлені теми оформлення",
        "revdelete-uname-unhid": "ім'я користувача відкрито",
        "revdelete-restricted": "застосовані обмеження для адміністраторів",
        "revdelete-unrestricted": "зняті обмеження для адміністраторів",
+       "logentry-merge-merge": "$1 {{GENDER:$2|приєднав|приєднала}} $3 до $4 (версії до $5)",
        "logentry-move-move": "$1 {{GENDER:$2|перейменував|перейменувала}} сторінку з $3 на $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|перейменував|перейменувала}} сторінку з $3 на $4 без створення перенаправлення",
        "logentry-move-move_redir": "$1 {{GENDER:$2|перейменував|перейменувала}} сторінку з $3 на $4 поверх перенаправлення",
index fe7fb68..60d9cf6 100644 (file)
        "uncategorizedimages": "بے زمرہ تصاویر",
        "unusedcategories": "غیر استعمال شدہ زمرہ جات",
        "unusedimages": "غیر استعمال شدہ فائلیں",
-       "popularpages": "مقبول صفحات",
        "wantedcategories": "طلب شدہ زمرہ جات",
        "wantedpages": "درخواست شدہ مضامین",
        "mostlinked": "سب سے زیادہ ربط والے مضامین",
index 73006fd..8ce4527 100644 (file)
@@ -9,17 +9,18 @@
                        "Nataev",
                        "Sociologist",
                        "Xexdof",
-                       "Arystanbek"
+                       "Arystanbek",
+                       "6ahodir"
                ]
        },
        "tog-underline": "Havolalarning tagiga chizish:",
-       "tog-hideminor": "Yangi oʻzgarishlar roʻyxatida kichik tahrirlarni yashirish",
-       "tog-hidepatrolled": "Yangi oʻzgarishlar roʻyxatida tekshirilgan tahrirlarni yashirish",
-       "tog-newpageshidepatrolled": "Yangi sahifalar roʻyxatida tekshirilgan sahifalarni yashirish",
+       "tog-hideminor": "Yangi oʻzgarishlar roʻyxatidan kichik tahrirlarni yashirish",
+       "tog-hidepatrolled": "Yangi oʻzgarishlar roʻyxatidan tekshirilgan tahrirlarni yashirish",
+       "tog-newpageshidepatrolled": "Yangi sahifalar roʻyxatidan tekshirilgan sahifalarni yashirish",
        "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": "Yuqoridagi tahrirlash asboblarini koʻrsatish",
+       "tog-showtoolbar": "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-watchcreations": "Men yaratgan sahifalar va yuklagan fayllar kuzatuv roʻyxatimga qoʻshilsin",
        "thu": "Pay",
        "fri": "Jum",
        "sat": "Shn",
-       "january": "yanvar",
-       "february": "fevral",
-       "march": "mart",
-       "april": "aprel",
-       "may_long": "may",
-       "june": "iyun",
-       "july": "iyul",
-       "august": "avgust",
-       "september": "sentabr",
-       "october": "oktabr",
-       "november": "noyabr",
-       "december": "dekabr",
-       "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",
-       "apr": "apr",
-       "may": "may",
-       "jun": "iyn",
-       "jul": "iyl",
-       "aug": "avg",
-       "sep": "sen",
-       "oct": "okt",
-       "nov": "noy",
-       "dec": "dek",
+       "january": "Yanvar",
+       "february": "Fevral",
+       "march": "Mart",
+       "april": "Aprel",
+       "may_long": "May",
+       "june": "Iyun",
+       "july": "Iyul",
+       "august": "Avgust",
+       "september": "Sentabr",
+       "october": "Oktabr",
+       "november": "Noyabr",
+       "december": "Dekabr",
+       "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",
+       "apr": "Apr",
+       "may": "May",
+       "jun": "Jyn",
+       "jul": "Iyl",
+       "aug": "Avg",
+       "sep": "Sen",
+       "oct": "Okt",
+       "nov": "Noy",
+       "dec": "Dek",
        "january-date": "Yanvar $1",
        "february-date": "Fevral $1",
        "march-date": "Mart $1",
        "april-date": "Aprel $1",
+       "may-date": "$1-may",
        "june-date": "Iyun $1",
        "july-date": "Iyul $1",
        "august-date": "Avgust $1",
        "november-date": "Noyabr $1",
        "december-date": "Dekabr $1",
        "pagecategories": "{{PLURAL:$1|Turkum}}",
-       "category_header": "\"$1\" turkumidagi maqolalar.",
+       "category_header": "\"$1\" turkumidagi sahifalar",
        "subcategories": "Ostturkumlar",
        "category-media-header": "\"$1\" turkumidagi fayllar",
        "category-empty": "''Ushbu turkumda hozircha sahifa yoki fayllar yoʻq.''",
        "anontalk": "Ushbu IP-manzil munozarasi",
        "navigation": "Saytda harakatlanish",
        "and": "&#32;va",
-       "qbfind": "Qidiruv",
-       "qbbrowse": "Koʻrish",
+       "qbfind": "Topish",
+       "qbbrowse": "Koʻrib chiqish",
        "qbedit": "Tahrirlash",
        "qbpageoptions": "Ushbu sahifa moslamalari",
-       "qbmyoptions": "Moslamalarim",
+       "qbmyoptions": "Mening sahifalarim",
        "faq": "TSS",
-       "faqpage": "Project:TSS",
+       "faqpage": "Loyiha:TSS",
        "actions": "Amallar",
        "namespaces": "Nomfazolar",
        "variants": "Variantlar",
        "permalink": "Doimiy ishorat",
        "print": "Chop etish",
        "view": "Koʻrish",
+       "view-foreign": "$1 da koʻrish",
        "edit": "Tahrirlash",
        "create": "Yaratish",
        "editthispage": "Ushbu sahifani tahrirlash",
        "otherlanguages": "Boshqa tillarda",
        "redirectedfrom": "($1dan yoʻnaltirildi)",
        "redirectpagesub": "Yoʻnaltiruvchi sahifa",
+       "redirectto": "Qayta yoʻnaltirish:",
        "lastmodifiedat": "Bu sahifa oxirgi marta $1 soat $2 da tahrirlangan.",
        "viewcount": "Bu sahifaga {{PLURAL:$1|bir marta|$1 marta}} murojaat qilingan.",
        "protectedpage": "Himoyalangan sahifa",
        "hidetoc": "yashirish",
        "collapsible-collapse": "Yigʻish",
        "collapsible-expand": "Yoyish",
+       "confirmable-yes": "Ha",
+       "confirmable-no": "Yoʻq",
        "thisisdeleted": "$1ni koʻrib chiqasizmi yoki tiklaysizmi?",
        "viewdeleted": "$1ni koʻrib chiqasizmi?",
        "restorelink": "{{PLURAL:$1|Oʻchirilgan tahrir|$1 ta oʻchirilgan tahrirlar}}",
        "nosuchaction": "Bunday amal yoʻq",
        "nosuchspecialpage": "Bunday maxsus sahifa yoʻq",
        "error": "Xato",
+       "databaseerror": "Maʼlumotlar bazasida xatolik",
+       "databaseerror-query": "So‘rov: $1",
+       "databaseerror-function": "Funktsiya: $1",
+       "databaseerror-error": "Xato: $1",
        "laggedslavemode": "'''Diqqat:''' sahifada oxirgi yangilanishlar koʻrsatilmagan boʻlishi mumkin.",
        "readonly": "Maʼlumotlar bazasiga yozish toʻsilgan",
        "missingarticle-rev": "(versiya №: $1)",
        "missingarticle-diff": "(Farq: $1, $2)",
        "internalerror": "Ichki xato",
        "internalerror_info": "Ichki xato: $1",
+       "filecopyerror": "\"$1\" fayl nusxasini \"$2\" fayliga koʻchirib boʻlmadi.",
+       "filedeleteerror": "\"$1\" faylini oʻchirib boʻlmadi.",
+       "filenotfound": "\"$1\" faylini topib boʻlmadi.",
+       "cannotdelete-title": "\"$1\" sahifasini oʻchirib boʻlmadi.",
        "badtitle": "Notoʻgʻri sarlavha",
        "viewsource": "Manbasini koʻrish",
        "viewsource-title": "$1 sahifasining manbasini koʻrish",
        "virus-scanfailed": "tekshirishda xatolik (kod $1)",
        "virus-unknownscanner": "noma'lum antivirus:",
        "logouttext": "<strong>Siz saytdan muvaffaqiyatli chiqdingiz.</strong>\n\nBrauzeringiz keshini tozalamaguningizgacha ayrim sahifalar tizimga kirganingizdek koʻrinishda davom etaverishi mumkin.",
+       "welcomeuser": "Xush kelibsiz, $1!",
        "yourname": "Foydalanuvchi nomi:",
        "userlogin-yourname": "Foydalanuvchi nomi",
        "userlogin-yourname-ph": "Foydalanuvchi nomingizni kiriting",
        "gotaccountlink": "Kirish",
        "userlogin-resetlink": "Kirish maʻlumotlaringiz esdan chiqdimi?",
        "userlogin-resetpassword-link": "Unutib qoʻydingizmi?",
+       "userlogin-helplink2": "Kirish uchun yordam",
        "userlogin-loggedin": "Siz {{GENDER:$1|$1}} nomi bilan kirgansiz.\nBoshqa hisob raqami orqali kirish uchun quyidagi formadan foydalaning.",
        "userlogin-createanother": "Boshqa hisob yaratish",
        "createacct-emailrequired": "Elektron pochta manzilingiz",
        "createacct-benefit-body3": "soʻnggi paytdagi ishtirokchilar soni",
        "badretype": "Siz tomondan kiritilgan maxfiy so'zlar mos kelmayapti.",
        "loginerror": "Foydalanuvchini aniqlashda xatolik",
+       "createacct-error": "Hisob yaratishda xatolik",
        "createaccounterror": "Hisob yozuvi yaratishning iloji yoʻq: $1",
        "loginsuccesstitle": "Kirish muvaffaqiyatli amalga oshdi",
        "loginsuccess": "'''{{SITENAME}}ga \"$1\" foydalanuvchi nomi bilan kirdingiz.'''",
        "wrongpasswordempty": "Maxfiy soʻz koʻrsatilmagan. Qaytadan urinib koʻring.",
        "mailmypassword": "Maxfiy soʻzni yangilash",
        "passwordremindertitle": "{{SITENAME}} uchun vaqtinchalik yangi maxfiy so'z",
+       "mailerror": "$1 manziliga xat yuborishda xatolik",
        "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",
+       "createaccount-title": "{{SITENAME}} da hisob yaratish",
        "login-abort-generic": "Tizimga kirishga mufavvaqiyatsiz urinish",
        "loginlanguagelabel": "Til: $1",
        "pt-login": "Kirish",
+       "pt-login-button": "Kirish",
        "pt-createaccount": "Hisob yaratish",
        "pt-userlogout": "Chiqish",
        "changepassword": "Maxfiy soʻzni oʻzgartirish",
        "resetpass_forbidden": "Maxfiy so'z o'zgartirilishi mumkin emas",
        "resetpass-submit-loggedin": "Maxfiy soʻzni oʻzgartirish",
        "resetpass-submit-cancel": "Bekor",
+       "resetpass-temp-password": "Vaqtinchalik maxfiy soʻz",
        "passwordreset": "Maxfiy soʻzni yangilash",
        "passwordreset-text-one": "Mahfiy soʻzni tashlash uchun ushbu oynalarni toʻltiring.",
        "passwordreset-text-many": "{{PLURAL:$1|Quyidagi oynalardan birini toʻldirsangiz, elektron pochtangizga vaqtinchalik maxfiy soʻz joʻnatiladi.}}",
        "passwordreset-legend": "Maxfiy soʻzni yangilash",
        "passwordreset-username": "Foydalanuvchi nomi:",
        "passwordreset-domain": "Domen:",
+       "passwordreset-capture": "Xatni koʻrmoqchimisiz?",
        "passwordreset-email": "Elektron pochta manzilingiz:",
        "passwordreset-emailelement": "Foydalanuvchi ismi: $1\nVaqtinchalik maxfiy so'z: $2",
        "changeemail": "Elektron pochta manzilini oʻzgartirish",
        "newarticletext": "Bu sahifa hali mavjud emas.\nSahifani yaratish uchun quyida matn kiritishingiz mumkin (qoʻshimcha axborot uchun [$1 yordam sahifasini] koʻring).\nAgar 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.\nShu sababli tenglashtirish uchun raqamli IP-manzildan foydalaniladi.\nUshbu manzilning oʻzi bir nechta boshqa ishtirokchilarga ham mos kelishi mumkin.\nAgar siz anonim ishtirokchi boʻlsangiz va siz oʻzingizga yoʻnaltirilmagan xabar oldim deb taxmin qilsangiz, iltimos, boshqa anonim ishtirokchilar bilan mumkin boʻlgan chalkashliklarni chetlab oʻtish uchun [[Special:UserLogin/signup|hisob yozuvi yarating]] yoki [[Special:UserLogin|tizimga kiring]].''",
        "noarticletext": "Bu sahifada hozircha hech qanday matn yoʻq. Siz bu sarlavhani boshqa sahifalardan [[Special:Search/{{PAGENAME}}|qidirishingiz]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tegishli qaydlarga qarashingiz] yoki bu sahifani [{{fullurl:{{FULLPAGENAME}}|action=edit}} tahrirlashingiz]</span> mumkin.",
+       "userpage-userdoesnotexist-view": "\"$1\" foydalanuvchi hisobi roʻyxatga olinmagan.",
        "clearyourcache": "'''Eslatma.''' Saqlaganingizdan so'ng o'zgarishlarni ko'rish uchun siz o'z brauzeringiz keshini tozalashingizga to'gri kelishi mumkin.\n* '''Firefox / Safari:''' ''Shift'' tugmasini bosgan holda, ''Yangilash'' unsurlar darchasini bosing, yoki ''Ctrl-F5'' yoki ''Ctrl-R'' (Macda ''⌘-R'') ni bosing\n* '''Google Chrome:''' ''Ctrl-Shift-R'' (Macda ''⌘-Shift-R'') ni bosing\n* '''Internet Explorer:''' ''Ctrl''ni bosgan holda, ''Yangilash''ni bosing, yoki ''Ctrl-F5''ni bosing\n* '''Opera:''' ''Asboblar → Moslamalar'' menyusidan keshni tozalashni tanlang",
        "updated": "(Yangilandi)",
        "note": "'''Izoh:'''",
        "editingsection": "$1 tahrirlanmoqda (boʻlim)",
        "editingcomment": "$1 tahrirlanmoqda (yangi mavzu)",
        "editconflict": "Tahrirlash toʻqnashuvi: $1",
+       "yourtext": "Sizning matningiz",
+       "yourdiff": "Farqlar",
        "copyrightwarning": "Iltimos, {{SITENAME}}ga yuklangan har qanday axborot $2 ostida tarqatilishiga diqqat qiling (batafsil ma'lumot uchun $1ni ko'ring).\nAgar yozganlaringiz keyinchalik tahrir qilinishi va qayta tarqatilishiga rozi bo'lmasangiz, u holda bu yerga yozmang.<br />\nSiz shuningdek bu yozganlaringiz sizniki yoki erkin litsenziya ostida ekanligini va'da qilmoqdasiz.\n'''MUALLIFLIK HUQUQLARI BILAN HIMOYALANGAN ISHLARNI ZINHOR BERUXSAT YUBORMANG!'''",
        "copyrightwarning2": "Iltimos, shuni esda tutingki, {{SITENAME}} sahifalaridagi barcha matnlar boshqa foydalanuvchilar tomonidan tahrirlanishi, almashtirilishi yoki o'chirilishi mumkin. Agar siz yozgan ma'lumotlaringizni bunday tartibda tahrirlanishiga rozi bo'lmasangiz, unda uni bu yerga joylashtirmang.<br />\nBundan tashqari, siz ushbu ma'lumotlarni o'zingiz yozgan bo'lishingiz yoki ruxsat berilgan internet manzilidan yoki shu kabi erkin resursdan nusxa olgan bo'lishingiz lozim (Qo'shimcha ma'lumotlar uchun $1 sahifasiga murojaat qiling).\n'''MUALLIFLIK HUQUQI QO'YILGAN ISHLARNI RUXSATSIZ BU YERGA JOYLASHTIRMANG!'''",
        "templatesused": "Ushbu sahifada foydalanilgan {{PLURAL:$1|andoza|andozalar}}:",
        "moveddeleted-notice": "Bu sahifa oʻchirilgan.\nMaʼlumot uchun quyida oʻchirish va qayta nomlash jurnallaridan mos yozuvlar keltirilgan.",
        "log-fulllog": "Qaydlarni toʻliq koʻrish",
        "edit-conflict": "Tahrirlash toʻqnashuvi.",
+       "postedit-confirmation-created": "Sahifa yaratildi.",
+       "postedit-confirmation-restored": "Sahifa qayta tiklandi.",
        "postedit-confirmation-saved": "Tahriringiz saqlandi.",
        "defaultmessagetext": "Boshlang'ich matn",
+       "content-model-text": "quruq matn",
+       "content-model-javascript": "JavaScript",
+       "content-model-css": "CSS",
        "post-expand-template-inclusion-warning": "'''Diqqat:''' Qo'llanilayotgan andozalarning jami hajmi juda katta.\nAyrim andozalar qo'shilmaydi.",
        "post-expand-template-inclusion-category": "Qo'llaniladigan andozalarning mumkin bo'lgan miqdoridan oshgan sahifalar",
        "post-expand-template-argument-category": "Andozalarning to'ldirilmagan o'zgaruvchilariga ega sahifalar",
        "mergehistory-submit": "Tahrirlarni birlashtirish",
        "mergehistory-reason": "Sabab:",
        "mergelog": "Birlashtirish qaydlari",
-       "pagemerge-logentry": "[[$1]] va [[$2]]lar birlashtirildi ($3 gacha bo'lgan versiyalar)",
        "revertmerge": "Bo'lish",
        "history-title": "$1 - oʻzgarishlar tarixi",
        "difference-title": "$1 — versiyalar orasidagi farq",
        "recentchangescount": "Sukut boʻyicha koʻrsatiladigan tahrirlar soni:",
        "prefs-help-recentchangescount": "Yangi oʻzgarishlar, sahifalar tarixi va qaydlar uchun",
        "prefs-help-watchlist-token2": "Bu kuzatuv roʻyxatingizning veb-kanali uchun maxfiy kalit kodi.\nBu kodni biladigan har kim sizning kuzatuv roʻyxatingizni koʻrishi mumkin, shuning uchun boshqalarga uni oshkor qilmang. [[Special:ResetTokens|Tokenni yangilash]].",
-       "savedprefs": "Sizning moslamalaringiz saqlandi.",
+       "savedprefs": "Sizning moslamalaringiz saqlandi",
        "timezonelegend": "Vaqt mintaqangiz:",
        "localtime": "Mahalliy vaqt:",
        "timezoneuseserverdefault": "Server moslamalaridan foydalanish ($1)",
        "watchlist-details": "Sizning kuzatuv roʻyxatingizda hozirda {{PLURAL:$1|bitta sahifa|$1ta sahifa}} mavjud (munozara sahifalarini hisobga olmaganda).",
        "wlheader-showupdated": "Siz oxirgi marta kirganingizdan keyin oʻzgartirilgan sahifalar '''qalin''' yozuv bilan ajratib koʻrsatilgan.",
        "wlnote": "Below {{PLURAL:$1|is the last change|are the last '''$1''' changes}} in the last {{PLURAL:$2|hour|'''$2''' hours}}, as of $3, $4.",
-       "wlshowlast": "Oxirgi $1 soatdagi $2 kundagi tahrirlarni koʻrsat",
+       "wlshowlast": "Oxirgi $1 soatdagi $2 kundagi tahrirlarni koʻrsatish",
        "watchlist-options": "Kuzatuv roʻyxati moslamalari",
        "watching": "Kuzatish...",
        "unwatching": "Kuzatuv ro'yxatidan o'chirish...",
index a791529..add43d4 100644 (file)
        "mergehistory-same-destination": "Le pàxene de origine e de destinasion no le pode èssar la stessa",
        "mergehistory-reason": "Motivassion:",
        "mergelog": "Registro de le unioni",
-       "pagemerge-logentry": "gà unìo [[$1]] a [[$2]] (revisioni fin a $3)",
        "revertmerge": "Desfa union",
        "mergelogpagetext": "Qua de seguito vien presentà na lista de le ultime operazion de unione de la cronologia de na pagina in un'altra.",
        "history-title": "$1: cronołojia dełe modifeghe",
        "statistics": "Statisteghe",
        "statistics-header-pages": "Statìsteghe relative a le pàxene",
        "statistics-header-edits": "Statìsteghe relative a i canbiamenti",
-       "statistics-header-views": "Statìsteghe relative a le visualizassion",
        "statistics-header-users": "Statistiche dei utenti",
        "statistics-header-hooks": "Altre statìsteghe",
        "statistics-articles": "Pagine de contenuti",
        "statistics-files": "File cargà",
        "statistics-edits": "Modifiche a scuminsiar da l'istalassion de {{SITENAME}}",
        "statistics-edits-average": "Canbiamenti in media par pagina",
-       "statistics-views-total": "Visualizasion totali",
-       "statistics-views-total-desc": "Xe lassà fora le viste de pagine speciali o mia esistenti",
-       "statistics-views-peredit": "Visualizassion par modifica",
        "statistics-users": "[[Special:ListUsers|Utenti]] registrà",
        "statistics-users-active": "Utenti atìvi",
        "statistics-users-active-desc": "Utenti che gà fato almanco un'azion in {{PLURAL:$1|tel'ultimo zorno|in tei ultimi $1 zorni}}",
-       "statistics-mostpopular": "Pagine piassè visità",
        "pageswithprop": "Pagine co na proprietà de pagina",
        "pageswithprop-legend": "Pagine co na proprietà de pagina",
        "pageswithprop-text": "Sta pagina la elenca le pagine che dòpara na particolare proprietà de pagina.",
        "uncategorizedtemplates": "Modèi che no gà categorie",
        "unusedcategories": "Categorie mìa doparàe",
        "unusedimages": "File mìa doparà",
-       "popularpages": "Pagine pì viste",
        "wantedcategories": "Categorie richieste",
        "wantedpages": "Pagine pì domandà",
        "wantedpages-badtitle": "Titolo mia valido nel grupo de risultati: $1",
        "pageinfo-robot-policy": "Stato par i motori de riserca",
        "pageinfo-robot-index": "Indicizabile",
        "pageinfo-robot-noindex": "Mia indicizabile",
-       "pageinfo-views": "Nùmaro de visite",
        "pageinfo-watchers": "Nùmaro de utenti che tien d'ocio sta pagina",
        "pageinfo-few-watchers": "Manco de $1 {{PLURAL:$1|oservador|oservadori}}",
        "pageinfo-redirects-name": "Rimandi verso sta pagina",
index eed4051..bd9b398 100644 (file)
        "mergehistory-same-destination": "Augotižlehpolen da metlehpolen keskes pidab tehta eroid",
        "mergehistory-reason": "Sü:",
        "mergelog": "Ühtenzoitusiden aigkirj",
-       "pagemerge-logentry": "[[$1]] da [[$2]]-lehtpoled oma ühtenzoittud (versijad $3-hesai)",
        "revertmerge": "Jagada",
        "mergelogpagetext": "Naku om tantoižiden lehtpoliden nimiden ühtenzoitusiden nimikirjutez.",
        "history-title": "\"$1\"-lehtpolen toižetusiden istorii",
        "statistics": "Statistik",
        "statistics-header-pages": "Lehtpoliden statistik",
        "statistics-header-edits": "Redaktiruida statistikad",
-       "statistics-header-views": "Kacta statistikha",
        "statistics-header-users": "Kävutajiden statistik",
        "statistics-header-hooks": "Toine statistik",
        "statistics-articles": "Südäimištlehtpol't",
        "statistics-files": "Jügetoittud failad",
        "statistics-edits": "Toižetusiden lugu {{SITENAME}}-saitan seižutamižessai.",
        "statistics-edits-average": "Toižetusiden keskmäine lugu lehtpolel",
-       "statistics-views-total": "Kaiked kacundoid",
-       "statistics-views-peredit": "Kacundoid redakcijas",
        "statistics-users": "Registriruidud [[Special:ListUsers|kävutajad]]",
        "statistics-users-active": "Activižed kävutajad",
        "statistics-users-active-desc": "Kävutajad, kudambad ozutiba aktivižut {{PLURAL:$1|jäl’gmäižen päivän|$1 jäl'gmäižil päivil}}",
-       "statistics-mostpopular": "Kaikiš populärižembad lehtpoled",
        "pageswithprop-submit": "Tege",
        "doubleredirects": "Kaksitadud läbikosketused",
        "double-redirect-fixed-move": "[[$1]]-lehtpol' om udesnimitadud. Se läbikosketab nügüd' [[$2]]-lehtpolele.",
        "uncategorizedtemplates": "Järgendamatomad šablonad",
        "unusedcategories": "Kävutamatomad kategorijad",
        "unusedimages": "Kävutamatomad failad",
-       "popularpages": "Populärižed lehtpoled",
        "wantedcategories": "Ectud kategorijad",
        "wantedpages": "Ectud lehtpoled",
        "wantedpages-badtitle": "Petuzline pälkirjutez küzumižen rezul'tatoiš: $1",
        "spambot_username": "MediaWikid puhtastadas spamaspäi",
        "pageinfo-header-edits": "Redakcijoiden istorii",
        "pageinfo-article-id": "Lehtpolen ID",
-       "pageinfo-views": "Kacundoiden lugu",
        "pageinfo-watchers": "Lehtpolen kaclijoiden lugu",
        "pageinfo-edits": "Redakcijoiden lugumär",
        "pageinfo-authors": "Erazvuiččiden avtoroiden lugu",
index 887bc9a..24a9572 100644 (file)
@@ -25,7 +25,8 @@
                        "Withoutaname",
                        "לערי ריינהארט",
                        "아라",
-                       "Tranquanganh"
+                       "Tranquanganh",
+                       "Max20091"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
@@ -38,7 +39,7 @@
        "tog-showtoolbar": "Hiển thị thanh định dạng",
        "tog-editondblclick": "Nhấn đúp để sửa đổi trang",
        "tog-editsectiononrightclick": "Bấm chuột phải vào đề mục để sửa đổi phần trang",
-       "tog-watchcreations": "Tự động theo dõi các trang tôi viết mới và các tập tin tôi tải lên",
+       "tog-watchcreations": "Tự động theo dõi các trang tôi viết và các tập tin tôi tải lên",
        "tog-watchdefault": "Tự động theo dõi các trang và tập tin tôi sửa",
        "tog-watchmoves": "Tự động theo dõi các trang và tập tin tôi di chuyển",
        "tog-watchdeletion": "Tự động theo dõi các trang và tập tin tôi xóa",
        "viewsourcetext": "Bạn vẫn có thể xem và chép xuống mã nguồn của trang này:",
        "viewyourtext": "Bạn vẫn có thể xem và chép xuống mã nguồn '''các sửa đổi của bạn''' tại trang này:",
        "protectedinterface": "Trang này cung cấp một thông điệp trong giao diện phần mềm, và bị khóa để tránh phá hoại. Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [//translatewiki.net/wiki/Main_Page?setlang=vi translatewiki.net], dự án bản địa hóa của MediaWiki.",
-       "editinginterface": "'''Lưu ý:''' Bạn đang sửa chữa một trang dùng để cung cấp thông điệp giao diện cho phần mềm. Những thay đổi tại trang này sẽ ảnh hưởng đến giao diện của rất nhiều người dùng wiki này. Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [//translatewiki.net/wiki/Main_Page?setlang=vi translatewiki.net], dự án bản địa hóa của MediaWiki.",
+       "editinginterface": "<strong>Lưu ý:</strong> Bạn đang sửa chữa một trang dùng để cung cấp thông điệp giao diện cho phần mềm. Những thay đổi tại trang này sẽ ảnh hưởng đến giao diện của rất nhiều người dùng wiki này.",
+       "translateinterface": "Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [//translatewiki.net/?setlang=vi translatewiki.net], dự án bản địa hóa MediaWiki.",
        "cascadeprotected": "Trang này đã bị khóa không cho sửa đổi, vì nó được nhúng vào {{PLURAL:$1|trang|những trang}} đã bị khóa với tùy chọn “khóa theo tầng” được kích hoạt:\n$2",
        "namespaceprotected": "Bạn không có quyền sửa các trang trong không gian tên '''$1'''.",
        "customcssprotected": "Bạn không có quyền sửa đổi trang CSS này vì nó chứa các tùy chọn cá nhân của một thành viên khác.",
        "content-model-text": "văn bản thuần",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Trang đưa đối số thừa vào bản mẫu",
+       "duplicate-args-category-desc": "Trang đưa một đối số nhiều lần vào một bản mẫu được nhúng, thí dụ <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> hoặc <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Cảnh báo: Trang này có quá nhiều lần gọi hàm cú pháp cần mức độ xử lý cao.\n\nNó nên ít hơn $2 {{PLURAL:$2|lần gọi|lần gọi}}, hiện giờ đang là {{PLURAL:$1|$1 lần gọi|$1 lần gọi}}.",
        "expensive-parserfunction-category": "Trang có quá nhiều lời gọi hàm cú pháp cần mức độ xử lý cao",
        "post-expand-template-inclusion-warning": "Cảnh báo: Kích thước bản mẫu nhúng vào quá lớn.\nMột số bản mẫu sẽ không được đưa vào.",
        "mergehistory-same-destination": "Trang nguồn và trang đích không được trùng tên",
        "mergehistory-reason": "Lý do:",
        "mergelog": "Nhật trình trộn",
-       "pagemerge-logentry": "đã trộn [[$1]] vào [[$2]] (sửa đổi cho đến $3)",
        "revertmerge": "Bỏ trộn",
        "mergelogpagetext": "Dưới đây là danh sách các thao tác trộn mới nhất của lịch sử một trang vào trang khác.",
        "history-title": "Lịch sử sửa đổi của “$1”",
        "search-result-category-size": "$1 trang thành viên ($2 thể loại con, $3 tập tin)",
        "search-redirect": "(đổi hướng $1)",
        "search-section": "(đề mục $1)",
+       "search-category": "(thể loại $1)",
        "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",
        "statistics": "Thống kê",
        "statistics-header-pages": "Thống kê trang",
        "statistics-header-edits": "Thống kê sửa đổi",
-       "statistics-header-views": "Thống kê truy cập",
        "statistics-header-users": "Thống kê thành viên",
        "statistics-header-hooks": "Thống kê khác",
        "statistics-articles": "Số trang nội dung",
        "statistics-files": "Số tập tin đã tải lên",
        "statistics-edits": "Số sửa đổi trang từ khi {{SITENAME}} được thành lập",
        "statistics-edits-average": "Số sửa đổi trung bình trên một trang",
-       "statistics-views-total": "Số lần xem tổng cộng",
-       "statistics-views-total-desc": "Không bao gồm số lần xem các trang không tồn tại và các trang đặc biệt",
-       "statistics-views-peredit": "Số lần xem trên một sửa đổi",
        "statistics-users": "Số [[Special:ListUsers|thành viên]] có tài khoản",
        "statistics-users-active": "Số thành viên tích cực",
        "statistics-users-active-desc": "Những thành viên đã hoạt động trong {{PLURAL:$1|ngày|$1 ngày}} qua",
-       "statistics-mostpopular": "Các trang được xem nhiều nhất",
        "pageswithprop": "Trang có thuộc tính trang",
        "pageswithprop-legend": "Các trang có thuộc tính trang",
        "pageswithprop-text": "Trang này liệt kê các trang sử dụng một thuộc tính trang nào đó.",
        "uncategorizedtemplates": "Bản mẫu chưa được phân loại",
        "unusedcategories": "Thể loại trống",
        "unusedimages": "Tập tin chưa dùng",
-       "popularpages": "Trang nhiều người đọc",
        "wantedcategories": "Thể loại cần thiết",
        "wantedpages": "Trang cần viết",
        "wantedpages-badtitle": "Tiêu đề không hợp lệ trong tập kết quả: $1",
        "pager-older-n": "{{PLURAL:$1|1|$1}} cũ hơn",
        "suppress": "Giám sát viên",
        "querypage-disabled": "Trang đặc biệt này bị tắt vì lý do hiệu suất.",
+       "apihelp": "Trợ giúp API",
+       "apihelp-no-such-module": "Không tìm thấy mô đun “$1”",
        "booksources": "Nguồn sách",
        "booksources-search-legend": "Tìm kiếm nguồn sách",
+       "booksources-search": "Tìm kiếm",
        "booksources-text": "Dưới đây là danh sách những trang bán sách mới và cũ, đồng thời có thể có thêm thông tin về những cuốn sách bạn đang tìm:",
        "booksources-invalid-isbn": "ISBN mà bạn cung cấp dường như không đúng; xin hãy kiểm tra lại xem có lỗi gì khi sao chép từ nội dung gốc hay không.",
        "specialloguserlabel": "Người thực hiện:",
        "tooltip-pt-mycontris": "Danh sách các đóng góp của tôi",
        "tooltip-pt-login": "Đăng nhập sẽ có lợi hơn, tuy nhiên không bắt buộc.",
        "tooltip-pt-logout": "Đăng xuất",
+       "tooltip-pt-createaccount": "Khuyến khích bạn mở tài khoản và đăng nhập; tuy nhiên, không phải bắt buộc phải có tài khoản",
        "tooltip-ca-talk": "Thảo luận về trang này",
        "tooltip-ca-edit": "Bạn có thể sửa được trang này! (Xin vui lòng xem trước trước khi lưu.)",
        "tooltip-ca-addsection": "Bắt đầu một đề mục mới",
        "tooltip-feed-atom": "Nguồn cấp Atom của trang này",
        "tooltip-t-contributions": "Xem đóng góp của người này",
        "tooltip-t-emailuser": "Gửi thư cho người này",
+       "tooltip-t-info": "Thêm chi tiết về trang này",
        "tooltip-t-upload": "Tải hình ảnh hoặc tập tin lên",
        "tooltip-t-specialpages": "Danh sách các trang đặc biệt",
        "tooltip-t-print": "Bản để in ra của trang",
        "pageinfo-robot-policy": "Ghi chỉ mục bởi robot",
        "pageinfo-robot-index": "Cho phép",
        "pageinfo-robot-noindex": "Không cho phép",
-       "pageinfo-views": "Số lần xem",
        "pageinfo-watchers": "Số người theo dõi trang",
        "pageinfo-few-watchers": "Không tới $1 người theo dõi",
        "pageinfo-redirects-name": "Số trang đổi hướng đến trang này",
        "unknown_extension_tag": "Không hiểu thẻ mở rộng “$1”",
        "duplicate-defaultsort": "Cảnh báo: Từ khóa xếp mặc định “$2” ghi đè từ khóa trước, “$1”.",
        "duplicate-displaytitle": "<strong>Cảnh báo:</strong> Tên hiển thị “$2” ghi đè tên hiển thị “$1” bên trên.",
+       "invalid-indicator-name": "<strong>Lỗi:</strong> Không thể để trống thuộc tính <code>name</code> của cái chỉ trạng thái trang.",
        "version": "Phiên bản",
        "version-extensions": "Các phần mở rộng được cài đặt",
        "version-skins": "Giao diện đã cài đặt",
        "revdelete-uname-unhid": "đã hiện tên người dùng",
        "revdelete-restricted": "đã áp dụng hạn chế cho bảo quản viên",
        "revdelete-unrestricted": "đã gỡ bỏ hạn chế cho bảo quản viên",
+       "logentry-merge-merge": "$1 {{GENDER:$2}}đã hợp nhất $3 vào $4 (các phiên bản cho tới $5)",
        "logentry-move-move": "$1 {{GENDER:$2}}đã đổi $3 thành $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2}}đã đổi $3 thành $4 (đã tắt đổi hướng)",
        "logentry-move-move_redir": "$1 {{GENDER:$2}}đã đổi $3 thành $4 qua đổi hướng",
        "api-error-stashfailed": "Lỗi nội bộ: Máy chủ bị thất bại trong việc lưu giữ tập tin tạm.",
        "api-error-publishfailed": "Lỗi nội bộ: Máy chủ bị thất bại trong việc xuất bản tập tin tạm.",
        "api-error-stasherror": "Đã xuất hiện lỗi khi tải tập tin lên hàng đợi.",
+       "api-error-stashedfilenotfound": "Không tìm thấy tập tin khi thử tải nó lên từ hàng đợi.",
+       "api-error-stashpathinvalid": "Đường dẫn mong đợi đến tập tin đợi tải lên là không hợp lệ.",
+       "api-error-stashfilestorage": "Đã xuất hiện lỗi khi tải tập tin lên từ hàng đợi.",
+       "api-error-stashzerolength": "Máy chủ không thể lưu tập tin vào hàng đợi vì nó không có nội dung.",
+       "api-error-stashnotloggedin": "Bạn phải đăng nhập để lưu tập tin vào hàng đợi tải lên.",
+       "api-error-stashwrongowner": "Không thể truy cập một tập tin không phải của bạn trong hàng đợi tải lên.",
+       "api-error-stashnosuchfilekey": "Bạn không thể truy cập chìa khóa tập tin đợi tải lên vì chìa khóa này không tồn tại.",
        "api-error-timeout": "Máy chủ không đáp ứng trong thời gian dự kiến.",
        "api-error-unclassified": "Gặp lỗi không ngờ",
        "api-error-unknown-code": "Lỗi không rõ: “$1”",
        "mediastatistics-header-office": "Văn phòng",
        "mediastatistics-header-text": "Văn bản",
        "mediastatistics-header-executable": "Tập tin khả thi",
-       "mediastatistics-header-archive": "Định dạng nén"
+       "mediastatistics-header-archive": "Định dạng nén",
+       "json-warn-trailing-comma": "$1 dấu phẩy lủng lẳng được xóa khỏi JSON",
+       "json-error-unknown": "JSON có vấn đề. Lỗi: $1",
+       "json-error-depth": "Đã vượt quá độ sâu ngăn xếp tối đa",
+       "json-error-state-mismatch": "JSON không hợp lệ hoặc sai dạng",
+       "json-error-ctrl-char": "Lỗi ký tự điều khiển, có lẽ đã mã hóa không chính xác",
+       "json-error-syntax": "Lỗi cú pháp",
+       "json-error-utf8": "Ký tự UTF-8 sai dạng, có lẽ đã mã hóa không chính xác",
+       "json-error-recursion": "Giá trị để mã hóa có tham chiếu đệ quy",
+       "json-error-inf-or-nan": "Giá trị để mã hóa có giá trị NAN (không phải số) hoặc INF (vô tận)",
+       "json-error-unsupported-type": "Đã đưa vào giá trị có kiểu không thể mã hóa"
 }
index 2a1afc3..ee19269 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "DasRakel",
-            "Tbc",
-            "לערי ריינהארט"
-        ]
-    },
-    "tog-underline": "Links ounderstreepn:",
-    "tog-hideminor": "Klêne veranderiengn verdukn van juste veranderd",
-    "tog-enotifrevealaddr": "Tôog min e-mailadres in e-mails",
-    "tog-shownumberswatching": "Tôog et aantal gebrukers dan et blad volgn",
-    "underline-always": "Olsan",
-    "underline-never": "Noois",
-    "underline-default": "Browser standoard",
-    "sunday": "zundag",
-    "monday": "moandag",
-    "tuesday": "disndag",
-    "wednesday": "woesdag",
-    "thursday": "dunderdag",
-    "friday": "vrydag",
-    "saturday": "zoaterdag",
-    "sun": "zu",
-    "mon": "moa",
-    "tue": "din",
-    "wed": "woe",
-    "thu": "dun",
-    "fri": "vry",
-    "sat": "zat",
-    "january": "januoari",
-    "february": "februoari",
-    "march": "moarte",
-    "april": "april",
-    "may_long": "mei",
-    "june": "juni",
-    "july": "juli",
-    "august": "ogustus",
-    "september": "september",
-    "october": "oktober",
-    "november": "november",
-    "december": "december",
-    "january-gen": "januari",
-    "february-gen": "februoari",
-    "march-gen": "moarte",
-    "april-gen": "april",
-    "may-gen": "mei",
-    "june-gen": "juni",
-    "july-gen": "juli",
-    "august-gen": "ogustus",
-    "september-gen": "september",
-    "october-gen": "oktober",
-    "november-gen": "november",
-    "december-gen": "december",
-    "jan": "jan",
-    "feb": "feb",
-    "mar": "mrt",
-    "apr": "apr",
-    "may": "mei",
-    "jun": "jun",
-    "jul": "jul",
-    "aug": "ogs",
-    "sep": "sep",
-    "oct": "okt",
-    "nov": "nov",
-    "dec": "dec",
-    "listingcontinuesabbrev": "vervolg",
-    "newwindow": "(opent in e nieuw veister)",
-    "moredotdotdot": "Mêer…",
-    "mypage": "Myn gebrukersblad",
-    "mytalk": "Myn discuusjeblad",
-    "and": "&#32;en",
-    "qbedit": "Bewerkn",
-    "vector-action-delete": "Wegdoen",
-    "vector-action-move": "Ernoemn",
-    "vector-view-create": "Anmoakn",
-    "vector-view-edit": "Bewerkn",
-    "vector-view-history": "Geschiedenisse bekykn",
-    "vector-view-view": "Leezn",
-    "vector-view-viewsource": "Brontekst bekykn",
-    "tagline": "Van {{SITENAME}}",
-    "help": "Ulpe",
-    "search": "Zoekn",
-    "searchbutton": "Zoekn",
-    "history_short": "Geschiedenisse",
-    "updatedmarker": "bygewerkt sinds min latste visite",
-    "printableversion": "Drukboare versie",
-    "permalink": "Bluuvende link",
-    "print": "Drukn",
-    "edit": "Bewerk'n",
-    "create": "Anmoakn",
-    "editthispage": "Da blad ier bewerkn",
-    "create-this-page": "Da blad ier anmoakn",
-    "delete": "Wegdoen",
-    "deletethispage": "Da blad ier verwydern",
-    "undelete_short": "{{PLURAL:$1|êen bewerkinge|$1 bewerkingn}} werekêern",
-    "protect": "Beveilign",
-    "protectthispage": "Da blad ier beveilign",
-    "unprotect": "beveiliginge wegdoen",
-    "unprotectthispage": "De beveiliginge van da blad ier ofleggn",
-    "newpage": "Nieuw blad",
-    "talkpagelinktext": "Discuusje",
-    "specialpage": "Specioal blad",
-    "talk": "Discuusje",
-    "toolbox": "Ulpmiddeln",
-    "aboutsite": "Over {{SITENAME}}",
-    "aboutpage": "Project:Info",
-    "disclaimers": "Aansprakelekeid",
-    "mainpage": "Voorblad",
-    "privacy": "Privacybeleid",
-    "viewsourceold": "Brontekst bekykn",
-    "viewsourcelink": "Brontekst bekykn",
-    "site-rss-feed": "$1 RSS-feed",
-    "site-atom-feed": "$1 Atom-feed",
-    "red-link-title": "$1 (Blad bestoat nie)",
-    "nstab-special": "Specioal blad",
-    "viewsource": "Brontekst bekykn",
-    "logout": "Ofmeldn",
-    "search-result-size": "$1 ({{PLURAL:$2|1 woord|$2 woordn}})",
-    "newuserlogpage": "Logboek nieuwe gebrukers",
-    "recentchanges": "Juste veranderd",
-    "upload": "Bestand toevoegn",
-    "uploadbtn": "Bestand toevoegn",
-    "uploadnologin": "Ge zyt nie angemeld",
-    "uploadlog": "logboek upgeloade bestandn",
-    "uploadlogpage": "Logboek upgeloade bestandn",
-    "uploadlogpagetext": "Hier stoa e lyste met de mêest recente upgeloade bestandn.",
-    "uploadedfiles": "Upgeloade bestandn",
-    "uploadedimage": "\"[[$1]]\" upgeload",
-    "unwatchedpages": "Pagina's die ip niemands volglyste stoan",
-    "newpages": "Nieuwe bloadn",
-    "newpages-username": "Gebrukersnoame:",
-    "mywatchlist": "Myn volglyste",
-    "watch": "Volgn",
-    "unwatch": "Nie volgn",
-    "unwatching": "Stoppn me volgn...",
-    "undelete": "Weggedoane bloadn bekykn",
-    "undeletepage": "Weggedoane bloadn erstelln of bekykn",
-    "undeletehistorynoadmin": "'t Artikel is weggedoan. De reden davôorn ku je zien in de soamnvattienge ieronder, tôpe me uutleg over wie dat 't blad bewerkt èt vôorn dat weggedoan es gewist. Den tekst van die weggedoane versies kan allêene door sysops gelezen wordn.",
-    "undeletebtn": "Erstelln",
-    "undeletedfiles": "{{PLURAL:$1|1 bestand|$1 bestandn}} ersteld",
-    "mycontris": "Myn bydroagn",
-    "uctop": "(latste veranderienge)",
-    "contribslink": "bydroagn",
-    "delete_and_move": "Wegdoen en ernoemn",
-    "tooltip-n-mainpage": "Noar 't voorblad goane",
-    "newimages": "Nieuwe ofbeeldiengn"
+       "@metadata": {
+               "authors": [
+                       "DasRakel",
+                       "Tbc",
+                       "לערי ריינהארט"
+               ]
+       },
+       "tog-underline": "Links ounderstreepn:",
+       "tog-hideminor": "Klêne veranderiengn verdukn van juste veranderd",
+       "tog-enotifrevealaddr": "Tôog min e-mailadres in e-mails",
+       "tog-shownumberswatching": "Tôog et aantal gebrukers dan et blad volgn",
+       "underline-always": "Olsan",
+       "underline-never": "Noois",
+       "underline-default": "Browser standoard",
+       "sunday": "zundag",
+       "monday": "moandag",
+       "tuesday": "disndag",
+       "wednesday": "woesdag",
+       "thursday": "dunderdag",
+       "friday": "vrydag",
+       "saturday": "zoaterdag",
+       "sun": "zu",
+       "mon": "moa",
+       "tue": "din",
+       "wed": "woe",
+       "thu": "dun",
+       "fri": "vry",
+       "sat": "zat",
+       "january": "januoari",
+       "february": "februoari",
+       "march": "moarte",
+       "april": "april",
+       "may_long": "mei",
+       "june": "juni",
+       "july": "juli",
+       "august": "ogustus",
+       "september": "september",
+       "october": "oktober",
+       "november": "november",
+       "december": "december",
+       "january-gen": "januari",
+       "february-gen": "februoari",
+       "march-gen": "moarte",
+       "april-gen": "april",
+       "may-gen": "mei",
+       "june-gen": "juni",
+       "july-gen": "juli",
+       "august-gen": "ogustus",
+       "september-gen": "september",
+       "october-gen": "oktober",
+       "november-gen": "november",
+       "december-gen": "december",
+       "jan": "jan",
+       "feb": "feb",
+       "mar": "mrt",
+       "apr": "apr",
+       "may": "mei",
+       "jun": "jun",
+       "jul": "jul",
+       "aug": "ogs",
+       "sep": "sep",
+       "oct": "okt",
+       "nov": "nov",
+       "dec": "dec",
+       "listingcontinuesabbrev": "vervolg",
+       "newwindow": "(opent in e nieuw veister)",
+       "moredotdotdot": "Mêer…",
+       "mypage": "Myn gebrukersblad",
+       "mytalk": "Myn discuusjeblad",
+       "and": "&#32;en",
+       "qbedit": "Bewerkn",
+       "tagline": "Van {{SITENAME}}",
+       "help": "Ulpe",
+       "search": "Zoekn",
+       "searchbutton": "Zoekn",
+       "history_short": "Geschiedenisse",
+       "updatedmarker": "bygewerkt sinds min latste visite",
+       "printableversion": "Drukboare versie",
+       "permalink": "Bluuvende link",
+       "print": "Drukn",
+       "edit": "Bewerk'n",
+       "create": "Anmoakn",
+       "editthispage": "Da blad ier bewerkn",
+       "create-this-page": "Da blad ier anmoakn",
+       "delete": "Wegdoen",
+       "deletethispage": "Da blad ier verwydern",
+       "undelete_short": "{{PLURAL:$1|êen bewerkinge|$1 bewerkingn}} werekêern",
+       "protect": "Beveilign",
+       "protectthispage": "Da blad ier beveilign",
+       "unprotect": "beveiliginge wegdoen",
+       "unprotectthispage": "De beveiliginge van da blad ier ofleggn",
+       "newpage": "Nieuw blad",
+       "talkpagelinktext": "Discuusje",
+       "specialpage": "Specioal blad",
+       "talk": "Discuusje",
+       "toolbox": "Ulpmiddeln",
+       "aboutsite": "Over {{SITENAME}}",
+       "aboutpage": "Project:Info",
+       "disclaimers": "Aansprakelekeid",
+       "mainpage": "Voorblad",
+       "privacy": "Privacybeleid",
+       "viewsourceold": "Brontekst bekykn",
+       "viewsourcelink": "Brontekst bekykn",
+       "site-rss-feed": "$1 RSS-feed",
+       "site-atom-feed": "$1 Atom-feed",
+       "red-link-title": "$1 (Blad bestoat nie)",
+       "nstab-special": "Specioal blad",
+       "viewsource": "Brontekst bekykn",
+       "logout": "Ofmeldn",
+       "search-result-size": "$1 ({{PLURAL:$2|1 woord|$2 woordn}})",
+       "newuserlogpage": "Logboek nieuwe gebrukers",
+       "recentchanges": "Juste veranderd",
+       "upload": "Bestand toevoegn",
+       "uploadbtn": "Bestand toevoegn",
+       "uploadnologin": "Ge zyt nie angemeld",
+       "uploadlogpage": "Logboek upgeloade bestandn",
+       "uploadlogpagetext": "Hier stoa e lyste met de mêest recente upgeloade bestandn.",
+       "unwatchedpages": "Pagina's die ip niemands volglyste stoan",
+       "newpages": "Nieuwe bloadn",
+       "newpages-username": "Gebrukersnoame:",
+       "mywatchlist": "Myn volglyste",
+       "watch": "Volgn",
+       "unwatch": "Nie volgn",
+       "unwatching": "Stoppn me volgn...",
+       "undelete": "Weggedoane bloadn bekykn",
+       "undeletepage": "Weggedoane bloadn erstelln of bekykn",
+       "undeletehistorynoadmin": "'t Artikel is weggedoan. De reden davôorn ku je zien in de soamnvattienge ieronder, tôpe me uutleg over wie dat 't blad bewerkt èt vôorn dat weggedoan es gewist. Den tekst van die weggedoane versies kan allêene door sysops gelezen wordn.",
+       "undeletebtn": "Erstelln",
+       "undeletedfiles": "{{PLURAL:$1|1 bestand|$1 bestandn}} ersteld",
+       "mycontris": "Myn bydroagn",
+       "uctop": "(latste veranderienge)",
+       "contribslink": "bydroagn",
+       "delete_and_move": "Wegdoen en ernoemn",
+       "tooltip-n-mainpage": "Noar 't voorblad goane",
+       "newimages": "Nieuwe ofbeeldiengn"
 }
index 79a1c3e..7b70bb8 100644 (file)
        "mergehistory-same-destination": "Fonäta- e zeilapad no dalons binön pad ot.",
        "mergehistory-reason": "Kod:",
        "mergelog": "Jenotalised padibalamas",
-       "pagemerge-logentry": "Pad: [[$1]] pebalon ad [[$2]] (fomams jüesa $3)",
        "revertmerge": "Säbalön",
        "mergelogpagetext": "Is palisedon balamis brefabüikün jenotema pada bal ini votik.",
        "history-title": "Revidajenotem pada: \"$1\"",
        "statistics": "Statits",
        "statistics-header-pages": "Statits pada",
        "statistics-header-edits": "Redakamastatits",
-       "statistics-header-views": "Logamastatits",
        "statistics-header-users": "Gebanastatits",
        "statistics-header-hooks": "Statits votik",
        "statistics-articles": "Pads ninädilabik",
        "statistics-files": "Ragivs pelöpüköl",
        "statistics-edits": "Padiredakams sisä {{SITENAME}} päjafon",
        "statistics-edits-average": "Num zänedik redakamas a pad",
-       "statistics-views-total": "Logams (valod)",
-       "statistics-views-peredit": "Logams a redakam",
        "statistics-users": "[[Special:ListUsers|Gebans]] peregistaröl",
        "statistics-users-active": "Gebans jäfedik",
        "statistics-users-active-desc": "Gebans, kels edunons bosi ün {{PLURAL:$1|del lätik|dels lätik $1}}",
-       "statistics-mostpopular": "Pads suvüno palogöls:",
        "pageswithprop-submit": "Golön",
        "doubleredirects": "Lüodüköms telik",
        "doubleredirectstext": "Kedet alik labon yümis lü lüodüköm balid e telid, ed i kedeti balid vödema lüodüköma telid, kel nomiko ninädon padi, ko kel lüodüköm balid söton payümön.",
        "uncategorizedtemplates": "Samafomots nen klad",
        "unusedcategories": "Klads no pageböls",
        "unusedimages": "Ragivs no pageböls",
-       "popularpages": "Pads suvüno pelogöls",
        "wantedcategories": "Klads mekabik",
        "wantedpages": "Pads mekabik",
        "wantedfiles": "Ragivs mekabik",
index ba98951..72ea504 100644 (file)
        "statistics": "Statistiga",
        "statistics-header-pages": "Lehekülgi statistiga",
        "statistics-header-edits": "Toimõndamisõ statistiga",
-       "statistics-header-views": "Kaemisõ statistiga",
        "statistics-header-users": "Pruukjidõ statistiga",
        "statistics-articles": "Sisulehekülgi",
        "statistics-pages": "Lehekülgi",
        "statistics-files": "Üleslaadituid teedüstüid",
        "statistics-edits": "Toimõnduisi {{SITENAME}} luumisõst pääle",
        "statistics-edits-average": "Keskmädselt toimõnduisi leheküle kotsilõ",
-       "statistics-views-total": "Lehti kaemiisi kokko",
        "statistics-users": "Kirjäpandnuid [[Special:ListUsers|pruukjit]]",
        "statistics-users-active": "Tegüsit pruukjit",
        "statistics-users-active-desc": "Pruukjaq, kiä ommaq tan midägi toimõndanuq {{PLURAL:$1|viimädse päävä|viimädse $1 päävä}} seen.",
-       "statistics-mostpopular": "Kõgõ kaetumbaq leheq",
        "doubleredirects": "Katõkõrdsõq ümbresaatmisõq",
        "doubleredirectstext": "Egä ria pääl om ärq tuud edimäne ja tõõnõ ümbresaatmisleht ja niisama tõõsõ ümbresaatmislehe link, miä näütäs hariligult kotusõ pääle, kohe edimäne ümbersaatmisleht pidänüq õkva näütämä.",
        "brokenredirects": "Vigadsõq ümbresaatmisõq",
        "uncategorizedtemplates": "Katõgoorialdaq näüdüseq",
        "unusedcategories": "Pruukmalda katõgooriaq",
        "unusedimages": "Pruukmaldaq pildiq",
-       "popularpages": "Pall'okäütüq leheküleq",
        "wantedcategories": "Kõgõ tahetumbaq katõgooriaq",
        "wantedpages": "Kõgõ tahetumbaq artikliq",
        "mostlinked": "Leheq, kohe om kõgõ rohkõmb linke",
index 873a42f..d7cd777 100644 (file)
        "statistics-header-users": "Sitatistikes des uzeus",
        "statistics-articles": "Pådjes di contnou",
        "statistics-pages-desc": "Totes les pådjes do \"Wiki\", minme les copinaedjes, les rdjiblaedjes, evnd.",
-       "statistics-mostpopular": "Pådjes les pus veyowes",
        "doubleredirects": "Dobes redjiblaedjes",
        "doubleredirectstext": "Cisse pådje ci mostere les dobes redjiblaedjes (pådjes ki redjiblèt viè ene ôte pådje di redjiblaedje).\nTchaeke roye a-st on loyén viè l' prumî eyet l' deujhinme redjiblaedje, avou on mostraedje del såme do deujhinme redjiblaedje, çou ki å pus sovint dene li «vraiy» årtike såme, ki l' prumî redjiblaedje divreut evoyî viè lu.\nLis intrêyes <del>bårêyes</del> otn ddja stî coridjeyes.",
        "double-redirect-fixed-move": "[[$1]] a stî displaecî.\nAsteure c' est on redjiblaedje viè [[$2]].",
        "uncategorizedtemplates": "Modele nén categorijhî",
        "unusedcategories": "Categoreyes nén eployeyes",
        "unusedimages": "Imådjes nén eployeyes",
-       "popularpages": "Pådjes les pus léjhowes",
        "wantedcategories": "Categoreyes les pus rcwerowes",
        "wantedpages": "Pådjes les pus rcwerowes",
        "wantedfiles": "Fitchîs les pus rcwerous",
        "creditspage": "Pådje di credits",
        "nocredits": "I n' a pont d' infôrmåcion di credits po cisse pådje ci.",
        "pageinfo-title": "Infôrmåcion po «$1»",
-       "pageinfo-views": "Nombe di lijhaedjes",
        "pageinfo-watchers": "Nombe di shuveus",
        "pageinfo-edits": "Nombe di candjmints",
        "pageinfo-authors": "Nombe d' oteurs diferins",
index 2a6710a..95e036b 100644 (file)
        "statistics": "Mga estadistika",
        "statistics-header-pages": "Mga estadistika han pakli",
        "statistics-header-edits": "Mga estadistika han pagliwat",
-       "statistics-header-views": "Mga estadistika han nakita",
        "statistics-header-users": "Mga estadistika han gumaramit",
        "statistics-header-hooks": "Lain nga mga estadistika",
        "statistics-articles": "Unod nga mga pakli",
        "statistics-files": "Mga paypay nga iginkarga pasaka",
        "statistics-edits": "Mga pagliwat hit pakli tikang gintukod hini nga {{SITENAME}}",
        "statistics-edits-average": "Average nga mga pagliwat kada pakli",
-       "statistics-views-total": "Ngatanan nga mga panginano",
-       "statistics-views-peredit": "Mga panginano kada pagliwat",
        "statistics-users": "Mga [[Special:ListUsers|gumaramit]] nga nakarehistro",
        "statistics-users-active": "Mga gumaramit nga nanggigios",
        "statistics-users-active-desc": "Mga gumaramit nga may-ada iginbuhat ha urhi nga {{PLURAL:$1|ka adlaw|$1 ka mga adlaw}}",
-       "statistics-mostpopular": "Gidamoi nga ginpanginanohan nga mga pakli",
        "pageswithprop-submit": "Kadto-a",
        "doubleredirects": "Mga doble nga redirekta",
        "double-redirect-fixer": "Mangangayad hin redirekta",
        "uncategorizedtemplates": "Waray kaarangay nga mga batakan",
        "unusedcategories": "Waray kagamit nga mga kaarangay",
        "unusedimages": "Waray kagamit nga mga fayl",
-       "popularpages": "Mga sikat nga pakli",
        "wantedcategories": "Mga nagkikinahanglan hin kaarangay",
        "wantedpages": "Mga ginkikinahanglan nga pakli",
        "wantedfiles": "Mga nagkikinahanglan hin file",
        "pageinfo-robot-policy": "Pag-index hin mga robot",
        "pageinfo-robot-index": "Gintutugot",
        "pageinfo-robot-noindex": "Dírì gintutugot",
-       "pageinfo-views": "Ihap han mga naglantaw",
        "pageinfo-watchers": "Ihap han nangingita hin pakli",
        "pageinfo-redirects-name": "Ihap hin mga redirek ngani nga pakli",
        "pageinfo-subpages-name": "Mga bahinpakli hin nga pakli",
index ca9ed62..48db359 100644 (file)
        "mergehistory-same-destination": "Gongikuwaay ak jëmuwaayu xët yi waruñoo bokk",
        "mergehistory-reason": "Ngirte :",
        "mergelog": "Yéenekaayu boole yi",
-       "pagemerge-logentry": "Booleb [[$1]] ak [[$2]] (sumb ba $3)",
        "revertmerge": "Neenal boole yi",
        "mergelogpagetext": "Lii ci suuf ab lim la ci boole yu mujj yu jaar-jaaru aw xët ak weneen .",
        "history-title": "Jaar-jaaru sumbi « $1 »",
        "statistics": "Limbari",
        "statistics-header-pages": "Limbari ñeel xët yi",
        "statistics-header-edits": "Limbari ñeel coppite yi",
-       "statistics-header-views": "Limbari ñeel saytu yi",
        "statistics-header-users": "Limbari ñeel jëfandikukat yi",
        "statistics-header-hooks": "Yeneen limbari",
        "statistics-articles": "Xëti ëmbiit",
        "statistics-pages-desc": "Xët yépp yi ci wiki bi, xëti waxtaanuwaay yi, jubluwaat yi, añs.",
        "statistics-files": "Xët yees yeb fii",
        "statistics-edits": "Coppitey xët yi dalee ca campug  {{SITENAME}}",
-       "statistics-views-total": "Mbooleem saytu yi",
-       "statistics-views-peredit": "Saytu ngir soppi",
        "statistics-users": "[[Special:ListUsers|Jëfandikukat]] yi bindu",
        "statistics-users-active": "Jëfandikukat yu yëngu",
        "statistics-users-active-desc": "Jëfandikukat yi amal ag yëngu-yëngu ci {{PLURAL:$1|bés bu mujj bi|$1 bés yu mujj yi}}",
-       "statistics-mostpopular": "Xët yees gën a saytu",
        "doubleredirects": "Jubluwaat ñaari yoon",
        "doubleredirectstext": "Wii xët dafa ëmb mbooleem xët yees jubluwaatal ci yeneen xëti jubluwaat.\nRëdd wu ne am na lëkkalekaay buy jëme ci bu njëkk ak ñaareelu jubluwaat bi, ak rëdduw mbind wu njëkk wu ñaareelu jubluwaat bi, biy ëmb xëtu jëmuwaay wu ''baax'' wi, wi jubluwaat bu njëkk bi war a jublu moom itam.",
        "double-redirect-fixed-move": "[[$1]] tuddewaat nañu ko.\nLéegi mi ngi jublu [[$2]].",
        "uncategorizedtemplates": "Royuwaay yi amul Wàll",
        "unusedcategories": "Wàll yees jëfandikoowul",
        "unusedimages": "Dencukaay yees jëfandikoowul",
-       "popularpages": "Xët yees gën a saytu",
        "wantedcategories": "Wàll yi ñu gën a laaj",
        "wantedpages": "Xët yi ñu gën a laaj",
        "wantedpages-badtitle": "Koj bu baaxul bu nekk ci ngérte yi : $1",
index 6d6c6da..e1d187f 100644 (file)
@@ -16,7 +16,8 @@
                        "Duolaimi",
                        "Impersonator 1",
                        "LNDDYL",
-                       "TheChampionMan1234"
+                       "TheChampionMan1234",
+                       "Fitoschido"
                ]
        },
        "tog-underline": "鏈接下橫線:",
        "databaseerror-text": "數據庫討信出錯。\n嘸數說明軟件裏有一個bug。",
        "databaseerror-textcl": "數據庫討信出錯。",
        "databaseerror-query": "討信:$1",
-       "databaseerror-function": "功能ː $1",
+       "databaseerror-function": "功能: $1",
        "databaseerror-error": "出錯:$1",
        "laggedslavemode": "警告: 页面可能弗包含最近个更新。",
        "readonly": "數據庫鎖牢",
        "mergehistory-same-destination": "来源页面与目的页面弗可以相同",
        "mergehistory-reason": "理由:",
        "mergelog": "合并日志",
-       "pagemerge-logentry": "已拿[[$1]]合并到[[$2]] (修订截至$3)",
        "revertmerge": "反合并",
        "mergelogpagetext": "下底是只最近发生个页面历史合并个记录列表。",
        "history-title": "“$1”的版本历史",
        "nbytes": "$1字节",
        "nmembers": "$1只成员",
        "unusedimages": "朆用着个文件",
-       "popularpages": "热门页面",
        "mostlinked": "链进去顶多个页面",
        "mostlinkedcategories": "链进去顶多个分类",
        "mostcategories": "分类顶多个页面",
index deee147..b68fe15 100644 (file)
        "statistics": "То бүрткл",
        "statistics-header-pages": "Халхарн то бүрткл",
        "statistics-header-edits": "Сольлһна то бүрткл",
-       "statistics-header-views": "Хәләврин то бүрткл",
        "statistics-header-users": "Демнчәрн то бүрткл",
        "statistics-articles": "Зүүлс",
        "statistics-pages": "Халхс",
        "statistics-files": "Тәвсн боомгуд",
        "statistics-edits": "{{SITENAME}} эклсн цагас авн сольлһна то",
        "statistics-edits-average": "Халхарн сольлһна то",
-       "statistics-views-total": "Цуг хәләврин то",
-       "statistics-views-peredit": "Сольлһарн хәләврин то",
        "statistics-users": "Бичгдлһтә [[Special:ListUsers|демнчнр]]",
        "statistics-users-active": "Үүлтә демнчнр",
        "statistics-users-active-desc": "{{PLURAL:$1|$1 өдрт|$1 өдрмүдт|$1 өдрмүдт}} болв чигн үүл кесн демнчнр",
-       "statistics-mostpopular": "Маш хәләсн халхс",
        "brokenredirects-edit": "чиклх",
        "brokenredirects-delete": "һарһх",
        "nbytes": "$1 {{PLURAL:$1|байд|байдуд|байдуд}}",
-       "nmembers": "$1 {{PLURAL:$1|мөч|мөчүд|мөчин}}",
+       "nmembers": "$1 {{PLURAL:$1|мөч|мөчин|мөчүд}}",
        "prefixindex": "Цуг халхс эн эклцтә",
        "newpages": "Шин халхс",
        "move": "Көндәх",
index c4cac2a..4e059ae 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Jcwf",
-            "Jose77"
-        ]
-    },
-    "sunday": "Icawe",
-    "monday": "UMvulo",
-    "tuesday": "ULwesibini",
-    "wednesday": "ULwesithathu",
-    "thursday": "ULwesine",
-    "friday": "ULwesihlanu",
-    "saturday": "UMgqibelo",
-    "january": "EyoMqungu",
-    "february": "EyoMdumba",
-    "march": "EyoKwindla",
-    "april": "EkaTshazimpuzi",
-    "june": "EyeSilimela",
-    "july": "EyeKhala",
-    "august": "EyeThupha",
-    "september": "Eyo Msintsi",
-    "october": "Eye Dwarha",
-    "november": "Eye Nkanga",
-    "december": "Eyo Mnga",
-    "january-gen": "EyoMqungu",
-    "february-gen": "Eyo Mdumba",
-    "march-gen": "Eyo Kwindla",
-    "april-gen": "Ekatshazimpuzi",
-    "may-gen": "EkaCanzibe",
-    "june-gen": "Eyesilimela",
-    "july-gen": "Eye Khala",
-    "august-gen": "Eye Thupha",
-    "september-gen": "Eyo Msintsi",
-    "october-gen": "Eye Dwarha",
-    "november-gen": "Eye Nkanga",
-    "december-gen": "Eyo Mnga",
-    "may": "EkaCanzibe",
-    "article": "Inqaku",
-    "mypage": "Inqaku yam",
-    "mytalk": "Inthetho yam",
-    "vector-view-edit": "Tshintsha",
-    "help": "Uncedo",
-    "search": "Khangela",
-    "searchbutton": "Khangela",
-    "go": "Hamba",
-    "searcharticle": "Hamba",
-    "edit": "Tshintsha",
-    "delete": "Cima",
-    "protect": "Khusela",
-    "talkpagelinktext": "Inthetho",
-    "talk": "Ingxoxo",
-    "otherlanguages": "Kwezinye Ilwimi",
-    "currentevents": "Imisebenzi Eyenzekayo",
-    "edithelp": "Uncedo ngoTshintsho",
-    "mainpage": "Iphepha Elingundoqo",
-    "mainpage-description": "Iphepha Elingundoqo",
-    "youhavenewmessagesmulti": "Unemiyalezo emitsha ku $1",
-    "editsection": "tshintsha",
-    "editold": "tshintsha",
-    "editlink": "tshintsha",
-    "nstab-main": "Inqaba",
-    "viewsource": "Jonga i Source",
-    "yourname": "Igama lelungu:",
-    "yourpassword": "Igama elifihlakeleyo lelungu:",
-    "yourpasswordagain": "Faka kwakhona igama elifihlakeleyo:",
-    "remembermypassword": "Khumbula igama lam elifihlakeleyo kule Khompyutha (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "createaccount": "Vula I Account",
-    "loginlanguagelabel": "Ulwimi: $1",
-    "summary": "Isishwankathelo:",
-    "minoredit": "Lutshitsho oluncinci olu",
-    "watchthis": "Bukela le Page",
-    "savearticle": "Gcina eliphepha",
-    "showpreview": "Bonisa Utshintsho",
-    "showdiff": "Gcina Utshitshi",
-    "mypreferences": "Ezithandwa ndim",
-    "searchresultshead": "Khangela",
-    "username": "Igama lelungu:",
-    "recentchanges": "Utshitsho olusandokwenziwa",
-    "minoreditletter": "nc",
-    "recentchangeslinked": "Utsitsho olufana nolu",
-    "recentchangeslinked-feed": "Utsitsho olufana nolu",
-    "recentchangeslinked-toolbox": "Utsitsho olufana nolu",
-    "upload": "Faka Ifile",
-    "filedesc": "Isishwankathelo",
-    "watchthisupload": "Bukela le Page",
-    "move": "Dlulisa",
-    "movethispage": "Dlulisa eliphepha",
-    "allinnamespace": "Amanqaku onke ($1 namespace)",
-    "allpagessubmit": "Hamba",
-    "watchlist": "Endizibukeleyo",
-    "mywatchlist": "Endizibukeleyo",
-    "watch": "Bukela",
-    "watchthispage": "Bukela le Page",
-    "prot_1movedto2": "[[$1]] lidluliselwe [[$2]]",
-    "contributions": "Imisebenzi ye lungu",
-    "mycontris": "Inkxaso yam",
-    "sp-contributions-talk": "Inthetho",
-    "sp-contributions-submit": "Khangela",
-    "ipblocklist-submit": "Khangela",
-    "move-page-legend": "Dlulisa eliphepha",
-    "movepagebtn": "DLulisa eliphepha",
-    "movereason": "Isizathu",
-    "ilsubmit": "Khangela",
-    "specialpages": "Amaphepha Abalulekileyo"
+       "@metadata": {
+               "authors": [
+                       "Jcwf",
+                       "Jose77"
+               ]
+       },
+       "sunday": "Icawe",
+       "monday": "UMvulo",
+       "tuesday": "ULwesibini",
+       "wednesday": "ULwesithathu",
+       "thursday": "ULwesine",
+       "friday": "ULwesihlanu",
+       "saturday": "UMgqibelo",
+       "january": "EyoMqungu",
+       "february": "EyoMdumba",
+       "march": "EyoKwindla",
+       "april": "EkaTshazimpuzi",
+       "june": "EyeSilimela",
+       "july": "EyeKhala",
+       "august": "EyeThupha",
+       "september": "Eyo Msintsi",
+       "october": "Eye Dwarha",
+       "november": "Eye Nkanga",
+       "december": "Eyo Mnga",
+       "january-gen": "EyoMqungu",
+       "february-gen": "Eyo Mdumba",
+       "march-gen": "Eyo Kwindla",
+       "april-gen": "Ekatshazimpuzi",
+       "may-gen": "EkaCanzibe",
+       "june-gen": "Eyesilimela",
+       "july-gen": "Eye Khala",
+       "august-gen": "Eye Thupha",
+       "september-gen": "Eyo Msintsi",
+       "october-gen": "Eye Dwarha",
+       "november-gen": "Eye Nkanga",
+       "december-gen": "Eyo Mnga",
+       "may": "EkaCanzibe",
+       "article": "Inqaku",
+       "mypage": "Inqaku yam",
+       "mytalk": "Inthetho yam",
+       "help": "Uncedo",
+       "search": "Khangela",
+       "searchbutton": "Khangela",
+       "go": "Hamba",
+       "searcharticle": "Hamba",
+       "edit": "Tshintsha",
+       "delete": "Cima",
+       "protect": "Khusela",
+       "talkpagelinktext": "Inthetho",
+       "talk": "Ingxoxo",
+       "otherlanguages": "Kwezinye Ilwimi",
+       "currentevents": "Imisebenzi Eyenzekayo",
+       "edithelp": "Uncedo ngoTshintsho",
+       "mainpage": "Iphepha Elingundoqo",
+       "mainpage-description": "Iphepha Elingundoqo",
+       "youhavenewmessagesmulti": "Unemiyalezo emitsha ku $1",
+       "editsection": "tshintsha",
+       "editold": "tshintsha",
+       "editlink": "tshintsha",
+       "nstab-main": "Inqaba",
+       "viewsource": "Jonga i Source",
+       "yourname": "Igama lelungu:",
+       "yourpassword": "Igama elifihlakeleyo lelungu:",
+       "yourpasswordagain": "Faka kwakhona igama elifihlakeleyo:",
+       "remembermypassword": "Khumbula igama lam elifihlakeleyo kule Khompyutha (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "createaccount": "Vula I Account",
+       "loginlanguagelabel": "Ulwimi: $1",
+       "summary": "Isishwankathelo:",
+       "minoredit": "Lutshitsho oluncinci olu",
+       "watchthis": "Bukela le Page",
+       "savearticle": "Gcina eliphepha",
+       "showpreview": "Bonisa Utshintsho",
+       "showdiff": "Gcina Utshitshi",
+       "mypreferences": "Ezithandwa ndim",
+       "searchresultshead": "Khangela",
+       "username": "Igama lelungu:",
+       "recentchanges": "Utshitsho olusandokwenziwa",
+       "minoreditletter": "nc",
+       "recentchangeslinked": "Utsitsho olufana nolu",
+       "recentchangeslinked-feed": "Utsitsho olufana nolu",
+       "recentchangeslinked-toolbox": "Utsitsho olufana nolu",
+       "upload": "Faka Ifile",
+       "filedesc": "Isishwankathelo",
+       "watchthisupload": "Bukela le Page",
+       "move": "Dlulisa",
+       "movethispage": "Dlulisa eliphepha",
+       "allinnamespace": "Amanqaku onke ($1 namespace)",
+       "allpagessubmit": "Hamba",
+       "watchlist": "Endizibukeleyo",
+       "mywatchlist": "Endizibukeleyo",
+       "watch": "Bukela",
+       "watchthispage": "Bukela le Page",
+       "prot_1movedto2": "[[$1]] lidluliselwe [[$2]]",
+       "contributions": "Imisebenzi ye lungu",
+       "mycontris": "Inkxaso yam",
+       "sp-contributions-talk": "Inthetho",
+       "sp-contributions-submit": "Khangela",
+       "ipblocklist-submit": "Khangela",
+       "move-page-legend": "Dlulisa eliphepha",
+       "movepagebtn": "DLulisa eliphepha",
+       "movereason": "Isizathu",
+       "ilsubmit": "Khangela",
+       "specialpages": "Amaphepha Abalulekileyo"
 }
index c8799e2..b0c2824 100644 (file)
@@ -11,7 +11,8 @@
                        "ווארצגאנג",
                        "לערי ריינהארט",
                        "פוילישער",
-                       "아라"
+                       "아라",
+                       "Har-wradim"
                ]
        },
        "tog-underline": "שטרייכט אונטער לינקען",
        "go": "גיין",
        "searcharticle": "גיין",
        "history": "בלאט היסטאריע",
-       "history_short": "היסטאריע",
+       "history_short": "היסטאָריע",
        "updatedmarker": "דערהיינטיגט זינט מיין לעצטע וויזיט",
        "printableversion": "דרוק ווערסיע",
        "permalink": "שטענדיגער לינק",
        "pool-timeout": "אַריבער דער צײַט וואַרטן פֿאר דער שליסונג",
        "pool-queuefull": "ריי איז פֿול",
        "pool-errorunknown": "אומבאַקאַנטער פֿעלער",
+       "pool-servererror": "נישט פאראן דער פול־צאל דינסט ($1).",
        "aboutsite": "וועגן {{SITENAME}}",
        "aboutpage": "Project:וועגן",
        "copyright": "דער אינהאַלט איז פֿאַראַן אונטער $1 ווען נישט באוויזן אנדערש.",
        "viewsourcetext": "איר קענט זען און קאפירן דעם מקור פון דעם בלאַט:",
        "viewyourtext": "איר קענט באקוקן דעם מקור פון '''אייערע רעדאקטירונגען''' צו דעם בלאט:",
        "protectedinterface": "דער בלאַט שטעלט צו באניצער־אויבערפלאך טעקסט פֿאַרן װײכװאַרג אויף דער דאזיקער וויקי, און איז פֿאַרשפּאַרט כּדי צו פֿאַרמײַדן װאַנדאַליזם.\nכדי צולייגן אדער ענדערן איבערזעצונגען פאר אלע וויקיס, זייט אזוי גוט ניצן [//translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאליזאציע פראיעקט.",
-       "editinginterface": "'''ווארענונג:''' איר באַאַרבעט א בלאט וואס איז געניצט צוצושטעלן אינטערפֿייס טעקסט פאר דער ווייכווארג. ענדערונגען אין דעם בלאַט וועלן טוישן דאס אויסזען פון די סיסטעם מודעות פאר אלע אנדערע באניצער אויף דער וויקי.\nכדי צולייגן אדער ענדערן איבערזעצונגען, באַטראַכטס באַניצן [//translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאַליזאציע פראיעקט.",
+       "editinginterface": "<strong>ווארענונג:</strong> איר באַאַרבעט א בלאט וואס ווערט געניצט צוצושטעלן אינטערפֿייס טעקסט פאר דער ווייכווארג.\nענדערונגען אין דעם בלאַט וועלן טוישן דאס אויסזען פון די סיסטעם מודעות פאר אנדערע באניצער אויף דער וויקי.",
+       "translateinterface": "כדי צו צולייגן איבערזעצונגען פאר אלע וויקיס, זײַט אזוי גוט און ניצט [//translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאליזירונג פראיעקט.",
        "cascadeprotected": "דער בלאט איז פארשפארט צום ענדערן וויבאלד ער איז איינגעשלאסן אין איינע פון די פאלגנדע {{PLURAL:$1|בלאט, וואס איז|בלעטער, וואס זענען}} באשיצט מיט דער קאסקייד אפציע:\n\n$2",
        "namespaceprotected": "איר זענט נישט ערלויבט צו רעדאקטירן בלעטער אינעם '''$1''' נאמענטייל.",
        "customcssprotected": "איר האט נישט רשות צו רעדאַקטירן דעם CSS בלאַט, ווײַל ער אַנטהאַלט די פערזענלעכע באַשטימונגען פון אַן אַנדער באַניצער.",
        "subject": "טעמע/קעפל:",
        "minoredit": "דאס איז א מינערדיגע ענדערונג",
        "watchthis": "טוט אױפֿפּאַסן דעם בלאט",
-       "savearticle": "×\90ױפֿהיטן בלאַט",
+       "savearticle": "×\90×\95×\99פהיטן בלאַט",
        "preview": "פֿאראויסקוק",
-       "showpreview": "×\95×\95ײַ×\96×\9f ×¤Ö¿אָרױסקוק",
+       "showpreview": "×\95×\95×\99×\99×\96×\9f ×¤אָרױסקוק",
        "showdiff": "ווײַז די ענדערונגען",
        "blankarticle": "<strong>אזהרה:</strong> דער בלאט איר גייט שאפן איז ליידיק.\nטאמער איר וועט דריקן אויף \"{{int:savearticle}}\" נאכאמאל, וועט דער בלאט ווערן געשאפן אן קיין אינהאלט.",
        "anoneditwarning": "<strong>ווארענונג:</strong> איר זענט נישט אריינלאגירט. אייער איי פי אדרעס וועט ווערן עפנטלעך זעבאר ווען איר פירט דורך  ענדערונגען . אז איר <strong>[$1 לאגירט ארײַן]</strong> אדער <strong>[$2 שאפט א קאנטע]</strong>, וועלן אײַערע רעדאקטירונגען ווערן צוגעשריבן צו אײַער באניצער-נאמען, ווי אויך אנדערע טובות.",
        "userinvalidcssjstitle": "'''ווארענונג:''' סאיז נישטא קיין סקין \"$1\". גדענקט אז קאסטעם .css און .js בלעטער נוצען לאוער קעיס טיטול, e.g. {{ns:user}}:Foo/vector.css ווי אנדערשט צו {{ns:user}}:Foo/Vector.css.",
        "updated": "(דערהיינטיגט)",
        "note": "'''באמערקונג:'''",
-       "previewnote": "'''געדענקט אז דאס איז נאָר אין אַ פֿאָרויסיקע ווייזונג.'''\nאייערע ענדערונגען זענען נאָך נישט געהיט!",
+       "previewnote": "'''געדענקט אַז דאָס איז נאָר אַ פאָרויסקוק.'''\nאייערע ענדערונגען זענען נאָך נישט געהיט!",
        "continue-editing": "אריבער צום רעדאקטירן פֿעלד",
        "previewconflict": "די פֿאראויסיגע ווייזונג רעפלעקטירט דעם טעקסט און דער אויבערשטע טעקסט ענדערונג אָפטיילונג וויאזוי דאס וועט אויסזען אויב וועט איר דאס אָפהיטן.",
        "session_fail_preview": "'''אנטשולדיגט! מען האט נישט געקענט פראצעסירן אייער ענדערונג צוליב א פארלוסט פון סעסיע דאטע. ביטע פרובירט נאכאמאל. אויב ס'ארבעט נאך אלס ניט, פרובירט [[Special:UserLogout|ארויסלאגירן]] און זיך צוריק אריינלאגירן.",
        "longpageerror": "'''פעלער: דער טעקסט וואס איר האט ארײַנגעשטעלט איז לאנג {{PLURAL:$1|איין קילאבייט|$1 קילאבייטן}}, וואס איז לענגער פון דעם מאקסימום פון {{PLURAL:$2|איין קילאבייט|$2 קילאבייטן}}.\nער קען נישט ווערן אפגעהיטן.'''",
        "readonlywarning": "'''ווארענונג: די דאטנבאזע איז געווארן פארשלאסן פאר אויפהאלטונג, ממילא וועט איר נישט קענען אפהיטן אייערע ענדערונגען אצינד. '''\nאיר קענט קאפירן און ארײַנלייגן דעם טעקסט אריין צו א טעקסט טעקע און דאס דארטן אפהיטן אויף שפעטער.\n\nדער אדמיניסטראטאר וואס האט זי פארשלאסן האט מסביר געווען אזוי: $1",
        "protectedpagewarning": "'''ווארענונג:  דער בלאט איז געווארן פארשפארט אז בלויז באניצערס מיט סיסאפ פריווילעגיעס קענען אים ענדערן.'''\nדי פארגאנגענע לאגבוך באשרײַבונג ווערט געוויזן דא:",
-       "semiprotectedpagewarning": "'''באמערקונג:''' דער דאזיגער בלאַט איז פֿאַרשפאַרט אז בלויז איינגעשריבענע באניצערס קענען אים ענדערן.\nדי פֿאַרגאַנגענע לאגבוך באשרײַבונג ווערט געוויזן דאָ:",
+       "semiprotectedpagewarning": "'''באמערקונג:''' דער דאָזיקער בלאַט איז פאַרשפּאַרט, אַזוי אַז בלויז איינגעשריבענע באַניצער קענען אים ענדערן.\nדאָס פאַרגאַנגענע לאָגבוך באַשרייבונג ווערט געוויזן דאָ:",
        "cascadeprotectedwarning": "'''ווארענונג:''' דער בלאט איז פארשפארט אז בלויז סיסאפן קענען אים ענדערן, וויבאלד ער איז איינגעשלאסן אין {{PLURAL:$1| דעם פאלגנדן בלאט, וואס איז|די פאלגנדע בלעטער, וואס זענען}} קאסקאד באשיצט:",
        "titleprotectedwarning": "'''אזהרה: דער בלאט איז פֿארשפאַרט טא דארף מען [[Special:ListGroupRights|ספעציפֿישע רעכטן]] צו שאפֿן אים.'''\nדי פֿאַרגאַנגענע לאגבוך באשרײַבונג ווערט געוויזן דאָ:",
        "templatesused": "{{PLURAL:$1|מוסטער|מוסטערן}} באנוצט אויף דעם בלאט:",
        "content-model-text": "פשוטער טעקסט",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "בלעטער וואס ניצן געטאפלטע ארגומענטן אין מוסטער רופן",
        "expensive-parserfunction-warning": "'''אזהרה:''' דער בלאט אנטהאלט צופיל טייערע פארזירער רופן.\n\nער דארף האבן ווינציגער פון  $2 {{PLURAL:$2|רוף|רופן}}, אבער אצינד {{PLURAL:$1|איז דא $1 רוף|זענען דא $1 רופן}}.",
        "expensive-parserfunction-category": "בלעטער מיט צופֿיל טייערע פאַרזער פֿונקציאן רופֿן",
        "post-expand-template-inclusion-warning": "'''אכטונג:''' איינגעשלאסענע מוסטערן אין דעם בלאט זענען צו גרויס.\nטייל מוסטערן וועלן נישט ווערן איינגעשלאסן.",
        "mergehistory-same-destination": "מקור און ציל בלעטער זענען די זעלבע",
        "mergehistory-reason": "אורזאַך:",
        "mergelog": "צונויפֿגיסן לאג-בוך",
-       "pagemerge-logentry": "צונויפֿגעגאסן [[$1]] אין [[$2]] (גרסאות ביז $3)",
        "revertmerge": "מבטל זײַן צאמשטעל",
        "mergelogpagetext": "אונטן איז א ליסטע פון לעצטנסדיגע צונויפגיסונגען פון איין בלאט'ס היסטאריע אין א צווייטער.",
        "history-title": "רעוויזיע היסטאריע פֿון $1",
        "search-result-category-size": "{{PLURAL:$1|1 מיטגליד|$1 מיטגלידער}} ({{PLURAL:$2|1 אונטער־קאַטעגאריע|$2 אונטער־קאַטעגאריעס}}, {{PLURAL:$3|1 טעקע|$3 טעקעס}})",
        "search-redirect": "(ווײַטערפֿירן $1)",
        "search-section": "(אפטיילונג $1)",
+       "search-category": "(קאטעגאריע $1)",
        "search-file-match": "(פאסט צו טעקע אינהאלט)",
        "search-suggest": "צי האט איר געמיינט: $1",
        "search-interwiki-caption": "שוועסטער פראיעקטן",
        "searchall": "אלץ",
        "showingresults": "ווייזן ביז {{PLURAL:$1|רעזולטאט '''איינס'''|'''$1''' רעזולטאטן}} אנגעפאנגן פון נומער #'''$2''':",
        "showingresultsinrange": "ווײַזן אונטן ביז {{PLURAL:$1|<strong>1</strong> רעזולטאט|<strong>$1</strong> רעזולטאטן}} אין גרייך #<strong>$2</strong> ביז #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|רעזולטאַט <strong>$1</strong> פֿון <strong>$3</strong>|רעזולטאַטן\n<strong>$1 - $2</strong> פֿון <strong>$3</strong>}}",
        "search-nonefound": "נישטא קיין רעזולטאטן פֿאַר דער שאלה.",
        "powersearch-legend": "ווײַטהאלטן זוכן",
        "powersearch-ns": "זוכן אין נאמענטיילן:",
        "gender-female": "זי רעדאקטירט וויקי בלעטער",
        "prefs-help-gender": "שטעלן דעם פרעפֿערענץ איז אפציאנאַל.\nדאס ווייכוואַרג באניצט זיין ווערט אײַך צו אַדרעסירן און דערמאנען צו אנדערע מיטן געהעריגן מין פֿארעם. \nדי אינפֿארמאַציע ווערט ידוע צו אַלעמען.",
        "email": "ע-פאסט",
-       "prefs-help-realname": "* עכטער נאמען (אפציאנאל): אויב וועט איר אויסוועלן צוצישטעלן דאס, וועט גענוצט ווערן צו געבן אטריביאציע צו אייער ארבייט.",
+       "prefs-help-realname": "עכטער נאמען איז אפציאנאל.\nווען אנגעגעבן, וועט ער גענוצט ווערן צו געבן אטריבוציע פאר אייער ארבעט.",
        "prefs-help-email": "ע-פאסט אַדרעס איז ברירהדיק, אבער עס דערמעגליכט אז מען קען אייך שיקן א ניי פאסווארט טאמער איר פֿארגעסט דאָס אַלטע.",
        "prefs-help-email-others": "איר קענט אויך אויסקלייבן צו לאזן אנדערע פֿארבינדן מיט אייך דורך ע־פאסט דורך א לינק אויף אייער באניצער אדער שמועס בלאט.\nמען וועט נישט אנטפלעקן אייער ע־פאסט אדרעס ווען אנדערע פֿארבינדן זיך מיט אייך.",
        "prefs-help-email-required": "בליצפאסט אדרעס באדארפט.",
        "prefs-tokenwatchlist": "טאקן",
        "prefs-diffs": "צווישנשיידן",
        "prefs-help-prefershttps": "דער פרעפערענץ וועט ארבעטן ביי אײַער נעקסטער ארײַנלאגירונג.",
+       "prefswarning-warning": "איר האט געמאכט ענדערונגען צו אײַערע פרעפערענצן וואס זענען נאך נישט אויפגעהיטן.\nאז איר פארלאזט דעם בלאט אן קליקן ״$1״ וועלן אײַערע פרעפערענצן נישט ווערן דערהײַנטיקט.",
        "prefs-tabs-navigation-hint": "טיפ: איר קענט ניצן די רעכטס און לינקס פייל־קלאווישן צו נאוויגירן צווישן די צינגלעך אין דער צינגלעך־ליסטע.",
        "email-address-validity-valid": "ע-פּאָסט אַדרעס זעט אויס גילטיק",
        "email-address-validity-invalid": "לייגט אַרײַן א גילטיקן ע־פאסט אַדרעס",
        "statistics": "סטאַטיסטיק",
        "statistics-header-pages": "בלעטער סטאטיסטיק",
        "statistics-header-edits": "רעדאקטירן סטאַטיסטיק",
-       "statistics-header-views": "זען סטאטיסטיק",
        "statistics-header-users": "באניצער סטאטיסטיק",
        "statistics-header-hooks": "אנדערע סטאטיסטיק",
        "statistics-articles": "אינהאלט בלעטער",
        "statistics-files": "ארויפֿגעלאדענע טעקעס",
        "statistics-edits": "רעדאַקטירונגען זײַט {{SITENAME}} איז אויפֿגעשטעלט",
        "statistics-edits-average": "דורכשניט רעדאַקטירונגען אין א בלאַט",
-       "statistics-views-total": "צאל קוקן אינגאַנצן",
-       "statistics-views-total-desc": "באַקוקן צו נישט־פֿאַרהאַנען בלעטער און באַזונדערע בלעטער זענען נישט אַרייַנגערעכנט.",
-       "statistics-views-peredit": "צאל קוקן צו א רעדאַקטירונג",
        "statistics-users": "איינגעשריבענע [[Special:ListUsers|באניצערס]]",
        "statistics-users-active": "טעטיקע באניצערס",
        "statistics-users-active-desc": "באניצערס וואס האבן דורכגעפירט א פעולה אין די לעצטע {{PLURAL:$1|טאג|$1 טעג}}",
-       "statistics-mostpopular": "מערסטע געזען בלעטער",
        "pageswithprop": "בלעטער מיט א בלאט אייגנשאפט",
        "pageswithprop-legend": "בלעטער מיט א בלאט אייגנשאפט",
        "pageswithprop-text": "דער בלאט האלט א רשימה פון בלעטער וואס ניצן א געוויסע בלאט אייגנשאפט.",
        "uncategorizedtemplates": "אומקאטעגאריזירטע מוסטערן",
        "unusedcategories": "נישט געניצטע קאטעגאריעס",
        "unusedimages": "נישט געניצטע טעקעס",
-       "popularpages": "פאפולערע בלעטער",
        "wantedcategories": "געזוכטע קאטעגאריעס",
        "wantedpages": "געזוכטע בלעטער",
        "wantedpages-badtitle": "אומגילטיקער טיטל אין רעזולטאַט: $1",
        "newpages": "נייע בלעטער",
        "newpages-username": "באַניצער נאָמען:",
        "ancientpages": "עלטסטע בלעטער",
-       "move": "×\91×\90Ö·×°עגן",
+       "move": "×\91×\90Ö·×\95×\95עגן",
        "movethispage": "באוועג דעם בלאט",
        "unusedimagestext": "די פֿאלגנדע טעקעס עקזיסטירן אבער ווערן נישט גענוצט אין קיין שום בלאַט.\nגיט אַכט אז אנדערע וועבערטער קענען פֿארבינדן צו א טעקע מיט א דירעקטן URL, און קענען דעריבער באווײַזן זיך דאָ כאטש זיי זענען אין אקטיוון באניץ.",
        "unusedcategoriestext": "די פֿאלגנדע קאטעגאריעס עקסיסטירן, אבער קיין בלאט אדער קאטעגאריע ניצט זיי נישט.",
        "pager-older-n": "{{PLURAL:$1|עלטערע|$1 עלטערע}}",
        "suppress": "אויפֿזען",
        "querypage-disabled": "דער באַזונדער־בלאַט איז אומאַקטיווירט צוליב אויספֿירונג סיבות.",
+       "apihelp": "API־הילף",
+       "apihelp-no-such-module": "מאָדול \"$1\" נישט געפונען.",
        "booksources": "דרויסנדיגע ליטעראַטור ISBN",
        "booksources-search-legend": "זוכן פאר דרויסנדע ביכער מקורות",
        "booksources-search": "זוכן",
        "removedwatchtext-short": "מ'האט אראפגענומען בלאט \"$1\" פון אײַער אויפפאסן ליסטע.",
        "watch": "אױפֿפּאַסן",
        "watchthispage": "טוט אױפֿפּאַסן דעם בלאט",
-       "unwatch": "אויפֿהערן אויפֿפּאַסן",
+       "unwatch": "אויפהערן אויפפּאַסן",
        "unwatchthispage": "ענדיגן אויפֿפאַסן",
        "notanarticle": "דאס איז נישט קיין אינהאלט בלאט",
        "notvisiblerev": "די באארבעטונג איז געווארן אויסגעמעקט",
        "protect-othertime": "אנדער צייט:",
        "protect-othertime-op": "אנדער צײַט",
        "protect-existing-expiry": "עקזיסטירנדע אויסלאז צײַט: $3, $2",
+       "protect-existing-expiry-infinity": "עקזיסטירנדיקע אויסגיין צייט: אומענדלעך",
        "protect-otherreason": "אנדער/ווײַטערדיקע סיבה:",
        "protect-otherreason-op": "אַנדער סיבה",
        "protect-dropdown": "* געוויינטלעכע סיבות פאר שיצן\n** אסאך וואנדאליזם\n** אסאך ספאם\n** אומנוציקער רעדאקטירונג קריג\n** שטארק געניצטער בלאט",
        "tooltip-ca-undelete": "צוריק דרייען די ענדערונגען פון דעם בלאט פארן מעקן",
        "tooltip-ca-move": "באַוועגן דעם בלאַט",
        "tooltip-ca-watch": "לייגט צו דעם בלאט אויפצופאסן",
-       "tooltip-ca-unwatch": "נעמט אראפ דעם בלאט פון אויפפאסן",
+       "tooltip-ca-unwatch": "נעמט אַראָפּ דעם בלאַט פון נאָכפאָלג־ליסטע",
        "tooltip-search": "זוכט אינעם סייט",
        "tooltip-search-go": "גייט צו א בלאט מיט אט דעם נאמען, אויב ער עקסיסטירט",
        "tooltip-search-fulltext": "זוכט דעם טעקסט אין די בלעטער",
        "tooltip-feed-atom": "לייג צו אן אטאמאטישער אפדעיט דורך אטאם Atom",
        "tooltip-t-contributions": "אלע בײַשטײַערונגען פון דעם באניצער",
        "tooltip-t-emailuser": "שיקן א בליצבריוו צו דעם בַאניצער",
+       "tooltip-t-info": "נאָך אינפאָרמאַציע וועגן דעם בלאַט",
        "tooltip-t-upload": "ארויפלאדן טעקעס",
        "tooltip-t-specialpages": "אלע ספעציעלע בלעטער",
        "tooltip-t-print": "דרוק ווערסיע פון דעם בלאט",
        "pageinfo-robot-policy": "אינדעקסירן דורך ראבאטן",
        "pageinfo-robot-index": "דערלויבט",
        "pageinfo-robot-noindex": "נישט דערלויבט",
-       "pageinfo-views": "צאַל קוקן",
        "pageinfo-watchers": "!צאָל בלאט אויפֿפאַסער",
        "pageinfo-few-watchers": "ווינציקער ווי $1 {{PLURAL:$1|אויפֿפאסער}}",
        "pageinfo-redirects-name": "צאָל ווײַטערפירונגען צו דעם בלאט",
index c4b68c1..21dc246 100644 (file)
        "mergehistory-same-destination": "Ojúewé orísun àti ojúewé ìdópin kò gbọdọ̀ jẹ́ ìkannáà",
        "mergehistory-reason": "Ìdíẹ̀:",
        "mergelog": "Àkọọ́lẹ̀ ìdàpọ̀",
-       "pagemerge-logentry": "[[$1]] ti jẹ́ dídàpọ̀ sínúu [[$2]] (àwọn àtúnyẹ̀wò títí dé $3)",
        "revertmerge": "Ìdápadà ìdàpọ̀",
        "mergelogpagetext": "Nísàlẹ̀ ni àtòjọ àwọn ìdàpọ̀ àìpẹ́ ìtàn ojúewé kan sínú òmíràn.",
        "history-title": "Ìtàn àtúnyẹ̀wò fún \"$1\"",
        "statistics": "Àwọn statistiki",
        "statistics-header-pages": "Àwọn statistiki ojúewé",
        "statistics-header-edits": "Àwọn statistiki àtúnṣe",
-       "statistics-header-views": "Ẹ wo àwọn statístíkì",
        "statistics-header-users": "Àwọn statistiki oníṣe",
        "statistics-header-hooks": "Àwọn statistiki míràn",
        "statistics-articles": "Àwọn ojúewé àkóónú",
        "statistics-files": "Àwọn fáìlì ajẹ́rírùsókè",
        "statistics-edits": "Àwọn iye àtúnṣe ojúewé láti ìgbà tí {{SITENAME}} ti bẹ̀rẹ̀",
        "statistics-edits-average": "Iye àtúnṣe apínlàrin fún ojúewé kọ̀ọ̀kan",
-       "statistics-views-total": "Àpapọ̀ iye ìwò",
-       "statistics-views-total-desc": "Ìwò sí àwọn ojúewé tí kò sí àti àwọn ojúewé pàtàkì kò jẹ́ àmúpọ̀.",
-       "statistics-views-peredit": "Iye ìwò fún àtúnṣe kọ̀ọ̀kan",
        "statistics-users": "[[Special:ListUsers|Àwọn oníṣe]] ajẹ́fífilórúkọsílẹ̀",
        "statistics-users-active": "Àwọn oníṣe agbéṣe",
        "statistics-users-active-desc": "Àwọn oníṣe tí wọ́n ti ṣe ìgbéṣe kan ní {{PLURAL:$1|ọjọ́ kan|ọjọ́ $1}} sẹ́yìn",
-       "statistics-mostpopular": "Àwọn ojúewé tí wọ́n jẹ́ wíwò jùlọ",
        "pageswithprop": "Àwọn ojúewé tó ní ohun-ìní ojúewé",
        "pageswithprop-legend": "Àwọn ojúewé tó ní ohun-ìní ojúewé",
        "pageswithprop-text": "Ojúewé yìí ṣe àtòjọ àwọn ojúewé tó únlo ohun-ìní ojúewé pàtò kan.",
        "uncategorizedtemplates": "Àwọn àdàkọ aláìlẹ́ka",
        "unusedcategories": "Ẹ̀ka àìlò",
        "unusedimages": "Faili àìlò",
-       "popularpages": "Ojúewé tógbajúmọ̀",
        "wantedcategories": "Àwọn ẹ̀ka wíwá",
        "wantedpages": "Àwọn ojúewé àìsí",
        "wantedpages-badtitle": "Àkọlé aláìníìbámu nínú ìtò èsì: $1",
        "pageinfo-robot-policy": "Ipò ẹ̀rọ ìṣàwárí",
        "pageinfo-robot-index": "Ṣíṣeéwárí",
        "pageinfo-robot-noindex": "Kò ṣeéwárí",
-       "pageinfo-views": "Iye àwọn ìwò",
        "pageinfo-watchers": "Iye àwọn olùṣọ́ ojúewé",
        "pageinfo-redirects-name": "Àwọn àtúnjúwe sí ojúewé yìí",
        "pageinfo-subpages-name": "Àwọn ojúewé tó wà lábẹ́ ojúewé yìí",
index 969f4b3..efba070 100644 (file)
        "mergehistory-same-destination": "來源頁同目的頁唔可以一樣",
        "mergehistory-reason": "原因:",
        "mergelog": "合併日誌",
-       "pagemerge-logentry": "合併咗[[$1]]去到[[$2]] (修訂截到$3)",
        "revertmerge": "反合併",
        "mergelogpagetext": "下面係一個最近由一版嘅修訂記錄合併到另一個嘅一覽。",
        "history-title": "「$1」嘅修訂歷史",
        "statistics": "統計",
        "statistics-header-pages": "頁統計",
        "statistics-header-edits": "編輯統計",
-       "statistics-header-views": "參看統計",
        "statistics-header-users": "用戶統計",
        "statistics-header-hooks": "其它統計",
        "statistics-articles": "內容頁",
        "statistics-files": "已經上載咗嘅檔案",
        "statistics-edits": "自從{{SITENAME}}設定後嘅頁編輯數",
        "statistics-edits-average": "每一版平均編輯數",
-       "statistics-views-total": "查看總數",
-       "statistics-views-total-desc": "唔包唔存在頁面同特別頁嘅查看數",
-       "statistics-views-peredit": "每次編輯查看數",
        "statistics-users": "註冊咗嘅[[Special:ListUsers|用戶]]",
        "statistics-users-active": "活躍用戶",
        "statistics-users-active-desc": "響$1日前做過動作嘅用戶",
-       "statistics-mostpopular": "最多人睇嘅頁",
        "doubleredirects": "雙重跳轉",
        "doubleredirectstext": "每一行都順次序寫住第一頁名,佢嘅目的頁,同埋目的頁再指去邊度。改嘅時候,應該將第一個跳轉頁轉入第三頁。\n<del>劃咗</del>嘅項目係已經解決咗嘅。",
        "double-redirect-fixed-move": "[[$1]]已經搬好咗,佢而家跳轉過去[[$2]]。",
        "uncategorizedtemplates": "未有分類嘅模",
        "unusedcategories": "未用嘅分類",
        "unusedimages": "未用嘅檔案",
-       "popularpages": "受歡迎嘅頁面",
        "wantedcategories": "被徵求嘅分類",
        "wantedpages": "被徵求嘅頁面",
        "wantedpages-badtitle": "響結果組嘅無效標題: $1",
index 3405680..fc7409d 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Biŋhai",
-            "Hakka"
-        ]
-    },
-    "underline-never": "coengz mbouj swjyungh",
-    "sunday": "Swnggeiz Yaet",
-    "monday": "Swnggeiz Wtx",
-    "tuesday": "Swnggeiz Yeih",
-    "wednesday": "Swnggeiz Sam",
-    "thursday": "Swnggeiz Seiq",
-    "friday": "Swnggeiz Haj",
-    "saturday": "Swnggeiz Lokj",
-    "sun": "Ngoenz",
-    "mon": "It",
-    "tue": "Ngeih",
-    "wed": "Sam",
-    "thu": "Seiq",
-    "fri": "Ngux",
-    "sat": "Loeg",
-    "january": "Nin Wtj",
-    "february": "Nin Yeih",
-    "march": "Nin Sam",
-    "april": "Nin Seiq",
-    "may_long": "Nin Haj",
-    "june": "Nin Loekj",
-    "july": "Nin Caet",
-    "august": "Nin Betq",
-    "september": "Nin Gouj",
-    "october": "Nin Cwbx",
-    "november": "Nin Cwbx Wtj",
-    "december": "Nin Cwbx Yeih",
-    "january-gen": "It nyied",
-    "february-gen": "Ngeih nyied",
-    "march-gen": "Sam nyied",
-    "april-gen": "Seiq nyied",
-    "may-gen": "Nin Haj",
-    "june-gen": "Loeg nyied",
-    "july-gen": "Caet nyied",
-    "august-gen": "Bet nyied",
-    "september-gen": "Nin Gouj",
-    "october-gen": "Cib nyied",
-    "november-gen": "Cibit nyied",
-    "december-gen": "Cibngeih nyied",
-    "jan": "Itnyied",
-    "feb": "Ngeihnyied",
-    "mar": "Samnyied",
-    "apr": "Seiqnyied",
-    "may": "Nguxnyied",
-    "jun": "Loegnyied",
-    "jul": "Caetnyied",
-    "aug": "Batnyied",
-    "sep": "Goujnyied",
-    "oct": "Cibnyied",
-    "nov": "Cib'itnyied",
-    "dec": "Cibngeihnyied",
-    "pagecategories": "{{PLURAL:$1$1 aen|faendingz|faendingz}}",
-    "subcategories": "Faendingz lwgsai",
-    "about": "Gvendaengz",
-    "article": "Banjbienj",
-    "cancel": "Fwtqfex",
-    "mytalk": "Gaeq gou gangj",
-    "navigation": "Dazzaeuh",
-    "qbfind": "Ra",
-    "qbedit": "Gaij",
-    "qbmyoptions": "Yieb gou",
-    "faq": "Cam caeuq dap",
-    "faqpage": "Project:Cam caeuq dap",
-    "vector-action-delete": "Ca",
-    "vector-action-move": "Daen",
-    "vector-action-protect": "Bauj",
-    "vector-view-create": "Laeb",
-    "vector-view-edit": "gaij",
-    "vector-view-history": "Cazyawj lizsij",
-    "errorpagetitle": "Loengloek",
-    "tagline": "okcih {{SITENAME}}",
-    "help": "Bangcoh",
-    "search": "Cwmh",
-    "searchbutton": "Cwmh",
-    "go": "Bae",
-    "searcharticle": "Bae",
-    "history": "Lizsij",
-    "history_short": "Lizsij",
-    "printableversion": "Gojyaenq banj",
-    "permalink": "Gaeq-lamh kaemdaengz",
-    "edit": "gaij",
-    "create": "Laeb",
-    "delete": "Duz",
-    "protect": "Hahdiuz",
-    "protect_change": "gaij",
-    "newpage": "Bienj moq",
-    "talkpage": "Dunjlun yieb neix",
-    "talkpagelinktext": "Daujlun",
-    "personaltools": "Hongdawz bonjfaenh",
-    "talk": "Kwng",
-    "views": "Cazyawj",
-    "toolbox": "Loengx hong",
-    "jumpto": "Diuq bae",
-    "jumptonavigation": "Dazzaeuh",
-    "jumptosearch": "Ra",
-    "aboutsite": "Gvanhyih {{SITENAME}}",
-    "aboutpage": "Project:gvanhyih",
-    "currentevents": "Saehgienh seizneix",
-    "disclaimers": "gangjmingz mienxcwz",
-    "disclaimerpage": "Project:Itbuen mienxcwz",
-    "edithelp": "Caeuq mungz san-zonz",
-    "mainpage": "Yiebdaeuz",
-    "mainpage-description": "Yiebdeauz",
-    "policy-url": "Project:fuengcim",
-    "portal": "Segih",
-    "portal-url": "Project:seqgih",
-    "privacy": "Seiyaem cwngcwz",
-    "privacypage": "Project:Seiyaem cwngcwz",
-    "badaccess": "Loengloek gienzhanh",
-    "badaccess-group0": "Cingjgouz mwngz mbouj haengj ciuqguh.",
-    "badaccess-groups": "Cingjgouz mwngz hanh youq {{PLURAL:$2|neix|gijneix}} bouxyungh: $1",
-    "versionrequired": "Sihyau MediaWiki $1",
-    "versionrequiredtext": "Sihyau MediaWik $1 caengj daeng sawjyungh.",
-    "youhavenewmessages": "Mungz meiz $1($2)。",
-    "editsection": "gaij",
-    "editold": "gaij",
-    "editlink": "gaij",
-    "editsectionhint": "Gaij duenh:$1",
-    "showtoc": "yienh'ok",
-    "hidetoc": "cangz",
-    "nstab-main": "Feanzcieng",
-    "nstab-user": "Yieb bouxsawjyungq",
-    "nstab-project": "Yieb giva",
-    "nstab-image": "Vwnzgen",
-    "nstab-mediawiki": "Siuhsik",
-    "nstab-template": "Mozbanj",
-    "nstab-help": "Yieb bangcoh",
-    "nstab-category": "Faendingz",
-    "viewsource": "Liuq lagh mae-nej",
-    "yourname": "Ciu bouxdeiz:",
-    "yourpassword": "Mizmak:",
-    "login": "Dwnghluz",
-    "nav-login-createaccount": "dwngh haeuj/laebbaen canghu",
-    "userlogin": "Daengh haeuj/Laeb bouxdeiz",
-    "logout": "Doiq ok",
-    "userlogout": "Doiq ok",
-    "notloggedin": "Maengx laezhaej",
-    "nologinlink": "Laeb bouxdeiz",
-    "summary": "Saegmangj:",
-    "minoredit": "Di-nej gaij noix",
-    "watchthis": "Gamyawj yieb neix",
-    "savearticle": "Zonzdiuz mae-nej",
-    "showpreview": "Okqhaej piu-ngoengx",
-    "showdiff": "Okqhaej gaeqgaei",
-    "newarticle": "(Moq)",
-    "editundo": "siu",
-    "searchresults": "gietgoj ra",
-    "searchresults-title": "doiq \"$1\" gij gietgoj ra",
-    "search-interwiki-more": "(more)",
-    "powersearch-legend": "Gauhgiz saeu",
-    "powersearch-redir": "Cungzdinghyiengq liedbiuj",
-    "mypreferences": "Doenghgaeq gou hae",
-    "searchresultshead": "Cwmh",
-    "username": "Ciu bouxdeiz:",
-    "group-user-member": "{{GENDER:$1|Bouxsawjyungq}}",
-    "action-edit": "gaij yieb neix",
-    "recentchanges": "Gaeqgaij seizneix",
-    "diff": "Faenbied",
-    "hide": "Cangz",
-    "show": "Yienh'ok",
-    "minoreditletter": "n",
-    "newpageletter": "M",
-    "boteditletter": "g",
-    "recentchangeslinked": "Lienh ok gaengaij",
-    "upload": "Cienz vwnzgen",
-    "uploadnologin": "Maengx laezhaej",
-    "filedesc": "Saegmangj",
-    "fileuploadsummary": "Saegmangj:",
-    "uploadedimage": "senq cienz \"[[$1]]\"",
-    "watchthisupload": "Demq mae-nej",
-    "listfiles_user": "Bouxyungh",
-    "filehist-current": "seizneix",
-    "filehist-datetime": "Ngoenz/Seizgan",
-    "filehist-user": "Bouxsawjyungh",
-    "filehist-comment": "Gejgangj",
-    "randompage": "Mae zaihzex",
-    "statistics-pages": "Yieb",
-    "nbytes": "$1 {{PLURAL:$1|cihciet|cihciet}}",
-    "newpages": "Yieb moq",
-    "newpages-username": "Ciu bouxdeiz:",
-    "move": "Daen",
-    "movethispage": "Caen mae nej",
-    "booksources-go": "Bae",
-    "log": "Ngoenzceiq",
-    "allpages": "Sojmiz yieb",
-    "allarticles": "Sojmiz yieb",
-    "allpagessubmit": "Bae",
-    "watchlist": "Yieb gou yawj",
-    "mywatchlist": "Gaeq gou demq",
-    "watchnologin": "Maengx laezhaej",
-    "watch": "Demq",
-    "watchthispage": "Demq mae-nej",
-    "watching": "Bawxndu……",
-    "unwatching": "Souma bawxndu……",
-    "prot_1movedto2": "[[$1]] caen bei [[$2]]",
-    "restriction-move": "Caen",
-    "namespace": "ndawhoengq mingzcih:",
-    "blanknamespace": "(Cujyau)",
-    "contributions": "Gaeq bouxdeiz haej",
-    "mycontris": "Gaeq gou haej",
-    "uctop": "(dingz)",
-    "sp-contributions-submit": "Ra",
-    "whatlinkshere": "Maelaez lamh haenznej",
-    "whatlinkshere-page": "Yieb:",
-    "ipblocklist-submit": "Cwmh",
-    "contribslink": "gung'yen",
-    "move-page-legend": "Caen doengh mae",
-    "movearticle": "Caen doengh mae:",
-    "move-watch": "Demq mae-nej",
-    "movepagebtn": "Caen doengh mae",
-    "movereason": "Haujgaemj",
-    "revertmove": "siu",
-    "tooltip-pt-mytalk": "Yieb daujlun mwngz",
-    "tooltip-pt-preferences": "Doenghgaeq gou hae",
-    "tooltip-pt-logout": "Doiq ok",
-    "tooltip-ca-talk": "Gvanhyih cingqfaenz yieb gij daojun",
-    "tooltip-ca-history": "yieb neix gij banj lizsij",
-    "tooltip-ca-move": "Dean yieb neix",
-    "tooltip-search": "Ra {{SITENAME}}",
-    "tooltip-p-logo": "Mae meh",
-    "tooltip-n-mainpage": "Raen Yiebdaeuz",
-    "tooltip-n-randompage": "Cang haeuj yieb seizgih",
-    "tooltip-n-help": "Cimh gouz bangcoh",
-    "tooltip-t-upload": "Cienz vwnzgen",
-    "tooltip-ca-nstab-main": "Cazyawj ndawyungz yieb",
-    "ilsubmit": "Cwmh",
-    "watchlistall2": "cenzbu",
-    "namespacesall": "cenzbu",
-    "monthsall": "cenzbu",
-    "imgmultigo": "Bei!",
-    "table_pager_limit_submit": "Bei",
-    "watchlisttools-view": "Cazyawj gaij mizgven",
-    "specialpages": "Doenghmae daegxsei",
-    "tags-edit": "gaij"
+       "@metadata": {
+               "authors": [
+                       "Biŋhai",
+                       "Hakka"
+               ]
+       },
+       "underline-never": "coengz mbouj swjyungh",
+       "sunday": "Swnggeiz Yaet",
+       "monday": "Swnggeiz Wtx",
+       "tuesday": "Swnggeiz Yeih",
+       "wednesday": "Swnggeiz Sam",
+       "thursday": "Swnggeiz Seiq",
+       "friday": "Swnggeiz Haj",
+       "saturday": "Swnggeiz Lokj",
+       "sun": "Ngoenz",
+       "mon": "It",
+       "tue": "Ngeih",
+       "wed": "Sam",
+       "thu": "Seiq",
+       "fri": "Ngux",
+       "sat": "Loeg",
+       "january": "Nin Wtj",
+       "february": "Nin Yeih",
+       "march": "Nin Sam",
+       "april": "Nin Seiq",
+       "may_long": "Nin Haj",
+       "june": "Nin Loekj",
+       "july": "Nin Caet",
+       "august": "Nin Betq",
+       "september": "Nin Gouj",
+       "october": "Nin Cwbx",
+       "november": "Nin Cwbx Wtj",
+       "december": "Nin Cwbx Yeih",
+       "january-gen": "It nyied",
+       "february-gen": "Ngeih nyied",
+       "march-gen": "Sam nyied",
+       "april-gen": "Seiq nyied",
+       "may-gen": "Nin Haj",
+       "june-gen": "Loeg nyied",
+       "july-gen": "Caet nyied",
+       "august-gen": "Bet nyied",
+       "september-gen": "Nin Gouj",
+       "october-gen": "Cib nyied",
+       "november-gen": "Cibit nyied",
+       "december-gen": "Cibngeih nyied",
+       "jan": "Itnyied",
+       "feb": "Ngeihnyied",
+       "mar": "Samnyied",
+       "apr": "Seiqnyied",
+       "may": "Nguxnyied",
+       "jun": "Loegnyied",
+       "jul": "Caetnyied",
+       "aug": "Batnyied",
+       "sep": "Goujnyied",
+       "oct": "Cibnyied",
+       "nov": "Cib'itnyied",
+       "dec": "Cibngeihnyied",
+       "pagecategories": "{{PLURAL:$1$1 aen|faendingz|faendingz}}",
+       "subcategories": "Faendingz lwgsai",
+       "about": "Gvendaengz",
+       "article": "Banjbienj",
+       "cancel": "Fwtqfex",
+       "mytalk": "Gaeq gou gangj",
+       "navigation": "Dazzaeuh",
+       "qbfind": "Ra",
+       "qbedit": "Gaij",
+       "qbmyoptions": "Yieb gou",
+       "faq": "Cam caeuq dap",
+       "faqpage": "Project:Cam caeuq dap",
+       "errorpagetitle": "Loengloek",
+       "tagline": "okcih {{SITENAME}}",
+       "help": "Bangcoh",
+       "search": "Cwmh",
+       "searchbutton": "Cwmh",
+       "go": "Bae",
+       "searcharticle": "Bae",
+       "history": "Lizsij",
+       "history_short": "Lizsij",
+       "printableversion": "Gojyaenq banj",
+       "permalink": "Gaeq-lamh kaemdaengz",
+       "edit": "gaij",
+       "create": "Laeb",
+       "delete": "Duz",
+       "protect": "Hahdiuz",
+       "protect_change": "gaij",
+       "newpage": "Bienj moq",
+       "talkpage": "Dunjlun yieb neix",
+       "talkpagelinktext": "Daujlun",
+       "personaltools": "Hongdawz bonjfaenh",
+       "talk": "Kwng",
+       "views": "Cazyawj",
+       "toolbox": "Loengx hong",
+       "jumpto": "Diuq bae",
+       "jumptonavigation": "Dazzaeuh",
+       "jumptosearch": "Ra",
+       "aboutsite": "Gvanhyih {{SITENAME}}",
+       "aboutpage": "Project:gvanhyih",
+       "currentevents": "Saehgienh seizneix",
+       "disclaimers": "gangjmingz mienxcwz",
+       "disclaimerpage": "Project:Itbuen mienxcwz",
+       "edithelp": "Caeuq mungz san-zonz",
+       "mainpage": "Yiebdaeuz",
+       "mainpage-description": "Yiebdeauz",
+       "policy-url": "Project:fuengcim",
+       "portal": "Segih",
+       "portal-url": "Project:seqgih",
+       "privacy": "Seiyaem cwngcwz",
+       "privacypage": "Project:Seiyaem cwngcwz",
+       "badaccess": "Loengloek gienzhanh",
+       "badaccess-group0": "Cingjgouz mwngz mbouj haengj ciuqguh.",
+       "badaccess-groups": "Cingjgouz mwngz hanh youq {{PLURAL:$2|neix|gijneix}} bouxyungh: $1",
+       "versionrequired": "Sihyau MediaWiki $1",
+       "versionrequiredtext": "Sihyau MediaWik $1 caengj daeng sawjyungh.",
+       "youhavenewmessages": "Mungz meiz $1($2)。",
+       "editsection": "gaij",
+       "editold": "gaij",
+       "editlink": "gaij",
+       "editsectionhint": "Gaij duenh:$1",
+       "showtoc": "yienh'ok",
+       "hidetoc": "cangz",
+       "nstab-main": "Feanzcieng",
+       "nstab-user": "Yieb bouxsawjyungq",
+       "nstab-project": "Yieb giva",
+       "nstab-image": "Vwnzgen",
+       "nstab-mediawiki": "Siuhsik",
+       "nstab-template": "Mozbanj",
+       "nstab-help": "Yieb bangcoh",
+       "nstab-category": "Faendingz",
+       "viewsource": "Liuq lagh mae-nej",
+       "yourname": "Ciu bouxdeiz:",
+       "yourpassword": "Mizmak:",
+       "login": "Dwnghluz",
+       "nav-login-createaccount": "dwngh haeuj/laebbaen canghu",
+       "userlogin": "Daengh haeuj/Laeb bouxdeiz",
+       "logout": "Doiq ok",
+       "userlogout": "Doiq ok",
+       "notloggedin": "Maengx laezhaej",
+       "nologinlink": "Laeb bouxdeiz",
+       "summary": "Saegmangj:",
+       "minoredit": "Di-nej gaij noix",
+       "watchthis": "Gamyawj yieb neix",
+       "savearticle": "Zonzdiuz mae-nej",
+       "showpreview": "Okqhaej piu-ngoengx",
+       "showdiff": "Okqhaej gaeqgaei",
+       "newarticle": "(Moq)",
+       "editundo": "siu",
+       "searchresults": "gietgoj ra",
+       "searchresults-title": "doiq \"$1\" gij gietgoj ra",
+       "search-interwiki-more": "(more)",
+       "powersearch-legend": "Gauhgiz saeu",
+       "mypreferences": "Doenghgaeq gou hae",
+       "searchresultshead": "Cwmh",
+       "username": "Ciu bouxdeiz:",
+       "group-user-member": "{{GENDER:$1|Bouxsawjyungq}}",
+       "action-edit": "gaij yieb neix",
+       "recentchanges": "Gaeqgaij seizneix",
+       "diff": "Faenbied",
+       "hide": "Cangz",
+       "show": "Yienh'ok",
+       "minoreditletter": "n",
+       "newpageletter": "M",
+       "boteditletter": "g",
+       "recentchangeslinked": "Lienh ok gaengaij",
+       "upload": "Cienz vwnzgen",
+       "uploadnologin": "Maengx laezhaej",
+       "filedesc": "Saegmangj",
+       "fileuploadsummary": "Saegmangj:",
+       "watchthisupload": "Demq mae-nej",
+       "listfiles_user": "Bouxyungh",
+       "filehist-current": "seizneix",
+       "filehist-datetime": "Ngoenz/Seizgan",
+       "filehist-user": "Bouxsawjyungh",
+       "filehist-comment": "Gejgangj",
+       "randompage": "Mae zaihzex",
+       "statistics-pages": "Yieb",
+       "nbytes": "$1 {{PLURAL:$1|cihciet|cihciet}}",
+       "newpages": "Yieb moq",
+       "newpages-username": "Ciu bouxdeiz:",
+       "move": "Daen",
+       "movethispage": "Caen mae nej",
+       "log": "Ngoenzceiq",
+       "allpages": "Sojmiz yieb",
+       "allarticles": "Sojmiz yieb",
+       "allpagessubmit": "Bae",
+       "watchlist": "Yieb gou yawj",
+       "mywatchlist": "Gaeq gou demq",
+       "watchnologin": "Maengx laezhaej",
+       "watch": "Demq",
+       "watchthispage": "Demq mae-nej",
+       "watching": "Bawxndu……",
+       "unwatching": "Souma bawxndu……",
+       "prot_1movedto2": "[[$1]] caen bei [[$2]]",
+       "restriction-move": "Caen",
+       "namespace": "ndawhoengq mingzcih:",
+       "blanknamespace": "(Cujyau)",
+       "contributions": "Gaeq bouxdeiz haej",
+       "mycontris": "Gaeq gou haej",
+       "uctop": "(dingz)",
+       "sp-contributions-submit": "Ra",
+       "whatlinkshere": "Maelaez lamh haenznej",
+       "whatlinkshere-page": "Yieb:",
+       "ipblocklist-submit": "Cwmh",
+       "contribslink": "gung'yen",
+       "move-page-legend": "Caen doengh mae",
+       "movearticle": "Caen doengh mae:",
+       "move-watch": "Demq mae-nej",
+       "movepagebtn": "Caen doengh mae",
+       "movereason": "Haujgaemj",
+       "revertmove": "siu",
+       "tooltip-pt-mytalk": "Yieb daujlun mwngz",
+       "tooltip-pt-preferences": "Doenghgaeq gou hae",
+       "tooltip-pt-logout": "Doiq ok",
+       "tooltip-ca-talk": "Gvanhyih cingqfaenz yieb gij daojun",
+       "tooltip-ca-history": "yieb neix gij banj lizsij",
+       "tooltip-ca-move": "Dean yieb neix",
+       "tooltip-search": "Ra {{SITENAME}}",
+       "tooltip-p-logo": "Mae meh",
+       "tooltip-n-mainpage": "Raen Yiebdaeuz",
+       "tooltip-n-randompage": "Cang haeuj yieb seizgih",
+       "tooltip-n-help": "Cimh gouz bangcoh",
+       "tooltip-t-upload": "Cienz vwnzgen",
+       "tooltip-ca-nstab-main": "Cazyawj ndawyungz yieb",
+       "ilsubmit": "Cwmh",
+       "namespacesall": "cenzbu",
+       "monthsall": "cenzbu",
+       "imgmultigo": "Bei!",
+       "table_pager_limit_submit": "Bei",
+       "watchlisttools-view": "Cazyawj gaij mizgven",
+       "specialpages": "Doenghmae daegxsei",
+       "tags-edit": "gaij"
 }
index 524ae7d..42d4ba1 100644 (file)
        "templatesusedpreview": "Sjabloon'n gebruukt in deêze voevertoônieng:",
        "templatesusedsection": "Sjabloon'n die an gebruukt worn in deêze subkop:",
        "template-protected": "(beveiligd)",
-       "template-semiprotected": "(semi-beveiligd)",
+       "template-semiprotected": "(semibeveiligd)",
        "hiddencategories": "Deêze pagina val in de volhende verborhen {{PLURAL:$1|categorie|categorieën}}:",
        "nocreatetext": "{{SITENAME}} ei de meuhlijkeid om nieuwe pagina's an te maeken beperkt.\nJe kan a bestaende pagina's wiezigen, of je kan [[Special:UserLogin|jen eihen anmelden of een gebruker  anmaeken]].",
        "nocreate-loggedin": "Je kan hin nieuwe pagina's anmaeken.",
        "mergehistory-autocomment": "[[:$1]] saemenevoegd ni [[:$2]]",
        "mergehistory-comment": "[[:$1]] saemenevoegd ni [[:$2]]: $3",
        "mergelog": "Saemenvoehiengslogboek",
-       "pagemerge-logentry": "voehen [[$1]] ni [[$2]] saemen (versies tot en met $3)",
        "revertmerge": "Saemenvoehieng onhedaen maeken",
        "mergelogpagetext": "Ieronder zie je een lieste van recente saemenvoehiengen van een paginaheschiedenisse ni een aorn.",
        "history-title": "Heschiedenisse van \"$1\"",
index b81a322..78f36cd 100644 (file)
        "category_header": "分类“$1”中的页面",
        "subcategories": "子分类",
        "category-media-header": "分类“$1”中的媒体文件",
-       "category-empty": "<em>本分类目前没有包含页面或媒体文件。</em>",
-       "hidden-categories": "{{PLURAL:$1|隐藏分类|$1个隐藏分类}}",
+       "category-empty": "<em>本分类目前没有包含任何页面或媒体文件。</em>",
+       "hidden-categories": "{{PLURAL:$1|隐藏分类}}",
        "hidden-category-category": "隐藏分类",
        "category-subcat-count": "{{PLURAL:$2|本分类只有以下子分类。|本分类有以下$1个子分类,共有$2个子分类。}}",
        "category-subcat-count-limited": "本分类有以下{{PLURAL:$1|子分类|$1个子分类}}。",
        "listingcontinuesabbrev": "续",
        "index-category": "已索引页面",
        "noindex-category": "不可索引页面",
-       "broken-file-category": "有受损文件链接的页面",
+       "broken-file-category": "有受损文件链接的页面",
        "categoryviewer-pagedlinks": "($1)($2)",
        "about": "关于",
        "article": "内容页面",
        "variants": "变种",
        "navigation-heading": "导航菜单",
        "errorpagetitle": "错误",
-       "returnto": "返回$1。",
+       "returnto": "返回$1。",
        "tagline": "来自{{SITENAME}}",
        "help": "帮助",
        "search": "搜索",
        "jumpto": "跳转至:",
        "jumptonavigation": "导航",
        "jumptosearch": "搜索",
-       "view-pool-error": "对不起,服务器当前正超负荷运转。过多用户正尝试查看本页面。请在再次尝试访问本页面前稍等片刻。\n\n$1",
-       "generic-pool-error": "对不起,服务器目前超负荷运转。太多用户尝试查看本页面。请稍等片刻再重新尝试。",
+       "view-pool-error": "对不起,服务器当前正超负荷运转。正在尝试查看本页面的用户过多。在重新尝试访问本页面之前,请您稍等片刻。\n\n$1",
+       "generic-pool-error": "对不起,服务器当前正超负荷运转。正在尝试查看本资源的用户过多。在重新尝试访问本资源之前,请您稍等片刻。",
        "pool-timeout": "等待锁超时",
        "pool-queuefull": "请求队列已满",
        "pool-errorunknown": "未知错误",
        "aboutsite": "关于{{SITENAME}}",
        "aboutpage": "Project:关于",
        "copyright": "除非另有声明,本网站内容采用$1授权。",
-       "copyrightpage": "{{ns:project}}:著作权",
+       "copyrightpage": "{{ns:project}}:权",
        "currentevents": "新闻动态",
        "currentevents-url": "Project:新闻动态",
        "disclaimers": "免责声明",
        "mainpage": "首页",
        "mainpage-description": "首页",
        "policy-url": "Project:方针",
-       "portal": "社区主页",
-       "portal-url": "Project:社区专页",
+       "portal": "社区门户",
+       "portal-url": "Project:社区门户",
        "privacy": "隐私政策",
        "privacypage": "Project:隐私权政策",
        "badaccess": "权限错误",
-       "badaccess-group0": "你被ç¦\81æ­¢æ\89§è¡\8cä½ å\88\9aæ\89\8d请求的操作。",
-       "badaccess-groups": "您请求的操作仅限属于{{PLURAL:$2|该用户组|这些用户组}}的用户执行:$1",
+       "badaccess-group0": "ä¸\8då\85\81许æ\82¨æ\89§è¡\8cæ\82¨æ\89\80请求的操作。",
+       "badaccess-groups": "您所请求的操作仅限于{{PLURAL:$2|该|这些}}用户组的用户使用:$1",
        "versionrequired": "需要$1版本的MediaWiki",
-       "versionrequiredtext": "使用本页需要$1版本的MediaWiki。请见[[Special:Version|版本页面]]。",
+       "versionrequiredtext": "使用本页需要$1版本的MediaWiki。请见[[Special:Version|版本页面]]。",
        "ok": "确定",
        "backlinksubtitle": "←$1",
        "retrievedfrom": "取自“$1”",
        "viewsourceold": "查看源代码",
        "editlink": "编辑",
        "viewsourcelink": "查看源代码",
-       "editsectionhint": "编辑段落:$1",
+       "editsectionhint": "编辑小节:$1",
        "toc": "目录",
        "showtoc": "显示",
        "hidetoc": "隐藏",
        "nstab-special": "特殊页面",
        "nstab-project": "项目页面",
        "nstab-image": "文件",
-       "nstab-mediawiki": "息",
+       "nstab-mediawiki": "息",
        "nstab-template": "模板",
        "nstab-help": "帮助页面",
        "nstab-category": "分类",
-       "nosuchaction": "无该命令",
-       "nosuchactiontext": "URLæ\8c\87å®\9aç\9a\84æ\93\8dä½\9cæ\97 æ\95\88ã\80\82ä½ å\8f¯è\83½è¾\93å\85¥äº\86é\94\99误ç\9a\84URLå\9c°å\9d\80ï¼\8cæ\88\96æ\98¯ç\82¹å\87»äº\86é\94\99误ç\9a\84é\93¾æ\8e¥ã\80\82è¿\99ä¹\9få\8f¯è\83½è¡¨æ\98\8e{{SITENAME}}使ç\94¨ç\9a\84软件ç\9a\84å­\98å\9c¨æ¼\8fæ´\9eï¼\88bugï¼\89。",
+       "nosuchaction": "无此操作",
+       "nosuchactiontext": "URLæ\89\80æ\8c\87å®\9aç\9a\84æ\93\8dä½\9cæ\97 æ\95\88ã\80\82ä½ æ\89\80è¾\93å\85¥ç\9a\84URLå\9c°å\9d\80å\8f¯è\83½æ\9c\89误ï¼\8cæ\88\96æ\98¯ä½¿ç\94¨äº\86é\94\99误ç\9a\84é\93¾æ\8e¥ã\80\82è¿\99ä¹\9få\8f¯è\83½è¡¨ç¤º{{SITENAME}}æ\89\80使ç\94¨è½¯ä»¶ä¹\8b中å­\98å\9c¨æ¼\8fæ´\9e。",
        "nosuchspecialpage": "此特殊页面不存在",
-       "nospecialpagetext": "<strong>您请求了一个无效的特殊页面。</strong>\n\n有效的特殊页面的列表可以在[[Special:SpecialPages|{{int:specialpages}}]]找到。",
-       "error": "出错",
+       "nospecialpagetext": "<strong>您请求了一个无效的特殊页面。</strong>\n\n在[[Special:SpecialPages|{{int:specialpages}}]可以]找到有效的特殊页面的列表。",
+       "error": "错误",
        "databaseerror": "数据库错误",
-       "databaseerror-text": "数据库查询出错。这可能表明软件中存在漏洞(bug)。",
-       "databaseerror-textcl": "数据库查询出错。",
+       "databaseerror-text": "出现数据库查询错误。这可能表示软件中存在漏洞。",
+       "databaseerror-textcl": "出现数据库查询错误。",
        "databaseerror-query": "查询:$1",
        "databaseerror-function": "函数:$1",
-       "databaseerror-error": "出错:$1",
-       "laggedslavemode": "'''警告:'''页面可能没有包含最近的更新。",
-       "readonly": "数据库锁定",
-       "enterlockreason": "请输入锁定的原因(包括预计解锁的时间)",
-       "readonlytext": "数据库当前被锁定,不能添加新条目或进行其他修改,锁定可能是因为例行的数据库维护,完成后即可恢复正常。\n\n锁定数据库的管理员提供的解释:$1",
+       "databaseerror-error": "错误:$1",
+       "laggedslavemode": "'''警告:'''页面可能没有包含最近的更新。",
+       "readonly": "数据库锁定",
+       "enterlockreason": "请输入锁定原因,包括预计解锁的时间",
+       "readonlytext": "数据库当前被锁定,不能添加新条目或进行其他修改,锁定可能是因为例行的数据库维护,完成后即可恢复正常。\n\n锁定数据库的管理员提供的解释:$1",
        "missing-article": "数据库找不到预期的页面文字:“$1”$2。\n\n这通常是由于点击了链向旧有差异或历史的链接,而原有版本已被删除导致的。\n\n如果情况不是这样,您可能找到了软件的一个内部错误。请记录下URL地址,并向[[Special:ListUsers/sysop|管理员]]报告。",
        "missingarticle-rev": "(版本#:$1)",
        "missingarticle-diff": "(差异:$1,$2)",
        "viewsourcetext": "您可以查看并复制此页面的源代码:",
        "viewyourtext": "您可以查看并复制<strong>您对此页面作出编辑后</strong>的源代码:",
        "protectedinterface": "该页提供此wiki软件的界面文字,它已被保护以防止恶意修改。\n如欲修改所有wiki的翻译,请到[//translatewiki.net/ translatewiki.net]上的MediaWiki本地化计划。",
-       "editinginterface": "'''警告:'''您正在编辑的页面是用于提供软件的界面文字。\n改变此页将影响其他在此wiki上的用户界面外观。\n如欲修改所有wiki的翻译,请到[//translatewiki.net/ translatewiki.net]上的MediaWiki本地化计划。",
+       "editinginterface": "<strong>警告:</strong>您正在编辑用于提供软件的界面文字的页面。改变此页将影响其他在此wiki上其他用户的用户界面外观。",
+       "translateinterface": "要加入或更改所有wiki的翻译,请访问MediaWiki本地化项目网站[//translatewiki.net/ translatewiki.net]。",
        "cascadeprotected": "本页面已经受到保护,不能编辑,因为它包含于以下被“连锁保护”的{{PLURAL:$1|页面}}:\n$2",
        "namespaceprotected": "您没有权限编辑'''$1'''名字空间内的页面。",
        "customcssprotected": "您没有权限编辑此CSS页面,因为它包含另一位用户的个人设置。",
        "passwordreset-capture-help": "如果您选中此框,电子邮件(包括临时密码)将显示,并发送给用户。",
        "passwordreset-email": "电子邮件地址:",
        "passwordreset-emailtitle": "在 {{SITENAME}} 的帐户详细信息",
-       "passwordreset-emailtext-ip": "有人(可能是您,来自IP地址$1)请求重设{{SITENAME}}($4)上相关账户的密码。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:\n\n$2\n\n这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。",
+       "passwordreset-emailtext-ip": "有人(可能是您,来自IP地址$1)请求重设{{SITENAME}}($4)上相关账户的密码。以下$3个账户与该电子邮件地址关联:\n\n$2\n\n这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。",
        "passwordreset-emailtext-user": "用户$1请求重设{{SITENAME}}($4)上您的账户的密码。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:\n\n$2\n\n这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。",
        "passwordreset-emailelement": "用户名:$1\n临时密码:$2",
        "passwordreset-emailsent": "密码重置邮件已发送。",
        "content-model-text": "纯文本",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "调用重复模板参数的页面",
+       "duplicate-args-category-desc": "页面包含使用重复参数的模板调用,例如<code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>或<code><nowiki>{{foo|bar|1=baz}}</nowiki></code>。",
        "expensive-parserfunction-warning": "<strong>警告:</strong>这个页面有太多高昂的语法功能调用。\n\n它应该少过$2次呼叫,现在有$1次呼叫。",
-       "expensive-parserfunction-category": "有过多高开销解析器函数调用的页面",
+       "expensive-parserfunction-category": "页面中有太多耗费的语法功能呼叫",
        "post-expand-template-inclusion-warning": "'''警告:'''包含模板大小过大。\n一些模板将不会包含。",
        "post-expand-template-inclusion-category": "模板包含上限已经超过的页面",
        "post-expand-template-argument-warning": "<strong>警告:</strong>本页面包含至少一个模板参数有过大扩展大小。这些参数会被略过。",
        "parser-template-loop-warning": "检查到模板循环:[[$1]]",
        "parser-template-recursion-depth-warning": "模板递归深度越限($1)",
        "language-converter-depth-warning": "字词转换器深度越限($1)",
-       "node-count-exceeded-category": "节点数超限的页面",
+       "node-count-exceeded-category": "页面的节点数超出限制",
        "node-count-exceeded-category-desc": "页面超出最大节点数限制。",
        "node-count-exceeded-warning": "页面超出节点数限制",
-       "expansion-depth-exceeded-category": "展开深度超限的页面",
+       "expansion-depth-exceeded-category": "扩展深度超出限制的页面",
        "expansion-depth-exceeded-category-desc": "页面超出最大展开深度限制。",
        "expansion-depth-exceeded-warning": "页面超出展开深度限制",
        "parser-unstrip-loop-warning": "检测到回圈",
        "mergehistory-same-destination": "来源页面与目的页面不可以相同",
        "mergehistory-reason": "原因:",
        "mergelog": "合并日志",
-       "pagemerge-logentry": "合并[[$1]]至[[$2]](版本截至$3)",
        "revertmerge": "解除合并",
        "mergelogpagetext": "下面是最近的页面历史合并的列表。",
        "history-title": "“$1”的版本历史",
        "search-result-category-size": "$1个成员($2个子分类,$3个文件)",
        "search-redirect": "(重定向自“$1”)",
        "search-section": "(“$1”段落)",
+       "search-category": "(分类$1)",
        "search-file-match": "(匹配文件内容)",
        "search-suggest": "您是不是要找:$1",
        "search-interwiki-caption": "姊妹项目",
        "gender-female": "她",
        "prefs-help-gender": "该设置为可选项。软件根据该值在称呼您及对他人提及您时使用适当的语法性别。该信息会被公开。",
        "email": "电子邮件",
-       "prefs-help-realname": "真实姓名是选填项目。如果你选择提供它,它将会用于贡献署名。",
+       "prefs-help-realname": "真实姓名是选填项目。如果提供,它可能用于署名您的贡献。",
        "prefs-help-email": "电子邮件地址是选填项,但是当你忘记你的密码要重置密码时,需要该信息。",
        "prefs-help-email-others": "您也可以选择让其他用户通过您的用户或讨论页面上的链接用电子邮件联系您。其他用户联系您时您的电子邮件地址不会显示。",
        "prefs-help-email-required": "电子邮件地址是必填项目。",
        "action-userrights": "编辑所有用户的权限",
        "action-userrights-interwiki": "编辑其他wiki用户的用户权限",
        "action-siteadmin": "锁定或解锁数据库",
-       "action-sendemail": "电邮联系其他用户",
+       "action-sendemail": "发送电子邮件",
        "action-editmywatchlist": "编辑你的监视列表",
        "action-viewmywatchlist": "查看你的监视列表",
        "action-viewmyprivateinfo": "查看您的私人信息",
        "statistics": "统计",
        "statistics-header-pages": "页面统计",
        "statistics-header-edits": "编辑统计",
-       "statistics-header-views": "查看统计",
        "statistics-header-users": "用户统计",
        "statistics-header-hooks": "其它统计",
        "statistics-articles": "内容页面",
        "statistics-files": "上传的文件",
        "statistics-edits": "自{{SITENAME}}建立以来的页面编辑数",
        "statistics-edits-average": "每页平均编辑数",
-       "statistics-views-total": "查看总数",
-       "statistics-views-total-desc": "不存在页面和特殊页面的查看数未计入",
-       "statistics-views-peredit": "每编辑查看数",
        "statistics-users": "注册[[Special:ListUsers|用户]]",
        "statistics-users-active": "活跃用户",
        "statistics-users-active-desc": "在过去{{PLURAL:$1|$1天}}执行过操作的用户",
-       "statistics-mostpopular": "最多查看页面",
        "pageswithprop": "有页面属性的页面",
        "pageswithprop-legend": "有页面属性的页面",
        "pageswithprop-text": "本页面列出使用特定页面属性的页面。",
        "uncategorizedtemplates": "未归类模板",
        "unusedcategories": "未使用分类",
        "unusedimages": "未使用文件",
-       "popularpages": "热门页面",
        "wantedcategories": "需要的分类",
        "wantedpages": "需要的页面",
        "wantedpages-badtitle": "在结果组上的无效标题:$1",
        "pager-older-n": "后$1个",
        "suppress": "监督",
        "querypage-disabled": "本特殊页面因性能问题而停用。",
+       "apihelp": "API 帮助",
+       "apihelp-no-such-module": "找不到模块“$1”。",
        "booksources": "网络书源",
        "booksources-search-legend": "搜索图书来源",
        "booksources-isbn": "ISBN:",
        "listusers-blocked": "(已封禁)",
        "activeusers": "活跃用户列表",
        "activeusers-intro": "这是在过去$1{{PLURAL:$1|天}}有过某种活动的用户的列表。",
-       "activeusers-count": "过去{{PLURAL:$3|$3天}}有$1个{{PLURAL:$1|操作}}",
+       "activeusers-count": "过去$3天有$1次操作",
        "activeusers-from": "显示用户开始于:",
        "activeusers-hidebots": "隐藏机器人",
        "activeusers-hidesysops": "隐藏管理员",
        "trackingcategories-msg": "追踪分类",
        "trackingcategories-name": "信息名",
        "trackingcategories-desc": "分类收录标准",
-       "noindex-category-desc": "因为页面上有魔术字<code><nowiki>__NOINDEX__</nowiki></code>并位于允许该标记的名字空间,而不被网络爬虫索引的页面。",
-       "index-category-desc": "页面上有魔术字<code><nowiki>__INDEX__</nowiki></code>(并位于允许该标记的名字空间),并因此被网络爬虫索引(这些页面通常不会被索引)。",
+       "noindex-category-desc": "因为页面上有魔术字<code><nowiki>__NOINDEX__</nowiki></code>并位于允许该标记的名字空间,而不被机器人索引的页面。",
+       "index-category-desc": "页面上有魔术字<code><nowiki>__INDEX__</nowiki></code>(并位于允许该标记的名字空间),并因此被机器人索引,但通常不应被索引。",
        "post-expand-template-inclusion-category-desc": "在展开所有模板后,页面大小大于<code>$wgMaxArticleSize</code>,所以某些模板未展开。",
        "post-expand-template-argument-category-desc": "在展开模板参数(以三对花括号包含的东西,如<code>{{{Foo}}}</code>)后,页面大于<code>$wgMaxArticleSize</code>。",
        "expensive-parserfunction-category-desc": "页面使用过多高开销解析器函数(如<code>#ifexist</code>)。请见[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit MediaWiki官网手册]。",
        "importlogpagetext": "管理性导入在其他wiki上有编辑历史的页面。",
        "import-logentry-upload": "通过文件上传导入[[$1]]",
        "import-logentry-upload-detail": "导入$1个{{PLURAL:$1|版本}}",
-       "import-logentry-interwiki": "跨wiki页面$1",
-       "import-logentry-interwiki-detail": "导入自$2的$1个{{PLURAL:$1|版本}}",
+       "import-logentry-interwiki": "跨wiki导入页面$1",
+       "import-logentry-interwiki-detail": "来自$2的$1个{{PLURAL:$1|版本}}已导入",
        "javascripttest": "JavaScript测试",
        "javascripttest-title": "运行$1测试",
        "javascripttest-pagetext-noframework": "本页面被保留进行JavaScript测试。",
        "tooltip-pt-mycontris": "你的贡献的列表",
        "tooltip-pt-login": "我们鼓励您登录,不过这不是强制的",
        "tooltip-pt-logout": "退出登录",
+       "tooltip-pt-createaccount": "我们鼓励您创建一个账户并登录;然而这不是强制的",
        "tooltip-ca-talk": "关于内容页面的讨论",
        "tooltip-ca-edit": "你可以编辑本页面。请在保存前使用预览按钮",
        "tooltip-ca-addsection": "开始新段落",
        "tooltip-feed-atom": "本页面的Atom源",
        "tooltip-t-contributions": "该用户的贡献的列表",
        "tooltip-t-emailuser": "给该用户发送电子邮件",
+       "tooltip-t-info": "关于此页面的更多信息",
        "tooltip-t-upload": "上传文件",
        "tooltip-t-specialpages": "所有特殊页面的列表",
        "tooltip-t-print": "本页面的可打印版本",
        "pageinfo-robot-policy": "爬虫索引",
        "pageinfo-robot-index": "允许",
        "pageinfo-robot-noindex": "不允许",
-       "pageinfo-views": "查看数",
        "pageinfo-watchers": "页面监视者数",
        "pageinfo-few-watchers": "少于$1个监视者",
        "pageinfo-redirects-name": "至该页面的重定向数",
        "unknown_extension_tag": "未知扩展标签“$1”",
        "duplicate-defaultsort": "'''警告:'''默认排序关键词“$2”覆盖了之前的默认排序关键词“$1”。",
        "duplicate-displaytitle": "<strong>警告:</strong>显示的标题“$2”重写了此前显示的标题“$1”。",
+       "invalid-indicator-name": "<strong>错误:</strong>页面状态指示器的<code>name</code>属性必须不为空。",
        "version": "版本",
        "version-extensions": "安装的扩展程序",
        "version-skins": "已安装皮肤",
        "revdelete-uname-unhid": "公开用户名",
        "revdelete-restricted": "应用对管理员的限制",
        "revdelete-unrestricted": "删除对管理员的限制",
+       "logentry-merge-merge": "$1将$3{{GENDER:$2|合并}}至$4(修订版本至$5)",
        "logentry-move-move": "$1{{GENDER:$2|移动}}页面$3至$4",
        "logentry-move-move-noredirect": "$1{{GENDER:$2|移动}}页面$3至$4,不留重定向",
        "logentry-move-move_redir": "$1{{GENDER:$2|移动}}页面$3至$4覆盖重定向",
        "api-error-stashfailed": "内部错误:服务器保存临时文件失败。",
        "api-error-publishfailed": "内部错误:服务器发布临时文件失败。",
        "api-error-stasherror": "上传文件存档时出现错误。",
+       "api-error-stashedfilenotfound": "试图从藏匿处上传时找不到藏匿的文件。",
+       "api-error-stashpathinvalid": "找到的藏匿文件的路径是无效的。",
+       "api-error-stashfilestorage": "存储文件至藏匿处时出错。",
+       "api-error-stashzerolength": "服务器不能藏匿文件,因为它已经没有藏匿空间。",
+       "api-error-stashnotloggedin": "您必须登录以保存文件至上传藏匿处。",
+       "api-error-stashwrongowner": "您试图在藏匿处访问的文件不属于您。",
+       "api-error-stashnosuchfilekey": "您试图在藏匿处访问的文件密钥不存在。",
        "api-error-timeout": "服务器没有在预期内响应。",
        "api-error-unclassified": "出现未知错误。",
        "api-error-unknown-code": "未知错误:$1",
        "log-description-pagelang": "这是页面语言更改的日志。",
        "logentry-pagelang-pagelang": "$1{{GENDER:$2|更改}}$3的页面语言:从$4改为$5。",
        "default-skin-not-found": "天哪!您在<code dir=\"ltr\">$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。您的安装版本看起来需要包含以下皮肤。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。\n\n$2\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的。希望如此。尝试通过以下方法从[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。\n\n; 如果您升级了您的MediaWiki的话:\n: MediaWiki 1.24版本起不再自动启用已安装皮肤(参见[https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 此手册])。您可复制粘贴以下文本至您wiki的<code>LocalSettings.php</code>以启用安装的皮肤:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 如果您已经修改了<code>LocalSettings.php</code>:\n: 请再次检查皮肤名以确保不存在错误拼写。",
-       "default-skin-not-found-no-skins": "天哪!您在<code>$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。而且您没有安装任何皮肤。\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的。希望如此。尝试通过以下方法从[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。",
+       "default-skin-not-found-no-skins": "天哪!您在<code>$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。而且您没有安装任何皮肤。\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的,这是预期的。这是因为MediaWiki 1.24版本起主代码库不再包含任何皮肤。尝试通过以下方法从[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2(已启用)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2('''已禁用''')",
        "mediastatistics": "媒体统计",
        "mediastatistics-summary": "有关上传文件类型的统计。这只包含文件的最新版本,旧版本或删除版本则不会包括。",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1字节}}($2;$3%)",
        "mediastatistics-table-mimetype": "MIME类型",
-       "mediastatistics-table-extensions": "可能的扩展",
+       "mediastatistics-table-extensions": "可用扩展名",
        "mediastatistics-table-count": "文件数",
        "mediastatistics-table-totalbytes": "组合尺寸",
        "mediastatistics-header-unknown": "未知",
index b3afe53..02ddab5 100644 (file)
                        "EagerLin"
                ]
        },
-       "tog-underline": "連結顯示底線:",
-       "tog-hideminor": "隱藏最近變更以來的小編輯",
-       "tog-hidepatrolled": "隱藏最近變更中巡查過的編輯",
+       "tog-underline": "底線標示連結:",
+       "tog-hideminor": "隱藏近期變更以來的小編輯",
+       "tog-hidepatrolled": "隱藏近期變更中巡查過的編輯",
        "tog-newpageshidepatrolled": "隱藏新頁面清單中巡查過的頁面",
        "tog-extendwatchlist": "展開監視清單顯示包含最近以外的所有變更",
-       "tog-usenewrc": "依最近變更與監視清單頁面分類顯示變更",
+       "tog-usenewrc": "依近期變更與監視清單頁面分類顯示變更",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
        "tog-editondblclick": "開啟滑鼠雙擊編輯頁面",
@@ -86,7 +86,7 @@
        "tog-shownumberswatching": "顯示正在監視的使用者數",
        "tog-oldsig": "現有簽名:",
        "tog-fancysig": "將簽名視為 Wikitext 語言 (不自動產生連結)",
-       "tog-uselivepreview": "使用即時預覽 (測試中)",
+       "tog-uselivepreview": "使用即時預覽 (實驗中)",
        "tog-forceeditsummary": "未填寫編輯摘要時提示我",
        "tog-watchlisthideown": "隱藏監視清單中我自己的編輯",
        "tog-watchlisthidebots": "隱藏監視清單中機器人的編輯",
        "aboutsite": "關於 {{SITENAME}}",
        "aboutpage": "Project:About",
        "copyright": "除非額外說明,否則本站內容均使用 $1 授權條款。",
-       "copyrightpage": "{{ns:project}}:Copyrights",
+       "copyrightpage": "{{ns:project}}:版權",
        "currentevents": "最新動態",
        "currentevents-url": "Project:Current events",
        "disclaimers": "免責聲明",
        "viewsourcetext": "您可以檢視並複製此頁面的原始碼。",
        "viewyourtext": "您可以檢視並複製此頁面中<strong>您編輯</strong>的原始碼:",
        "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
-       "editinginterface": "<strong>警告:</strong>您正在編輯的頁面是用來提供軟體介面上的文字。\n更改此頁將影響其他在此 Wiki 上的使用者介面外觀。\n如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的 MediaWiki 在地化專案。",
+       "editinginterface": "<strong>警告:</strong>您正在編輯的頁面是用來提供軟體介面上的文字。\n更改此頁將影響其他在此 Wiki 上的使用者介面外觀。",
+       "translateinterface": "如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的 MediaWiki 在地化專案。",
        "cascadeprotected": "此頁面被保護無法編輯,因為此頁面被以下開啟 \"連鎖保護\" 選項的{{PLURAL:$1|一頁|數頁}}保護頁面引用:\n$2",
        "namespaceprotected": "您沒有權限編輯 <strong>$1</strong> 命名空間的頁面。",
        "customcssprotected": "您並沒有權限編輯此 CSS 頁面,因為此頁面包含了其他使用者的個人設定。",
        "createacct-another-submit": "建立另一個帳號",
        "createacct-benefit-heading": "{{SITENAME}} 是由像您一樣貢獻的人所建立的。",
        "createacct-benefit-body1": " {{PLURAL:$1|次編輯}}",
-       "createacct-benefit-body2": " $1 頁",
+       "createacct-benefit-body2": "$1 頁",
        "createacct-benefit-body3": " 位最近的{{PLURAL:$1|貢獻者}}",
        "badretype": "兩次輸入的密碼並不相同。",
        "userexists": "您所輸入的使用者名稱已存在,請另選一個名稱。",
        "userpage-userdoesnotexist": "使用者帳號 \"$1\" 尚未註冊。\n若您要建立/編輯此頁面,請先檢查是否正確。",
        "userpage-userdoesnotexist-view": "使用者帳號 \"$1\" 尚未註冊。",
        "blocked-notice-logextract": "此使用者目前已被封鎖。\n以下為最近的封鎖紀錄以供參考:",
-       "clearyourcache": "<strong>注意:</strong>在您儲存之後您必須清除瀏覽器快取才可看到最新的變動。\n* <strong>Firefox / Safari:</strong>按住 <em>Shift</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em> 或 <em>Ctrl-R</em>(Mac 則為 <em>⌘-R</em>)\n* <strong>Google Chrome:</strong>按 <em>Ctrl-Shift-R</em>(Mac 則為 <em>⌘-Shift-R</em>)\n* <strong>Internet Explorer:</strong>按住 <em>Ctrl</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em>\n* <strong>Opera:</strong>進入 <em>工具 → 偏好設定</em> 中清除快取。",
+       "clearyourcache": "<strong>注意:</strong>在您儲存之後您必須清除瀏覽器快取才可看到最新的變動。\n* <strong>Firefox / Safari:</strong>按住 <em>Shift</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em> 或 <em>Ctrl-R</em> (Mac 則為 <em>⌘-R</em>) \n* <strong>Google Chrome:</strong>按 <em>Ctrl-Shift-R</em> (Mac 則為 <em>⌘-Shift-R</em>) \n* <strong>Internet Explorer:</strong>按住 <em>Ctrl</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em>\n* <strong>Opera:</strong>進入 <em>工具 → 偏好設定</em> 中清除快取。",
        "usercssyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 CSS。",
        "userjsyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 JavaScript。",
        "usercsspreview": "<strong>您目前正預覽您的使用者 CSS,CSS 還尚未儲存!</strong>",
        "content-model-text": "純文字",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "樣版呼叫時使用重複的參數的頁面",
+       "duplicate-args-category-desc": "該頁面包含重複使用參數的樣版呼叫,如 <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> 或 <code><nowiki>{{foo|bar|1=baz}}</nowiki>。",
        "expensive-parserfunction-warning": "<strong>警告:</strong>此頁面使用了太多消耗系統資源的解析函數。\n\n使用次數應小於 $2 次,但目前使用了 $1 次。",
        "expensive-parserfunction-category": "使用了太多消耗系統資源的分析函數的頁面",
        "post-expand-template-inclusion-warning": "<strong>警告:</strong>引用樣板後大小超出限制。\n部份樣版內容將不會被使用。",
        "mergehistory-same-destination": "來源頁面與目標頁面不可相同",
        "mergehistory-reason": "原因:",
        "mergelog": "合併日誌",
-       "pagemerge-logentry": "已合併 [[$1]] 至 [[$2]] (修訂更新至 $3)",
        "revertmerge": "取消合併",
        "mergelogpagetext": "以下是最近合併頁面歷史的清單。",
        "history-title": "\"$1\" 的修訂歷史",
        "search-result-category-size": "$1 位成員 ($2 個子分類,$3 個檔案)",
        "search-redirect": "(重新導向 $1)",
        "search-section": "(章節 $1)",
+       "search-category": "(分類 $1)",
        "search-file-match": "(符合檔案內容)",
        "search-suggest": "您指的是不是:$1",
        "search-interwiki-caption": "姐妹專案",
        "search-interwiki-default": "來自 $1 的結果:",
-       "search-interwiki-more": "(更多)",
+       "search-interwiki-more": "(更多)",
        "search-relatedarticle": "相關",
        "searchrelated": "相關",
        "searchall": "全部",
        "showingresults": "以下顯示從第 <strong>$2</strong> 筆開始,共 {{PLURAL:$1|<strong>1</strong> 筆結果|<strong>$1</strong> 筆結果}}:",
        "showingresultsinrange": "以下顯示從第 <strong>$2</strong> 筆至第 <strong>$3</strong> 筆中的 {{PLURAL:$1|<strong>1</strong> 筆結果|<strong>$1</strong> 筆結果}}:",
-       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> 的 <strong>$1</strong> 筆結果|<strong>$3</strong> 的 <strong>$1 - $2</strong> 筆結果}}",
+       "search-showingresults": "{{PLURAL:$4|第 <strong>$1</strong> 筆結果,共 <strong>$3</strong> 筆|第 <strong>$1 - $2</strong> 筆結果,共 <strong>$3</strong> 筆}}",
        "search-nonefound": "無符合查詢條件的結果。",
        "powersearch-legend": "進階搜尋",
        "powersearch-ns": "搜尋以下命名空間:",
        "recentchangesdays": "近期變更的顯示天數:",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
-       "prefs-help-recentchangescount": "這包含最近變更、頁面歷史以及日誌。",
+       "prefs-help-recentchangescount": "這包含近期變更、頁面歷史以及日誌。",
        "prefs-help-watchlist-token2": "訂閱您的監視清單所需的密鑰。\n任何人只要知道密鑰就能夠讀取您的監視清單,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
        "savedprefs": "已儲存您的偏好設定。",
        "timezonelegend": "時區:",
        "gender-female": "她編輯了 Wiki 頁面",
        "prefs-help-gender": "此偏好設定為選填欄位。\n系統會使用您選擇的方式稱呼您,對他人提及您時也會使用適當語法稱呼。\n此項資訊會被公開。",
        "email": "電子郵件",
-       "prefs-help-realname": "ç\9c\9f實å§\93å\90\8dç\82ºé\81¸å¡«æ¬\84ä½\8dã\80\82\nè\8b¥æ\82¨æ\8f\90ä¾\9bç\9c\9f實å§\93å\90\8dï¼\8cå®\83æ\9c\83ç\94¨æ\96¼ä½¿ç\94¨è\80\85è²¢ç\8d»署名。",
+       "prefs-help-realname": "ç\9c\9f實å§\93å\90\8dç\82ºé\81¸å¡«æ¬\84ä½\8dã\80\82\nè\8b¥æ\8f\90ä¾\9bï¼\8cç\9c\9f實å§\93å\90\8då\8f¯è\83½æ\9c\83ç\94¨ä¾\86ä½\9cç\82ºæ\82¨ç\9a\84ä½\9cå\93\81ç\9a\84署名。",
        "prefs-help-email": "電子郵件位址為選填欄位。\n但在重設密碼時會使用,而您很有可能會忘記密。",
        "prefs-help-email-others": "您亦可以選擇讓其他使用者用電子郵件與您聯繫,透過您的使用者或對話頁面上方的連結。\n您的電子郵件位址不會實際告知給其他要聯絡您的使用者。",
        "prefs-help-email-required": "電子郵件地址是必填項目。",
        "right-editmyuserjs": "編輯自己的使用者 JavaScript 檔",
        "right-viewmywatchlist": "檢視自己的監視清單",
        "right-editmywatchlist": "編輯自己的監視清單。注意,即使無此權限,某些操作仍會新增頁面至監視清單。",
-       "right-viewmyprivateinfo": "檢視自己的私隱資料 (如:電子郵件位址及真實姓名)",
-       "right-editmyprivateinfo": "編輯自己的私隱資料 (如:電子郵件位址及真實姓名)",
+       "right-viewmyprivateinfo": "檢視自己的私隱資料(如:電子郵件位址及真實姓名)",
+       "right-editmyprivateinfo": "編輯自己的隱私資料(如:電子郵件位址及真實姓名)",
        "right-editmyoptions": "編輯自己的偏好設定",
        "right-rollback": "快速還原最後一位使用者對某一頁面的編輯",
        "right-markbotedits": "標示還原編輯為機械人編輯",
        "right-importupload": "由檔案上傳匯入頁面",
        "right-patrol": "標示其他人的編輯爲已巡查",
        "right-autopatrol": "將自己的編輯自動標示為已巡查",
-       "right-patrolmarks": "檢視最近變更的巡查標記",
+       "right-patrolmarks": "檢視近期變更的巡查標記",
        "right-unwatchedpages": "檢視未監視的頁面",
        "right-mergehistory": "合併頁面歷史",
        "right-userrights": "編輯所有使用者的權限",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (請參考 [[Special:NewPages|最新頁面]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
-       "rclistfrom": "顯示自 $3 $2 以來的最近變更",
+       "rclistfrom": "顯示自 $3 $2 以來的近期變更",
        "rcshowhideminor": "$1 小修訂",
        "rcshowhideminor-show": "顯示",
        "rcshowhideminor-hide": "隱藏",
        "upload_directory_read_only": "網頁伺服器沒有上傳目錄 ($1) 的寫入權限。",
        "uploaderror": "上傳錯誤",
        "upload-recreate-warning": "<strong>警告:曾有檔案使用此名稱已被刪除或者移動至它處。</strong>\n\n在此提供刪除與移動日誌方便作為參考:",
-       "uploadtext": "使用下面的表單來上傳檔案。\n要檢視或搜尋以前上傳的檔案,可至 [[Special:FileList|檔案上傳清單]],(重新)上傳會在 [[Special:Log/upload|上傳日誌]] 中記錄,而刪除則會在 [[Special:Log/delete|刪除日誌]] 中記錄。\n\n要在頁面中引用檔案,可使用以下其中一種方式連結:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> 顯示完整尺寸的圖片\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code></strong> 會在左方放置一張 200 像素寬的圖片於框中,並顯示 \"alt text\" 作為描述\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> 直接連結到圖片而不顯示預覽",
+       "uploadtext": "使用下面的表單來上傳檔案。\n要檢視或搜尋以前上傳的檔案,可至 [[Special:FileList|檔案上傳清單]],(重新) 上傳會在 [[Special:Log/upload|上傳日誌]] 中記錄,而刪除則會在 [[Special:Log/delete|刪除日誌]] 中記錄。\n\n要在頁面中引用檔案,可使用以下其中一種方式連結:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> 顯示完整尺寸的圖片\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code></strong> 會在左方放置一張 200 像素寬的圖片於框中,並顯示 \"alt text\" 作為描述\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> 直接連結到圖片而不顯示預覽",
        "upload-permitted": "允許的檔案類型:$1。",
        "upload-preferred": "建議的檔案類型:$1。",
        "upload-prohibited": "禁止的檔案類型:$1。",
        "filename-tooshort": "檔案名稱過短。",
        "filetype-banned": "此類型檔案已禁止使用。",
        "verification-error": "此檔案未通過驗證。",
-       "hookaborted": "æ\82¨æ\89\80å\98\97試ç\9a\84ä¿®æ\94¹è¢«æ\93´å±\95套件中止。",
+       "hookaborted": "æ\82¨æ\89\80å\98\97試ç\9a\84ä¿®æ\94¹è¢«æ\93´å\85\85套件中止。",
        "illegal-filename": "不允許使用的檔案名稱。",
        "overwrite": "不允許覆蓋現有檔案。",
        "unknown-error": "發生不明錯誤。",
        "backend-fail-stream": "無法傳輸檔案 \"$1\"。",
        "backend-fail-backup": "無法備份檔案 \"$1\"。",
        "backend-fail-notexists": "檔案 $1 不存在。",
-       "backend-fail-hashes": "無法取得檔案雜湊值(Hash)進行比較。",
+       "backend-fail-hashes": "無法取得檔案雜湊值 (Hash) 進行比較。",
        "backend-fail-notsame": "於 \"$1\" 已存在另一個不相同的檔案。",
        "backend-fail-invalidpath": "\"$1\" 不是有效的儲存路徑。",
        "backend-fail-delete": "無法刪除檔案 \"$1\"。",
        "uploadstash-refresh": "更新檔案清單",
        "invalid-chunk-offset": "無效區塊位置",
        "img-auth-accessdenied": "拒絕存取",
-       "img-auth-nopathinfo": "缺少 PATH_INFO 參。\n您的伺服器環境未傳遞此資訊,\n您可能使用 CGI-based 的伺服器,不支援 img_auth。\n請參考 https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization。",
+       "img-auth-nopathinfo": "缺少 PATH_INFO 參。\n您的伺服器環境未傳遞此資訊,\n您可能使用 CGI-based 的伺服器,不支援 img_auth。\n請參考 https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization。",
        "img-auth-notindir": "已設定的上傳目錄清單中不存在您指定的路徑。",
        "img-auth-badtitle": "無法使用 \"$1\" 建立有效的標題。",
        "img-auth-nologinnWL": "您尚未登入,且 \"$1\" 並未在允許清單上。",
        "statistics": "統計",
        "statistics-header-pages": "頁面統計",
        "statistics-header-edits": "編輯統計",
-       "statistics-header-views": "檢視統計",
        "statistics-header-users": "使用者統計資訊",
        "statistics-header-hooks": "其它統計",
        "statistics-articles": "內容頁面",
        "statistics-files": "已上傳的檔案",
        "statistics-edits": "自 {{SITENAME}} 成立以來的頁面編輯數",
        "statistics-edits-average": "每頁平均編輯數",
-       "statistics-views-total": "檢視總數",
-       "statistics-views-total-desc": "不包含不存在頁面與特殊頁面的檢視數",
-       "statistics-views-peredit": "每次編輯檢視數",
        "statistics-users": "已註冊的 [[Special:ListUsers|使用者]]",
        "statistics-users-active": "活動使用者",
        "statistics-users-active-desc": "在最近 $1 天操作過的使用者",
-       "statistics-mostpopular": "檢視最多次的頁面",
        "pageswithprop": "擁有屬性的頁面",
        "pageswithprop-legend": "擁有頁面屬性的頁面",
        "pageswithprop-text": "此頁面用來查詢使用了指定屬性的頁面。",
        "uncategorizedtemplates": "待分類樣版",
        "unusedcategories": "未使用的分類",
        "unusedimages": "未使用的檔案",
-       "popularpages": "熱門頁面",
        "wantedcategories": "需要的分類",
        "wantedpages": "需要的頁面",
        "wantedpages-badtitle": "結果集合中的標題無效:$1",
        "mostlinkedtemplates": "被引用最多的頁面",
        "mostcategories": "最多分類的頁面",
        "mostimages": "被連結最多的檔案",
-       "mostinterwikis": "最多 Interwiki 連結的頁面",
+       "mostinterwikis": "最多網際 Wiki 連結的頁面",
        "mostrevisions": "最多修訂的頁面",
        "prefixindex": "所有頁面與字首",
        "prefixindex-namespace": "所有含字首的頁面 ($1 命名空間)",
        "pager-older-n": "較舊 $1 筆",
        "suppress": "監督",
        "querypage-disabled": "此特殊頁面因考量效能問題已被停用。",
+       "apihelp": "API 說明",
+       "apihelp-no-such-module": "查無模組 \"$1\"。",
        "booksources": "圖書資源",
        "booksources-search-legend": "尋找圖書資源",
        "booksources-isbn": "國際標準書號:",
        "deletereasonotherlist": "其它原因",
        "deletereason-dropdown": "* 常見的刪除原因\n** 濫發廣告訊息\n** 破壞\n** 侵犯版權\n** 作者請求\n** 損壞的重新導向連結",
        "delete-edit-reasonlist": "編輯刪除原因",
-       "delete-toobig": "這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除此類頁面的動作已經被限制,以防止在{{SITENAME}}上的意外擾亂。",
-       "delete-warning-toobig": "這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除它可能會擾亂{{SITENAME}}的資料庫操作;在繼續此動作前請小心。",
+       "delete-toobig": "此頁面含有大量的編輯歷史,超過 $1 次修訂。\n已限制刪除此類頁面的動作,以避免意外中斷 {{SITENAME}} 的運作。",
+       "delete-warning-toobig": "此頁面含有大量的編輯歷史,超過 $1 次修訂。\n刪除該頁面可能會中斷 {{SITENAME}} 的資料庫運作;\n請小心執行此動作。",
        "deleteprotected": "此頁面已受保護,您無法刪除此頁面。",
        "deleting-backlinks-warning": "<strong>警告:</strong>您正要刪除的頁面有[[Special:WhatLinksHere/{{FULLPAGENAME}}|其他頁面]]連結或引用。",
        "rollback": "還原編輯",
        "revertpage-nouser": "已還隱藏使用者的編輯為最後 {{GENDER:$1|[[User:$1|$1]]}} 修訂的版本",
        "rollback-success": "已還原 $1 做的編輯;\n更變回最後由 $2 修訂的版本。",
        "sessionfailure-title": "連線階段失敗",
-       "sessionfailure": "似乎您的登入會話有問題;\n為了防止會話劫持,這個操作已經被取消。\n請返回先前的頁面,重新載入該頁面,然後重試。",
+       "sessionfailure": "您的登入連線階段似乎有問題,\n為了預防連線階段受到劫持攻擊,此動作已經被取消。\n請返回上一頁,重新讀取該頁面再試一次。",
        "protectlogpage": "保護日誌",
        "protectlogtext": "以下為變更頁面保護的清單。\n請參考 [[Special:ProtectedPages|受保護頁面清單]] 檢視目前受保護頁面。",
        "protectedarticle": "已保護 \"[[$1]]\"",
        "month": "截止月份:",
        "year": "截止年份:",
        "sp-contributions-newbies": "只顯示新帳號的貢獻",
-       "sp-contributions-newbies-sub": "新",
+       "sp-contributions-newbies-sub": "新帳號的貢獻",
        "sp-contributions-newbies-title": "新帳號的使用者貢獻",
        "sp-contributions-blocklog": "封鎖記錄",
        "sp-contributions-suppresslog": "已禁止顯示的使用者貢獻",
        "sp-contributions-talk": "對話",
        "sp-contributions-userrights": "使用者權限管理",
        "sp-contributions-blocked-notice": "此使用者目前已被封鎖。\n以下為最近的封鎖紀錄以供參考:",
-       "sp-contributions-blocked-notice-anon": "此 IP 位址目前已被封鎖。\n以下為最近的封鎖錄以供參考:",
+       "sp-contributions-blocked-notice-anon": "此 IP 位址目前已被封鎖。\n以下為最近的封鎖錄以供參考:",
        "sp-contributions-search": "搜尋貢獻",
        "sp-contributions-username": "IP 位址或使用者名稱:",
        "sp-contributions-toponly": "只顯示最新修訂的編輯",
        "ip_range_invalid": "無效的 IP 範圍。",
        "ip_range_toolarge": "不允許封鎖範圍大於 /$1。",
        "proxyblocker": "代理伺服器封鎖器",
-       "proxyblockreason": "因您的 IP 位址是開放代理伺服器,已被封鎖。\n請聯繫您的網服務供應商或您所在組織的技術支援,告知他們此嚴重的安全性問題。",
+       "proxyblockreason": "因您的 IP 位址是開放代理伺服器,已被封鎖。\n請聯繫您的網服務供應商或您所在組織的技術支援,告知他們此嚴重的安全性問題。",
        "sorbsreason": "您的 IP 位址在 {{SITENAME}} 使用的 DNSBL 列為開放代理伺服器。",
        "sorbs_create_account_reason": "您連線到 {{SITENAME}} 的 IP 位址被 DNSBL 列為開放代理伺服器。\n您不能建立帳號。",
        "xffblockreason": "您的 IP 位址使用 X-Forwarded-For 標頭,您或您使用的代理伺服器已被封鎖。\n封鎖的原因為:$1",
        "tooltip-pt-mycontris": "您的貢獻清單",
        "tooltip-pt-login": "儘管非必要,仍建議您登入。",
        "tooltip-pt-logout": "登出",
+       "tooltip-pt-createaccount": "我們會鼓勵您建立一個帳號並且登入,即使這不是必要的動作。",
        "tooltip-ca-talk": "有關頁面內容的討論",
        "tooltip-ca-edit": "您可以編輯此頁,請在儲存之前先預覽。",
        "tooltip-ca-addsection": "開始一個新章節",
        "tooltip-n-randompage": "隨機進入一個頁面",
        "tooltip-n-help": "尋求協助的地方",
        "tooltip-t-whatlinkshere": "列出所有連結此頁面的頁面",
-       "tooltip-t-recentchangeslinked": "此頁面連結到其他頁面的最近變更",
+       "tooltip-t-recentchangeslinked": "此頁面連結到其他頁面的近期變更",
        "tooltip-feed-rss": "訂閱此頁面的 RSS feed",
        "tooltip-feed-atom": "訂閱此頁面的 Atom feed",
        "tooltip-t-contributions": "此使用者的貢獻清單",
        "tooltip-t-emailuser": "傳送電子郵件給這個使用者",
+       "tooltip-t-info": "更多關於此頁面的資訊",
        "tooltip-t-upload": "上傳檔案",
        "tooltip-t-specialpages": "全部特殊頁面的清單",
        "tooltip-t-print": "此頁面的可列印版本",
        "pageinfo-robot-policy": "由機器人建立索引",
        "pageinfo-robot-index": "允許",
        "pageinfo-robot-noindex": "不允許",
-       "pageinfo-views": "檢視次數",
        "pageinfo-watchers": "頁面監視者數",
        "pageinfo-few-watchers": "少於 $1 名監視者",
        "pageinfo-redirects-name": "指向此頁面的重新導向頁面數量",
        "pageinfo-lasttime": "最近編輯日期",
        "pageinfo-edits": "編輯總次數",
        "pageinfo-authors": "作者總數",
-       "pageinfo-recent-edits": "最近編輯次數 (過去$1內)",
+       "pageinfo-recent-edits": "最近編輯次數 (過去 $1 內)",
        "pageinfo-recent-authors": "最近作者數",
        "pageinfo-magic-words": "魔術{{PLURAL:$1|字}} ($1)",
-       "pageinfo-hidden-categories": "隱藏分類($1)",
+       "pageinfo-hidden-categories": "隱藏分類 ($1)",
        "pageinfo-templates": "引用樣版 ($1)",
        "pageinfo-transclusions": "頁面被引用於 ($1)",
        "pageinfo-toolboxlink": "頁面資訊",
        "markaspatrolledtext": "標記此頁面為已巡查",
        "markedaspatrolled": "己標記為已巡查",
        "markedaspatrolledtext": "已標記選擇的修訂 [[:$1]] 為已巡查。",
-       "rcpatroldisabled": "最近變更巡查已停用",
+       "rcpatroldisabled": "近期變更巡查已停用",
        "rcpatroldisabledtext": "最新變更巡查的功能目前已停用。",
        "markedaspatrollederror": "無法標記為已巡查",
        "markedaspatrollederrortext": "您需指定要標記為已巡查的修訂。",
        "metadata-help": "此檔案包含額外的資訊,可能由數位相機或掃描機所建立的。\n若修改此檔案,部份資訊將無法保留。",
        "metadata-expand": "顯示詳細資料",
        "metadata-collapse": "隱藏詳細資料",
-       "metadata-fields": "在本訊息中所列出的 EXIF 元數據域將包含在圖片顯示頁面,當元數據表損壞時只顯示以下訊息。\n其他的元數據預設為隱藏。\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "在本訊息中所列出的 EXIF 詮釋資料域將包含在圖片顯示頁面,當詮釋資料表損壞時只顯示以下訊息。\n其他的詮釋資料預設為隱藏。\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "寬度",
        "exif-imagelength": "高度",
        "exif-bitspersample": "每像素位元",
        "exif-samplesperpixel": "像素數量",
        "exif-planarconfiguration": "資料排列",
        "exif-ycbcrsubsampling": "黃色轉洋紅二次抽樣比率",
-       "exif-ycbcrpositioning": "黃色和洋紅配置",
+       "exif-ycbcrpositioning": "亮度與彩度偏移",
        "exif-xresolution": "水平解析度",
        "exif-yresolution": "垂直解析度",
        "exif-stripoffsets": "影像資料位置",
        "exif-rating": "評分 (共 5 分)",
        "exif-rightscertificate": "版權管理證書",
        "exif-copyrighted": "版權狀態",
-       "exif-copyrightowner": "ç\89\88æ¬\8aæ\8c\81有人",
+       "exif-copyrightowner": "ç\89\88æ¬\8aæ\89\80有人",
        "exif-usageterms": "使用條款",
        "exif-webstatement": "線上版權聲明",
        "exif-originaldocumentid": "原始文件唯一識別碼",
        "monthsall": "全部",
        "confirmemail": "確認電子郵件位址",
        "confirmemail_noemail": "您尚未於 [[Special:Preferences|偏好設定]] 輸入一個有效的電子郵件位址。",
-       "confirmemail_text": "{{SITENAME}}è¦\81æ±\82æ\82¨å\9c¨ä½¿ç\94¨é\83µä»¶å\8a\9fè\83½ä¹\8bå\89\8dé©\97è­\89æ\82¨ç\9a\84é\83µç®±ä½\8då\9d\80ã\80\82\né»\9eé\81¸ä»¥ä¸\8bæ\8c\89é\88\95å\8f¯å\90\91æ\82¨ç\9a\84é\83µç®±å\82³é\80\81ä¸\80å°\81確èª\8dé\83µä»¶ã\80\82該é\83µä»¶å\8c\85å\90«æ\9c\89ä¸\80è¡\8c代碼é\80£çµ\90ï¼\9b\nè«\8bå\9c¨æ\82¨ç\9a\84ç\80\8f覽å\99¨ä¸­è¼\89å\85¥æ­¤é\80£çµ\90以確èª\8dæ\82¨ç\9a\84é\83µç®±位址是有效的。",
+       "confirmemail_text": "{{SITENAME}}è¦\81æ±\82æ\82¨å\9c¨ä½¿ç\94¨é\83µä»¶å\8a\9fè\83½ä¹\8bå\89\8dé©\97è­\89æ\82¨ç\9a\84é\9b»å­\90é\83µä»¶ä½\8då\9d\80ã\80\82\né»\9eé\81¸ä»¥ä¸\8bæ\8c\89é\88\95å\8f¯å\90\91æ\82¨ç\9a\84é\9b»å­\90é\83µä»¶å\82³é\80\81ä¸\80å°\81確èª\8dé\83µä»¶ã\80\82該é\83µä»¶å\8c\85å\90«æ\9c\89ä¸\80è¡\8c代碼é\80£çµ\90ï¼\9b\nè«\8bå\9c¨æ\82¨ç\9a\84ç\80\8f覽å\99¨ä¸­è¼\89å\85¥æ­¤é\80£çµ\90以確èª\8dæ\82¨ç\9a\84é\9b»å­\90é\83µä»¶位址是有效的。",
        "confirmemail_pending": "確認碼已傳送至您的電子郵件,\n若您才剛建立好您的帳號,可能需要稍後幾分鐘才能收到。\n若沒有收到,請再重新申請一次確認碼。",
        "confirmemail_send": "電子郵件寄送確認代碼",
        "confirmemail_sent": "已寄出確認電子郵件。",
-       "confirmemail_oncreate": "一個確認代碼已經被傳送到您的郵箱。該代碼並不要求您進行登入,\n但若您要啟用在此 wiki 上的任何基於電子郵件的功能,您必須先提交此代碼。",
-       "confirmemail_sendfailed": "{{SITENAME}}ç\84¡æ³\95å\82³é\80\81確èª\8dé\83µä»¶ï¼\8cè«\8b檢æ\9f¥é\83µç®±位址是否包含非法字元。\n\n郵件傳送員回應: $1",
+       "confirmemail_oncreate": "確認代碼已傳送至您的電子郵件位址。\n登入動作不需要使用此代碼,但開啟在 Wiki 中任何以電子郵件為基礎的功能會需要先提供此代碼。",
+       "confirmemail_sendfailed": "{{SITENAME}}ç\84¡æ³\95å\82³é\80\81確èª\8dé\83µä»¶ï¼\8cè«\8b檢æ\9f¥é\9b»å­\90é\83µä»¶位址是否包含非法字元。\n\n郵件傳送員回應: $1",
        "confirmemail_invalid": "無效的確認碼,該代碼可能已經過期。",
        "confirmemail_needlogin": "請 $1 以確認您的電子郵件地址。",
-       "confirmemail_success": "æ\82¨ç\9a\84é\83µç®±已經被確認。您現在可以[[Special:UserLogin|登入]]並使用此網站了。",
+       "confirmemail_success": "æ\82¨ç\9a\84é\9b»å­\90é\83µä»¶已經被確認。您現在可以[[Special:UserLogin|登入]]並使用此網站了。",
        "confirmemail_loggedin": "已確認您的電子郵件地址。",
        "confirmemail_subject": "{{SITENAME}} 電子郵件地址確認",
        "confirmemail_body": "不明人士 (可能是您自己,來自 IP 位址 $1)  已在 {{SITENAME}} 註冊了一個帳號 \"$2\" 並使用了此電子郵件位址。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "confirmemail_body_changed": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址更改至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "confirmemail_body_set": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址設定至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
-       "confirmemail_invalidated": "已取消電子郵件址確認",
+       "confirmemail_invalidated": "已取消電子郵件址確認",
        "invalidateemail": "取消電子郵件確認",
        "scarytranscludedisabled": "[Interwiki 轉換代碼不可用]",
        "scarytranscludefailed": "[樣版 $1 讀取失敗]",
        "unknown_extension_tag": "不明的擴充標籤 \"$1\"",
        "duplicate-defaultsort": "<strong>警告:</strong>預設的排序鍵 \"$2\" 會覆蓋先前預設的排序鍵 \"$1\"。",
        "duplicate-displaytitle": "<strong>警告:</strong> 顯示標題 \"$2\" 覆蓋之前的顯示標題 \"$1\"。",
+       "invalid-indicator-name": "<strong>錯誤:</strong>頁面狀態指示器的<code>name</code> 屬性不能為空。",
        "version": "版本",
        "version-extensions": "已安裝的擴充套件",
        "version-skins": "已安裝的外觀",
        "version-specialpages": "特殊頁面",
-       "version-parserhooks": "解析器連結(Hook)",
+       "version-parserhooks": "解析器連結 (Hook)",
        "version-variables": "變數",
        "version-antispam": "垃圾訊息防止",
        "version-other": "其他",
        "version-mediahandlers": "媒體處理器",
-       "version-hooks": "連結(Hooks)",
+       "version-hooks": "連結 (Hooks)",
        "version-parser-extensiontags": "解析器擴充標籤",
        "version-parser-function-hooks": "語法函數連結",
        "version-hook-name": "連結名稱",
        "redirect-file": "檔案名稱",
        "redirect-not-exists": "查無值",
        "fileduplicatesearch": "搜尋重覆檔案",
-       "fileduplicatesearch-summary": "依據雜湊值(Hash)來搜尋重複的檔案。",
+       "fileduplicatesearch-summary": "依據雜湊值 (Hash) 來搜尋重複的檔案。",
        "fileduplicatesearch-legend": "搜尋重覆",
        "fileduplicatesearch-filename": "檔案名稱:",
        "fileduplicatesearch-submit": "搜尋",
        "specialpages-group-maintenance": "維護報表",
        "specialpages-group-other": "其它特殊頁面",
        "specialpages-group-login": "登入 / 建立帳號",
-       "specialpages-group-changes": "最近變更與日誌",
+       "specialpages-group-changes": "近期變更與日誌",
        "specialpages-group-media": "媒體上傳與報表",
        "specialpages-group-users": "使用者與權限",
        "specialpages-group-highuse": "常用頁面",
        "tag-filter-submit": "搜尋",
        "tag-list-wrapper": "([[Special:Tags|標籤]]:$2)",
        "tags-title": "標籤",
-       "tags-intro": "這個頁面列示出在軟件中已標示的編輯,以及它們的解釋。",
+       "tags-intro": "此頁面列出所有可用來標示編輯的標籤,以及這些標籤的含意。",
        "tags-tag": "標籤名稱",
        "tags-display-header": "在更改清單中的出現方式",
        "tags-description-header": "完整含意說明",
        "revdelete-uname-unhid": "取消隱藏使用者名稱",
        "revdelete-restricted": "已套用對管理員的限制",
        "revdelete-unrestricted": "已移除對管理員的限制",
+       "logentry-merge-merge": "$1將$3{{GENDER:$2|合併}}至$4(修訂版本至$5)",
        "logentry-move-move": "$1 {{GENDER:$2|已移動}}頁面 $3 至 $4",
        "logentry-move-move-noredirect": "$1 已移動頁面 $3 至 $4,不留重新導向頁面",
        "logentry-move-move_redir": "$1 已移動頁面 $3 至 $4 並覆蓋原有重新導向",
        "api-error-stashfailed": "內部錯誤:伺服器儲存暫存檔案失敗。",
        "api-error-publishfailed": "內部錯誤:伺服器發佈暫存檔案失敗。",
        "api-error-stasherror": "上傳檔案至儲存庫時發生錯誤。",
+       "api-error-stashedfilenotfound": "嘗試從藏匿處上傳時找不到藏匿的檔案。",
+       "api-error-stashpathinvalid": "找到的藏匿檔案的路徑是無效的。",
+       "api-error-stashfilestorage": "儲存檔案至藏匿處時出錯。",
+       "api-error-stashzerolength": "伺服器不能藏匿檔案,因爲它已經沒有藏匿空間了。",
+       "api-error-stashnotloggedin": "您必須登入以儲存檔案至上傳藏匿處。",
+       "api-error-stashwrongowner": "您嘗試在藏匿處存取的檔案不屬於您。",
+       "api-error-stashnosuchfilekey": "您嘗試在藏匿處存取的檔案金鑰不存在。",
        "api-error-timeout": "伺服器沒有在預期的時間內回應。",
        "api-error-unclassified": "發生不明錯誤。",
        "api-error-unknown-code": "不明錯誤:\"$1\"。",
        "log-description-pagelang": "此頁為頁面語言的變更日誌。",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|已更改}}頁面 $3 的語言從 $4 到 $5。",
        "default-skin-not-found": "哎呀!您於 <code dir=\"ltr\">$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您的安裝程序應包含以下外觀。 請參考 [https://www.mediawiki.org/wiki/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何開啟外觀並設為預設值的資訊。\n\n$2\n\n; 若您才剛安裝完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Special:MyLanguage/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。 您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 透過 git 複製 <code>mediawiki/skins/*</code> 儲存庫中其中一個外觀到您安裝的 MediaWiki <code dir=\"ltr\">skins/</code> 目錄中。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。\n\n; 若您才剛升級 MediaWiki:\n: MediaWiki 1.24 與較新的版本不再自動開啟已安裝的外觀 (請參考 [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 操作手冊:外觀自動搜尋])。 您可以將下列行貼上至 <code>LocalSettings.php</code> 來開啟所有目前已經安裝的外觀:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 若您才剛修改 <code>LocalSettings.php</code>:\n: 請再次確認您輸入的外觀名稱是否有誤。",
-       "default-skin-not-found-no-skins": "哎呀!您於 <code>$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您未安裝任何的外觀。\n\n; 若您才剛安裝完或升級完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。 MediaWiki 1.24 或較新的版本在主要儲存庫中不再包含任何的外觀。 請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。 您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 透過 git 複製 <code>mediawiki/skins/*</code> 儲存庫中其中一個外觀到您安裝的 MediaWiki <code dir=\"ltr\">skins/</code> 目錄中。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。 請參考 [https://www.mediawiki.org/wiki/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何開啟外觀並設為預設值的資訊。",
+       "default-skin-not-found-no-skins": "哎呀!您於 <code>$wgDefaultSkin</code> 設定的 Wiki 預設外觀 <code>$1</code> 無法使用。\n\n您未安裝任何的外觀。\n\n; 若您才剛安裝完或升級完 MediaWiki:\n: 您大概是使用 git 或直接透過原始碼使用其他方法安裝,這種情況是正常的。 MediaWiki 1.24 或較新的版本在主要儲存庫中不再包含任何的外觀。 請嘗試安裝 [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org 的外觀目錄] 中的部份外觀使用以下方式:\n:* 下載 [https://www.mediawiki.org/wiki/Special:MyLanguage/Download tarball 安裝程式],該程式包含數個外觀與擴充套件。 您可以複製並貼上至 <code>skins/</code> 目錄。\n:* 透過 git 複製 <code>mediawiki/skins/*</code> 儲存庫中其中一個外觀到您安裝的 MediaWiki <code dir=\"ltr\">skins/</code> 目錄中。\n: 若您是 MediaWiki 的開發人員,這麼做應該不會影響到您的 git 儲存庫。 請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration 操作手冊:外觀設定] 以取得如何開啟外觀並設為預設值的資訊。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (已開啟)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''已停用''')",
        "mediastatistics": "媒體統計資訊",
        "mediastatistics-header-text": "純文字",
        "mediastatistics-header-executable": "可執行",
        "mediastatistics-header-archive": "已壓縮格式",
+       "json-warn-trailing-comma": "已移除 $1 個 JSON 結尾的{{PLURAL:$1|逗號}}",
        "json-error-unknown": "JSON 發生問題。錯誤:$1",
        "json-error-depth": "已超出堆疊深度限制",
        "json-error-state-mismatch": "無效或格式不正確的 JSON",
index cd4ce7a..93887d3 100644 (file)
 {
-    "@metadata": {
-        "authors": [
-            "Jose77 (on zu.wikipedia.org)",
-            "Joziboy (on zu.wikipedia.org)",
-            "Rosinah3",
-            "Vogone",
-            "לערי ריינהארט"
-        ]
-    },
-    "underline-always": "Njalo",
-    "sunday": "iSonto",
-    "monday": "uMsombuluko",
-    "tuesday": "uLwesibili",
-    "wednesday": "uLwesithathu",
-    "thursday": "uLwesine",
-    "friday": "uLwesihlanu",
-    "saturday": "uMgqibelo",
-    "january": "Umasingana",
-    "february": "uNhlolanja",
-    "march": "uMbasa",
-    "april": "uNdasa",
-    "may_long": "uNhlaba",
-    "june": "uNhlangulana",
-    "july": "uNtulikazi",
-    "august": "uNcwaba",
-    "september": "uMandulo",
-    "october": "uMfumfu",
-    "november": "uLwezi",
-    "december": "uZibandlela",
-    "january-gen": "uJanuwali",
-    "february-gen": "uFebruwari",
-    "march-gen": "uMashi",
-    "april-gen": "u-Apreli",
-    "may-gen": "uMeyi",
-    "june-gen": "uJuni",
-    "july-gen": "uJulayi",
-    "august-gen": "u-Agasti",
-    "september-gen": "uSepthemba",
-    "october-gen": "u-Okthoba",
-    "november-gen": "uNovemba",
-    "december-gen": "uDisemba",
-    "may": "uMeyi",
-    "cancel": "Nqamula",
-    "moredotdotdot": "Amanye...",
-    "mypage": "Ikhasi lami",
-    "mytalk": "Ingxoxo yami",
-    "navigation": "Ukuqondiswa kwemikhumbi",
-    "qbfind": "Thola",
-    "qbbrowse": "Cinga",
-    "qbedit": "Ukuhlela",
-    "qbpageoptions": "Leli khasi",
-    "qbmyoptions": "Amakhasi ami",
-    "errorpagetitle": "Icala",
-    "help": "Usizo",
-    "search": "Sesha",
-    "searchbutton": "Sesha",
-    "go": "Hamba",
-    "searcharticle": "Hamba",
-    "history_short": "Umlando",
-    "printableversion": "Inguqulo eshicilelekayo",
-    "print": "Shicilela",
-    "edit": "Hlela",
-    "editthispage": "Hlela leli khasi",
-    "delete": "Sula",
-    "deletethispage": "Sula lelikhasi",
-    "protect": "Londoloza",
-    "protectthispage": "Londoloza lelikhasi",
-    "newpage": "Ikhasi elisha",
-    "talkpage": "Xoxa ngalelikhasi",
-    "personaltools": "Amathuluzi kamsebenzisi",
-    "talk": "Ingxoxo",
-    "toolbox": "Amathuluzi",
-    "otherlanguages": "Ngezilimi ezinahlukene",
-    "redirectpagesub": "Ikhasi likakuphambukisa",
-    "protectedpage": "Ikhasi elilondolozwa",
-    "jumpto": "Eqa e:",
-    "jumptonavigation": "Ukuqondiswa kwemikhumbi",
-    "jumptosearch": "Sesha",
-    "currentevents": "Izehlakalo ezimanje",
-    "currentevents-url": "Project:Izehlakalo ezimanje",
-    "edithelp": "Usizo ngokuhlela",
-    "mainpage": "Ikhasi Elikhulu",
-    "mainpage-description": "Ikhasi Elikhulu",
-    "portal": "Umnyango wamgwamanda",
-    "portal-url": "Project:Umnyango wamgwamanda",
-    "ok": "Kulungile",
-    "youhavenewmessagesmulti": "Uyanemilayezo emisha e $1",
-    "editsection": "hlela",
-    "toc": "Isiqikili",
-    "showtoc": "Bukisa",
-    "hidetoc": "Fihla",
-    "nstab-main": "Umlayezo",
-    "nstab-user": "Ikhasi lomsebenzisi",
-    "nstab-special": "Kukhulu",
-    "nstab-image": "Ifayela",
-    "nstab-mediawiki": "Umlayezo",
-    "nstab-help": "Usizo",
-    "nstab-category": "Uhlobo",
-    "error": "Icala",
-    "databaseerror": "Idatabheyisi linecala",
-    "internalerror": "Icala lingaphakathi",
-    "welcomeuser": "Umbingelelo, $1!",
-    "welcomecreation-msg": "Ikhawundi lakho liyadalwa. Musa ukukhohlwa ukuguqula [[Special:Preferences|amakhethelo]] a-Wikipedia wakho.",
-    "yourname": "Isiga",
-    "yourpassword": "Izwi elingenangozi",
-    "yourpasswordagain": "Bhala izwi elingenangozi lakho kabusha",
-    "remembermypassword": "Ngikhumbule (for a maximum of $1 {{PLURAL:$1|day|days}})",
-    "login": "Ngena",
-    "nav-login-createaccount": "Ngena / Dala ikhawundi",
-    "userlogin": "Ngena / Dala ikhawundi",
-    "logout": "Phuma",
-    "userlogout": "Phuma",
-    "notloggedin": "Awungenile",
-    "nologin": "Awunekhawundi? '''$1'''.",
-    "nologinlink": "Dala ikhawundi",
-    "createaccount": "Dala ikhawundi",
-    "gotaccountlink": "Ngena",
-    "loginsuccesstitle": "Ubengena",
-    "nosuchuser": "Akukho umsebenzisi unegama \"$1\". Hlola umbhalo wakho, noma dala ikhawundi elisha.",
-    "nosuchusershort": "Akukho umsebenzisi unegama \"$1\". Hlola umbhalo wakho.",
-    "emailconfirmlink": "Qinisekisa ikheli likagesi lakho",
-    "loginlanguagelabel": "Ulimi: $1",
-    "changepassword": "Guqula izwi elingenangozi",
-    "newpassword": "Izwi elingenangozi elisha:",
-    "italic_sample": "Amazwi ama-italiki",
-    "italic_tip": "Amazwi ama-italiki",
-    "hr_tip": "Umugqa uhleliwe  (use sparingly)",
-    "summary": "Isifinyezo:",
-    "minoredit": "Lokho ngukuhlela okuncane",
-    "watchthis": "Bukela ngalelikhasi",
-    "savearticle": "Ukonga ikhasi",
-    "preview": "Isibonakalo",
-    "showpreview": "Bukisa isibonakalo",
-    "showdiff": "Bukisa izinguquko",
-    "missingcommenttext": "Ake ubhale uvo ngaphansi.",
-    "loginreqtitle": "Lidinga ukuthi uyangena",
-    "loginreqlink": "Ngena",
-    "noarticletext": "Akukho umbhalo kuleli khasi manje. Unga [[Special:Search/Allmessages|cinga leli bizo lekhasi]] emakhasini amanye noma unga [{{fullurl:{{FULLPAGENAME}}|action=edit}} hlela leli khasi].",
-    "yourtext": "Umbhalo wakho",
-    "yourdiff": "Izinguquko",
-    "next": "Kulandela",
-    "last": "Amagcino",
-    "histfirst": "lokuqala",
-    "histlast": "ligcinileyo",
-    "rev-delundel": "bukisa/fihla",
-    "searchresults": "Umphumela wokusesha",
-    "preferences": "Amakhethelo",
-    "mypreferences": "Amakhethelo ami",
-    "saveprefs": "Ukonga",
-    "searchresultshead": "Sesha",
-    "timezonelegend": "Isifunda sasikhathi",
-    "localtime": "Isikhathi siyalapha",
-    "username": "Isiga:",
-    "yourrealname": "Igama eliqinisileyo",
-    "yourlanguage": "Ulimi:",
-    "email": "Iposi likagesi",
-    "recentchanges": "Izinguquko ezimanje",
-    "hide": "Fihla",
-    "show": "Bukisa",
-    "recentchangeslinked": "Izinguquko ezilandiweyo",
-    "recentchangeslinked-feed": "Izinguquko ezilandiweyo",
-    "recentchangeslinked-toolbox": "Izinguquko ezilandiweyo",
-    "upload": "Layisha ifayili",
-    "uploadbtn": "Layisha ifayili",
-    "filesource": "Umthombo:",
-    "ignorewarnings": "Duba imiyalo",
-    "upload-success-subj": "Ukulayisha okuchumile",
-    "nolicense": "Ubekhetha lutho",
-    "file-anchor-link": "Ifayela",
-    "nolinkstoimage": "Akukho amakhasi akhomba kuleli fayela.",
-    "randompage": "Ikhasi elingaphandle kokucabanga",
-    "statistics-header-users": "Ukwaziswa wamsebenzisi",
-    "shortpages": "Amakhasi amafishane",
-    "longpages": "Amakhasi amade",
-    "newpages": "Amakhasi amasha",
-    "newpages-username": "Isiga:",
-    "move": "Sunduza",
-    "movethispage": "Thuthisa leli khasi",
-    "specialloguserlabel": "Umsebenzisi:",
-    "allinnamespace": "Onke amakhasi ($1 namespace)",
-    "allpagessubmit": "Hamba",
-    "emailuser": "Thumela umlayezo lo msebenzisi",
-    "noemailtitle": "Akukho ikheli likaposi",
-    "emailsubject": "Indaba",
-    "emailmessage": "Umlayezo",
-    "emailsend": "Thuma",
-    "emailsent": "Umlayezo uthumwa",
-    "watchlist": "Uhlelo ubukelwa wami",
-    "watch": "Bukela",
-    "unwatch": "Mus'ukubukela",
-    "notanarticle": "Akulona ikhasi elinakho okuqukethwe",
-    "deletepage": "Sula ikhasi",
-    "confirm": "Qinisekisa",
-    "exblank": "ikhasi elize",
-    "protectcomment": "Isizathu",
-    "restriction-edit": "Ukuhlela",
-    "restriction-move": "Sunduza",
-    "undeletecomment": "Khuluma:",
-    "contributions": "Amanikelo amsebenzisi",
-    "mycontris": "Amanikelo ami",
-    "nolinkshere": "Akukho amakhasi ukuthi balayela lapha '''[[:$1]]'''.",
-    "isredirect": "Ikhasi silayela",
-    "blockip": "Vimbela lo msebenzisi",
-    "ipbexpiry": "Ukuphela",
-    "ipbreason": "Isizathu",
-    "ipbsubmit": "Vimbela lo msebenzisi",
-    "ipusubmit": "Qeda isivimbelo lo msebenzisi",
-    "createaccountblock": "Ukudala kwekhawundi kuvimbelwa",
-    "databasenotlocked": "Idatabheyisi alikhiyiwi.",
-    "move-page-legend": "Thuthisa ikhasi",
-    "movearticle": "Thuthisa ikhasi",
-    "movepagebtn": "Thuthisa ikhasi",
-    "movereason": "Isizathu",
-    "delete_and_move": "Sula futhi sunduza",
-    "delete_and_move_confirm": "Yebo, sula ikhasi",
-    "export-submit": "Thekelisa",
-    "allmessagesname": "Igama",
-    "thumbnail-more": "Khulisa",
-    "filemissing": "Ifayili lilahlekile",
-    "import-interwiki-submit": "Ngenisa",
-    "tooltip-search": "Phenya",
-    "tooltip-search-fulltext": "\nPhenya amakhasi ukuze uthole lombhalo",
-    "tooltip-p-logo": "vakashela ikhasi elikhulu",
-    "others": "Abanye",
-    "markaspatrolleddiff": "Dweba ukuthi lelikhasi liyagadwa",
-    "markaspatrolledtext": "Dweba ukuthi lelikhasi liyagadwa",
-    "markedaspatrolled": "Dweba ukuthi lelikhasi liyagadwa",
-    "newimages": "Uhlelo lwamafayela amasha",
-    "noimages": "Awuboni lutho.",
-    "ilsubmit": "Sesha",
-    "metadata-expand": "Bukisa imininingwane yonke",
-    "metadata-collapse": "Fihla imininingwane yonke",
-    "exif-orientation": "Ukuma okumaqondana nempumalanga",
-    "exif-artist": "Umbhali",
-    "exif-sharpness": "Ububukhali",
-    "exif-orientation-1": "Kuphelele",
-    "exif-meteringmode-5": "Umhlobiso",
-    "exif-lightsource-4": "Umbani",
-    "exif-lightsource-11": "Umthunzi",
-    "exif-sensingmethod-1": "Akucaci",
-    "exif-scenecapturetype-0": "Izinga",
-    "exif-scenecapturetype-1": "Umfanekiso wesizwe",
-    "exif-scenecapturetype-2": "Umfanekiso womuntu",
-    "exif-scenecapturetype-3": "Imboniso ebusuku",
-    "exif-contrast-0": "Kuphelele",
-    "exif-contrast-1": "Kuntofontofo",
-    "exif-contrast-2": "Kulukhuni",
-    "exif-saturation-0": "Kuphelele",
-    "exif-sharpness-0": "Kuphelele",
-    "exif-sharpness-1": "Kuntofontofo",
-    "exif-sharpness-2": "Kulukhuni",
-    "confirmemail": "Qinisekisa ikheli likagesi",
-    "confirmemail_loggedin": "Ikheli likagesi lakho liqinisekiswa.",
-    "recreate": "Dala kabusha",
-    "confirm_purge_button": "Kulungile"
+       "@metadata": {
+               "authors": [
+                       "Jose77 (on zu.wikipedia.org)",
+                       "Joziboy (on zu.wikipedia.org)",
+                       "Rosinah3",
+                       "Vogone",
+                       "לערי ריינהארט"
+               ]
+       },
+       "underline-always": "Njalo",
+       "sunday": "iSonto",
+       "monday": "uMsombuluko",
+       "tuesday": "uLwesibili",
+       "wednesday": "uLwesithathu",
+       "thursday": "uLwesine",
+       "friday": "uLwesihlanu",
+       "saturday": "uMgqibelo",
+       "january": "Umasingana",
+       "february": "uNhlolanja",
+       "march": "uMbasa",
+       "april": "uNdasa",
+       "may_long": "uNhlaba",
+       "june": "uNhlangulana",
+       "july": "uNtulikazi",
+       "august": "uNcwaba",
+       "september": "uMandulo",
+       "october": "uMfumfu",
+       "november": "uLwezi",
+       "december": "uZibandlela",
+       "january-gen": "uJanuwali",
+       "february-gen": "uFebruwari",
+       "march-gen": "uMashi",
+       "april-gen": "u-Apreli",
+       "may-gen": "uMeyi",
+       "june-gen": "uJuni",
+       "july-gen": "uJulayi",
+       "august-gen": "u-Agasti",
+       "september-gen": "uSepthemba",
+       "october-gen": "u-Okthoba",
+       "november-gen": "uNovemba",
+       "december-gen": "uDisemba",
+       "may": "uMeyi",
+       "cancel": "Nqamula",
+       "moredotdotdot": "Amanye...",
+       "mypage": "Ikhasi lami",
+       "mytalk": "Ingxoxo yami",
+       "navigation": "Ukuqondiswa kwemikhumbi",
+       "qbfind": "Thola",
+       "qbbrowse": "Cinga",
+       "qbedit": "Ukuhlela",
+       "qbpageoptions": "Leli khasi",
+       "qbmyoptions": "Amakhasi ami",
+       "errorpagetitle": "Icala",
+       "help": "Usizo",
+       "search": "Sesha",
+       "searchbutton": "Sesha",
+       "go": "Hamba",
+       "searcharticle": "Hamba",
+       "history_short": "Umlando",
+       "printableversion": "Inguqulo eshicilelekayo",
+       "print": "Shicilela",
+       "edit": "Hlela",
+       "editthispage": "Hlela leli khasi",
+       "delete": "Sula",
+       "deletethispage": "Sula lelikhasi",
+       "protect": "Londoloza",
+       "protectthispage": "Londoloza lelikhasi",
+       "newpage": "Ikhasi elisha",
+       "talkpage": "Xoxa ngalelikhasi",
+       "personaltools": "Amathuluzi kamsebenzisi",
+       "talk": "Ingxoxo",
+       "toolbox": "Amathuluzi",
+       "otherlanguages": "Ngezilimi ezinahlukene",
+       "redirectpagesub": "Ikhasi likakuphambukisa",
+       "protectedpage": "Ikhasi elilondolozwa",
+       "jumpto": "Eqa e:",
+       "jumptonavigation": "Ukuqondiswa kwemikhumbi",
+       "jumptosearch": "Sesha",
+       "currentevents": "Izehlakalo ezimanje",
+       "currentevents-url": "Project:Izehlakalo ezimanje",
+       "edithelp": "Usizo ngokuhlela",
+       "mainpage": "Ikhasi Elikhulu",
+       "mainpage-description": "Ikhasi Elikhulu",
+       "portal": "Umnyango wamgwamanda",
+       "portal-url": "Project:Umnyango wamgwamanda",
+       "ok": "Kulungile",
+       "youhavenewmessagesmulti": "Uyanemilayezo emisha e $1",
+       "editsection": "hlela",
+       "toc": "Isiqikili",
+       "showtoc": "Bukisa",
+       "hidetoc": "Fihla",
+       "nstab-main": "Umlayezo",
+       "nstab-user": "Ikhasi lomsebenzisi",
+       "nstab-special": "Kukhulu",
+       "nstab-image": "Ifayela",
+       "nstab-mediawiki": "Umlayezo",
+       "nstab-help": "Usizo",
+       "nstab-category": "Uhlobo",
+       "error": "Icala",
+       "databaseerror": "Idatabheyisi linecala",
+       "internalerror": "Icala lingaphakathi",
+       "welcomeuser": "Umbingelelo, $1!",
+       "welcomecreation-msg": "Ikhawundi lakho liyadalwa. Musa ukukhohlwa ukuguqula [[Special:Preferences|amakhethelo]] a-Wikipedia wakho.",
+       "yourname": "Isiga",
+       "yourpassword": "Izwi elingenangozi",
+       "yourpasswordagain": "Bhala izwi elingenangozi lakho kabusha",
+       "remembermypassword": "Ngikhumbule (for a maximum of $1 {{PLURAL:$1|day|days}})",
+       "login": "Ngena",
+       "nav-login-createaccount": "Ngena / Dala ikhawundi",
+       "userlogin": "Ngena / Dala ikhawundi",
+       "logout": "Phuma",
+       "userlogout": "Phuma",
+       "notloggedin": "Awungenile",
+       "nologin": "Awunekhawundi? '''$1'''.",
+       "nologinlink": "Dala ikhawundi",
+       "createaccount": "Dala ikhawundi",
+       "gotaccountlink": "Ngena",
+       "loginsuccesstitle": "Ubengena",
+       "nosuchuser": "Akukho umsebenzisi unegama \"$1\". Hlola umbhalo wakho, noma dala ikhawundi elisha.",
+       "nosuchusershort": "Akukho umsebenzisi unegama \"$1\". Hlola umbhalo wakho.",
+       "emailconfirmlink": "Qinisekisa ikheli likagesi lakho",
+       "loginlanguagelabel": "Ulimi: $1",
+       "changepassword": "Guqula izwi elingenangozi",
+       "newpassword": "Izwi elingenangozi elisha:",
+       "italic_sample": "Amazwi ama-italiki",
+       "italic_tip": "Amazwi ama-italiki",
+       "hr_tip": "Umugqa uhleliwe  (use sparingly)",
+       "summary": "Isifinyezo:",
+       "minoredit": "Lokho ngukuhlela okuncane",
+       "watchthis": "Bukela ngalelikhasi",
+       "savearticle": "Ukonga ikhasi",
+       "preview": "Isibonakalo",
+       "showpreview": "Bukisa isibonakalo",
+       "showdiff": "Bukisa izinguquko",
+       "missingcommenttext": "Ake ubhale uvo ngaphansi.",
+       "loginreqtitle": "Lidinga ukuthi uyangena",
+       "loginreqlink": "Ngena",
+       "noarticletext": "Akukho umbhalo kuleli khasi manje. Unga [[Special:Search/Allmessages|cinga leli bizo lekhasi]] emakhasini amanye noma unga [{{fullurl:{{FULLPAGENAME}}|action=edit}} hlela leli khasi].",
+       "yourtext": "Umbhalo wakho",
+       "yourdiff": "Izinguquko",
+       "next": "Kulandela",
+       "last": "Amagcino",
+       "histfirst": "lokuqala",
+       "histlast": "ligcinileyo",
+       "rev-delundel": "bukisa/fihla",
+       "searchresults": "Umphumela wokusesha",
+       "preferences": "Amakhethelo",
+       "mypreferences": "Amakhethelo ami",
+       "saveprefs": "Ukonga",
+       "searchresultshead": "Sesha",
+       "timezonelegend": "Isifunda sasikhathi",
+       "localtime": "Isikhathi siyalapha",
+       "username": "Isiga:",
+       "yourrealname": "Igama eliqinisileyo",
+       "yourlanguage": "Ulimi:",
+       "email": "Iposi likagesi",
+       "recentchanges": "Izinguquko ezimanje",
+       "hide": "Fihla",
+       "show": "Bukisa",
+       "recentchangeslinked": "Izinguquko ezilandiweyo",
+       "recentchangeslinked-feed": "Izinguquko ezilandiweyo",
+       "recentchangeslinked-toolbox": "Izinguquko ezilandiweyo",
+       "upload": "Layisha ifayili",
+       "uploadbtn": "Layisha ifayili",
+       "filesource": "Umthombo:",
+       "ignorewarnings": "Duba imiyalo",
+       "upload-success-subj": "Ukulayisha okuchumile",
+       "nolicense": "Ubekhetha lutho",
+       "file-anchor-link": "Ifayela",
+       "nolinkstoimage": "Akukho amakhasi akhomba kuleli fayela.",
+       "randompage": "Ikhasi elingaphandle kokucabanga",
+       "statistics-header-users": "Ukwaziswa wamsebenzisi",
+       "shortpages": "Amakhasi amafishane",
+       "longpages": "Amakhasi amade",
+       "newpages": "Amakhasi amasha",
+       "newpages-username": "Isiga:",
+       "move": "Sunduza",
+       "movethispage": "Thuthisa leli khasi",
+       "specialloguserlabel": "Umsebenzisi:",
+       "allinnamespace": "Onke amakhasi ($1 namespace)",
+       "allpagessubmit": "Hamba",
+       "emailuser": "Thumela umlayezo lo msebenzisi",
+       "noemailtitle": "Akukho ikheli likaposi",
+       "emailsubject": "Indaba",
+       "emailmessage": "Umlayezo",
+       "emailsend": "Thuma",
+       "emailsent": "Umlayezo uthumwa",
+       "watchlist": "Uhlelo ubukelwa wami",
+       "watch": "Bukela",
+       "unwatch": "Mus'ukubukela",
+       "notanarticle": "Akulona ikhasi elinakho okuqukethwe",
+       "deletepage": "Sula ikhasi",
+       "confirm": "Qinisekisa",
+       "protectcomment": "Isizathu",
+       "restriction-edit": "Ukuhlela",
+       "restriction-move": "Sunduza",
+       "undeletecomment": "Khuluma:",
+       "contributions": "Amanikelo amsebenzisi",
+       "mycontris": "Amanikelo ami",
+       "nolinkshere": "Akukho amakhasi ukuthi balayela lapha '''[[:$1]]'''.",
+       "isredirect": "Ikhasi silayela",
+       "blockip": "Vimbela lo msebenzisi",
+       "ipbexpiry": "Ukuphela",
+       "ipbreason": "Isizathu",
+       "ipbsubmit": "Vimbela lo msebenzisi",
+       "ipusubmit": "Qeda isivimbelo lo msebenzisi",
+       "createaccountblock": "Ukudala kwekhawundi kuvimbelwa",
+       "databasenotlocked": "Idatabheyisi alikhiyiwi.",
+       "move-page-legend": "Thuthisa ikhasi",
+       "movearticle": "Thuthisa ikhasi",
+       "movepagebtn": "Thuthisa ikhasi",
+       "movereason": "Isizathu",
+       "delete_and_move": "Sula futhi sunduza",
+       "delete_and_move_confirm": "Yebo, sula ikhasi",
+       "export-submit": "Thekelisa",
+       "allmessagesname": "Igama",
+       "thumbnail-more": "Khulisa",
+       "filemissing": "Ifayili lilahlekile",
+       "import-interwiki-submit": "Ngenisa",
+       "tooltip-search": "Phenya",
+       "tooltip-search-fulltext": "\nPhenya amakhasi ukuze uthole lombhalo",
+       "tooltip-p-logo": "vakashela ikhasi elikhulu",
+       "others": "Abanye",
+       "markaspatrolleddiff": "Dweba ukuthi lelikhasi liyagadwa",
+       "markaspatrolledtext": "Dweba ukuthi lelikhasi liyagadwa",
+       "markedaspatrolled": "Dweba ukuthi lelikhasi liyagadwa",
+       "newimages": "Uhlelo lwamafayela amasha",
+       "noimages": "Awuboni lutho.",
+       "ilsubmit": "Sesha",
+       "metadata-expand": "Bukisa imininingwane yonke",
+       "metadata-collapse": "Fihla imininingwane yonke",
+       "exif-orientation": "Ukuma okumaqondana nempumalanga",
+       "exif-artist": "Umbhali",
+       "exif-sharpness": "Ububukhali",
+       "exif-orientation-1": "Kuphelele",
+       "exif-meteringmode-5": "Umhlobiso",
+       "exif-lightsource-4": "Umbani",
+       "exif-lightsource-11": "Umthunzi",
+       "exif-sensingmethod-1": "Akucaci",
+       "exif-scenecapturetype-0": "Izinga",
+       "exif-scenecapturetype-1": "Umfanekiso wesizwe",
+       "exif-scenecapturetype-2": "Umfanekiso womuntu",
+       "exif-scenecapturetype-3": "Imboniso ebusuku",
+       "exif-contrast-0": "Kuphelele",
+       "exif-contrast-1": "Kuntofontofo",
+       "exif-contrast-2": "Kulukhuni",
+       "exif-saturation-0": "Kuphelele",
+       "exif-sharpness-0": "Kuphelele",
+       "exif-sharpness-1": "Kuntofontofo",
+       "exif-sharpness-2": "Kulukhuni",
+       "confirmemail": "Qinisekisa ikheli likagesi",
+       "confirmemail_loggedin": "Ikheli likagesi lakho liqinisekiswa.",
+       "recreate": "Dala kabusha",
+       "confirm_purge_button": "Kulungile"
 }
index aa1d9d1..2f86c78 100644 (file)
 $namespaceNames = array(
        NS_SPECIAL          => 'Syndrig',
        NS_TALK             => 'Mōtung',
-       NS_FILE             => 'Biliþ',
-       NS_FILE_TALK        => 'Biliþmōtung',
+       NS_USER             => 'Brūcend',
+       NS_USER_TALK        => 'Brūcendmōtung',
+       NS_FILE             => 'Ymele',
+       NS_FILE_TALK        => 'Ymelmōtung',
+       NS_MEDIAWIKI_TALK   => 'MediaWikimōtung',
        NS_TEMPLATE         => 'Bysen',
        NS_TEMPLATE_TALK    => 'Bysenmōtung',
        NS_HELP             => 'Help',
@@ -26,8 +29,9 @@ $namespaceAliases = array(
        'Motung'        => NS_TALK,
        'Brucend'       => NS_USER,
        'Brucendmotung' => NS_USER_TALK,
-       'Biliþgesprec'  => NS_FILE_TALK,
+       'Biliþ'         => NS_FILE,
        'Biliþmotung'   => NS_FILE_TALK,
+       'Biliþmōtung'   => NS_FILE_TALK,
        'Bysengesprec'  => NS_TEMPLATE_TALK,
        'Bysenmotung'   => NS_TEMPLATE_TALK,
        'Helpgesprec'   => NS_HELP_TALK,
index 0a10279..a2c1873 100644 (file)
@@ -240,7 +240,6 @@ $magicWords = array(
        'numberofusers'           => array( 1, 'NUMBEROFUSERS' ),
        'numberofactiveusers'     => array( 1, 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'           => array( 1, 'NUMBEROFEDITS' ),
-       'numberofviews'           => array( 1, 'NUMBEROFVIEWS' ),
        'pagename'                => array( 1, 'PAGENAME' ),
        'pagenamee'               => array( 1, 'PAGENAMEE' ),
        'namespace'               => array( 1, 'NAMESPACE' ),
@@ -388,6 +387,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'AllMessages' ),
        'AllMyUploads'              => array( 'AllMyUploads', 'AllMyFiles' ),
        'Allpages'                  => array( 'AllPages' ),
+       'ApiHelp'                   => array( 'ApiHelp' ),
        'Ancientpages'              => array( 'AncientPages' ),
        'Badtitle'                  => array( 'Badtitle' ),
        'Blankpage'                 => array( 'BlankPage' ),
@@ -536,7 +536,7 @@ $preloadedMessages = array(
        'accesskey-ca-history',
        'accesskey-ca-nstab-main',
        'accesskey-ca-talk',
-       'accesskey-ca-view',
+       'accesskey-ca-viewsource',
        'accesskey-n-currentevents',
        'accesskey-n-help',
        'accesskey-n-mainpage-description',
@@ -545,15 +545,20 @@ $preloadedMessages = array(
        'accesskey-n-recentchanges',
        'accesskey-p-logo',
        'accesskey-pt-login',
+       'accesskey-pt-createaccount',
        'accesskey-search',
        'accesskey-search-fulltext',
        'accesskey-search-go',
+       'accesskey-t-info',
        'accesskey-t-permalink',
+       'accesskey-t-print',
        'accesskey-t-recentchangeslinked',
        'accesskey-t-specialpages',
        'accesskey-t-whatlinkshere',
        'actions',
        'anonnotice',
+       'brackets',
+       'comma-separator',
        'currentevents',
        'currentevents-url',
        'disclaimerpage',
@@ -575,7 +580,6 @@ $preloadedMessages = array(
        'navigation',
        'nav-login-createaccount',
        'nstab-main',
-       'nstab-talk',
        'opensearch-desc',
        'pagecategories',
        'pagecategorieslink',
@@ -597,6 +601,7 @@ $preloadedMessages = array(
        'search',
        'searcharticle',
        'searchbutton',
+       'searchsuggest-search',
        'sidebar',
        'navigation-heading',
        'site-atom-feed',
@@ -609,7 +614,7 @@ $preloadedMessages = array(
        'tooltip-ca-history',
        'tooltip-ca-nstab-main',
        'tooltip-ca-talk',
-       'tooltip-ca-view',
+       'tooltip-ca-viewsource',
        'tooltip-n-currentevents',
        'tooltip-n-help',
        'tooltip-n-mainpage-description',
@@ -617,13 +622,14 @@ $preloadedMessages = array(
        'tooltip-n-randompage',
        'tooltip-n-recentchanges',
        'tooltip-p-logo',
-       'tooltip-p-navigation',
-       'tooltip-p-tb',
        'tooltip-pt-login',
+       'tooltip-pt-createaccount',
        'tooltip-search',
        'tooltip-search-fulltext',
        'tooltip-search-go',
+       'tooltip-t-info',
        'tooltip-t-permalink',
+       'tooltip-t-print',
        'tooltip-t-recentchangeslinked',
        'tooltip-t-specialpages',
        'tooltip-t-whatlinkshere',
@@ -634,5 +640,6 @@ $preloadedMessages = array(
        'viewcount',
        'views',
        'whatlinkshere',
+       'word-separator',
 );
 
index 09ae5a6..abba540 100644 (file)
 
 $fallback = 'hi';
 
+$namespaceNames = array(
+       NS_MEDIA            => 'मेडिया',
+       NS_SPECIAL          => 'विशेष',
+       NS_TALK             => 'वार्ता',
+       NS_USER             => 'प्रयोगकर्ता',
+       NS_USER_TALK        => 'प्रयोगकर्ता_वार्ता',
+       NS_PROJECT_TALK     => '$1_वार्ता',
+       NS_FILE             => 'फाइल',
+       NS_FILE_TALK        => 'फाइल_वार्ता',
+       NS_MEDIAWIKI        => 'मेडियाविकि',
+       NS_MEDIAWIKI_TALK   => 'मेडियाविकि_वार्ता',
+       NS_TEMPLATE         => 'आकृति',
+       NS_TEMPLATE_TALK    => 'आकृति_वार्ता',
+       NS_HELP             => 'मद्दत',
+       NS_HELP_TALK        => 'मद्दत_वार्ता',
+       NS_CATEGORY         => 'श्रेणी',
+       NS_CATEGORY_TALK    => 'श्रेणी_वार्ता',
+);
index 43e19e0..e78964e 100644 (file)
@@ -73,7 +73,6 @@ $bookstoreList = array(
        'Koninklijke Bibliotheek' => 'http://opc4.kb.nl/DB=1/SET=5/TTL=1/CMD?ACT=SRCH&IKT=1007&SRT=RLV&TRM=$1'
 );
 
-#!!# Translation <b>HLEERSTE:</b> is used more than once for <a href="#mw-sp-magic-lcfirst">lcfirst</a> and <a href="#mw-sp-magic-ucfirst">ucfirst</a>.
 $magicWords = array(
        'redirect'                  => array( '0', '#DEURVERWIEZING', '#DUURVERWIEZING', '#DOORVERWIJZING', '#REDIRECT' ),
        'notoc'                     => array( '0', '__GIENONDERWARPEN__', '__GEENINHOUD__', '__NOTOC__' ),
diff --git a/languages/messages/MessagesSes.php b/languages/messages/MessagesSes.php
new file mode 100644 (file)
index 0000000..9d9e009
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/** Koyraboro Senni
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ */
+
+$fallback = 'fr';
index b3d0996..5936055 100644 (file)
@@ -90,7 +90,6 @@ $namespaceAliases = array(
        'Hjälp_diskussion'     => NS_HELP_TALK
 );
 
-#!!# Translation <b>Prefixindex</b> for <a href="#mw-sp-magic-Prefixindex">Prefixindex</a> is not in normalised form, which is <b>PrefixIndex</b>
 $specialPageAliases = array(
        'Allmessages'               => array( 'Systemmeddelanden' ),
        'Allpages'                  => array( 'Alla_sidor' ),
index 655f309..8b23909 100644 (file)
--- a/load.php
+++ b/load.php
@@ -23,7 +23,7 @@
  */
 
 // Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) {
+if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
        // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
        require dirname( __FILE__ ) . '/includes/PHPVersionError.php';
        wfPHPVersionError( 'load.php' );
@@ -38,16 +38,15 @@ if ( !$wgRequest->checkUrlExtension() ) {
        return;
 }
 
-// Respond to resource loading request
-$resourceLoader = new ResourceLoader(
-       ConfigFactory::getDefaultInstance()->makeConfig( 'main' )
-);
+// Respond to resource loading request.
+// foo()->bar() syntax is not supported in PHP4, and this file needs to *parse* in PHP4.
+$configFactory = ConfigFactory::getDefaultInstance();
+$resourceLoader = new ResourceLoader( $configFactory->makeConfig( 'main' ) );
 $resourceLoader->respond( new ResourceLoaderContext( $resourceLoader, $wgRequest ) );
 
 wfProfileOut( 'load.php' );
 wfLogProfilingData();
 
-// Shut down the database.  foo()->bar() syntax is not supported in PHP4, and this file
-// needs to *parse* in PHP4, although we'll never get down here to worry about = vs =&
+// Shut down the database.
 $lb = wfGetLBFactory();
 $lb->shutdown();
index 8d30df4..d740f56 100644 (file)
@@ -20,8 +20,8 @@
  * @defgroup Maintenance Maintenance
  */
 
-// Make sure we're on PHP5.3.2 or better
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) {
+// Make sure we're on PHP5.3.3 or better
+if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
        // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
        require_once dirname( __FILE__ ) . '/../includes/PHPVersionError.php';
        wfPHPVersionError( 'cli' );
diff --git a/maintenance/cleanupBlocks.php b/maintenance/cleanupBlocks.php
new file mode 100644 (file)
index 0000000..1736203
--- /dev/null
@@ -0,0 +1,147 @@
+<?php
+/**
+ * Cleans up user blocks with user names not matching the 'user' table
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ */
+
+require_once __DIR__ . '/Maintenance.php';
+
+/**
+ * Maintenance script to clean up user blocks with user names not matching the
+ * 'user' table.
+ *
+ * @ingroup Maintenance
+ */
+class CleanupBlocks extends Maintenance {
+
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = "Cleanup user blocks with user names not matching the 'user' table";
+               $this->setBatchSize( 1000 );
+       }
+
+       public function execute() {
+               $db = wfGetDB( DB_MASTER );
+
+               $max = $db->selectField( 'ipblocks', 'MAX(ipb_user)' );
+
+               // Step 1: Clean up any duplicate user blocks
+               for ( $from = 1; $from <= $max; $from += $this->mBatchSize ) {
+                       $to = min( $max, $from + $this->mBatchSize - 1 );
+                       $this->output( "Cleaning up duplicate ipb_user ($from-$to of $max)\n" );
+
+                       $delete = array();
+
+                       $res = $db->select(
+                               'ipblocks',
+                               array( 'ipb_user' ),
+                               array(
+                                       "ipb_user >= $from",
+                                       "ipb_user <= $to",
+                               ),
+                               __METHOD__,
+                               array(
+                                       'GROUP BY' => 'ipb_user',
+                                       'HAVING' => 'COUNT(*) > 1',
+                               )
+                       );
+                       foreach ( $res as $row ) {
+                               $bestBlock = null;
+                               $res2 = $db->select(
+                                       'ipblocks',
+                                       '*',
+                                       array(
+                                               'ipb_user' => $row->ipb_user,
+                                       )
+                               );
+                               foreach ( $res2 as $row2 ) {
+                                       $block = Block::newFromRow( $row2 );
+                                       if ( !$bestBlock ) {
+                                               $bestBlock = $block;
+                                               continue;
+                                       }
+
+                                       // Find the most-restrictive block. Can't use
+                                       // Block::chooseBlock because that's for IP blocks, not
+                                       // user blocks.
+                                       $keep = null;
+                                       if ( $keep === null && $block->getExpiry() !== $bestBlock->getExpiry() ) {
+                                               // This works for infinite blocks because 'infinity' > '20141024234513'
+                                               $keep = $block->getExpiry() > $bestBlock->getExpiry();
+                                       }
+                                       if ( $keep === null ) {
+                                               foreach ( array( 'createaccount', 'sendemail', 'editownusertalk' ) as $action ) {
+                                                       if ( $block->prevents( $action ) xor $bestBlock->prevents( $action ) ) {
+                                                               $keep = $block->prevents( $action );
+                                                               break;
+                                                       }
+                                               }
+                                       }
+
+                                       if ( $keep ) {
+                                               $delete[] = $bestBlock->getId();
+                                               $bestBlock = $block;
+                                       } else {
+                                               $delete[] = $block->getId();
+                                       }
+                               }
+                       }
+
+                       if ( $delete ) {
+                               $db->delete(
+                                       'ipblocks',
+                                       array( 'ipb_id' => $delete ),
+                                       __METHOD__
+                               );
+                       }
+               }
+
+               // Step 2: Update the user name in any blocks where it doesn't match
+               for ( $from = 1; $from <= $max; $from += $this->mBatchSize ) {
+                       $to = min( $max, $from + $this->mBatchSize - 1 );
+                       $this->output( "Cleaning up mismatched user name ($from-$to of $max)\n" );
+
+                       $res = $db->select(
+                               array( 'ipblocks', 'user' ),
+                               array( 'ipb_id', 'user_name' ),
+                               array(
+                                       'ipb_user = user_id',
+                                       "ipb_user >= $from",
+                                       "ipb_user <= $to",
+                                       'ipb_address != user_name',
+                               ),
+                               __METHOD__
+                       );
+                       foreach ( $res as $row ) {
+                               $db->update(
+                                       'ipblocks',
+                                       array( 'ipb_address' => $row->user_name ),
+                                       array( 'ipb_id' => $row->ipb_id ),
+                                       __METHOD__
+                               );
+                       }
+               }
+
+               $this->output( "Done!\n" );
+       }
+}
+
+$maintClass = "CleanupBlocks";
+require_once RUN_MAINTENANCE_IF_MAIN;
index 9e88c13..6234db4 100644 (file)
@@ -37,6 +37,9 @@ require_once __DIR__ . '/cleanupTable.inc';
  * @ingroup Maintenance
  */
 class CapsCleanup extends TableCleanup {
+
+       private $user;
+
        public function __construct() {
                parent::__construct();
                $this->mDescription = "Script to cleanup capitalization";
@@ -44,13 +47,13 @@ class CapsCleanup extends TableCleanup {
        }
 
        public function execute() {
-               global $wgCapitalLinks, $wgUser;
+               global $wgCapitalLinks;
 
                if ( $wgCapitalLinks ) {
                        $this->error( "\$wgCapitalLinks is on -- no need for caps links cleanup.", true );
                }
 
-               $wgUser = User::newFromName( 'Conversion script' );
+               $this->user = User::newFromName( 'Conversion script' );
 
                $this->namespace = intval( $this->getOption( 'namespace', 0 ) );
                $this->dryrun = $this->hasOption( 'dry-run' );
@@ -87,7 +90,9 @@ class CapsCleanup extends TableCleanup {
                        $this->output( "\"$display\" -> \"$targetDisplay\": DRY RUN, NOT MOVED\n" );
                        $ok = true;
                } else {
-                       $ok = $current->moveTo( $target, false, 'Converting page titles to lowercase' );
+                       $mp = new MovePage( $current, $target );
+                       $status = $mp->move( $this->user, 'Converting page titles to lowercase', true );
+                       $ok = $status->isOK() ? 'OK' : $status->getWikiText();
                        $this->output( "\"$display\" -> \"$targetDisplay\": $ok\n" );
                }
                if ( $ok === true ) {
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index 99f43ff..ad8b004 100644 (file)
@@ -2899,7 +2899,6 @@ numberofedits
 numberoffiles
 numberofpages
 numberofusers
-numberofviews
 numberofwatchingusers
 numedits
 numentries
index 46844c9..e4380a7 100644 (file)
@@ -56,8 +56,8 @@ $self = $maintenance->getName();
 
 # Start the autoloader, so that extensions can derive classes from core files
 require_once "$IP/includes/AutoLoader.php";
-# Stub the profiler
-require_once "$IP/includes/profiler/Profiler.php";
+# Grab profiling functions
+require_once "$IP/includes/profiler/ProfilerFunctions.php";
 
 # Start the profiler
 $wgProfiler = array();
index 4b2ff71..d8bc3a4 100644 (file)
@@ -54,7 +54,7 @@ abstract class DumpIterator extends Maintenance {
                $this->checkOptions();
 
                if ( $this->hasOption( 'file' ) ) {
-                       $revision = new WikiRevision;
+                       $revision = new WikiRevision( $this->getConfig() );
 
                        $revision->setText( file_get_contents( $this->getOption( 'file' ) ) );
                        $revision->setTitle( Title::newFromText(
@@ -73,7 +73,7 @@ abstract class DumpIterator extends Maintenance {
                        $this->error( "Sorry, I don't support dump filenames yet. "
                                . "Use - and provide it on stdin on the meantime.", true );
                }
-               $importer = new WikiImporter( $source );
+               $importer = new WikiImporter( $source, $this->getConfig() );
 
                $importer->setRevisionCallback(
                        array( &$this, 'handleRevision' ) );
index 51f2cac..25ecc09 100644 (file)
@@ -54,18 +54,18 @@ if ( isset( $options['d'] ) ) {
        }
 }
 
-$useReadline = function_exists( 'readline_add_history' )
+$__useReadline = function_exists( 'readline_add_history' )
        && Maintenance::posix_isatty( 0 /*STDIN*/ );
 
-if ( $useReadline ) {
-       $historyFile = isset( $_ENV['HOME'] ) ?
+if ( $__useReadline ) {
+       $__historyFile = isset( $_ENV['HOME'] ) ?
                "{$_ENV['HOME']}/.mweval_history" : "$IP/maintenance/.mweval_history";
-       readline_read_history( $historyFile );
+       readline_read_history( $__historyFile );
 }
 
-$e = null; // PHP exception
-while ( ( $line = Maintenance::readconsole() ) !== false ) {
-       if ( $e && !preg_match( '/^(exit|die);?$/', $line ) ) {
+$__e = null; // PHP exception
+while ( ( $__line = Maintenance::readconsole() ) !== false ) {
+       if ( $__e && !preg_match( '/^(exit|die);?$/', $__line ) ) {
                // Internal state may be corrupted or fatals may occur later due
                // to some object not being set. Don't drop out of eval in case
                // lines were being pasted in (which would then get dumped to the shell).
@@ -73,23 +73,23 @@ while ( ( $line = Maintenance::readconsole() ) !== false ) {
                echo "Exception was thrown before; please restart eval.php\n";
                continue;
        }
-       if ( $useReadline ) {
-               readline_add_history( $line );
-               readline_write_history( $historyFile );
+       if ( $__useReadline ) {
+               readline_add_history( $__line );
+               readline_write_history( $__historyFile );
        }
        try {
-               $val = eval( $line . ";" );
-       } catch ( Exception $e ) {
-               echo "Caught exception " . get_class( $e ) .
-                       ": {$e->getMessage()}\n" . $e->getTraceAsString() . "\n";
+               $__val = eval( $__line . ";" );
+       } catch ( Exception $__e ) {
+               echo "Caught exception " . get_class( $__e ) .
+                       ": {$__e->getMessage()}\n" . $__e->getTraceAsString() . "\n";
                continue;
        }
-       if ( wfIsHHVM() || is_null( $val ) ) {
+       if ( wfIsHHVM() || is_null( $__val ) ) {
                echo "\n";
-       } elseif ( is_string( $val ) || is_numeric( $val ) ) {
-               echo "$val\n";
+       } elseif ( is_string( $__val ) || is_numeric( $__val ) ) {
+               echo "$__val\n";
        } else {
-               var_dump( $val );
+               var_dump( $__val );
        }
 }
 
index add7108..5818ee2 100644 (file)
@@ -26,7 +26,7 @@ class FindMissingFiles extends Maintenance {
                parent::__construct();
 
                $this->mDescription = 'Find registered files with no corresponding file.';
-               $this->addOption( 'start', 'Starting file name', false, true );
+               $this->addOption( 'start', 'Start after this file name', false, true );
                $this->addOption( 'mtimeafter', 'Only include files changed since this time', false, true );
                $this->addOption( 'mtimebefore', 'Only includes files changed before this time', false, true );
                $this->setBatchSize( 300 );
@@ -42,9 +42,12 @@ class FindMissingFiles extends Maintenance {
                $mtime1 = $dbr->timestampOrNull( $this->getOption( 'mtimeafter', null ) );
                $mtime2 = $dbr->timestampOrNull( $this->getOption( 'mtimebefore', null ) );
 
-               $joinTables = array( 'image' );
-               $joinConds = array( 'image' => array( 'INNER JOIN', 'img_name = page_title' ) );
+               $joinTables = array();
+               $joinConds = array();
                if ( $mtime1 || $mtime2 ) {
+                       $joinTables[] = 'page';
+                       $joinConds['page'] = array( 'INNER JOIN',
+                               array( 'page_title = img_name', 'page_namespace' => NS_FILE ) );
                        $joinTables[] = 'logging';
                        $on = array( 'log_page = page_id', 'log_type' => array( 'upload', 'move', 'delete' ) );
                        if ( $mtime1 ) {
@@ -58,10 +61,9 @@ class FindMissingFiles extends Maintenance {
 
                do {
                        $res = $dbr->select(
-                               array_merge( array( 'page' ), $joinTables ),
+                               array_merge( array( 'image' ), $joinTables ),
                                array( 'name' => 'img_name' ),
-                               array( 'page_namespace' => NS_FILE,
-                                       "page_title >= " . $dbr->addQuotes( $lastName ) ),
+                               array( "img_name > " . $dbr->addQuotes( $lastName ) ),
                                __METHOD__,
                                // DISTINCT causes a pointless filesort
                                array( 'ORDER BY' => 'name', 'GROUP BY' => 'name',
index 1930a22..12711ea 100644 (file)
@@ -181,7 +181,14 @@ class GenerateSitemap extends Maintenance {
                $this->setNamespacePriorities();
                $this->url_limit = 50000;
                $this->size_limit = pow( 2, 20 ) * 10;
-               $this->fspath = self::init_path( $this->getOption( 'fspath', getcwd() ) );
+
+               # Create directory if needed
+               $fspath = $this->getOption( 'fspath', getcwd() );
+               if ( !wfMkdirParents( $fspath, null, __METHOD__ ) ) {
+                       $this->error( "Can not create directory $fspath.", 1 );
+               }
+
+               $this->fspath = realpath( $fspath ) . DIRECTORY_SEPARATOR;
                $this->urlpath = $this->getOption( 'urlpath', "" );
                if ( $this->urlpath !== "" && substr( $this->urlpath, -1 ) !== '/' ) {
                        $this->urlpath .= '/';
@@ -238,20 +245,6 @@ class GenerateSitemap extends Maintenance {
                }
        }
 
-       /**
-        * Create directory if it does not exist and return pathname with a trailing slash
-        * @param string $fspath
-        * @return null|string
-        */
-       private static function init_path( $fspath ) {
-               # Create directory if needed
-               if ( $fspath && !is_dir( $fspath ) ) {
-                       wfMkdirParents( $fspath, null, __METHOD__ ) or die( "Can not create directory $fspath.\n" );
-               }
-
-               return realpath( $fspath ) . DIRECTORY_SEPARATOR;
-       }
-
        /**
         * Generate a one-dimensional array of existing namespaces
         */
index 1f75bcc..ea8c84b 100644 (file)
@@ -270,7 +270,7 @@ TEXT;
                $this->startTime = microtime( true );
 
                $source = new ImportStreamSource( $handle );
-               $importer = new WikiImporter( $source );
+               $importer = new WikiImporter( $source, $this->getConfig() );
 
                if ( $this->hasOption( 'debug' ) ) {
                        $importer->setDebug( true );
index 49e0e9d..cac33ec 100644 (file)
@@ -34,11 +34,7 @@ class InitSiteStats extends Maintenance {
        public function __construct() {
                parent::__construct();
                $this->mDescription = "Re-initialise the site statistics tables";
-               $this->addOption(
-                       'update',
-                       'Update the existing statistics (preserves the ss_total_views field)'
-               );
-               $this->addOption( 'noviews', "Don't update the page view counter" );
+               $this->addOption( 'update', 'Update the existing statistics' );
                $this->addOption( 'active', 'Also update active users count' );
                $this->addOption( 'use-master', 'Count using the master database' );
        }
@@ -63,12 +59,6 @@ class InitSiteStats extends Maintenance {
                $image = $counter->files();
                $this->output( "{$image}\n" );
 
-               if ( !$this->hasOption( 'noviews' ) ) {
-                       $this->output( "Counting total page views..." );
-                       $views = $counter->views();
-                       $this->output( "{$views}\n" );
-               }
-
                if ( $this->hasOption( 'update' ) ) {
                        $this->output( "\nUpdating site statistics..." );
                        $counter->refresh();
index 2aff988..bf0e07f 100644 (file)
@@ -66,7 +66,7 @@ class SeeTag < CommonTag
     <<-EOHTML
       <h3 class="pa">Related</h3>
       <ul>
-      #{ context[@tagname].map {|tag| tag[:doc] }.join("\n") }
+      #{ context[@tagname].map { |tag| tag[:doc] }.join("\n") }
       </ul>
     EOHTML
   end
index d6163bd..145749a 100644 (file)
@@ -13,7 +13,8 @@
                                        "mw.html",
                                        "mw.html.Cdata",
                                        "mw.html.Raw",
-                                       "mw.hook"
+                                       "mw.hook",
+                                       "mw.template"
                                ]
                        },
                        {
index 713753f..a27a772 100644 (file)
@@ -103,10 +103,10 @@ class MoveBatch extends Maintenance {
 
                        $this->output( $source->getPrefixedText() . ' --> ' . $dest->getPrefixedText() );
                        $dbw->begin( __METHOD__ );
-                       $err = $source->moveTo( $dest, false, $reason, !$noredirects );
-                       if ( $err !== true ) {
-                               $msg = array_shift( $err[0] );
-                               $this->output( "\nFAILED: " . wfMessage( $msg, $err[0] )->text() );
+                       $mp = new MovePage( $source, $dest );
+                       $status = $mp->move( $wgUser, $reason, !$noredirects );
+                       if ( !$status->isOK() ) {
+                               $this->output( "\nFAILED: " . $status->getWikiText() );
                        }
                        $dbw->commit( __METHOD__ );
                        $this->output( "\n" );
diff --git a/maintenance/oracle/update-keys.sql b/maintenance/oracle/update-keys.sql
new file mode 100644 (file)
index 0000000..7761d0c
--- /dev/null
@@ -0,0 +1,29 @@
+-- SQL to insert update keys into the initial tables after a
+-- fresh installation of MediaWiki's database.
+-- This is read and executed by the install script; you should
+-- not have to run it by itself unless doing a manual install.
+-- Insert keys here if either the unnecessary would cause heavy
+-- processing or could potentially cause trouble by lowering field
+-- sizes, adding constraints, etc.
+-- When adjusting field sizes, it is recommended removing old
+-- patches but to play safe, update keys should also inserted here.
+
+-- The /*_*/ comments in this and other files are
+-- replaced with the defined table prefix by the installer
+-- and updater scripts. If you are installing or running
+-- updates manually, you will need to manually insert the
+-- table prefix if any when running these scripts.
+--
+
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'filearchive-fa_major_mime-patch-fa_major_mime-chemical.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'image-img_major_mime-patch-img_major_mime-chemical.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'oldimage-oi_major_mime-patch-oi_major_mime-chemical.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'user_groups-ug_group-patch-ug_group-length-increase-255.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'user_former_groups-ufg_group-patch-ufg_group-length-increase-255.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'user_properties-up_property-patch-up_property.sql', null );
old mode 100644 (file)
new mode 100755 (executable)
index 169f512..2218a5e 100644 (file)
@@ -61,7 +61,7 @@ class DumpRenderer extends Maintenance {
                }
 
                $source = new ImportStreamSource( $this->getStdin() );
-               $importer = new WikiImporter( $source );
+               $importer = new WikiImporter( $source, $this->getConfig() );
 
                $importer->setRevisionCallback(
                        array( &$this, 'handleRevision' ) );
index 1b35292..651f211 100755 (executable)
@@ -71,8 +71,8 @@ NEWCHANGES=$(git log $OLDHASH.. --oneline --no-merges --reverse --color=never)
 NEWCHANGESDISPLAY=$(git log $OLDHASH.. --oneline --no-merges --reverse --color=always)
 
 # Copy files
-# - Exclude the default non-svg stylesheet
-rsync --recursive --delete --force --exclude 'oojs-ui.css' --exclude 'oojs-ui*.rtl.css' ./dist/ "$TARGET_REPO/$TARGET_DIR" || exit 1
+# - Exclude the minimised distribution files and RTL sheets for non-CSSJanus environments
+rsync --recursive --delete --force --exclude 'oojs-ui*.min.*' --exclude 'oojs-ui*.rtl.css' ./dist/ "$TARGET_REPO/$TARGET_DIR" || exit 1
 
 # Read the new version
 NEWVERSION=$(oojsuiversion)
index b8dc554..a9f7d8b 100644 (file)
@@ -38,16 +38,19 @@ class ShowJobs extends Maintenance {
                parent::__construct();
                $this->mDescription = "Show number of jobs waiting in master database";
                $this->addOption( 'group', 'Show number of jobs per job type' );
-               $this->addOption(
-                       'list',
-                       'Show a complete list of all jobs in a machine-readable format, instead of statistics'
-               );
+               $this->addOption( 'list',
+                       'Show a list of all jobs in a machine-readable format, instead of statistics' );
+               $this->addOption( 'type', 'Only show/count jobs of a given type', false, true );
        }
 
        public function execute() {
+               $filterType = $this->getOption( 'type', '' );
                $group = JobQueueGroup::singleton();
                if ( $this->hasOption( 'list' ) ) {
                        foreach ( $group->getQueueTypes() as $type ) {
+                               if ( $filterType != '' && $type != $filterType ) {
+                                       continue;
+                               }
                                $queue = $group->get( $type );
                                foreach ( $queue->getAllQueuedJobs() as $job ) {
                                        $this->output( $job->toString() . " status=unclaimed\n" );
@@ -58,6 +61,9 @@ class ShowJobs extends Maintenance {
                        }
                } elseif ( $this->hasOption( 'group' ) ) {
                        foreach ( $group->getQueueTypes() as $type ) {
+                               if ( $filterType != '' && $type != $filterType ) {
+                                       continue;
+                               }
                                $queue = $group->get( $type );
                                $delayed = $queue->getDelayedCount();
                                $pending = $queue->getSize();
@@ -75,6 +81,9 @@ class ShowJobs extends Maintenance {
                } else {
                        $count = 0;
                        foreach ( $group->getQueueTypes() as $type ) {
+                               if ( $filterType != '' && $type != $filterType ) {
+                                       continue;
+                               }
                                $count += $group->get( $type )->getSize();
                        }
                        $this->output( "$count\n" );
index 374a66e..370d14e 100644 (file)
@@ -44,7 +44,6 @@ class ShowSiteStats extends Maintenance {
 
        public function execute() {
                $fields = array(
-                       'ss_total_views' => 'Total views',
                        'ss_total_edits' => 'Total edits',
                        'ss_good_articles' => 'Number of articles',
                        'ss_total_pages' => 'Total pages',
index 0f99662..c0f6c7b 100644 (file)
@@ -39,6 +39,7 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 /**
  * Maintenance script to do various checks on external storage.
  *
+ * @fixme this should extend the base Maintenance class
  * @ingroup Maintenance ExternalStorage
  */
 class CheckStorage {
@@ -466,7 +467,10 @@ class CheckStorage {
                $dbw->ping();
 
                $source = new ImportStreamSource( $file );
-               $importer = new WikiImporter( $source );
+               $importer = new WikiImporter(
+                       $source,
+                       ConfigFactory::getDefaultInstance()->makeConfig( 'main' )
+               );
                $importer->setRevisionCallback( array( &$this, 'importRevision' ) );
                $importer->doImport();
        }
old mode 100644 (file)
new mode 100755 (executable)
index 046d73c..657a2fc 100755 (executable)
@@ -26,7 +26,7 @@
  * @ingroup Maintenance
  */
 
-if ( !function_exists( 'version_compare' ) || ( version_compare( PHP_VERSION, '5.3.2' ) < 0 ) ) {
+if ( !function_exists( 'version_compare' ) || ( version_compare( PHP_VERSION, '5.3.3' ) < 0 ) ) {
        require dirname( __FILE__ ) . '/../includes/PHPVersionError.php';
        wfPHPVersionError( 'cli' );
 }
index 6164282..d67ef6b 100644 (file)
@@ -81,16 +81,16 @@ class UpdateSpecialPages extends Maintenance {
                        if ( !$this->hasOption( 'only' ) || $this->getOption( 'only' ) == $queryPage->getName() ) {
                                $this->output( sprintf( '%-30s [QueryPage] ', $special ) );
                                if ( $queryPage->isExpensive() ) {
-                                       $t1 = explode( ' ', microtime() );
+                                       $t1 = microtime( true );
                                        # Do the query
                                        $num = $queryPage->recache( $limit === null ? $wgQueryCacheLimit : $limit );
-                                       $t2 = explode( ' ', microtime() );
+                                       $t2 = microtime( true );
                                        if ( $num === false ) {
                                                $this->output( "FAILED: database error\n" );
                                        } else {
                                                $this->output( "got $num rows in " );
 
-                                               $elapsed = ( $t2[0] - $t1[0] ) + ( $t2[1] - $t1[1] );
+                                               $elapsed = $t2 - $t1;
                                                $hours = intval( $elapsed / 3600 );
                                                $minutes = intval( $elapsed % 3600 / 60 );
                                                $seconds = $elapsed - $hours * 3600 - $minutes * 60;
@@ -139,12 +139,12 @@ class UpdateSpecialPages extends Maintenance {
                                        continue;
                                }
                                $this->output( sprintf( '%-30s [callback] ', $special ) );
-                               $t1 = explode( ' ', microtime() );
+                               $t1 = microtime( true );
                                call_user_func( $call, $dbw );
-                               $t2 = explode( ' ', microtime() );
+                               $t2 = microtime( true );
 
                                $this->output( "completed in " );
-                               $elapsed = ( $t2[0] - $t1[0] ) + ( $t2[1] - $t1[1] );
+                               $elapsed = $t2 - $t1;
                                $hours = intval( $elapsed / 3600 );
                                $minutes = intval( $elapsed % 3600 / 60 );
                                $seconds = $elapsed - $hours * 3600 - $minutes * 60;
index a6cebc3..ed3e7f4 100644 (file)
@@ -21,7 +21,7 @@
  */
 
 // Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) {
+if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) {
        // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
        require dirname( dirname( __FILE__ ) ) . '/includes/PHPVersionError.php';
        wfPHPVersionError( 'mw-config/index.php' );
index 4b3e356..e53ed54 100644 (file)
@@ -772,6 +772,21 @@ return array(
                'raw' => true,
                'targets' => array( 'desktop', 'mobile' ),
        ),
+       'mediawiki.apihelp' => array(
+               'styles' => 'resources/src/mediawiki/mediawiki.apihelp.css',
+               'targets' => array( 'desktop' ),
+               'dependencies' => array(
+                       'mediawiki.hlist',
+               ),
+       ),
+       'mediawiki.template' => array(
+               'scripts' => 'resources/src/mediawiki/mediawiki.template.js',
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'mediawiki.apipretty' => array(
+               'styles' => 'resources/src/mediawiki/mediawiki.apipretty.css',
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
        'mediawiki.api' => array(
                'scripts' => 'resources/src/mediawiki.api/mediawiki.api.js',
                'dependencies' => 'mediawiki.util',
@@ -840,6 +855,9 @@ return array(
                'position' => 'bottom',
        ),
        'mediawiki.feedback' => array(
+               'templates' => array(
+                       'dialog.html' => 'resources/src/mediawiki/templates/dialog.html',
+               ),
                'scripts' => 'resources/src/mediawiki/mediawiki.feedback.js',
                'styles' => 'resources/src/mediawiki/mediawiki.feedback.css',
                'dependencies' => array(
@@ -984,6 +1002,7 @@ return array(
                'dependencies' => array(
                        'jquery.cookie',
                ),
+               'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.toolbar' => array(
                'class' => 'ResourceLoaderEditToolbarModule',
@@ -1052,6 +1071,9 @@ return array(
                ),
        ),
        'mediawiki.action.view.postEdit' => array(
+               'templates' => array(
+                       'postEdit.html' => 'resources/src/mediawiki.action/templates/postEdit.html',
+               ),
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.js',
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.css',
                'dependencies' => array(
@@ -1087,6 +1109,7 @@ return array(
                ),
                'messages' => array(
                        'editwarning-warning',
+                       // editwarning-warning uses {{int:prefs-editing}}
                        'prefs-editing'
                ),
        ),
@@ -1115,9 +1138,9 @@ return array(
                        'uk' => 'resources/src/mediawiki.language/languages/uk.js',
                ),
                'dependencies' => array(
-                               'mediawiki.language.data',
-                               'mediawiki.cldr',
-                       ),
+                       'mediawiki.language.data',
+                       'mediawiki.cldr',
+               ),
                'targets' => array( 'desktop', 'mobile' ),
                'messages' => array(
                        'and',
@@ -1325,6 +1348,9 @@ return array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js',
        ),
        'mediawiki.special.upload' => array(
+               'templates' => array(
+                       'thumbnail.html' => 'resources/src/mediawiki.special/templates/thumbnail.html',
+               ),
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js',
                'messages' => array(
                        'widthheight',
@@ -1572,22 +1598,25 @@ return array(
                ),
                'skinScripts' => array(
                        'default' => 'resources/lib/oojs-ui/oojs-ui-apex.js',
-                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-minerva.js',
+                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.js',
                ),
                'skinStyles' => array(
                        'default' => 'resources/lib/oojs-ui/oojs-ui-apex.svg.css',
-                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-minerva.svg.css',
+                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css',
                ),
                'messages' => array(
-                       'ooui-outline-control-move-down',
-                       'ooui-outline-control-move-up',
-                       'ooui-outline-control-remove',
-                       'ooui-toolbar-more',
                        'ooui-dialog-message-accept',
                        'ooui-dialog-message-reject',
+                       'ooui-dialog-process-continue',
                        'ooui-dialog-process-dismiss',
                        'ooui-dialog-process-error',
                        'ooui-dialog-process-retry',
+                       'ooui-outline-control-move-down',
+                       'ooui-outline-control-move-up',
+                       'ooui-outline-control-remove',
+                       'ooui-toolbar-more',
+                       'ooui-toolgroup-collapse',
+                       'ooui-toolgroup-expand',
                ),
                'dependencies' => array(
                        'es5-shim',
index 2e088ca..d4f7db3 100644 (file)
@@ -14,7 +14,7 @@
 .ui-helper-hidden { display: none; }
 .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
 .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
+.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse; }
 .ui-helper-clearfix:after { clear: both; }
 .ui-helper-clearfix { zoom: 1; }
 .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
index cc11aed..45e19ac 100644 (file)
  * For more information, please refer to <http://unlicense.org/>
  */
 
+/* global ActiveXObject: false */
+/* jshint browser: true */
+
 (function() {
     'use strict';
 
     var
     /* jStorage version */
-        JSTORAGE_VERSION = '0.4.10',
+        JSTORAGE_VERSION = '0.4.12',
 
         /* detect a dollar object or create one if not found */
         $ = window.jQuery || window.$ || (window.$ = {}),
@@ -58,7 +61,7 @@
         };
 
     // Break if no JSON support was found
-    if (!('parse' in JSON) || !('stringify' in JSON)) {
+    if (typeof JSON.parse !== 'function' || typeof JSON.stringify !== 'function') {
         throw new Error('No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page');
     }
 
             return;
         }
         var pubelm,
-            _pubsubCurrent = _pubsub_last;
+            _pubsubCurrent = _pubsub_last,
+            needFired = [];
 
         for (i = len = _storage.__jstorage_meta.PubSub.length - 1; i >= 0; i--) {
             pubelm = _storage.__jstorage_meta.PubSub[i];
             if (pubelm[0] > _pubsub_last) {
                 _pubsubCurrent = pubelm[0];
-                _fireSubscribers(pubelm[1], pubelm[2]);
+                needFired.unshift(pubelm);
             }
         }
 
+        for (i = needFired.length - 1; i >= 0; i--) {
+            _fireSubscribers(needFired[i][1], needFired[i][2]);
+        }
+
         _pubsub_last = _pubsubCurrent;
     }
 
         switch (l) {
             case 3:
                 h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
+                /* falls through */
             case 2:
                 h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
+                /* falls through */
             case 1:
                 h ^= (str.charCodeAt(i) & 0xff);
                 h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));
     // Initialize jStorage
     _init();
 
-})();
\ No newline at end of file
+})();
index b37e9bc..0fdc1a8 100644 (file)
@@ -4,7 +4,6 @@
                        "Si Gam Acèh"
                ]
        },
-       "ooui-dialog-action-close": "Tôp",
        "ooui-outline-control-move-down": "Pinah item u yup",
        "ooui-outline-control-move-up": "Pinah item u ateuëh",
        "ooui-toolbar-more": "Lom"
index c5984af..5ce3666 100644 (file)
@@ -4,7 +4,6 @@
                        "Naudefj"
                ]
        },
-       "ooui-dialog-action-close": "Sluit",
        "ooui-outline-control-move-down": "Skuif item af",
        "ooui-outline-control-move-up": "Skuif item op"
 }
index 0e070c6..bfe9d5c 100644 (file)
@@ -3,6 +3,5 @@
                "authors": [
                        "Elfalem"
                ]
-       },
-       "ooui-dialog-action-close": "ለመዝጋት"
+       }
 }
index 7eb02a7..de5b7af 100644 (file)
@@ -3,6 +3,5 @@
                "authors": [
                        "Basharh"
                ]
-       },
-       "ooui-dialog-action-close": "ܣܟܘܪ"
+       }
 }
index aa835e2..fc12d1b 100644 (file)
@@ -6,7 +6,6 @@
                        "Jduranboger"
                ]
        },
-       "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-remove": "Bəndi sil",
index 0bfa299..ff915b0 100644 (file)
@@ -9,7 +9,6 @@
                        "Рустам Нурыев"
                ]
        },
-       "ooui-dialog-action-close": "Ябырға",
        "ooui-outline-control-move-down": "Аҫҡа күсерергә",
        "ooui-outline-control-move-up": "Өҫкә күсерергә"
 }
diff --git a/resources/lib/oojs-ui/i18n/bcc.json b/resources/lib/oojs-ui/i18n/bcc.json
new file mode 100644 (file)
index 0000000..a340a88
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Baloch Afghanistan"
+               ]
+       },
+       "ooui-dialog-message-accept": "اوکی",
+       "ooui-dialog-process-retry": "پدا کوشش کورتین"
+}
index f3db639..bc2251e 100644 (file)
@@ -5,7 +5,6 @@
                        "Sky Harbor"
                ]
        },
-       "ooui-dialog-action-close": "Seraduhon",
        "ooui-outline-control-move-down": "Balyuhon an aytem paibaba",
        "ooui-outline-control-move-up": "Balyuhon an aytem paitaas",
        "ooui-toolbar-more": "Kadugangan"
index c3f1abf..c5475f8 100644 (file)
@@ -7,7 +7,6 @@
                        "Zedlik"
                ]
        },
-       "ooui-dialog-action-close": "Закрыць",
        "ooui-outline-control-move-down": "Перасунуць ніжэй",
        "ooui-outline-control-move-up": "Перасунуць вышэй",
        "ooui-toolbar-more": "Болей"
index 08fbe0b..fb0f688 100644 (file)
@@ -5,9 +5,6 @@
                        "Artificial123"
                ]
        },
-       "ooui-dialog-action-close": "Закрыць",
-       "ooui-dialog-confirm-title": "Пацвердзіць",
-       "ooui-dialog-confirm-default-prompt": "Вы ўпэўненыя?",
-       "ooui-dialog-confirm-default-ok": "ОК",
-       "ooui-dialog-confirm-default-cancel": "Адмяніць"
+       "ooui-dialog-message-accept": "ОК",
+       "ooui-dialog-message-reject": "Адмяніць"
 }
index c283973..02d95b5 100644 (file)
@@ -7,7 +7,6 @@
                        "Mitzev"
                ]
        },
-       "ooui-dialog-action-close": "Затваряне",
        "ooui-outline-control-remove": "Премахване на обекта",
        "ooui-toolbar-more": "Още"
 }
index f7105ce..2696144 100644 (file)
@@ -9,12 +9,10 @@
                        "Sayak Sarkar"
                ]
        },
-       "ooui-dialog-action-close": "বন্ধ",
        "ooui-outline-control-move-down": "আইটেম নিচে স্থানান্তর",
        "ooui-outline-control-move-up": "আইটেম উপরে স্থানান্তর",
        "ooui-outline-control-remove": "আইটেম সরান",
        "ooui-toolbar-more": "আরও",
-       "ooui-dialog-confirm-title": "নিশ্চিত করুন",
-       "ooui-dialog-confirm-default-ok": "ঠিক আছে",
-       "ooui-dialog-confirm-default-cancel": "বাতিল"
+       "ooui-dialog-message-accept": "ঠিক আছে",
+       "ooui-dialog-message-reject": "বাতিল"
 }
index 14280a7..c7afbfa 100644 (file)
@@ -4,13 +4,10 @@
                        "DzWiki"
                ]
        },
-       "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",
-       "ooui-dialog-confirm-title": "Potvrdi",
-       "ooui-dialog-confirm-default-prompt": "Da li ste sigurni?",
-       "ooui-dialog-confirm-default-ok": "U redu",
-       "ooui-dialog-confirm-default-cancel": "Otkaži"
+       "ooui-dialog-message-accept": "U redu",
+       "ooui-dialog-message-reject": "Otkaži"
 }
index de86daf..25fb5f5 100644 (file)
@@ -5,13 +5,10 @@
                        "Умар"
                ]
        },
-       "ooui-dialog-action-close": "ДӀачӀагӀа",
        "ooui-outline-control-move-down": "Лаха яккха элемент",
        "ooui-outline-control-move-up": "Лаккха яккха элемент",
        "ooui-outline-control-remove": "ДӀадаха меттиг",
        "ooui-toolbar-more": "Кхин",
-       "ooui-dialog-confirm-title": "Бакъдан",
-       "ooui-dialog-confirm-default-prompt": "Бакъалла лаьий хӀуна?",
-       "ooui-dialog-confirm-default-ok": "ХӀаъ",
-       "ooui-dialog-confirm-default-cancel": "Цаоьшу"
+       "ooui-dialog-message-accept": "ХӀаъ",
+       "ooui-dialog-message-reject": "Цаоьшу"
 }
index eadae99..0c66619 100644 (file)
@@ -6,8 +6,6 @@
                        "Serwan"
                ]
        },
-       "ooui-dialog-action-close": "دایخە",
-       "ooui-dialog-confirm-default-prompt": "ئایا تۆ دڵنیات ؟",
-       "ooui-dialog-confirm-default-ok": "باشە",
-       "ooui-dialog-confirm-default-cancel": "پاشگەزبوونەوە"
+       "ooui-dialog-message-accept": "باشە",
+       "ooui-dialog-message-reject": "پاشگەزبوونەوە"
 }
index 19c2f5c..01d181d 100644 (file)
@@ -4,7 +4,6 @@
                        "Paulu"
                ]
        },
-       "ooui-dialog-action-close": "Chjude",
        "ooui-outline-control-move-down": "Fà falà l'ogettu",
        "ooui-outline-control-move-up": "Fà cullà l'ogettu"
 }
index a75cf0b..2854f0b 100644 (file)
@@ -17,6 +17,8 @@
        "ooui-outline-control-move-up": "Přesunout položku nahoru",
        "ooui-outline-control-remove": "Odstranit položku",
        "ooui-toolbar-more": "Další",
+       "ooui-toolgroup-expand": "Více",
+       "ooui-toolgroup-collapse": "Méně",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Storno",
        "ooui-dialog-process-error": "Něco se pokazilo",
index 45cd201..099b0f3 100644 (file)
@@ -4,6 +4,5 @@
                        "ОйЛ"
                ]
        },
-       "ooui-dialog-action-close": "ꙁакрꙑи",
        "ooui-toolbar-more": "вѧщє"
 }
index ff71251..b74cd06 100644 (file)
@@ -7,7 +7,6 @@
                        "DChan (WMF)"
                ]
        },
-       "ooui-dialog-action-close": "Cau",
        "ooui-outline-control-move-down": "Symud yr eitem i lawr",
        "ooui-outline-control-move-up": "Symud yr eitem i fyny",
        "ooui-outline-control-remove": "Tynnu'r eitem",
index 156a6bc..0b847be 100644 (file)
@@ -10,7 +10,6 @@
                        "Tehnix"
                ]
        },
-       "ooui-dialog-action-close": "Luk",
        "ooui-outline-control-move-down": "Flyt ned",
        "ooui-outline-control-move-up": "Flyt op",
        "ooui-toolbar-more": "Mere"
index 546689b..50d93ea 100644 (file)
@@ -17,6 +17,8 @@
        "ooui-outline-control-move-up": "Element nach oben verschieben",
        "ooui-outline-control-remove": "Element entfernen",
        "ooui-toolbar-more": "Mehr",
+       "ooui-toolgroup-expand": "Mehr",
+       "ooui-toolgroup-collapse": "Weniger",
        "ooui-dialog-message-accept": "Okay",
        "ooui-dialog-message-reject": "Abbrechen",
        "ooui-dialog-process-error": "Etwas ist schief gelaufen",
index 09415fd..881ff67 100644 (file)
@@ -9,7 +9,6 @@
                        "Se4598"
                ]
        },
-       "ooui-dialog-action-close": "Racnê",
        "ooui-outline-control-move-down": "Bendi bere cêr",
        "ooui-outline-control-move-up": "Bendi bere cor",
        "ooui-outline-control-remove": "Obcey wedare",
index d963ac8..7ad3f20 100644 (file)
@@ -4,7 +4,6 @@
                        "Michawiki"
                ]
        },
-       "ooui-dialog-action-close": "Zacyniś",
        "ooui-outline-control-move-down": "Element dołoj pśesunuś",
        "ooui-outline-control-move-up": "Element górjej pśesunuś",
        "ooui-outline-control-remove": "Zapisk wótpóraś",
index d4ef2d5..624ecaa 100644 (file)
@@ -5,13 +5,10 @@
                        "Gloria sah"
                ]
        },
-       "ooui-dialog-action-close": "Sèra",
        "ooui-outline-control-move-down": "Spôsta in bâs",
        "ooui-outline-control-move-up": "Spôsta in êlt",
        "ooui-outline-control-remove": "Armōv l'elemèint",
        "ooui-toolbar-more": "Êter",
-       "ooui-dialog-confirm-title": "Cunfermèr",
-       "ooui-dialog-confirm-default-prompt": "Sî-'v sicùr?",
-       "ooui-dialog-confirm-default-ok": "'D acòrdi",
-       "ooui-dialog-confirm-default-cancel": "Scanślèr"
+       "ooui-dialog-message-accept": "'D acòrdi",
+       "ooui-dialog-message-reject": "Scanślèr"
 }
index 0b54f41..6d9e8bf 100644 (file)
@@ -5,13 +5,10 @@
                        "Lévi"
                ]
        },
-       "ooui-dialog-action-close": "Sèra",
        "ooui-outline-control-move-down": "Spôsta in bâs",
        "ooui-outline-control-move-up": "Spôsta in êlta",
        "ooui-outline-control-remove": "Tór vìa 'l elemèint",
        "ooui-toolbar-more": "Êter",
-       "ooui-dialog-confirm-title": "Cunfirmèr",
-       "ooui-dialog-confirm-default-prompt": "Sî-'v sicùr?",
-       "ooui-dialog-confirm-default-ok": "'D acòrdi",
-       "ooui-dialog-confirm-default-cancel": "Scanślèr"
+       "ooui-dialog-message-accept": "'D acòrdi",
+       "ooui-dialog-message-reject": "Scanślèr"
 }
index 9e99440..1db3fd8 100644 (file)
        "ooui-outline-control-move-up": "Move item up",
        "ooui-outline-control-remove": "Remove item",
        "ooui-toolbar-more": "More",
+       "ooui-toolgroup-expand": "More",
+       "ooui-toolgroup-collapse": "Fewer",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Cancel",
        "ooui-dialog-process-error": "Something went wrong",
        "ooui-dialog-process-dismiss": "Dismiss",
-       "ooui-dialog-process-retry": "Try again"
+       "ooui-dialog-process-retry": "Try again",
+       "ooui-dialog-process-continue": "Continue"
 }
index 101f0af..8d9714c 100644 (file)
@@ -7,7 +7,6 @@
                        "Yekrats"
                ]
        },
-       "ooui-dialog-action-close": "Fermi",
        "ooui-outline-control-move-down": "Movi eron suben",
        "ooui-outline-control-move-up": "Movi eron supren",
        "ooui-toolbar-more": "Pli"
index 7660d4a..82699a3 100644 (file)
@@ -22,6 +22,8 @@
        "ooui-outline-control-move-up": "Subir elemento",
        "ooui-outline-control-remove": "Eliminar elemento",
        "ooui-toolbar-more": "Más",
+       "ooui-toolgroup-expand": "Más",
+       "ooui-toolgroup-collapse": "Menos",
        "ooui-dialog-message-accept": "Aceptar",
        "ooui-dialog-message-reject": "Cancelar",
        "ooui-dialog-process-error": "Algo salió mal",
index ac3af74..7b33735 100644 (file)
@@ -9,6 +9,8 @@
        "ooui-outline-control-move-up": "Liiguta üksust ülespoole",
        "ooui-outline-control-remove": "Eemalda üksus",
        "ooui-toolbar-more": "Veel",
+       "ooui-toolgroup-expand": "Veel",
+       "ooui-toolgroup-collapse": "Vähem",
        "ooui-dialog-message-accept": "Sobib",
        "ooui-dialog-message-reject": "Loobu",
        "ooui-dialog-process-error": "Midagi läks valesti",
index f1ce0bb..62973d3 100644 (file)
@@ -6,7 +6,6 @@
                        "Xabier Armendaritz"
                ]
        },
-       "ooui-dialog-action-close": "Itxi",
        "ooui-outline-control-move-down": "Mugitu itema beherantz",
        "ooui-outline-control-move-up": "Mugitu itema gorantz",
        "ooui-toolbar-more": "Gehiago"
index 1810080..b84df25 100644 (file)
@@ -4,7 +4,6 @@
                        "EileenSanda"
                ]
        },
-       "ooui-dialog-action-close": "Lat aftur",
        "ooui-outline-control-move-down": "Flyt lutin niður",
        "ooui-outline-control-move-up": "Flyt lutin upp",
        "ooui-toolbar-more": "Meira"
index 8ff5475..def0346 100644 (file)
@@ -33,6 +33,7 @@
        "ooui-outline-control-move-up": "Faire monter l’élément",
        "ooui-outline-control-remove": "Supprimer l’élément",
        "ooui-toolbar-more": "Plus",
+       "ooui-toolgroup-expand": "Plus",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Annuler",
        "ooui-dialog-process-error": "Quelque chose a mal tourné",
index d98f4ab..54d0fb2 100644 (file)
@@ -5,7 +5,6 @@
                        "Murma174"
                ]
        },
-       "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",
index e1c129b..83c2fd9 100644 (file)
@@ -5,7 +5,6 @@
                        "Tocaibon"
                ]
        },
-       "ooui-dialog-action-close": "Siere",
        "ooui-outline-control-move-down": "sposte sot",
        "ooui-outline-control-move-up": "sposte in su",
        "ooui-toolbar-more": "Altri"
index bbaf4c1..81690ab 100644 (file)
@@ -19,6 +19,8 @@
        "ooui-outline-control-move-up": "להזיז את הפריט מעלה",
        "ooui-outline-control-remove": "להסיר את הפריט",
        "ooui-toolbar-more": "עוד",
+       "ooui-toolgroup-expand": "יותר",
+       "ooui-toolgroup-collapse": "פחות",
        "ooui-dialog-message-accept": "אישור",
        "ooui-dialog-message-reject": "ביטול",
        "ooui-dialog-process-error": "משהו השתבש",
index 5a9bef0..a76d39e 100644 (file)
@@ -8,7 +8,6 @@
                        "Goelujjwal"
                ]
        },
-       "ooui-dialog-action-close": "बंद करें",
        "ooui-outline-control-move-down": "प्रविष्टि नीचे ले जाएँ",
        "ooui-outline-control-move-up": "प्रविष्टि ऊपर ले जाएँ",
        "ooui-outline-control-remove": "आइटम हटाएँ",
index 371b4f3..1581fd8 100644 (file)
@@ -5,7 +5,6 @@
                        "Michawiki"
                ]
        },
-       "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ć",
index 1710bc6..7565f4f 100644 (file)
@@ -11,7 +11,6 @@
                        "William Surya Permana"
                ]
        },
-       "ooui-dialog-action-close": "Tutup",
        "ooui-outline-control-move-down": "Pindahkan butir ke bawah",
        "ooui-outline-control-move-up": "Pindahkan butir ke atas",
        "ooui-toolbar-more": "Lainnya"
index 4a9f1c4..241cc33 100644 (file)
@@ -4,7 +4,6 @@
                        "Makuba"
                ]
        },
-       "ooui-dialog-action-close": "Terminar",
        "ooui-outline-control-move-down": "Mover element a infra",
        "ooui-outline-control-move-up": "Mover element a supra",
        "ooui-toolbar-more": "Plu"
index 58fc1b8..2c99bdd 100644 (file)
@@ -5,7 +5,6 @@
                        "Snævar"
                ]
        },
-       "ooui-dialog-action-close": "Loka",
        "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"
index 3d4e049..2c79fc2 100644 (file)
@@ -19,6 +19,8 @@
        "ooui-outline-control-move-up": "Sposta in alto",
        "ooui-outline-control-remove": "Rimuovi elemento",
        "ooui-toolbar-more": "Altro",
+       "ooui-toolgroup-expand": "Più",
+       "ooui-toolgroup-collapse": "Meno",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Annulla",
        "ooui-dialog-process-error": "Qualcosa è andato storto",
index 2ac8dc1..6442342 100644 (file)
@@ -12,6 +12,8 @@
        "ooui-outline-control-move-up": "項目を上に移動させる",
        "ooui-outline-control-remove": "項目を除去",
        "ooui-toolbar-more": "その他",
+       "ooui-toolgroup-expand": "続き",
+       "ooui-toolgroup-collapse": "折り畳む",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "キャンセル",
        "ooui-dialog-process-error": "エラーが発生しました…",
index 38d35f7..8827af3 100644 (file)
@@ -6,6 +6,5 @@
                        "Pras"
                ]
        },
-       "ooui-dialog-action-close": "Tutup",
        "ooui-outline-control-move-down": "Pindhahaken butir mangandhap"
 }
index ef59f1b..b79ab50 100644 (file)
@@ -11,7 +11,6 @@
                        "Tokoko"
                ]
        },
-       "ooui-dialog-action-close": "დახურვა",
        "ooui-outline-control-move-down": "ელემენტის ქვემოთ გადატანა",
        "ooui-outline-control-move-up": "ელემენტის ზემოთ გადატანა",
        "ooui-toolbar-more": "მეტი"
index c1a0f19..9840319 100644 (file)
@@ -4,7 +4,6 @@
                        "Arystanbek"
                ]
        },
-       "ooui-dialog-action-close": "Жабу",
        "ooui-outline-control-move-down": "Элементті төмен жылжыту",
        "ooui-outline-control-move-up": "Элементті жоғары жылжыту",
        "ooui-outline-control-remove": "Элементті алып тастау",
index f7bfca5..c0d72c4 100644 (file)
@@ -4,7 +4,6 @@
                        "Sovichet"
                ]
        },
-       "ooui-dialog-action-close": "បិទ",
        "ooui-outline-control-move-down": "រុញ​ទៅ​ក្រោម",
        "ooui-outline-control-move-up": "រុញ​ទៅ​លើ",
        "ooui-outline-control-remove": "ដក​វត្ថុ​ចេញ",
index 82d91ab..63902f3 100644 (file)
@@ -7,7 +7,8 @@
                        "LFM",
                        "아라",
                        "고기랑",
-                       "Ryuch"
+                       "Ryuch",
+                       "Revi"
                ]
        },
        "ooui-outline-control-move-down": "항목을 아래로 옮기기",
index 18c66e9..1bec097 100644 (file)
@@ -4,7 +4,6 @@
                        "Iltever"
                ]
        },
-       "ooui-dialog-action-close": "Джаб",
        "ooui-outline-control-move-down": "Элементни тюбюне кёчюр",
        "ooui-outline-control-move-up": "Элементни башына кёчюр",
        "ooui-outline-control-remove": "Пунктну кетер",
index c7f2887..a6c6d8a 100644 (file)
@@ -5,6 +5,5 @@
                        "Nrowe",
                        "Purodha"
                ]
-       },
-       "ooui-dialog-action-close": "Degea"
+       }
 }
index 7c6b994..e2b8ab7 100644 (file)
@@ -7,6 +7,5 @@
                        "Tynchtyk Chorotegin",
                        "Викиней"
                ]
-       },
-       "ooui-dialog-action-close": "Жабуу"
+       }
 }
index 1cbcb8a..270bae4 100644 (file)
@@ -14,6 +14,8 @@
        "ooui-outline-control-move-up": "Element erop réckelen",
        "ooui-outline-control-remove": "Element ewechhuelen",
        "ooui-toolbar-more": "Méi",
+       "ooui-toolgroup-expand": "Méi",
+       "ooui-toolgroup-collapse": "Manner",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Ofbriechen",
        "ooui-dialog-process-error": "Et ass eppes schif gaang",
index 3156e84..87309db 100644 (file)
@@ -4,7 +4,6 @@
                        "Ninonino"
                ]
        },
-       "ooui-dialog-action-close": "Sèra",
        "ooui-outline-control-move-down": "Spòsta 'n zó",
        "ooui-outline-control-move-up": "Spòsta 'n sö",
        "ooui-toolbar-more": "Amò"
index e295704..ecd06a8 100644 (file)
@@ -6,6 +6,5 @@
                        "Mantak111"
                ]
        },
-       "ooui-dialog-action-close": "Uždaryti",
        "ooui-outline-control-remove": "Šalinti elementus"
 }
index f296c3a..2b3ad53 100644 (file)
@@ -4,5 +4,5 @@
                        "Joe young yu"
                ]
        },
-       "ooui-dialog-confirm-default-ok": "可"
+       "ooui-dialog-message-accept": "可"
 }
index 2f27614..af97d17 100644 (file)
@@ -3,6 +3,5 @@
                "authors": [
                        "Jagwar"
                ]
-       },
-       "ooui-dialog-action-close": "Hidiana"
+       }
 }
index 6dfe34a..b8790d3 100644 (file)
@@ -5,13 +5,10 @@
                        "Jagwar"
                ]
        },
-       "ooui-dialog-action-close": "Tutuik",
        "ooui-outline-control-move-down": "Pindahan ko ka bawah",
        "ooui-outline-control-move-up": "Pindahan ko ka ateh",
        "ooui-outline-control-remove": "Hapuih ko",
        "ooui-toolbar-more": "Lainnyo",
-       "ooui-dialog-confirm-title": "Pastian",
-       "ooui-dialog-confirm-default-prompt": "Yakin?",
-       "ooui-dialog-confirm-default-ok": "Yo",
-       "ooui-dialog-confirm-default-cancel": "Batal"
+       "ooui-dialog-message-accept": "Yo",
+       "ooui-dialog-message-reject": "Batal"
 }
index d628034..32856e8 100644 (file)
@@ -10,6 +10,8 @@
        "ooui-outline-control-move-up": "Помести нагоре",
        "ooui-outline-control-remove": "Отстрани ставка",
        "ooui-toolbar-more": "Повеќе",
+       "ooui-toolgroup-expand": "Повеќе",
+       "ooui-toolgroup-collapse": "Помалку",
        "ooui-dialog-message-accept": "ОК",
        "ooui-dialog-message-reject": "Откажи",
        "ooui-dialog-process-error": "Нешто не е во ред",
index 48b05f5..0ce0c3f 100644 (file)
@@ -7,7 +7,6 @@
                        "Vssun"
                ]
        },
-       "ooui-dialog-action-close": "അടയ്ക്കുക",
        "ooui-outline-control-move-down": "ഇനം താഴേയ്ക്ക് മാറ്റുക",
        "ooui-outline-control-move-up": "ഇനം മുകളിലേയ്ക്ക് മാറ്റുക",
        "ooui-toolbar-more": "കൂടുതൽ"
index 618b5dc..7006190 100644 (file)
@@ -9,7 +9,6 @@
                        "संतोष दहिवळ"
                ]
        },
-       "ooui-dialog-action-close": "बंद करा",
        "ooui-outline-control-move-down": "घटक (आयटम) खाली सरकवा",
        "ooui-outline-control-move-up": "घटक (आयटम) वर सरकवा",
        "ooui-toolbar-more": "अधिक"
index 2cee413..9166037 100644 (file)
@@ -6,6 +6,5 @@
                        "PiRSquared17"
                ]
        },
-       "ooui-dialog-action-close": "Chiure",
        "ooui-toolbar-more": "Atro"
 }
index e8f0c83..26171f1 100644 (file)
@@ -4,7 +4,6 @@
                        "Servien"
                ]
        },
-       "ooui-dialog-action-close": "Sluten",
        "ooui-outline-control-move-down": "Onderwarp ummeneer zetten",
        "ooui-outline-control-move-up": "Onderwarp umhoge zetten"
 }
index c5d16ba..1e5b83d 100644 (file)
@@ -4,7 +4,6 @@
                        "Zylbath"
                ]
        },
-       "ooui-dialog-action-close": "Dichtmaken",
        "ooui-outline-control-move-down": "Element na ünnen schuven",
        "ooui-outline-control-move-up": "Element na baven schuven",
        "ooui-toolbar-more": "Mehr"
index da4b829..8b73233 100644 (file)
@@ -6,13 +6,10 @@
                        "Ganesh Paudel"
                ]
        },
-       "ooui-dialog-action-close": "बन्द गर्ने",
        "ooui-outline-control-move-down": "वस्तुलाई तल सार्ने",
        "ooui-outline-control-move-up": "वस्तुलाई माथि सार्ने",
        "ooui-outline-control-remove": "वस्तुलाई हटाउने",
        "ooui-toolbar-more": "थप",
-       "ooui-dialog-confirm-title": "निश्चित गर्ने",
-       "ooui-dialog-confirm-default-prompt": "निश्चित हुनुहुन्छ ?",
-       "ooui-dialog-confirm-default-ok": "हुन्छ",
-       "ooui-dialog-confirm-default-cancel": "रद्द गर्ने"
+       "ooui-dialog-message-accept": "हुन्छ",
+       "ooui-dialog-message-reject": "रद्द गर्ने"
 }
index 07a40b1..943e6ad 100644 (file)
@@ -5,7 +5,6 @@
                        "Njardarlogar"
                ]
        },
-       "ooui-dialog-action-close": "Lat att",
        "ooui-outline-control-move-down": "Flytt element ned",
        "ooui-outline-control-move-up": "Flytt element opp",
        "ooui-toolbar-more": "Fleire"
index a7f43a3..4d35b6c 100644 (file)
@@ -5,12 +5,9 @@
                        "Gloria sah"
                ]
        },
-       "ooui-dialog-action-close": "Tampar",
        "ooui-outline-control-move-down": "Far davalar l’element",
        "ooui-outline-control-move-up": "Far montar l’element",
        "ooui-outline-control-remove": "Suprimir l’element",
        "ooui-toolbar-more": "Mai",
-       "ooui-dialog-confirm-title": "Confirmar",
-       "ooui-dialog-confirm-default-prompt": "Sètz segur ?",
-       "ooui-dialog-confirm-default-cancel": "Anullar"
+       "ooui-dialog-message-reject": "Anullar"
 }
index a7083ae..2a1f95e 100644 (file)
@@ -5,6 +5,5 @@
                        "Psubhashish",
                        "ଶିତିକଣ୍ଠ ଦାଶ"
                ]
-       },
-       "ooui-dialog-action-close": "ବନ୍ଦ କରିବେ"
+       }
 }
index 8f75286..7af5bc9 100644 (file)
@@ -6,6 +6,5 @@
                        "Bouron",
                        "Nasir8891"
                ]
-       },
-       "ooui-dialog-action-close": "বন্ধ"
+       }
 }
index b51f70d..02d0842 100644 (file)
@@ -4,12 +4,10 @@
                        "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",
-       "ooui-dialog-confirm-default-prompt": "Bischda sischa?",
-       "ooui-dialog-confirm-default-ok": "OK",
-       "ooui-dialog-confirm-default-cancel": "Abbresche"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Abbresche"
 }
index a202a02..b8fd3a5 100644 (file)
@@ -6,7 +6,6 @@
                        "පසිඳු කාවින්ද"
                ]
        },
-       "ooui-dialog-action-close": "Saré",
        "ooui-outline-control-move-down": "Fé calé giù l'element",
        "ooui-outline-control-move-up": "Fé monté l'element",
        "ooui-toolbar-more": "Ëd pi"
index 06d3b87..94bc7df 100644 (file)
@@ -4,7 +4,6 @@
                        "Ahmed-Najib-Biabani-Ibrahimkhel"
                ]
        },
-       "ooui-dialog-action-close": "تړل",
        "ooui-outline-control-move-down": "توکی ښکته راوړل",
        "ooui-outline-control-move-up": "توکی پورته راوړل",
        "ooui-toolbar-more": "نور"
index a8cced8..94ea089 100644 (file)
@@ -12,7 +12,6 @@
                        555
                ]
        },
-       "ooui-dialog-action-close": "Fechar",
        "ooui-outline-control-move-down": "Mover item para baixo",
        "ooui-outline-control-move-up": "Mover item para cima",
        "ooui-toolbar-more": "Mais"
index 5cb3e3d..d02b08b 100644 (file)
@@ -17,6 +17,7 @@
        "ooui-outline-control-move-up": "Mover item para cima",
        "ooui-outline-control-remove": "Remover elemento",
        "ooui-toolbar-more": "Mais",
+       "ooui-toolgroup-expand": "Mais",
        "ooui-dialog-message-accept": "Aceitar",
        "ooui-dialog-message-reject": "Cancelar",
        "ooui-dialog-process-error": "Algo correu mal",
index 9b3bb60..c1b794a 100644 (file)
        "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.\n{{Identical|Remove item}}",
        "ooui-toolbar-more": "Label for the toolbar group that contains a list of all other available tools.\n{{Identical|More}}",
+       "ooui-toolgroup-expand": "Label for the fake tool that expands the full list of tools in a toolbar group.\n\nSee also:\n* {{msg-mw|Ooui-toolgroup-collapse}}\n{{Identical|More}}",
+       "ooui-toolgroup-collapse": "Label for the fake tool that collapses the full list of tools in a toolbar group.\n\nSee also:\n* {{msg-mw|Ooui-toolgroup-expand}}\n{{Identical|Fewer}}",
        "ooui-dialog-message-accept": "Default label for the accept button of a message dialog\n{{Identical|OK}}",
        "ooui-dialog-message-reject": "Default label for the reject button of a message dialog\n{{Identical|Cancel}}",
        "ooui-dialog-process-error": "Title for process dialog error description",
        "ooui-dialog-process-dismiss": "Label for process dialog dismiss error button, visible when describing errors\n{{Identical|Dismiss}}",
-       "ooui-dialog-process-retry": "Label for process dialog retry action button, visible when describing recoverable errors\n{{Identical|Try again}}"
+       "ooui-dialog-process-retry": "Label for process dialog retry action button, visible when describing recoverable errors\n{{Identical|Try again}}",
+       "ooui-dialog-process-continue": "Label for process dialog retry action button, visible when describing only warnings\n{{Identical|Continue}}"
 }
index 5141f34..cb0b2c3 100644 (file)
@@ -5,7 +5,6 @@
                        "Jduranboger"
                ]
        },
-       "ooui-dialog-action-close": "Wichq'ay",
        "ooui-outline-control-move-down": "Qallawata uraykuchiy",
        "ooui-outline-control-move-up": "Qallawata huqariy",
        "ooui-outline-control-remove": "P'anqa sutikunata qichuy",
index 06e0f1d..17359bd 100644 (file)
@@ -12,6 +12,8 @@
        "ooui-outline-control-move-up": "Mută elementul mai sus",
        "ooui-outline-control-remove": "Elimină elementul",
        "ooui-toolbar-more": "Mai mult",
+       "ooui-toolgroup-expand": "Mai multe",
+       "ooui-toolgroup-collapse": "Mai puține",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Revocare",
        "ooui-dialog-process-error": "Ceva nu a funcționat",
index 11427ec..cd089af 100644 (file)
@@ -4,7 +4,6 @@
                        "Joetaras"
                ]
        },
-       "ooui-dialog-action-close": "Achiude",
        "ooui-outline-control-move-down": "Spuèste 'a vôsce sotte",
        "ooui-outline-control-move-up": "Spuèste 'a vôsce sus",
        "ooui-toolbar-more": "De cchiù"
index efd1062..649a937 100644 (file)
@@ -22,6 +22,8 @@
        "ooui-outline-control-move-up": "Переместить элемент вверх",
        "ooui-outline-control-remove": "Удалить пункт",
        "ooui-toolbar-more": "Ещё",
+       "ooui-toolgroup-expand": "Больше",
+       "ooui-toolgroup-collapse": "Меньше",
        "ooui-dialog-message-accept": "ОК",
        "ooui-dialog-message-reject": "Отмена",
        "ooui-dialog-process-error": "Что-то пошло не так",
index 82d76a6..85a94cd 100644 (file)
@@ -4,6 +4,5 @@
                        "Gazeb",
                        "HalanTul"
                ]
-       },
-       "ooui-dialog-action-close": "Сап"
+       }
 }
index a063cc8..22a212f 100644 (file)
@@ -7,9 +7,7 @@
                        "Gloria sah"
                ]
        },
-       "ooui-dialog-action-close": "Chiùi",
        "ooui-outline-control-move-down": "Sposta di sutta",
        "ooui-outline-control-move-up": "Sposta di supra",
-       "ooui-toolbar-more": "Àutri cosi",
-       "ooui-dialog-confirm-title": "Cunferma"
+       "ooui-toolbar-more": "Àutri cosi"
 }
index 085f908..0a26a5c 100644 (file)
@@ -4,7 +4,6 @@
                        "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 eetem",
index ab9f9fd..b40fa04 100644 (file)
@@ -4,7 +4,6 @@
                        "OC Ripper"
                ]
        },
-       "ooui-dialog-action-close": "Zatvori",
        "ooui-outline-control-move-down": "Pomakni stavku dolje",
        "ooui-outline-control-move-up": "Pomakni stavku gore"
 }
index b5c0b69..5988773 100644 (file)
@@ -6,7 +6,6 @@
                        "ශ්වෙත"
                ]
        },
-       "ooui-dialog-action-close": "නිමවන්න",
        "ooui-outline-control-move-down": "අයිතමය පහලටදමන්න",
        "ooui-outline-control-move-up": "අයිතමය ඉහලටදමන්න"
 }
index 07d9828..c8246da 100644 (file)
@@ -5,8 +5,8 @@
                        "Teslaton"
                ]
        },
-       "ooui-dialog-action-close": "Zatvoriť",
        "ooui-outline-control-move-down": "Posunúť položku nadol",
        "ooui-outline-control-move-up": "Posunúť položku nahor",
+       "ooui-outline-control-remove": "Odstrániť položku",
        "ooui-toolbar-more": "Viac"
 }
index 40305d0..d61d951 100644 (file)
@@ -18,6 +18,8 @@
        "ooui-outline-control-move-up": "Flytta upp objekt",
        "ooui-outline-control-remove": "Ta bort objekt",
        "ooui-toolbar-more": "Mer",
+       "ooui-toolgroup-expand": "Fler",
+       "ooui-toolgroup-collapse": "Färre",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Avbryt",
        "ooui-dialog-process-error": "Något gick fel",
index dd8294f..0145017 100644 (file)
@@ -6,6 +6,5 @@
                        "Shanmugamp7",
                        "மதனாஹரன்"
                ]
-       },
-       "ooui-dialog-action-close": "மூடுக"
+       }
 }
index f220fa3..d486870 100644 (file)
@@ -9,6 +9,5 @@
                        "Visdaviva",
                        "மதனாஹரன்"
                ]
-       },
-       "ooui-dialog-action-close": "మూయి"
+       }
 }
index 908c894..1429bed 100644 (file)
@@ -4,7 +4,6 @@
                        "Ibrahim"
                ]
        },
-       "ooui-dialog-action-close": "Пӯшиш",
        "ooui-outline-control-move-down": "Ҳаракати мавод ба поён",
        "ooui-outline-control-move-up": "Ҳаракати мавод ба боло",
        "ooui-outline-control-remove": "Ҳазви мавод",
index f36dd6a..9452793 100644 (file)
@@ -5,7 +5,6 @@
                        "Taweetham"
                ]
        },
-       "ooui-dialog-action-close": "ปิด",
        "ooui-outline-control-move-down": "เลื่อนรายการลง",
        "ooui-outline-control-move-up": "ย้ายรายการขึ้น"
 }
index 178384c..b3a9f24 100644 (file)
@@ -5,13 +5,10 @@
                        "Sky Harbor"
                ]
        },
-       "ooui-dialog-action-close": "Isara",
        "ooui-outline-control-move-down": "Ilipat ang aytem pababa",
        "ooui-outline-control-move-up": "Ilipat ang aytem pataas",
        "ooui-outline-control-remove": "Tanggalin ang aytem",
        "ooui-toolbar-more": "Marami pa",
-       "ooui-dialog-confirm-title": "Tiyakin",
-       "ooui-dialog-confirm-default-prompt": "Nakatitiyak ka ba?",
-       "ooui-dialog-confirm-default-ok": "Sige",
-       "ooui-dialog-confirm-default-cancel": "Huwag ituloy"
+       "ooui-dialog-message-accept": "Sige",
+       "ooui-dialog-message-reject": "Huwag ituloy"
 }
index 257e13c..408a1b4 100644 (file)
@@ -4,7 +4,6 @@
                        "Ajdar"
                ]
        },
-       "ooui-dialog-action-close": "Ябу",
        "ooui-outline-control-move-down": "Элементны аска күчерү",
        "ooui-outline-control-move-up": "Элементны өскә күчерү"
 }
index 03b7808..7c6263e 100644 (file)
@@ -7,7 +7,6 @@
                        "පසිඳු කාවින්ද"
                ]
        },
-       "ooui-dialog-action-close": "Yopish",
        "ooui-outline-control-move-down": "Elementni pastga koʻchirish",
        "ooui-outline-control-move-up": "Elementni yuqoriga koʻchirish",
        "ooui-toolbar-more": "Yana"
index 1a91cdb..4de584b 100644 (file)
@@ -6,10 +6,8 @@
                        "Gloria sah"
                ]
        },
-       "ooui-dialog-action-close": "Sara",
        "ooui-outline-control-move-down": "Sposta in baso",
        "ooui-outline-control-move-up": "Sposta in sima",
        "ooui-toolbar-more": "Altro",
-       "ooui-dialog-confirm-title": "Conferma",
-       "ooui-dialog-confirm-default-ok": "Va ben"
+       "ooui-dialog-message-accept": "Va ben"
 }
index 205cbe8..920041b 100644 (file)
@@ -10,6 +10,8 @@
        "ooui-outline-control-move-up": "Chuyển mục lên",
        "ooui-outline-control-remove": "Xóa khoản",
        "ooui-toolbar-more": "Thêm",
+       "ooui-toolgroup-expand": "Mở rộng",
+       "ooui-toolgroup-collapse": "Rút gọn",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Hủy bỏ",
        "ooui-dialog-process-error": "Đã bị trục trặc",
index 7e359a5..3510ca9 100644 (file)
@@ -4,6 +4,5 @@
                        "Malafaya"
                ]
        },
-       "ooui-dialog-action-close": "Färmükön",
        "ooui-toolbar-more": "Pluikos"
 }
index bbb8f30..d979fc1 100644 (file)
@@ -4,7 +4,6 @@
                        "Demmy"
                ]
        },
-       "ooui-dialog-action-close": "Ìpadé",
        "ooui-outline-control-move-down": "Sún onítòún sí sàlẹ̀",
        "ooui-outline-control-move-up": "Sún onítòún s'ókè",
        "ooui-toolbar-more": "Míràn"
index 02bdafa..fa86ea7 100644 (file)
@@ -23,6 +23,8 @@
        "ooui-outline-control-move-up": "上移项",
        "ooui-outline-control-remove": "删除项",
        "ooui-toolbar-more": "更多",
+       "ooui-toolgroup-expand": "更多",
+       "ooui-toolgroup-collapse": "更少",
        "ooui-dialog-message-accept": "确定",
        "ooui-dialog-message-reject": "取消",
        "ooui-dialog-process-error": "发生一些错误",
index cde5ffe..1110669 100644 (file)
@@ -20,6 +20,8 @@
        "ooui-outline-control-move-up": "項目上移",
        "ooui-outline-control-remove": "移除項目",
        "ooui-toolbar-more": "更多",
+       "ooui-toolgroup-expand": "更多",
+       "ooui-toolgroup-collapse": "更少",
        "ooui-dialog-message-accept": "確定",
        "ooui-dialog-message-reject": "取消",
        "ooui-dialog-process-error": "發生不明錯誤",
index e224e5a..fb172f6 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:55Z
  */
 /* @noflip */
 .oo-ui-rtl {
@@ -20,6 +20,7 @@
        cursor: pointer;
        display: inline-block;
        vertical-align: middle;
+       font-family: inherit;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
           -moz-user-select: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        margin-right: -0.75em;
+       margin-left: -0.75em;
+}
+.oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
        /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
        /*.oo-ui-transition(opacity 200ms);*/
 }
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
+       outline: none;
+}
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-iconElement-icon {
        opacity: 1;
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
        border-color: #aaaaaa;
+       outline: none;
 }
+.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        line-height: 1.9em;
 }
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
        border-color: #9dc2d4;
 }
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        border: solid 1px #a6cee1;
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
        border-color: #adcb89;
 }
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        border: solid 1px #b8d892;
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        opacity: 0.5;
+       -webkit-transform: translate3d(0, 0, 0);
        box-shadow: none;
        color: #333333;
        background: #eeeeee;
        box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-fieldLayout {
+       display: block;
        margin-bottom: 1em;
 }
 .oo-ui-fieldLayout:before,
        z-index: 4;
 }
 .oo-ui-popupTool .oo-ui-popupWidget {
+       /* @noflip */
        margin-left: 1.25em;
        font-size: 0.8em;
 }
        vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: inline-block;
+       display: inline-table;
        vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-       display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
        min-width: 3.5em;
        line-height: 2em;
        font-size: 0.8em;
 }
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #888888;
+}
 .oo-ui-listToolGroup .oo-ui-tool {
        display: inline-block;
        width: 100%;
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
        color: #cccccc;
 }
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #dddddd;
+}
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 0.2;
 }
        left: 0.25em;
        margin-left: 0;
 }
+.oo-ui-progressBarWidget {
+       width: 100%;
+       max-width: 50em;
+       border: solid 1px #a6cee1;
+       border-radius: 0.25em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #a6cee1;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
+       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%);
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.6;
+}
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
        background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
 .oo-ui-popupWidget {
        position: absolute;
+       /* @noflip */
+       left: 0;
 }
 .oo-ui-popupWidget-popup {
        position: relative;
        display: block;
        position: absolute;
        top: 0;
+       /* @noflip */
+       left: 0;
        background-repeat: no-repeat;
 }
 .oo-ui-popupWidget-head {
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
-       width: 20em;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
 .oo-ui-textInputWidget input[readonly],
 .oo-ui-textInputWidget textarea[readonly] {
        color: #777777;
-       text-shadow: 0 1px 1px #ffffff;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
        padding: 0.33em 0.75em;
        color: #888888;
 }
-.oo-ui-inlineMenuWidget {
+.oo-ui-dropdownWidget {
        position: relative;
        display: inline-block;
        margin: 0.25em 0;
-       min-width: 20em;
+       width: 100%;
+       max-width: 50em;
 }
-.oo-ui-inlineMenuWidget-handle {
+.oo-ui-dropdownWidget-handle {
        width: 100%;
        display: inline-block;
        cursor: pointer;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
        position: absolute;
        background-position: center center;
        background-repeat: no-repeat;
 }
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
+.oo-ui-dropdownWidget .oo-ui-menuWidget {
        z-index: 1;
        width: 100%;
 }
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
        cursor: default;
 }
-.oo-ui-inlineMenuWidget-handle {
+.oo-ui-dropdownWidget-handle {
        height: 2.5em;
        border: solid 1px rgba(0, 0, 0, 0.1);
        border-radius: 0.25em;
 }
-.oo-ui-inlineMenuWidget-handle:hover {
+.oo-ui-dropdownWidget-handle:hover {
        border-color: rgba(0, 0, 0, 0.2);
 }
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
        right: 0;
 }
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
        left: 0.25em;
 }
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
+.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
        line-height: 2.5em;
        margin: 0 0.5em;
 }
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
        top: 0;
        width: 2.5em;
        height: 2.5em;
        opacity: 0.8;
 }
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
        color: #cccccc;
        text-shadow: 0 1px 1px #ffffff;
        border-color: #dddddd;
        background-color: #f3f3f3;
 }
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
        opacity: 0.2;
 }
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
+.oo-ui-dropdownWidget.oo-ui-iconElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
        margin-left: 3em;
 }
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
+.oo-ui-dropdownWidget.oo-ui-indicatorElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
        margin-right: 2em;
 }
 .oo-ui-outlineItemWidget {
 .oo-ui-comboBoxWidget {
        display: inline-block;
        position: relative;
-       min-width: 20em;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-comboBoxWidget > .oo-ui-selectWidget {
        width: 100%;
        padding: 0;
        background: none;
 }
-.oo-ui-window-overlay {
+.oo-ui-window-overlay,
+.oo-ui-window-inner-overlay {
        position: absolute;
        top: 0;
+       /* @noflip */
        left: 0;
 }
+.oo-ui-window,
 .oo-ui-window-isolated {
        background-color: transparent;
        background-image: none;
        z-index: 1;
        bottom: 0;
 }
-.oo-ui-dialog-content > .oo-ui-window-overlay {
+.oo-ui-dialog-content > .oo-ui-window-inner-overlay {
        z-index: 3;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
index bd50874..b8da0c7 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:45Z
  */
 /* Instantiation */
 
diff --git a/resources/lib/oojs-ui/oojs-ui-apex.rtl.css b/resources/lib/oojs-ui/oojs-ui-apex.rtl.css
deleted file mode 100644 (file)
index 7dd7b61..0000000
+++ /dev/null
@@ -1,1929 +0,0 @@
-/*!
- * 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: 2014-09-11T19:39:50Z
- */
-/*
- * Blank theme mixins.
- *
- * Base styles invoke these mixins at the end of their definitions. Override these mixins to add
- * additional rules to the base styles.
- */
-/*
- * Base styles.
- *
- * Themes should include this file after defining their variables and mixins.
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  color: #333;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-left: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  opacity: 0.8;
-  width: 1.9em;
-  height: 1.9em;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
-  /*.oo-ui-transition(opacity 200ms);*/
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-iconElement-icon {
-  opacity: 1;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #000;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #333;
-  margin-right: 0.25em;
-}
-.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #087ecc;
-}
-.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #76ab36;
-}
-.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #d45353;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.2em 0.8em;
-  border-radius: 0.3em;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
-  border: 1px #c9c9c9 solid;
-  -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;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
-  border-color: #aaa;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 1.9em;
-}
-.oo-ui-buttonElement-framed.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
-  color: black;
-  border-color: #c9c9c9;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: -0.5em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: 0.3em;
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  border: solid 1px #a6cee1;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  border-color: #9dc2d4;
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  border: solid 1px #a6cee1;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  border: solid 1px #b8d892;
-  background: #daf0be;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  border-color: #adcb89;
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  border: solid 1px #b8d892;
-  background: #daf0be;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  color: #d45353;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  opacity: 0.5;
-  box-shadow: none;
-  color: #333;
-  background: #eee;
-  border-color: #ccc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:focus,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:focus,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:focus {
-  border-color: #ccc;
-  box-shadow: none;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
-}
-.oo-ui-bookletLayout-outlinePanel {
-  border-left: solid 1px #ddd;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-left: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-right: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  right: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout-padded {
-  padding: 1.25em;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-right: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-  border-radius: 0.25em;
-  border: solid 1px transparent;
-  -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-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  margin: -1px -1px -1px 0;
-  border: solid 1px transparent;
-}
-.oo-ui-barToolGroup .oo-ui-tool:first-child {
-  border-top-right-radius: 0.25em;
-  border-bottom-right-radius: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool:last-child {
-  margin-left: -1px;
-  border-top-left-radius: 0.25em;
-  border-bottom-left-radius: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.2);
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-right-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
-}
-.oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  margin: 0 -1px;
-  border: solid 1px #ccc;
-  background-color: white;
-  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-left: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
-}
-.oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-.oo-ui-listToolGroup .oo-ui-tool {
-  border: solid 1px transparent;
-  margin: -1px 0;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-left: 0.5em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.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-iconElement-icon {
-  opacity: 0.8;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-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-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-menuToolGroup {
-  border-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(images/icons/check.svg);
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-enabled: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-link {
-  padding: 0 0.25em 0 1em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: left;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: right top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-toolbar-shadow {
-  background-image: /* @embed */ url(images/toolbar-shadow.png);
-  bottom: -9px;
-  height: 9px;
-  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-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 3em 0.5em 2em;
-  border: none;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget-highlighted {
-  background-color: #e1f3ff;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-}
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  left: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-right: -1px;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 1.9em;
-  margin-top: 0;
-}
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-  padding: 0.5em 0;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-right: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  border: solid 1px #ccc;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  opacity: 0.5;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  right: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
-  border: 1px #c9c9c9 solid;
-  -webkit-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -moz-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -ms-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -o-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.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 {
-  border-radius: 1em;
-  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;
-  -o-transition: opacity 200ms ease-in-out;
-  transition: opacity 200ms ease-in-out;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  opacity: 1;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  right: 2.25em;
-  margin-right: -2px;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
-  opacity: 0;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  right: 0.25em;
-  margin-right: 0;
-}
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: right;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-popup {
-  border: solid 1px #ccc;
-  border-radius: 0.25em;
-  background-color: #fff;
-  box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  width: 15px;
-  height: 8px;
-  margin-right: -7px;
-  background-image: /* @embed */ url(images/anchor.svg);
-}
-.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
-  -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  right: 1em;
-  cursor: auto;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: 0.5em;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  border-radius: 0.25em;
-  -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-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-  padding-right: 2em;
-}
-.oo-ui-textInputWidget-icon {
-  width: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #a7dcff;
-  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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-textInputWidget .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget .oo-ui-indicatorElement-indicator {
-  opacity: 0.8;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement input,
-.oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-right: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  width: 2em;
-  background-position: left center;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement input,
-.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-left: 1.5em;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.5em;
-  background-position: right center;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  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-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted,
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
-  background-color: #e1f3ff;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  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-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-  opacity: 0.8;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 2em;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  font-size: 1.1em;
-  padding: 0.75em;
-}
-.oo-ui-outlineItemWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-  padding-left: 1.5em;
-}
-.oo-ui-outlineItemWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  opacity: 0.5;
-}
-.oo-ui-outlineItemWidget-level-0 {
-  padding-right: 3.5em;
-}
-.oo-ui-outlineItemWidget-level-0 .oo-ui-iconElement-icon {
-  right: 1em;
-}
-.oo-ui-outlineItemWidget-level-1 {
-  padding-right: 5em;
-}
-.oo-ui-outlineItemWidget-level-1 .oo-ui-iconElement-icon {
-  right: 2.5em;
-}
-.oo-ui-outlineItemWidget-level-2 {
-  padding-right: 6.5em;
-}
-.oo-ui-outlineItemWidget-level-2 .oo-ui-iconElement-icon {
-  right: 4em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-outlineItemWidget.oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-important {
-  font-weight: bold;
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-placeholder {
-  font-style: italic;
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-empty .oo-ui-iconElement-icon {
-  opacity: 0.5;
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-empty .oo-ui-labelElement-label {
-  color: #777;
-}
-.oo-ui-outlineControlsWidget {
-  height: 3em;
-  background-color: #fff;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: right;
-  background-position: left center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  height: 2em;
-  margin: 0.5em;
-  padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0.5em 0.5em 0;
-  opacity: 0.2;
-}
-.oo-ui-outlineControlsWidget-items {
-  margin-right: 0;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  z-index: 1;
-  min-width: 20em;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget-handle {
-  border: solid 1px rgba(0, 0, 0, 0.1);
-  border-radius: 0.25em;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget-handle:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget.oo-ui-widget-disabled .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget-empty .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  cursor: default;
-  opacity: 0.2;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-  height: 4em;
-  padding: 0 1em;
-  box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-  top: 4em;
-  padding: 1em;
-  line-height: 0;
-}
-.oo-ui-window {
-  line-height: 1em;
-  /* Content div takes focus when opened, so hide outline */
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-}
-.oo-ui-window-isolated {
-  background-color: transparent;
-  background-image: none;
-  font-family: sans-serif;
-  font-size: 0.8em;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  right: 0;
-  left: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-content .oo-ui-window-body {
-  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: right;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-left: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-left-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  right: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  left: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0.75em 0.75em 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: right;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: fixed;
-  left: 0;
-  right: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .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-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-}
index 091e9b7..5cc74fc 100644 (file)
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:55Z
  */
 /* @noflip */
 .oo-ui-rtl {
-  direction: rtl;
+       direction: rtl;
 }
 /* @noflip */
 .oo-ui-ltr {
-  direction: ltr;
+       direction: ltr;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       cursor: pointer;
+       display: inline-block;
+       vertical-align: middle;
+       font-family: inherit;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
+       display: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
+       display: none;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
+       display: inline-block;
+       position: relative;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
+       display: inline-block;
+       vertical-align: top;
+       text-align: center;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  color: #333;
+       color: #333333;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: 0;
+       margin-left: 0;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-right: -0.75em;
+       margin-right: -0.75em;
+       margin-left: -0.75em;
+}
+.oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  opacity: 0.8;
-  width: 1.9em;
-  height: 1.9em;
+       opacity: 0.8;
+       width: 1.9em;
+       height: 1.9em;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
-  /*.oo-ui-transition(opacity 200ms);*/
+       /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
+       /*.oo-ui-transition(opacity 200ms);*/
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
+       outline: none;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-iconElement-icon {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #000;
+       color: #000000;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #333;
-  margin-left: 0.25em;
+       color: #333333;
+       margin-left: 0.25em;
 }
 .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #087ecc;
+       color: #087ecc;
 }
 .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #76ab36;
+       color: #76ab36;
 }
 .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #d45353;
+       color: #d45353;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.2em 0.8em;
-  border-radius: 0.3em;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
-  border: 1px #c9c9c9 solid;
-  -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;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  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%);
+       margin: 0.1em 0;
+       padding: 0.2em 0.8em;
+       border-radius: 0.3em;
+       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+       border: 1px #c9c9c9 solid;
+       -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;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+       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%);
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
-  border-color: #aaa;
+       border-color: #aaaaaa;
+       outline: none;
 }
+.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 1.9em;
+       line-height: 1.9em;
 }
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
-  color: black;
-  border-color: #c9c9c9;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  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%);
+       box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
+       color: black;
+       border-color: #c9c9c9;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
+       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%);
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: -0.5em;
-  margin-right: -0.5em;
+       margin-left: -0.5em;
+       margin-right: -0.5em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: -0.5em;
-  margin-right: 0.3em;
+       margin-left: -0.5em;
+       margin-right: 0.3em;
 }
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  border: solid 1px #a6cee1;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
-  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;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
+       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%);
 }
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  border-color: #9dc2d4;
+       border-color: #9dc2d4;
 }
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  border: solid 1px #a6cee1;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  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;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
+       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%);
 }
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  border: solid 1px #b8d892;
-  background: #daf0be;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
-  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;
+       background: #daf0be;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
+       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%);
 }
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  border-color: #adcb89;
+       border-color: #adcb89;
 }
+.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  border: solid 1px #b8d892;
-  background: #daf0be;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
-  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;
+       background: #daf0be;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
+       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%);
 }
 .oo-ui-buttonElement-framed.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  color: #d45353;
+       color: #d45353;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  opacity: 0.5;
-  box-shadow: none;
-  color: #333;
-  background: #eee;
-  border-color: #ccc;
+       opacity: 0.5;
+       -webkit-transform: translate3d(0, 0, 0);
+       box-shadow: none;
+       color: #333333;
+       background: #eeeeee;
+       border-color: #cccccc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:focus,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:focus,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:focus {
-  border-color: #ccc;
-  box-shadow: none;
+       border-color: #cccccc;
+       box-shadow: none;
 }
 .oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
+       overflow-y: hidden;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       width: 100%;
+       -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;
+       overflow-y: auto;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
+       padding: 2em;
 }
 .oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 3em;
-  overflow-y: auto;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 3em;
+       overflow-y: auto;
 }
 .oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
+       padding: 1.5em;
 }
 .oo-ui-bookletLayout-outlinePanel {
-  border-right: solid 1px #ddd;
+       border-right: solid 1px #dddddd;
 }
 .oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-fieldLayout {
-  margin-bottom: 1em;
+       display: block;
+       margin-bottom: 1em;
 }
 .oo-ui-fieldLayout:before,
 .oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
+       content: " ";
+       display: table;
 }
 .oo-ui-fieldLayout:after {
-  clear: both;
+       clear: both;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: left;
+       display: block;
+       float: left;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: left;
+       display: block;
+       float: left;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: right;
+       text-align: right;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
+       z-index: 1;
 }
 .oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: right;
+       float: right;
 }
 .oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
+       padding: 0.5em 0.75em;
 }
 .oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
+       margin-bottom: 0;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-right: 5%;
-  width: 35%;
+       padding-top: 0.5em;
+       margin-right: 5%;
+       width: 35%;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
+       width: 60%;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
+       padding: 0.75em 0.5em 0.5em 0.5em;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
+       padding: 0.5em 0;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
+       padding: 0.5em 0;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
+       margin-top: 0.25em;
 }
 .oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
+       position: relative;
+       margin: 0;
+       padding: 0;
+       border: none;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
+       display: block;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
+       margin-top: 2em;
 }
 .oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
+       font-size: 1.5em;
+       margin-bottom: 0.5em;
+       padding: 0.25em 0;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-left: 1.75em;
-  line-height: 1.33em;
+       padding-left: 1.75em;
+       line-height: 1.33em;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  left: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
+       left: 0;
+       top: 0.25em;
+       width: 2em;
+       height: 2em;
 }
 .oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
 }
 .oo-ui-panelLayout {
-  position: relative;
+       position: relative;
 }
 .oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
+       overflow-y: auto;
 }
 .oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
 }
 .oo-ui-panelLayout-padded {
-  padding: 1.25em;
+       padding: 1.25em;
 }
 .oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
+       display: none;
 }
 .oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
+       display: block;
+       position: relative;
 }
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
+       z-index: 4;
 }
 .oo-ui-popupTool .oo-ui-popupWidget {
-  margin-left: 1.25em;
-  font-size: 0.8em;
+       /* @noflip */
+       margin-left: 1.25em;
+       font-size: 0.8em;
 }
 .oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-  border-radius: 0.25em;
-  border: solid 1px transparent;
-  -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;
+       display: inline-block;
+       vertical-align: middle;
+       margin: 0.3em;
+       border-radius: 0.25em;
+       border: solid 1px transparent;
+       -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-empty {
-  display: none;
+       display: none;
 }
 .oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-toolGroup.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.1);
+       border-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
+       color: #000000;
 }
 .oo-ui-barToolGroup > .oo-ui-iconElement-icon,
 .oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
+       display: inline-block;
+       position: relative;
+       vertical-align: top;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
+       display: block;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
+       display: block;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-barToolGroup .oo-ui-tool-title,
 .oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
+       cursor: pointer;
 }
 .oo-ui-barToolGroup .oo-ui-tool {
-  margin: -1px 0 -1px -1px;
-  border: solid 1px transparent;
+       margin: -1px 0 -1px -1px;
+       border: solid 1px transparent;
 }
 .oo-ui-barToolGroup .oo-ui-tool:first-child {
-  border-top-left-radius: 0.25em;
-  border-bottom-left-radius: 0.25em;
+       border-top-left-radius: 0.25em;
+       border-bottom-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;
+       margin-right: -1px;
+       border-top-right-radius: 0.25em;
+       border-bottom-right-radius: 0.25em;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
+       height: 1.5em;
+       padding: 0.25em;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
+       height: 1.5em;
+       width: 1.5em;
+       opacity: 0.8;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
+       border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.2);
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  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);
+       box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+       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%);
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .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);
+       border-left-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
+       opacity: 0.8;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
+       position: relative;
+       height: 2em;
+       min-width: 2.5em;
 }
 .oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
+       display: block;
+       cursor: pointer;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
+       display: none;
+       position: absolute;
+       z-index: 4;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
+       background-repeat: no-repeat;
+       background-position: center center;
 }
 .oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
+       display: block;
 }
 .oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  left: 0;
+       left: 0;
 }
 .oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  right: 0;
+       right: 0;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-table;
+       vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
+       min-width: 3.5em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
+       top: 0;
+       width: 2em;
+       height: 2em;
+       opacity: 0.8;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
+       right: 0;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
+       left: 0.25em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
+       line-height: 2.6em;
+       font-size: 0.8em;
+       margin: 0 1em;
 }
 .oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
+       line-height: 2.6em;
+       font-size: 0.8em;
+       margin: 0 0.6em;
+       font-weight: bold;
 }
 .oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  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-left-radius: 0;
+       border-bottom-right-radius: 0;
+       box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+       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%);
 }
 .oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
+       margin-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 2.25em;
+       margin-right: 2.25em;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  margin: 0 -1px;
-  border: solid 1px #ccc;
-  background-color: white;
-  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
+       top: 2em;
+       margin: 0 -1px;
+       border: solid 1px #cccccc;
+       background-color: white;
+       box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-right: 0.25em;
+       height: 2em;
+       width: 2em;
+       margin-right: 0.25em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
+       line-height: 2em;
+       font-size: 0.8em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #888888;
 }
 .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;
+       display: inline-block;
+       width: 100%;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
+       padding: 0.25em;
 }
 .oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
-  border-color: rgba(0, 0, 0, 0.2);
+       border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-listToolGroup .oo-ui-tool {
-  border: solid 1px transparent;
-  margin: -1px 0;
+       border: solid 1px transparent;
+       margin: -1px 0;
 }
 .oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-right: 0.5em;
+       padding-right: 0.5em;
 }
 .oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  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);
+       box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+       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%);
 }
 .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);
+       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);
+       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);
+       border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
+       opacity: 0.8;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
+       color: #cccccc;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #dddddd;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-menuToolGroup {
-  border-color: rgba(0, 0, 0, 0.1);
+       border-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
+       display: block;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-  min-width: 8em;
+       min-width: 8em;
 }
 .oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
+       padding: 0.25em 0 0.25em 0;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
+       border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-  border-color: rgba(0, 0, 0, 0.25);
+       border-color: rgba(0, 0, 0, 0.25);
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 1em 0 0.25em;
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       padding: 0 1em 0 0.25em;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
+       background-image: none;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(themes/apex/images/icons/check.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/check.svg);
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
+       background-color: #e1f3ff;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: rgba(0, 0, 0, 0.05);
+       color: #cccccc;
+       border-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-toolbar {
-  clear: both;
+       clear: both;
 }
 .oo-ui-toolbar-bar {
-  line-height: 1em;
+       line-height: 1em;
 }
 .oo-ui-toolbar-actions {
-  float: right;
+       float: right;
 }
 .oo-ui-toolbar-tools {
-  display: inline;
+       display: inline;
 }
 .oo-ui-toolbar-tools,
 .oo-ui-toolbar-actions,
 .oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
+       -webkit-touch-callout: default;
+       -webkit-user-select: all;
+          -moz-user-select: all;
+           -ms-user-select: all;
+               user-select: all;
 }
 .oo-ui-toolbar-shadow {
-  background-position: left top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
+       background-position: left top;
+       background-repeat: repeat-x;
+       position: absolute;
+       width: 100%;
+       pointer-events: none;
 }
 .oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
-  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 #cccccc;
+       background: #f8fbfd;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
+       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%);
 }
 .oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
+       border: none;
+       background: none;
 }
 .oo-ui-toolbar-shadow {
-  background-image: /* @embed */ url(themes/apex/images/toolbar-shadow.png);
-  bottom: -9px;
-  height: 9px;
-  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;
+       background-image: /* @embed */ url(themes/apex/images/toolbar-shadow.png);
+       bottom: -9px;
+       height: 9px;
+       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-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 2em 0.5em 3em;
-  border: none;
+       position: relative;
+       display: block;
+       cursor: pointer;
+       padding: 0.5em 2em 0.5em 3em;
+       border: none;
 }
 .oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
 }
 .oo-ui-optionWidget-highlighted {
-  background-color: #e1f3ff;
+       background-color: #e1f3ff;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
+       line-height: 1.5em;
 }
 .oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
+       background-color: #a7dcff;
 }
 .oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
+       background-color: #a7dcff;
 }
 .oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
+       position: absolute;
+       background-repeat: no-repeat;
+       background-position: center center;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
+       top: 50%;
+       width: 2em;
+       height: 2em;
+       margin-top: -1em;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  left: 0.5em;
+       left: 0.5em;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  right: 0.5em;
+       right: 0.5em;
 }
 .oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-left: -1px;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
+       display: inline-block;
+       padding: 0;
+       background-color: transparent;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
+       position: relative;
 }
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
+       position: static;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 1.9em;
+       height: 1.9em;
 }
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 1.9em;
-  margin-top: 0;
+       height: 1.9em;
+       margin-top: 0;
 }
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-labelWidget {
-  display: inline-block;
-  padding: 0.5em 0;
+       display: inline-block;
+       padding: 0.5em 0;
 }
 .oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 1.9em;
+       width: 1.9em;
+       opacity: 0.8;
 }
 .oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 1.9em;
+       width: 1.9em;
+       opacity: 0.8;
 }
 .oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-bottom: -1px;
+       margin-left: -1px;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  border: solid 1px #ccc;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  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%);
+       position: relative;
+       display: inline-block;
+       vertical-align: middle;
+       overflow: hidden;
+       cursor: pointer;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       -webkit-transform: translateZ(0px);
+          -moz-transform: translateZ(0px);
+           -ms-transform: translateZ(0px);
+            -o-transform: translateZ(0px);
+               transform: translateZ(0px);
+       height: 2em;
+       width: 4em;
+       border-radius: 1em;
+       box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #dddddd;
+       border: solid 1px #cccccc;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
+       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%);
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       position: absolute;
+       display: block;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       right: 0;
+       left: 0;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
+       display: none;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  opacity: 0.5;
+       opacity: 0.5;
 }
 .oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  left: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
-  border: 1px #c9c9c9 solid;
-  -webkit-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  -moz-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  -ms-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  -o-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  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%);
+       top: 0.25em;
+       left: 0.25em;
+       width: 1.5em;
+       height: 1.5em;
+       margin-top: -1px;
+       border-radius: 1em;
+       box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
+       border: 1px #c9c9c9 solid;
+       -webkit-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+          -moz-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+           -ms-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+            -o-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+               transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+       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%);
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover,
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  border-radius: 1em;
-  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;
-  -o-transition: opacity 200ms ease-in-out;
-  transition: opacity 200ms ease-in-out;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  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;
+       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;
+            -o-transition: opacity 200ms ease-in-out;
+               transition: opacity 200ms ease-in-out;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
+       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%);
 }
 .oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  left: 2.25em;
-  margin-left: -2px;
+       left: 2.25em;
+       margin-left: -2px;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
-  opacity: 0;
+       display: block;
+       opacity: 0;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  left: 0.25em;
-  margin-left: 0;
+       left: 0.25em;
+       margin-left: 0;
+}
+.oo-ui-progressBarWidget {
+       width: 100%;
+       max-width: 50em;
+       border: solid 1px #a6cee1;
+       border-radius: 0.25em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #a6cee1;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+       background: #cde7f4;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
+       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%);
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.6;
 }
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
 .oo-ui-popupWidget {
-  position: absolute;
+       position: absolute;
+       /* @noflip */
+       left: 0;
 }
 .oo-ui-popupWidget-popup {
-  position: relative;
-  overflow: hidden;
-  z-index: 1;
+       position: relative;
+       overflow: hidden;
+       z-index: 1;
 }
 .oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
+       display: none;
+       z-index: 1;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  top: 0;
-  background-repeat: no-repeat;
+       display: block;
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+       background-repeat: no-repeat;
 }
 .oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: right;
+       float: right;
 }
 .oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: left;
-  cursor: default;
+       float: left;
+       cursor: default;
 }
 .oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
+       clear: both;
+       overflow: hidden;
 }
 .oo-ui-popupWidget-popup {
-  border: solid 1px #ccc;
-  border-radius: 0.25em;
-  background-color: #fff;
-  box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
+       border: solid 1px #cccccc;
+       border-radius: 0.25em;
+       background-color: #ffffff;
+       box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
+       margin-top: 7px;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  content: "";
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-color: transparent;
-  border-top: 0;
+       content: "";
+       position: absolute;
+       width: 0;
+       height: 0;
+       border-style: solid;
+       border-color: transparent;
+       border-top: 0;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-  bottom: -8px;
-  left: -7px;
-  border-bottom-color: #aaa;
-  border-width: 7px;
+       bottom: -8px;
+       left: -7px;
+       border-bottom-color: #aaaaaa;
+       border-width: 7px;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  bottom: -8px;
-  left: -6px;
-  border-bottom-color: #fff;
-  border-width: 6px;
+       bottom: -8px;
+       left: -6px;
+       border-bottom-color: #ffffff;
+       border-width: 6px;
 }
 .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;
+       -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-head {
-  height: 2.5em;
+       height: 2.5em;
 }
 .oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
+       margin: 0.25em;
 }
 .oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
+       margin: 0.75em 1em;
 }
 .oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
+       padding: 0 1em;
 }
 .oo-ui-popupButtonWidget {
-  position: relative;
+       position: relative;
 }
 .oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  cursor: auto;
+       position: absolute;
+       cursor: auto;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
-  left: 1em;
+       left: 1em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  left: -1em;
+       left: -1em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget {
-  left: 1.25em;
+       left: 1.25em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  left: -1.25em;
+       left: -1.25em;
 }
 .oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
+       position: relative;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       display: inline-block;
+       width: 100%;
+       resize: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-textInputWidget > .oo-ui-iconElement-icon,
 .oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: absolute;
+       top: 0;
+       height: 100%;
+       background-repeat: no-repeat;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  left: 0;
+       left: 0;
 }
 .oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  right: 0;
+       right: 0;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
-  padding: 0.5em;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  border-radius: 0.25em;
-  -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;
+       padding: 0.5em;
+       font-size: 1em;
+       font-family: sans-serif;
+       background-color: #ffffff;
+       border: solid 1px #cccccc;
+       box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #dddddd;
+       border-radius: 0.25em;
+       -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-decorated input,
 .oo-ui-textInputWidget-decorated textarea {
-  padding-left: 2em;
+       padding-left: 2em;
 }
 .oo-ui-textInputWidget-icon {
-  width: 2em;
+       width: 2em;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #a7dcff;
-  box-shadow: 0 0 0.3em #a7dcff, 0 0 0 white;
+       outline: none;
+       border-color: #a7dcff;
+       box-shadow: 0 0 0.3em #a7dcff, 0 0 0 white;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
 .oo-ui-textInputWidget input[readonly],
 .oo-ui-textInputWidget textarea[readonly] {
-  color: #777;
-  text-shadow: 0 1px 1px #fff;
+       color: #777777;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-color: transparent;
+       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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
 }
 .oo-ui-textInputWidget .oo-ui-iconElement-icon,
 .oo-ui-textInputWidget .oo-ui-indicatorElement-indicator {
-  opacity: 0.8;
+       opacity: 0.8;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement input,
 .oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-left: 2em;
+       padding-left: 2em;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  width: 2em;
-  background-position: right center;
+       width: 2em;
+       background-position: right center;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement input,
 .oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-right: 1.5em;
+       padding-right: 1.5em;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.5em;
-  background-position: left center;
+       width: 1.5em;
+       background-position: left center;
 }
 .oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  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);
+       position: absolute;
+       background: #ffffff;
+       margin-top: -1px;
+       border: solid 1px #cccccc;
+       border-radius: 0 0 0.25em 0.25em;
+       box-shadow: 0 0.15em 1em 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
+       position: absolute;
+       width: 0;
+       height: 0;
+       overflow: hidden;
+       opacity: 0;
 }
 .oo-ui-menuItemWidget {
-  position: relative;
+       position: relative;
 }
 .oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
+       display: none;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
+       display: block;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted,
 .oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
-  background-color: #e1f3ff;
+       background-color: #e1f3ff;
 }
 .oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  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-indicatorElement-indicator {
-  right: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-  opacity: 0.8;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 2em;
+       cursor: default;
+       padding: 0.33em 0.75em;
+       color: #888888;
+}
+.oo-ui-dropdownWidget {
+       position: relative;
+       display: inline-block;
+       margin: 0.25em 0;
+       width: 100%;
+       max-width: 50em;
+}
+.oo-ui-dropdownWidget-handle {
+       width: 100%;
+       display: inline-block;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-dropdownWidget .oo-ui-menuWidget {
+       z-index: 1;
+       width: 100%;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       cursor: default;
+}
+.oo-ui-dropdownWidget-handle {
+       height: 2.5em;
+       border: solid 1px rgba(0, 0, 0, 0.1);
+       border-radius: 0.25em;
+}
+.oo-ui-dropdownWidget-handle:hover {
+       border-color: rgba(0, 0, 0, 0.2);
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       left: 0.25em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       line-height: 2.5em;
+       margin: 0 0.5em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       top: 0;
+       width: 2.5em;
+       height: 2.5em;
+       opacity: 0.8;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-dropdownWidget.oo-ui-iconElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-left: 3em;
+}
+.oo-ui-dropdownWidget.oo-ui-indicatorElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-right: 2em;
 }
 .oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  font-size: 1.1em;
-  padding: 0.75em;
+       position: relative;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       font-size: 1.1em;
+       padding: 0.75em;
 }
 .oo-ui-outlineItemWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-  padding-right: 1.5em;
+       padding-right: 1.5em;
 }
 .oo-ui-outlineItemWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  opacity: 0.5;
+       opacity: 0.5;
 }
 .oo-ui-outlineItemWidget-level-0 {
-  padding-left: 3.5em;
+       padding-left: 3.5em;
 }
 .oo-ui-outlineItemWidget-level-0 .oo-ui-iconElement-icon {
-  left: 1em;
+       left: 1em;
 }
 .oo-ui-outlineItemWidget-level-1 {
-  padding-left: 5em;
+       padding-left: 5em;
 }
 .oo-ui-outlineItemWidget-level-1 .oo-ui-iconElement-icon {
-  left: 2.5em;
+       left: 2.5em;
 }
 .oo-ui-outlineItemWidget-level-2 {
-  padding-left: 6.5em;
+       padding-left: 6.5em;
 }
 .oo-ui-outlineItemWidget-level-2 .oo-ui-iconElement-icon {
-  left: 4em;
+       left: 4em;
 }
 .oo-ui-selectWidget-depressed .oo-ui-outlineItemWidget.oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+       background-color: #a7dcff;
+       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
 }
 .oo-ui-outlineItemWidget.oo-ui-flaggedElement-important {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-outlineItemWidget.oo-ui-flaggedElement-placeholder {
-  font-style: italic;
+       font-style: italic;
 }
 .oo-ui-outlineItemWidget.oo-ui-flaggedElement-empty .oo-ui-iconElement-icon {
-  opacity: 0.5;
+       opacity: 0.5;
 }
 .oo-ui-outlineItemWidget.oo-ui-flaggedElement-empty .oo-ui-labelElement-label {
-  color: #777;
+       color: #777777;
 }
 .oo-ui-outlineControlsWidget {
-  height: 3em;
-  background-color: #fff;
+       height: 3em;
+       background-color: #ffffff;
 }
 .oo-ui-outlineControlsWidget-items,
 .oo-ui-outlineControlsWidget-movers {
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       float: left;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: left;
-  background-position: right center;
-  background-repeat: no-repeat;
+       float: left;
+       background-position: right center;
+       background-repeat: no-repeat;
 }
 .oo-ui-outlineControlsWidget-items {
-  float: left;
+       float: left;
 }
 .oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: left;
+       float: left;
 }
 .oo-ui-outlineControlsWidget-movers {
-  float: right;
+       float: right;
 }
 .oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: right;
+       float: right;
 }
 .oo-ui-outlineControlsWidget-items,
 .oo-ui-outlineControlsWidget-movers {
-  height: 2em;
-  margin: 0.5em;
-  padding: 0;
+       height: 2em;
+       margin: 0.5em;
+       padding: 0;
 }
 .oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0 0.5em 0.5em;
-  opacity: 0.2;
+       width: 1.5em;
+       height: 2em;
+       margin: 0.5em 0 0.5em 0.5em;
+       opacity: 0.2;
 }
 .oo-ui-outlineControlsWidget-items {
-  margin-left: 0;
+       margin-left: 0;
 }
 .oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
-  min-width: 20em;
+       display: inline-block;
+       position: relative;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
+       width: 100%;
+       z-index: 1;
 }
 .oo-ui-comboBoxWidget-handle {
-  border: solid 1px rgba(0, 0, 0, 0.1);
-  border-radius: 0.25em;
+       border: solid 1px rgba(0, 0, 0, 0.1);
+       border-radius: 0.25em;
 }
 .oo-ui-comboBoxWidget-handle:hover {
-  border-color: rgba(0, 0, 0, 0.2);
+       border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-comboBoxWidget.oo-ui-widget-disabled .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
 .oo-ui-comboBoxWidget-empty .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  cursor: default;
-  opacity: 0.2;
+       cursor: default;
+       opacity: 0.2;
 }
 .oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  margin-top: -3px;
+       margin-top: -3px;
 }
 .oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
 }
 .oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
+       width: 100%;
 }
 .oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       overflow-x: hidden;
+       overflow-y: auto;
 }
 .oo-ui-searchWidget-query {
-  height: 4em;
-  padding: 0 1em;
-  box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
+       height: 4em;
+       padding: 0 1em;
+       box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
 }
 .oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  margin: 0.75em 0;
+       margin: 0.75em 0;
 }
 .oo-ui-searchWidget-results {
-  top: 4em;
-  padding: 1em;
-  line-height: 0;
+       top: 4em;
+       padding: 1em;
+       line-height: 0;
 }
 .oo-ui-window {
-  line-height: 1em;
+       line-height: 1em;
 }
 .oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
+       width: 100%;
+       height: 100%;
+       margin: 0;
+       padding: 0;
 }
 .oo-ui-window-content:focus {
-  outline: none;
+       outline: none;
 }
 .oo-ui-window-head,
 .oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  left: 0;
-}
+       margin: 0;
+       padding: 0;
+       background: none;
+}
+.oo-ui-window-overlay,
+.oo-ui-window-inner-overlay {
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+}
+.oo-ui-window,
 .oo-ui-window-isolated {
-  background-color: transparent;
-  background-image: none;
-  font-family: sans-serif;
-  font-size: 0.8em;
+       background-color: transparent;
+       background-image: none;
+       font-family: sans-serif;
+       font-size: 0.8em;
 }
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
 .oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  left: 0;
-  right: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       position: absolute;
+       left: 0;
+       right: 0;
+       overflow: hidden;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
+       z-index: 1;
+       top: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
+       z-index: 2;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
+       z-index: 1;
+       bottom: 0;
 }
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
+.oo-ui-dialog-content > .oo-ui-window-inner-overlay {
+       z-index: 3;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
+       display: table;
+       table-layout: fixed;
+       width: 100%;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
+       display: table-cell;
+       width: 1%;
 }
 .oo-ui-messageDialog-actions-vertical {
-  display: block;
+       display: block;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
+       display: block;
+       overflow: hidden;
+       text-overflow: ellipsis;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
+       position: relative;
+       text-align: center;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
+       display: block;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
+       position: relative;
+       top: auto;
+       bottom: auto;
+       display: inline;
+       white-space: nowrap;
 }
 .oo-ui-messageDialog-content .oo-ui-window-body {
-  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
+       box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
 }
 .oo-ui-messageDialog-title,
 .oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
+       display: block;
+       text-align: center;
+       padding-top: 0.5em;
 }
 .oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
+       font-size: 1.5em;
+       line-height: 1em;
+       color: #000000;
 }
 .oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
+       font-size: 0.9em;
+       line-height: 1.25em;
+       color: #666666;
 }
 .oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: left;
+       font-size: 1.1em;
+       line-height: 1.5em;
+       text-align: left;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-right: solid 1px #e5e5e5;
+       border-right: solid 1px #e5e5e5;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-right-width: 0;
+       border-right-width: 0;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
+       border-bottom: solid 1px #e5e5e5;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
+       border-bottom-width: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
+       text-align: center;
+       line-height: 3.4em;
+       padding: 0 2em;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
+       background-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
+       background-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
+       background-color: rgba(8, 126, 204, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
+       background-color: rgba(8, 126, 204, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
+       background-color: rgba(118, 171, 54, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
+       background-color: rgba(118, 171, 54, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
+       background-color: rgba(212, 83, 83, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
+       background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
 }
 .oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
+       display: inline;
+       padding: 0;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
+       white-space: nowrap;
 }
 .oo-ui-processDialog-actions-safe,
 .oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-processDialog-actions-safe {
-  left: 0;
+       left: 0;
 }
 .oo-ui-processDialog-actions-primary {
-  right: 0;
+       right: 0;
 }
 .oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
+       display: none;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
+       z-index: 2;
+       overflow-x: hidden;
+       overflow-y: auto;
 }
 .oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
+       height: 3.4em;
 }
 .oo-ui-processDialog-content .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
 .oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
+       top: 3.4em;
+       box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
 }
 .oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
+       position: relative;
+       height: 3.4em;
+       padding: 0 1em;
 }
 .oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
+       padding: 0.75em 0;
+       height: 1.9em;
+       cursor: default;
+       text-align: center;
 }
 .oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
+       font-weight: bold;
+       line-height: 1.9em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
+       padding-top: 0.75em;
+       padding-bottom: 0.75em;
+       min-width: 1.9em;
+       min-height: 1.9em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
+       line-height: 1.9em;
+       padding: 0 1em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
+       position: absolute;
+       margin-top: -0.125em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0 0.75em 0.75em;
+       margin: 0.75em 0 0.75em 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
+       padding: 0;
+       vertical-align: middle;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
+       background-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
+       background-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
+       margin: 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
+       /* Adjust for border so text aligns with title */
+       margin: -1px;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
+       background-color: rgba(8, 126, 204, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
+       background-color: rgba(8, 126, 204, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
+       background-color: rgba(118, 171, 54, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
+       background-color: rgba(118, 171, 54, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
+       background-color: rgba(212, 83, 83, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
+       background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
+       left: 0.5em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
+       padding-left: 2.25em;
 }
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
+       right: 0.5em;
 }
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
+       padding-right: 2.25em;
 }
 .oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
+       min-height: 5em;
 }
 .oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
+       background-color: rgba(255, 255, 255, 0.9);
+       padding: 3em 3em 1.5em 3em;
+       text-align: center;
 }
 .oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
+       margin: 2em 1em 2em 1em;
 }
 .oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
+       font-size: 1.5em;
+       color: #000000;
+       margin-bottom: 2em;
 }
 .oo-ui-processDialog-error {
-  text-align: left;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
+       text-align: left;
+       margin: 1em;
+       padding: 1em;
+       border: solid 1px #ff9e9e;
+       background-color: #fff7f7;
+       border-radius: 0.25em;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
+       position: fixed;
+       width: 0;
+       height: 0;
+       overflow: hidden;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1em;
+       width: auto;
+       height: auto;
+       top: 0;
+       right: 0;
+       bottom: 0;
+       left: 0;
+       padding: 1em;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  right: 0;
-  left: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
+       position: absolute;
+       right: 0;
+       left: 0;
+       margin: auto;
+       overflow: hidden;
+       max-width: 100%;
+       max-height: 100%;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
+       width: 100%;
+       height: 100%;
 }
 .oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
+       width: 100%;
+       height: 100%;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
+       background-color: rgba(255, 255, 255, 0.5);
+       opacity: 0;
+       -webkit-transition: opacity 250ms ease-in-out;
+          -moz-transition: opacity 250ms ease-in-out;
+           -ms-transition: opacity 250ms ease-in-out;
+            -o-transition: opacity 250ms ease-in-out;
+               transition: opacity 250ms ease-in-out;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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;
+       top: 1em;
+       bottom: 1em;
+       background-color: #ffffff;
+       -webkit-transform: scale(0.5);
+          -moz-transform: scale(0.5);
+           -ms-transform: scale(0.5);
+            -o-transform: scale(0.5);
+               transform: scale(0.5);
+       -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-  -webkit-transform: scale(1);
-  -moz-transform: scale(1);
-  -ms-transform: scale(1);
-  -o-transform: scale(1);
-  transform: scale(1);
+       -webkit-transform: scale(1);
+          -moz-transform: scale(1);
+           -ms-transform: scale(1);
+            -o-transform: scale(1);
+               transform: scale(1);
 }
 .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
+       border: solid 1px #cccccc;
+       border-radius: 0.5em;
+       box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
 }
 
 .oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/apex/images/icons/add.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/add.svg);
 }
 .oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/apex/images/icons/advanced.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/advanced.svg);
 }
 .oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/apex/images/icons/alert.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/alert.svg);
 }
 .oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/apex/images/icons/check.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/check.svg);
 }
 .oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/apex/images/icons/clear.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/clear.svg);
 }
 .oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/apex/images/icons/close.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/close.svg);
 }
 .oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/apex/images/icons/code.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/code.svg);
 }
 .oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/apex/images/icons/collapse.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/collapse.svg);
 }
 .oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/apex/images/icons/comment.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/comment.svg);
 }
 .oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/apex/images/icons/expand.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/expand.svg);
 }
 .oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/apex/images/icons/help.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/help.svg);
 }
 .oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/apex/images/icons/info.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/info.svg);
 }
 .oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/apex/images/icons/link.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/link.svg);
 }
 .oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/apex/images/icons/menu.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/menu.svg);
 }
 .oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/apex/images/icons/move-ltr.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/move-ltr.svg);
 }
 .oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/apex/images/icons/picture.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/picture.svg);
 }
 .oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/apex/images/icons/move-rtl.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/move-rtl.svg);
 }
 .oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/apex/images/icons/arched-arrow-ltr.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/arched-arrow-ltr.svg);
 }
 .oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/apex/images/icons/remove.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/remove.svg);
 }
 .oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/apex/images/icons/search.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/search.svg);
 }
 .oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/apex/images/icons/settings.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/settings.svg);
 }
 .oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/apex/images/icons/tag.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/tag.svg);
 }
 .oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/apex/images/icons/arched-arrow-rtl.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/arched-arrow-rtl.svg);
 }
 .oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/apex/images/icons/window.svg);
+       background-image: /* @embed */ url(themes/apex/images/icons/window.svg);
 }
 .oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/apex/images/indicators/alert.svg);
+       background-image: /* @embed */ url(themes/apex/images/indicators/alert.svg);
 }
 .oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-up.svg);
+       background-image: /* @embed */ url(themes/apex/images/indicators/arrow-up.svg);
 }
 .oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-down.svg);
+       background-image: /* @embed */ url(themes/apex/images/indicators/arrow-down.svg);
 }
 .oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-ltr.svg);
+       background-image: /* @embed */ url(themes/apex/images/indicators/arrow-ltr.svg);
 }
 .oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-rtl.svg);
+       background-image: /* @embed */ url(themes/apex/images/indicators/arrow-rtl.svg);
 }
 .oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/apex/images/indicators/required.svg);
+       background-image: /* @embed */ url(themes/apex/images/indicators/required.svg);
 }
 .oo-ui-texture-pending {
-  background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
 .oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/apex/images/textures/transparency.svg);
+       background-image: /* @embed */ url(themes/apex/images/textures/transparency.svg);
 }
diff --git a/resources/lib/oojs-ui/oojs-ui-apex.svg.rtl.css b/resources/lib/oojs-ui/oojs-ui-apex.svg.rtl.css
deleted file mode 100644 (file)
index 4ea3271..0000000
+++ /dev/null
@@ -1,2079 +0,0 @@
-/*!
- * 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: 2014-09-24T23:21:42Z
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  color: #333;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-left: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  opacity: 0.8;
-  width: 1.9em;
-  height: 1.9em;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
-  /*.oo-ui-transition(opacity 200ms);*/
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-iconElement-icon {
-  opacity: 1;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #000;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #333;
-  margin-right: 0.25em;
-}
-.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #087ecc;
-}
-.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #76ab36;
-}
-.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #d45353;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.2em 0.8em;
-  border-radius: 0.3em;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
-  border: 1px #c9c9c9 solid;
-  -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;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
-  border-color: #aaa;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 1.9em;
-}
-.oo-ui-buttonElement-framed.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
-  color: black;
-  border-color: #c9c9c9;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: -0.5em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: 0.3em;
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  border: solid 1px #a6cee1;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  border-color: #9dc2d4;
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  border: solid 1px #a6cee1;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  border: solid 1px #b8d892;
-  background: #daf0be;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  border-color: #adcb89;
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  border: solid 1px #b8d892;
-  background: #daf0be;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-buttonElement-framed.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  color: #d45353;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  opacity: 0.5;
-  box-shadow: none;
-  color: #333;
-  background: #eee;
-  border-color: #ccc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button:focus,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:focus,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button:focus {
-  border-color: #ccc;
-  box-shadow: none;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
-}
-.oo-ui-bookletLayout-outlinePanel {
-  border-left: solid 1px #ddd;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: left;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-left: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-right: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  right: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout-padded {
-  padding: 1.25em;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-right: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-  border-radius: 0.25em;
-  border: solid 1px transparent;
-  -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-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  margin: -1px -1px -1px 0;
-  border: solid 1px transparent;
-}
-.oo-ui-barToolGroup .oo-ui-tool:first-child {
-  border-top-right-radius: 0.25em;
-  border-bottom-right-radius: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool:last-child {
-  margin-left: -1px;
-  border-top-left-radius: 0.25em;
-  border-bottom-left-radius: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.2);
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-right-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
-}
-.oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  margin: 0 -1px;
-  border: solid 1px #ccc;
-  background-color: white;
-  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-left: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
-}
-.oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-.oo-ui-listToolGroup .oo-ui-tool {
-  border: solid 1px transparent;
-  margin: -1px 0;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-left: 0.5em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.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-iconElement-icon {
-  opacity: 0.8;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-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-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-menuToolGroup {
-  border-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-enabled: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-link {
-  padding: 0 0.25em 0 1em;
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(themes/apex/images/icons/check.svg);
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: left;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: right top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
-  background: #f8fbfd;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-toolbar-shadow {
-  /* @embed */
-  background-image: /* @embed */ url(themes/apex/images/toolbar-shadow.png);
-  bottom: -9px;
-  height: 9px;
-  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-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 3em 0.5em 2em;
-  border: none;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget-highlighted {
-  background-color: #e1f3ff;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-}
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  left: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-right: -1px;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 1.9em;
-  margin-top: 0;
-}
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-  padding: 0.5em 0;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-right: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  border: solid 1px #ccc;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  opacity: 0.5;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  right: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
-  border: 1px #c9c9c9 solid;
-  -webkit-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -moz-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -ms-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -o-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  background: #eeeeee;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.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 {
-  border-radius: 1em;
-  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;
-  -o-transition: opacity 200ms ease-in-out;
-  transition: opacity 200ms ease-in-out;
-  background: #cde7f4;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  background-image: -webkit-gradient(linear, left top, left 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%);
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  opacity: 1;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  right: 2.25em;
-  margin-right: -2px;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
-  opacity: 0;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  right: 0.25em;
-  margin-right: 0;
-}
-.oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: right;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-popup {
-  border: solid 1px #ccc;
-  border-radius: 0.25em;
-  background-color: #fff;
-  box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  content: "";
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-color: transparent;
-  border-top: 0;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-  bottom: -8px;
-  right: 11px;
-  border-bottom-color: #aaa;
-  border-width: 7px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  bottom: -8px;
-  right: 12px;
-  border-bottom-color: #fff;
-  border-width: 6px;
-}
-.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
-  -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  right: 1em;
-  cursor: auto;
-}
-.oo-ui-popupButtonWidget > .oo-ui-popupWidget {
-  margin-right: -1em;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: 0.5em;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  border-radius: 0.25em;
-  -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-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-  padding-right: 2em;
-}
-.oo-ui-textInputWidget-icon {
-  width: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #a7dcff;
-  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.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-textInputWidget .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget .oo-ui-indicatorElement-indicator {
-  opacity: 0.8;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement input,
-.oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-right: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  width: 2em;
-  background-position: left center;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement input,
-.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-left: 1.5em;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.5em;
-  background-position: right center;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  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-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted,
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
-  background-color: #e1f3ff;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  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-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-  opacity: 0.8;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 2em;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  font-size: 1.1em;
-  padding: 0.75em;
-}
-.oo-ui-outlineItemWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-  padding-left: 1.5em;
-}
-.oo-ui-outlineItemWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  opacity: 0.5;
-}
-.oo-ui-outlineItemWidget-level-0 {
-  padding-right: 3.5em;
-}
-.oo-ui-outlineItemWidget-level-0 .oo-ui-iconElement-icon {
-  right: 1em;
-}
-.oo-ui-outlineItemWidget-level-1 {
-  padding-right: 5em;
-}
-.oo-ui-outlineItemWidget-level-1 .oo-ui-iconElement-icon {
-  right: 2.5em;
-}
-.oo-ui-outlineItemWidget-level-2 {
-  padding-right: 6.5em;
-}
-.oo-ui-outlineItemWidget-level-2 .oo-ui-iconElement-icon {
-  right: 4em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-outlineItemWidget.oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-important {
-  font-weight: bold;
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-placeholder {
-  font-style: italic;
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-empty .oo-ui-iconElement-icon {
-  opacity: 0.5;
-}
-.oo-ui-outlineItemWidget.oo-ui-flaggedElement-empty .oo-ui-labelElement-label {
-  color: #777;
-}
-.oo-ui-outlineControlsWidget {
-  height: 3em;
-  background-color: #fff;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: right;
-  background-position: left center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  height: 2em;
-  margin: 0.5em;
-  padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0.5em 0.5em 0;
-  opacity: 0.2;
-}
-.oo-ui-outlineControlsWidget-items {
-  margin-right: 0;
-}
-.oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
-  min-width: 20em;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
-}
-.oo-ui-comboBoxWidget-handle {
-  border: solid 1px rgba(0, 0, 0, 0.1);
-  border-radius: 0.25em;
-}
-.oo-ui-comboBoxWidget-handle:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-.oo-ui-comboBoxWidget.oo-ui-widget-disabled .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
-.oo-ui-comboBoxWidget-empty .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  cursor: default;
-  opacity: 0.2;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-  height: 4em;
-  padding: 0 1em;
-  box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-  top: 4em;
-  padding: 1em;
-  line-height: 0;
-}
-.oo-ui-window {
-  line-height: 1em;
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-}
-.oo-ui-window-isolated {
-  background-color: transparent;
-  background-image: none;
-  font-family: sans-serif;
-  font-size: 0.8em;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  right: 0;
-  left: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-content .oo-ui-window-body {
-  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: right;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-left: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-left-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  right: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  left: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0.75em 0.75em 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: right;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  left: 0;
-  right: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .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-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-}
-
-.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/apex/images/icons/add.svg);
-}
-.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/apex/images/icons/advanced.svg);
-}
-.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/apex/images/icons/alert.svg);
-}
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/apex/images/icons/check.svg);
-}
-.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/apex/images/icons/clear.svg);
-}
-.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/apex/images/icons/close.svg);
-}
-.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/apex/images/icons/code.svg);
-}
-.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/apex/images/icons/collapse.svg);
-}
-.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/apex/images/icons/comment.svg);
-}
-.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/apex/images/icons/expand.svg);
-}
-.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/apex/images/icons/help.svg);
-}
-.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/apex/images/icons/info.svg);
-}
-.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/apex/images/icons/link.svg);
-}
-.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/apex/images/icons/menu.svg);
-}
-.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/apex/images/icons/move-rtl.svg);
-}
-.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/apex/images/icons/picture.svg);
-}
-.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/apex/images/icons/move-ltr.svg);
-}
-.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/apex/images/icons/arched-arrow-rtl.svg);
-}
-.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/apex/images/icons/remove.svg);
-}
-.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/apex/images/icons/search.svg);
-}
-.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/apex/images/icons/settings.svg);
-}
-.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/apex/images/icons/tag.svg);
-}
-.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/apex/images/icons/arched-arrow-ltr.svg);
-}
-.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/apex/images/icons/window.svg);
-}
-.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/apex/images/indicators/alert.svg);
-}
-.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-up.svg);
-}
-.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-down.svg);
-}
-.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-rtl.svg);
-}
-.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/apex/images/indicators/arrow-ltr.svg);
-}
-.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/apex/images/indicators/required.svg);
-}
-.oo-ui-texture-pending {
-  background-image: /* @embed */ url(themes/apex/images/textures/pending.svg);
-}
-.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/apex/images/textures/transparency.svg);
-}
-@-webkit-keyframes oo-ui-animate-texture-pending {
-  from {
-    background-position: 100% 0%;
-  }
-  to {
-    background-position: 0% 0%;
-  }
-}
-@keyframes oo-ui-animate-pending {
-  from {
-    background-position: 100% 0%;
-  }
-  to {
-    background-position: 0% 0%;
-  }
-}
-.oo-ui-texture-pending {
-  background-position: 100% 0%;
-  -webkit-animation: oo-ui-animate-texture-pending 30s linear 0 infinite;
-  animation: oo-ui-animate-texture-pending 30s linear 0 infinite;
-}
index 5713c72..32cdc6c 100644 (file)
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:55Z
  */
 /* @noflip */
 .oo-ui-rtl {
-  direction: rtl;
+       direction: rtl;
 }
 /* @noflip */
 .oo-ui-ltr {
-  direction: ltr;
+       direction: ltr;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       cursor: pointer;
+       display: inline-block;
+       vertical-align: middle;
+       font-family: inherit;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
+       display: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
+       display: none;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
+       display: inline-block;
+       position: relative;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
+       display: inline-block;
+       vertical-align: top;
+       text-align: center;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: 0;
+       margin-left: 0;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-right: -0.75em;
+       margin-right: -0.75em;
+       margin-left: -0.75em;
+}
+.oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 2.2em;
-  height: 2.2em;
+       width: 2.2em;
+       height: 2.2em;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ddd;
+       color: #dddddd;
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
+       outline: none;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-left: 0.25em;
+       margin-left: 0.25em;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #757575;
+       color: #757575;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #444444;
+       color: #444444;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #598ad1;
+       color: #598ad1;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
+       color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #015ccc;
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #015ccc;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #00c697;
+       color: #00c697;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
+       color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #008c6d;
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #008c6d;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #e81915;
+       color: #e81915;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
+       color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #a7170f;
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #a7170f;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.3em 1.2em;
-  border-radius: 0.3em;
-  -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-}
+       margin: 0.1em 0;
+       padding: 0.3em 1.2em;
+       border-radius: 0.3em;
+       -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+          -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+           -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+            -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+               transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+}
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
+       outline: none;
+}
+.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 2.2em;
+       line-height: 2.2em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: -0.5em;
-  margin-right: -0.5em;
+       margin-left: -0.5em;
+       margin-right: -0.5em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: -0.5em;
-  margin-right: 0.3em;
+       margin-left: -0.5em;
+       margin-right: 0.3em;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  color: #ddd;
-  background: #fff;
-  border: solid 1px #cdcdcd;
+       color: #dddddd;
+       background: #ffffff;
+       border: solid 1px #cdcdcd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-  color: #757575;
-  background-color: #fff;
-  border: solid 1px #cdcdcd;
+       color: #757575;
+       background-color: #ffffff;
+       border: solid 1px #cdcdcd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-  border-color: #aaa;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       border-color: #aaaaaa;
 }
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #d0d0d0;
-  border-color: #d0d0d0;
+       background-color: #d0d0d0;
+       border-color: #d0d0d0;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #0274ff;
-  border-color: #0274ff;
+       text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
+       color: #ffffff;
+       background-color: #0274ff;
+       border-color: #0274ff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #015ccc;
+       box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #015ccc;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #015ccc;
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       background-color: #015ccc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #00af89;
-  border-color: #00af89;
+       text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
+       color: #ffffff;
+       background-color: #00af89;
+       border-color: #00af89;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #008c6d;
+       box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #008c6d;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #008c6d;
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       background-color: #008c6d;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #d11d13;
-  border-color: #d11d13;
+       text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
+       color: #ffffff;
+       background-color: #d11d13;
+       border-color: #d11d13;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #a7170f;
+       box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #a7170f;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #a7170f;
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       background-color: #a7170f;
 }
 .oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
+       overflow-y: hidden;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       width: 100%;
+       -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;
+       overflow-y: auto;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
+       padding: 2em;
 }
 .oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 3em;
-  overflow-y: auto;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 3em;
+       overflow-y: auto;
 }
 .oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
+       padding: 1.5em;
 }
 .oo-ui-bookletLayout-outlinePanel {
-  border-right: solid 1px #ddd;
+       border-right: solid 1px #dddddd;
 }
 .oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-fieldLayout {
-  margin-bottom: 1em;
+       display: block;
+       margin-bottom: 1em;
 }
 .oo-ui-fieldLayout:before,
 .oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
+       content: " ";
+       display: table;
 }
 .oo-ui-fieldLayout:after {
-  clear: both;
+       clear: both;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: left;
+       display: block;
+       float: left;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: left;
+       display: block;
+       float: left;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: right;
+       text-align: right;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
+       z-index: 1;
 }
 .oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: right;
+       float: right;
 }
 .oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
+       padding: 0.5em 0.75em;
 }
 .oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
+       margin-bottom: 0;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-right: 5%;
-  width: 35%;
+       padding-top: 0.5em;
+       margin-right: 5%;
+       width: 35%;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
+       width: 60%;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
+       padding: 0.75em 0.5em 0.5em 0.5em;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
+       padding: 0.5em 0;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
+       padding: 0.5em 0;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
+       margin-top: 0.25em;
 }
 .oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
+       position: relative;
+       margin: 0;
+       padding: 0;
+       border: none;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
+       display: block;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
+       margin-top: 2em;
 }
 .oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
+       font-size: 1.5em;
+       margin-bottom: 0.5em;
+       padding: 0.25em 0;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-left: 1.75em;
-  line-height: 1.33em;
+       padding-left: 1.75em;
+       line-height: 1.33em;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  left: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
+       left: 0;
+       top: 0.25em;
+       width: 2em;
+       height: 2em;
 }
 .oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
 }
 .oo-ui-panelLayout {
-  position: relative;
+       position: relative;
 }
 .oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
+       overflow-y: auto;
 }
 .oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
 }
 .oo-ui-panelLayout-padded {
-  padding: 1.25em;
+       padding: 1.25em;
 }
 .oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
+       display: none;
 }
 .oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
+       display: block;
+       position: relative;
 }
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
+       z-index: 4;
 }
 .oo-ui-popupTool .oo-ui-popupWidget {
-  margin-left: 1.25em;
-  font-size: 0.8em;
+       /* @noflip */
+       margin-left: 1.25em;
+       font-size: 0.8em;
 }
 .oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
+       display: inline-block;
+       vertical-align: middle;
+       margin: 0.3em;
 }
 .oo-ui-toolGroup-empty {
-  display: none;
+       display: none;
 }
 .oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
+       color: #000000;
+}
+.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #888888;
 }
 .oo-ui-barToolGroup > .oo-ui-iconElement-icon,
 .oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
+       display: inline-block;
+       position: relative;
+       vertical-align: top;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
+       display: block;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
+       display: block;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-barToolGroup .oo-ui-tool-title,
 .oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
+       cursor: pointer;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
+       height: 1.5em;
+       padding: 0.25em;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
+       height: 1.5em;
+       width: 1.5em;
+       opacity: 0.8;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
+       opacity: 0.8;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
+       position: relative;
+       height: 2em;
+       min-width: 2.5em;
 }
 .oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
+       display: block;
+       cursor: pointer;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
+       display: none;
+       position: absolute;
+       z-index: 4;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
+       background-repeat: no-repeat;
+       background-position: center center;
 }
 .oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
+       display: block;
 }
 .oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  left: 0;
+       left: 0;
 }
 .oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  right: 0;
+       right: 0;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-table;
+       vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
+       min-width: 3.5em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
+       top: 0;
+       width: 2em;
+       height: 2em;
+       opacity: 0.8;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
+       right: 0;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
+       left: 0.25em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
+       line-height: 2.6em;
+       font-size: 0.8em;
+       margin: 0 1em;
 }
 .oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
+       line-height: 2.6em;
+       font-size: 0.8em;
+       margin: 0 0.6em;
+       font-weight: bold;
 }
 .oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
+       margin-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 2.25em;
+       margin-right: 2.25em;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  background-color: white;
+       top: 2em;
+       background-color: white;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-right: 0.25em;
+       height: 2em;
+       width: 2em;
+       margin-right: 0.25em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
+       line-height: 2em;
+       font-size: 0.8em;
 }
 .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;
+       display: inline-block;
+       width: 100%;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-listToolGroup .oo-ui-tool {
-  padding: 0 0.25em;
+       padding: 0 0.25em;
 }
 .oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-right: 0.5em;
+       padding-right: 0.5em;
 }
 .oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
+       color: #cccccc;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #dddddd;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       padding: 0.25em 0 0.25em 0;
+       border: 1px solid #aaaaaa;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuToolGroup {
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
+       border: solid 1px #cccccc;
+       border-radius: 0.1em;
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
+       display: block;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-  min-width: 8em;
+       min-width: 8em;
 }
 .oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-  margin-left: -1px;
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       margin-left: -1px;
+       padding: 0.25em 0 0.25em 0;
+       border: 1px solid #aaaaaa;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 1em 0 0.25em;
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       padding: 0 1em 0 0.25em;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
+       background-image: none;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
+       background-color: #e1f3ff;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: #ccc;
+       color: #cccccc;
+       border-color: #cccccc;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-toolbar {
-  clear: both;
+       clear: both;
 }
 .oo-ui-toolbar-bar {
-  line-height: 1em;
+       line-height: 1em;
 }
 .oo-ui-toolbar-actions {
-  float: right;
+       float: right;
 }
 .oo-ui-toolbar-tools {
-  display: inline;
+       display: inline;
 }
 .oo-ui-toolbar-tools,
 .oo-ui-toolbar-actions,
 .oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
+       -webkit-touch-callout: default;
+       -webkit-user-select: all;
+          -moz-user-select: all;
+           -ms-user-select: all;
+               user-select: all;
 }
 .oo-ui-toolbar-shadow {
-  background-position: left top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
+       background-position: left top;
+       background-repeat: repeat-x;
+       position: absolute;
+       width: 100%;
+       pointer-events: none;
 }
 .oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
+       border-bottom: solid 1px #cccccc;
+       background: #ffffff;
 }
 .oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
+       border: none;
+       background: none;
 }
 .oo-ui-toolbar-shadow {
-  display: none;
+       display: none;
 }
 .oo-ui-selectWidget {
-  border-radius: 0.3em;
+       border-radius: 0.3em;
 }
 .oo-ui-selectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-left: -1px;
 }
 .oo-ui-selectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 2em 0.5em 3em;
-  border: none;
+       position: relative;
+       display: block;
+       cursor: pointer;
+       padding: 0.5em 2em 0.5em 3em;
+       border: none;
 }
 .oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
 }
 .oo-ui-optionWidget-highlighted {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
+       line-height: 1.5em;
 }
 .oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected,
 .oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
+       background-color: #a7dcff;
 }
 .oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
+       position: absolute;
+       background-repeat: no-repeat;
+       background-position: center center;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
+       top: 50%;
+       width: 2em;
+       height: 2em;
+       margin-top: -1em;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  left: 0.5em;
+       left: 0.5em;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  right: 0.5em;
+       right: 0.5em;
 }
 .oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-left: -1px;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
+       display: inline-block;
+       padding: 0;
+       background-color: transparent;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
+       position: relative;
 }
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
+       position: static;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 2.2em;
+       height: 2.2em;
 }
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 2.2em;
-  margin-top: 0;
+       height: 2.2em;
+       margin-top: 0;
 }
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-labelWidget {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 2.2em;
+       width: 2.2em;
 }
 .oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 2.2em;
+       width: 2.2em;
 }
 .oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-bottom: -1px;
+       margin-left: -1px;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  border: 1px #ddd solid;
+       position: relative;
+       display: inline-block;
+       vertical-align: middle;
+       overflow: hidden;
+       cursor: pointer;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       -webkit-transform: translateZ(0px);
+          -moz-transform: translateZ(0px);
+           -ms-transform: translateZ(0px);
+            -o-transform: translateZ(0px);
+               transform: translateZ(0px);
+       height: 2em;
+       width: 4em;
+       border-radius: 1em;
+       border: 1px #dddddd solid;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       position: absolute;
+       display: block;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       right: 0;
+       left: 0;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
+       display: none;
 }
 .oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  left: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  border: 1px #ddd solid;
-  background-color: #f7f7f7;
-  -webkit-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  -moz-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  -ms-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  -o-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+       top: 0.25em;
+       left: 0.25em;
+       width: 1.5em;
+       height: 1.5em;
+       margin-top: -1px;
+       border-radius: 1em;
+       border: 1px #dddddd solid;
+       background-color: #f7f7f7;
+       -webkit-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+          -moz-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+           -ms-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+            -o-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+               transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
 }
 .oo-ui-toggleSwitchWidget-glow {
-  border-radius: 1em;
-  background-color: #f7f7f7;
-  -webkit-transition: background-color 0.1s ease-in-out;
-  -moz-transition: background-color 0.1s ease-in-out;
-  -ms-transition: background-color 0.1s ease-in-out;
-  -o-transition: background-color 0.1s ease-in-out;
-  transition: background-color 0.1s ease-in-out;
+       border-radius: 1em;
+       background-color: #f7f7f7;
+       -webkit-transition: background-color 0.1s ease-in-out;
+          -moz-transition: background-color 0.1s ease-in-out;
+           -ms-transition: background-color 0.1s ease-in-out;
+            -o-transition: background-color 0.1s ease-in-out;
+               transition: background-color 0.1s ease-in-out;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  left: 2.25em;
-  margin-left: -2px;
+       left: 2.25em;
+       margin-left: -2px;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
+       display: block;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  left: 0.25em;
-  margin-left: 0;
+       left: 0.25em;
+       margin-left: 0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled {
-  border: 1px #ccc solid;
+       border: 1px #cccccc solid;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
-  background-color: #fff;
-  border-color: #aaa;
+       background-color: #ffffff;
+       border-color: #aaaaaa;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  background-color: #d0d0d0;
+       background-color: #d0d0d0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  background-color: #fff;
+       background-color: #ffffff;
+}
+.oo-ui-progressBarWidget {
+       width: 100%;
+       max-width: 50em;
+       border: solid 1px #0274ff;
+       border-radius: 0.1em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #0274ff;
+       background: #0274ff;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.2;
 }
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-popupWidget {
-  position: absolute;
+       position: absolute;
+       /* @noflip */
+       left: 0;
 }
 .oo-ui-popupWidget-popup {
-  position: relative;
-  overflow: hidden;
-  z-index: 1;
+       position: relative;
+       overflow: hidden;
+       z-index: 1;
 }
 .oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
+       display: none;
+       z-index: 1;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  top: 0;
-  background-repeat: no-repeat;
+       display: block;
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+       background-repeat: no-repeat;
 }
 .oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: right;
+       float: right;
 }
 .oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: left;
-  cursor: default;
+       float: left;
+       cursor: default;
 }
 .oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
+       clear: both;
+       overflow: hidden;
 }
 .oo-ui-popupWidget-popup {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  background-color: #fff;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       border: solid 1px #aaaaaa;
+       border-radius: 0.2em;
+       background-color: #ffffff;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
+       margin-top: 7px;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  content: "";
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-color: transparent;
-  border-top: 0;
+       content: "";
+       position: absolute;
+       width: 0;
+       height: 0;
+       border-style: solid;
+       border-color: transparent;
+       border-top: 0;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-  bottom: -8px;
-  left: -13px;
-  border-bottom-color: #888;
-  border-width: 13px;
+       bottom: -8px;
+       left: -13px;
+       border-bottom-color: #888888;
+       border-width: 13px;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  bottom: -8px;
-  left: -12px;
-  border-bottom-color: #fff;
-  border-width: 12px;
+       bottom: -8px;
+       left: -12px;
+       border-bottom-color: #ffffff;
+       border-width: 12px;
 }
 .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;
+       -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-head {
-  height: 2.5em;
+       height: 2.5em;
 }
 .oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
+       margin: 0.25em;
 }
 .oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
+       margin: 0.75em 1em;
 }
 .oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
+       padding: 0 1em;
 }
 .oo-ui-popupButtonWidget {
-  position: relative;
+       position: relative;
 }
 .oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  cursor: auto;
+       position: absolute;
+       cursor: auto;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
-  left: 1em;
+       left: 1em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  left: -1em;
+       left: -1em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget {
-  left: 1.75em;
+       left: 1.75em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  left: -1.75em;
+       left: -1.75em;
 }
 .oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
+       position: relative;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       display: inline-block;
+       width: 100%;
+       resize: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-textInputWidget > .oo-ui-iconElement-icon,
 .oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: absolute;
+       top: 0;
+       height: 100%;
+       background-repeat: no-repeat;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  left: 0;
+       left: 0;
 }
 .oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  right: 0;
+       right: 0;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
-  padding: 0.5em 0.5em 0.5em 0.9em;
-  margin: 0;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: inset 0 0 0 0 #0274FF;
-  border-radius: 0.1em;
-  -webkit-transition: box-shadow 0.1s;
-  -moz-transition: box-shadow 0.1s;
-  -ms-transition: box-shadow 0.1s;
-  -o-transition: box-shadow 0.1s;
-  transition: box-shadow 0.1s;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       padding: 0.5em 0.5em 0.5em 0.9em;
+       margin: 0;
+       font-size: 1em;
+       font-family: sans-serif;
+       background-color: #ffffff;
+       border: solid 1px #cccccc;
+       box-shadow: inset 0 0 0 0 #0274ff;
+       border-radius: 0.1em;
+       -webkit-transition: box-shadow 0.1s;
+          -moz-transition: box-shadow 0.1s;
+           -ms-transition: box-shadow 0.1s;
+            -o-transition: box-shadow 0.1s;
+               transition: box-shadow 0.1s;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-textInputWidget-decorated input,
 .oo-ui-textInputWidget-decorated textarea {
-  padding-left: 2em;
+       padding-left: 2em;
 }
 .oo-ui-textInputWidget-icon {
-  width: 2em;
+       width: 2em;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #aaa;
-  box-shadow: inset 0.4em 0 0 0 #0274ff;
+       outline: none;
+       border-color: #aaaaaa;
+       box-shadow: inset 0.4em 0 0 0 #0274ff;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-textInputWidget input[readonly],
 .oo-ui-textInputWidget textarea[readonly] {
-  color: #777;
-  text-shadow: 0 1px 1px #fff;
+       color: #777777;
+       text-shadow: 0 1px 1px #ffffff;
 }
 .oo-ui-textInputWidget input[readonly]:focus,
 .oo-ui-textInputWidget textarea[readonly]:focus {
-  box-shadow: inset 0.4em 0 0 0 #ccc;
+       box-shadow: inset 0.4em 0 0 0 #cccccc;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-color: transparent;
+       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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement input,
 .oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-left: 2.4em;
+       padding-left: 2.4em;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.4em;
-  width: 2em;
-  height: 100%;
-  background-position: right center;
+       left: 0.4em;
+       width: 2em;
+       height: 100%;
+       background-position: right center;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement input,
 .oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-right: 2.2em;
+       padding-right: 2.2em;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.6em;
-  height: 100%;
-  background-position: left center;
+       width: 1.6em;
+       height: 100%;
+       background-position: left center;
 }
 .oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  border: solid 1px #aaa;
-  border-radius: 0 0 0.1em 0.1em;
-  padding-bottom: 0.25em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       position: absolute;
+       background: #ffffff;
+       margin-top: -1px;
+       border: solid 1px #aaaaaa;
+       border-radius: 0 0 0.1em 0.1em;
+       padding-bottom: 0.25em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
+       position: absolute;
+       width: 0;
+       height: 0;
+       overflow: hidden;
+       opacity: 0;
 }
 .oo-ui-menuItemWidget {
-  position: relative;
+       position: relative;
 }
 .oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
+       display: none;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
+       display: block;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget:hover .oo-ui-inlineMenuWidget-handle {
-  border-color: #aaa;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 2em;
-}
-.oo-ui-inlineMenuWidget .oo-ui-selectWidget {
-  border-top-color: #fff;
+       cursor: default;
+       padding: 0.33em 0.75em;
+       color: #888888;
+}
+.oo-ui-dropdownWidget {
+       position: relative;
+       display: inline-block;
+       margin: 0.25em 0;
+       width: 100%;
+       max-width: 50em;
+}
+.oo-ui-dropdownWidget-handle {
+       width: 100%;
+       display: inline-block;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-dropdownWidget .oo-ui-menuWidget {
+       z-index: 1;
+       width: 100%;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       cursor: default;
+}
+.oo-ui-dropdownWidget-handle {
+       height: 2.5em;
+       border: solid 1px #cccccc;
+       border-radius: 0.1em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       left: 0.25em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       line-height: 2.5em;
+       margin: 0 1em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       top: 0;
+       width: 2.5em;
+       height: 2.5em;
+}
+.oo-ui-dropdownWidget:hover .oo-ui-dropdownWidget-handle {
+       border-color: #aaaaaa;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-dropdownWidget.oo-ui-iconElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-left: 3em;
+}
+.oo-ui-dropdownWidget.oo-ui-indicatorElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-right: 2em;
+}
+.oo-ui-dropdownWidget .oo-ui-selectWidget {
+       border-top-color: #ffffff;
 }
 .oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: relative;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-outlineControlsWidget-items,
 .oo-ui-outlineControlsWidget-movers {
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       float: left;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: left;
-  background-position: right center;
-  background-repeat: no-repeat;
+       float: left;
+       background-position: right center;
+       background-repeat: no-repeat;
 }
 .oo-ui-outlineControlsWidget-items {
-  float: left;
+       float: left;
 }
 .oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: left;
+       float: left;
 }
 .oo-ui-outlineControlsWidget-movers {
-  float: right;
+       float: right;
 }
 .oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: right;
+       float: right;
 }
 .oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
+       display: inline-block;
+       position: relative;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
+       width: 100%;
+       z-index: 1;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
-  height: 2.35em;
+       height: 2.35em;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement {
-  padding-right: 2.2em;
+       padding-right: 2.2em;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 2.2em;
-  background-position: center center;
-  border: solid 1px #ccc;
-  border-left: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       width: 2.2em;
+       background-position: center center;
+       border: solid 1px #cccccc;
+       border-left: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
 }
 .oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
+       width: 100%;
 }
 .oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       overflow-x: hidden;
+       overflow-y: auto;
+}
+.oo-ui-searchWidget-query {
+       height: 2.4em;
+       top: 1px;
+}
+.oo-ui-searchWidget-query .oo-ui-textInputWidget input {
+       border-width: 1px 0;
+}
+.oo-ui-searchWidget-results {
+       top: 2.2em;
+       bottom: 0.2em;
+       line-height: 0;
 }
 .oo-ui-window {
-  line-height: 1em;
+       line-height: 1em;
 }
 .oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
+       width: 100%;
+       height: 100%;
+       margin: 0;
+       padding: 0;
 }
 .oo-ui-window-content:focus {
-  outline: none;
+       outline: none;
 }
 .oo-ui-window-head,
 .oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  left: 0;
-}
+       margin: 0;
+       padding: 0;
+       background: none;
+}
+.oo-ui-window-overlay,
+.oo-ui-window-inner-overlay {
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+}
+.oo-ui-window,
 .oo-ui-window-isolated {
-  background: transparent;
-  font-family: sans-serif;
-  font-size: 0.8em;
+       background: transparent;
+       font-family: sans-serif;
+       font-size: 0.8em;
 }
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
 .oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  left: 0;
-  right: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       position: absolute;
+       left: 0;
+       right: 0;
+       overflow: hidden;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
+       z-index: 1;
+       top: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
+       z-index: 2;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
+       z-index: 1;
+       bottom: 0;
 }
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
+.oo-ui-dialog-content > .oo-ui-window-inner-overlay {
+       z-index: 3;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 1px 0 #aaa;
+       box-shadow: 0 0 1px 0 #aaaaaa;
 }
 .oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
+       display: table;
+       table-layout: fixed;
+       width: 100%;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
+       display: table-cell;
+       width: 1%;
 }
 .oo-ui-messageDialog-actions-vertical {
-  display: block;
+       display: block;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
+       display: block;
+       overflow: hidden;
+       text-overflow: ellipsis;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
+       position: relative;
+       text-align: center;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
+       display: block;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
+       position: relative;
+       top: auto;
+       bottom: auto;
+       display: inline;
+       white-space: nowrap;
 }
 .oo-ui-messageDialog-title,
 .oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
+       display: block;
+       text-align: center;
+       padding-top: 0.5em;
 }
 .oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
+       font-size: 1.5em;
+       line-height: 1em;
+       color: #000000;
 }
 .oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
+       font-size: 0.9em;
+       line-height: 1.25em;
+       color: #666666;
 }
 .oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: left;
+       font-size: 1.1em;
+       line-height: 1.5em;
+       text-align: left;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-right: solid 1px #e5e5e5;
+       border-right: solid 1px #e5e5e5;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-right-width: 0;
+       border-right-width: 0;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
+       border-bottom: solid 1px #e5e5e5;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
+       border-bottom-width: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
+       text-align: center;
+       line-height: 3.4em;
+       padding: 0 2em;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
+       background-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
+       background-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
+       background-color: rgba(8, 126, 204, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
+       background-color: rgba(8, 126, 204, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
+       background-color: rgba(118, 171, 54, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
+       background-color: rgba(118, 171, 54, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
+       background-color: rgba(212, 83, 83, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
+       background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
 }
 .oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
+       display: inline;
+       padding: 0;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
+       white-space: nowrap;
 }
 .oo-ui-processDialog-actions-safe,
 .oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-processDialog-actions-safe {
-  left: 0;
+       left: 0;
 }
 .oo-ui-processDialog-actions-primary {
-  right: 0;
+       right: 0;
 }
 .oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
+       display: none;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
+       z-index: 2;
+       overflow-x: hidden;
+       overflow-y: auto;
 }
 .oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
+       height: 3.4em;
 }
 .oo-ui-processDialog-content .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+       top: 3.4em;
+       box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
 }
 .oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
+       position: relative;
+       height: 3.4em;
+       padding: 0 1em;
 }
 .oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
+       padding: 0.75em 0;
+       height: 1.9em;
+       cursor: default;
+       text-align: center;
 }
 .oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
+       font-weight: bold;
+       line-height: 1.9em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
+       padding-top: 0.75em;
+       padding-bottom: 0.75em;
+       min-width: 1.9em;
+       min-height: 1.9em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
+       line-height: 1.9em;
+       padding: 0 1em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
+       position: absolute;
+       margin-top: -0.125em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0 0.75em 0.75em;
+       margin: 0.75em 0 0.75em 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
+       padding: 0;
+       vertical-align: middle;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
+       background-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
+       background-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
+       margin: 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
+       /* Adjust for border so text aligns with title */
+       margin: -1px;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
+       background-color: rgba(8, 126, 204, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
+       background-color: rgba(8, 126, 204, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
+       background-color: rgba(118, 171, 54, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
+       background-color: rgba(118, 171, 54, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
+       background-color: rgba(212, 83, 83, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
+       background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
+       left: 0.5em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
+       padding-left: 2.25em;
 }
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
+       right: 0.5em;
 }
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
+       padding-right: 2.25em;
 }
 .oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
+       min-height: 5em;
 }
 .oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
+       background-color: rgba(255, 255, 255, 0.9);
+       padding: 3em 3em 1.5em 3em;
+       text-align: center;
 }
 .oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
+       margin: 2em 1em 2em 1em;
 }
 .oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
+       font-size: 1.5em;
+       color: #000000;
+       margin-bottom: 2em;
 }
 .oo-ui-processDialog-error {
-  text-align: left;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
+       text-align: left;
+       margin: 1em;
+       padding: 1em;
+       border: solid 1px #ff9e9e;
+       background-color: #fff7f7;
+       border-radius: 0.25em;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
+       position: fixed;
+       width: 0;
+       height: 0;
+       overflow: hidden;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1em;
+       width: auto;
+       height: auto;
+       top: 0;
+       right: 0;
+       bottom: 0;
+       left: 0;
+       padding: 1em;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  right: 0;
-  left: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
+       position: absolute;
+       right: 0;
+       left: 0;
+       margin: auto;
+       overflow: hidden;
+       max-width: 100%;
+       max-height: 100%;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
+       width: 100%;
+       height: 100%;
 }
 .oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
+       width: 100%;
+       height: 100%;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
+       background-color: rgba(255, 255, 255, 0.5);
+       opacity: 0;
+       -webkit-transition: opacity 250ms ease-in-out;
+          -moz-transition: opacity 250ms ease-in-out;
+           -ms-transition: opacity 250ms ease-in-out;
+            -o-transition: opacity 250ms ease-in-out;
+               transition: opacity 250ms ease-in-out;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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;
+       top: 1em;
+       bottom: 1em;
+       background-color: #ffffff;
+       -webkit-transform: scale(0.5);
+          -moz-transform: scale(0.5);
+           -ms-transform: scale(0.5);
+            -o-transform: scale(0.5);
+               transform: scale(0.5);
+       -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-  -webkit-transform: scale(1);
-  -moz-transform: scale(1);
-  -ms-transform: scale(1);
-  -o-transform: scale(1);
-  transform: scale(1);
+       -webkit-transform: scale(1);
+          -moz-transform: scale(1);
+           -ms-transform: scale(1);
+            -o-transform: scale(1);
+               transform: scale(1);
 }
 .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       border: solid 1px #aaaaaa;
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
 }
 
 .oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/add.png);
 }
 .oo-ui-image-constructive .oo-ui-icon-add,
 .oo-ui-image-constructive.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add-constructive.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/add-constructive.png);
 }
 .oo-ui-image-invert .oo-ui-icon-add,
 .oo-ui-image-invert.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/add-invert.png);
 }
 .oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced.png);
 }
 .oo-ui-image-invert .oo-ui-icon-advanced,
 .oo-ui-image-invert.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced-invert.png);
 }
 .oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/alert.png);
 }
 .oo-ui-image-invert .oo-ui-icon-alert,
 .oo-ui-image-invert.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/alert-invert.png);
 }
 .oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check.png);
 }
 .oo-ui-image-primary .oo-ui-icon-check,
 .oo-ui-image-primary.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check-primary.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-primary.png);
 }
 .oo-ui-image-invert .oo-ui-icon-check,
 .oo-ui-image-invert.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-invert.png);
 }
 .oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/clear.png);
 }
 .oo-ui-image-invert .oo-ui-icon-clear,
 .oo-ui-image-invert.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/clear-invert.png);
 }
 .oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/close.png);
 }
 .oo-ui-image-invert .oo-ui-icon-close,
 .oo-ui-image-invert.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/close-invert.png);
 }
 .oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/code.png);
 }
 .oo-ui-image-invert .oo-ui-icon-code,
 .oo-ui-image-invert.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/code-invert.png);
 }
 .oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse.png);
 }
 .oo-ui-image-invert .oo-ui-icon-collapse,
 .oo-ui-image-invert.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse-invert.png);
 }
 .oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/comment.png);
 }
 .oo-ui-image-invert .oo-ui-icon-comment,
 .oo-ui-image-invert.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/comment-invert.png);
 }
 .oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/expand.png);
 }
 .oo-ui-image-invert .oo-ui-icon-expand,
 .oo-ui-image-invert.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/expand-invert.png);
 }
 .oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/help.png);
 }
 .oo-ui-image-invert .oo-ui-icon-help,
 .oo-ui-image-invert.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/help-invert.png);
 }
 .oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/info.png);
 }
 .oo-ui-image-invert .oo-ui-icon-info,
 .oo-ui-image-invert.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/info-invert.png);
 }
 .oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/link.png);
 }
 .oo-ui-image-invert .oo-ui-icon-link,
 .oo-ui-image-invert.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/link-invert.png);
 }
 .oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/menu.png);
 }
 .oo-ui-image-invert .oo-ui-icon-menu,
 .oo-ui-image-invert.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/menu-invert.png);
 }
 .oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr.png);
 }
 .oo-ui-image-invert .oo-ui-icon-next,
 .oo-ui-image-invert.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr-invert.png);
 }
 .oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/picture.png);
 }
 .oo-ui-image-invert .oo-ui-icon-picture,
 .oo-ui-image-invert.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/picture-invert.png);
 }
 .oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl.png);
 }
 .oo-ui-image-invert .oo-ui-icon-previous,
 .oo-ui-image-invert.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl-invert.png);
 }
 .oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr.png);
 }
 .oo-ui-image-invert .oo-ui-icon-redo,
 .oo-ui-image-invert.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr-invert.png);
 }
 .oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/remove.png);
 }
 .oo-ui-image-destructive .oo-ui-icon-remove,
 .oo-ui-image-destructive.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-destructive.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-destructive.png);
 }
 .oo-ui-image-invert .oo-ui-icon-remove,
 .oo-ui-image-invert.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-invert.png);
 }
 .oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/search.png);
 }
 .oo-ui-image-invert .oo-ui-icon-search,
 .oo-ui-image-invert.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/search-invert.png);
 }
 .oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/settings.png);
 }
 .oo-ui-image-invert .oo-ui-icon-settings,
 .oo-ui-image-invert.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/settings-invert.png);
 }
 .oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/tag.png);
 }
 .oo-ui-image-invert .oo-ui-icon-tag,
 .oo-ui-image-invert.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/tag-invert.png);
 }
 .oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl.png);
 }
 .oo-ui-image-invert .oo-ui-icon-undo,
 .oo-ui-image-invert.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl-invert.png);
 }
 .oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/window.png);
 }
 .oo-ui-image-invert .oo-ui-icon-window,
 .oo-ui-image-invert.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/window-invert.png);
 }
 .oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert.png);
 }
 .oo-ui-image-invert .oo-ui-indicator-alert,
 .oo-ui-image-invert.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert-invert.png);
 }
 .oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up.png);
 }
 .oo-ui-image-invert .oo-ui-indicator-up,
 .oo-ui-image-invert.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up-invert.png);
 }
 .oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down.png);
 }
 .oo-ui-image-invert .oo-ui-indicator-down,
 .oo-ui-image-invert.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down-invert.png);
 }
 .oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr.png);
 }
 .oo-ui-image-invert .oo-ui-indicator-next,
 .oo-ui-image-invert.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr-invert.png);
 }
 .oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl.png);
 }
 .oo-ui-image-invert .oo-ui-indicator-previous,
 .oo-ui-image-invert.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl-invert.png);
 }
 .oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/required.png);
 }
 .oo-ui-image-invert .oo-ui-indicator-required,
 .oo-ui-image-invert.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required-invert.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/required-invert.png);
 }
 .oo-ui-texture-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency.png);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency.png);
 }
index 2fbd3b4..4a4c374 100644 (file)
@@ -1,16 +1,16 @@
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:45Z
  */
 /**
  * @class
- * @extends {OO.ui.Theme}
+ * @extends OO.ui.Theme
  *
  * @constructor
  */
@@ -40,8 +40,8 @@ OO.ui.MediaWikiTheme.prototype.getElementClasses = function ( element ) {
                // Parent method
                classes = OO.ui.MediaWikiTheme.super.prototype.getElementClasses.call( this, element );
 
-       if ( element.isFramed && element.hasFlag ) {
-               if ( element.isFramed() ) {
+       if ( element.supports( [ 'isFramed', 'isDisabled', 'hasFlag' ] ) ) {
+               if ( element.isFramed() && !element.isDisabled() ) {
                        if (
                                element.hasFlag( 'primary' ) ||
                                element.hasFlag( 'constructive' ) ||
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.rtl.css b/resources/lib/oojs-ui/oojs-ui-mediawiki.rtl.css
deleted file mode 100644 (file)
index e2acb0f..0000000
+++ /dev/null
@@ -1,1997 +0,0 @@
-/*!
- * 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: 2014-09-24T23:21:42Z
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  font-weight: bold;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-left: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 2.2em;
-  height: 2.2em;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ddd;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-right: 0.25em;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #757575;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #444444;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #598ad1;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #015ccc;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #00c697;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #008c6d;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #e81915;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #a7170f;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.3em 1.2em;
-  border-radius: 0.3em;
-  -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 2.2em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: -0.5em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: 0.3em;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  color: #ddd;
-  background: #fff;
-  border: solid 1px #cdcdcd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-  color: #757575;
-  background-color: #fff;
-  border: solid 1px #cdcdcd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-  border-color: #aaa;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #d0d0d0;
-  border-color: #d0d0d0;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #0274ff;
-  border-color: #0274ff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #015ccc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #015ccc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #00af89;
-  border-color: #00af89;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #d11d13;
-  border-color: #d11d13;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #a7170f;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #a7170f;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
-}
-.oo-ui-bookletLayout-outlinePanel {
-  border-left: solid 1px #ddd;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: left;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-left: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-right: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  right: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout-padded {
-  padding: 1.25em;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-right: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
-}
-.oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-left: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-tool {
-  padding: 0 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-left: 0.5em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
-}
-.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-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuToolGroup {
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  margin-right: -1px;
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
-}
-.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-  border-color: #aaa;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 0.25em 0 1em;
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: #ccc;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: left;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: right top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-toolbar-shadow {
-  display: none;
-}
-.oo-ui-selectWidget {
-  border-radius: 0.3em;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-right: -1px;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 3em 0.5em 2em;
-  border: none;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget-highlighted {
-  background-color: #eee;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-}
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  left: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-right: -1px;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 2.2em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 2.2em;
-  margin-top: 0;
-}
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-right: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  border: 1px #ddd solid;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  right: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  border: 1px #ddd solid;
-  background-color: #f7f7f7;
-  -webkit-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  -moz-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  -ms-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  -o-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget-glow {
-  border-radius: 1em;
-  background-color: #f7f7f7;
-  -webkit-transition: background-color 0.1s ease-in-out;
-  -moz-transition: background-color 0.1s ease-in-out;
-  -ms-transition: background-color 0.1s ease-in-out;
-  -o-transition: background-color 0.1s ease-in-out;
-  transition: background-color 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  right: 2.25em;
-  margin-right: -2px;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  right: 0.25em;
-  margin-right: 0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled {
-  border: 1px #ccc solid;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
-  background-color: #fff;
-  border-color: #aaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  background-color: #d0d0d0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  background-color: #fff;
-}
-.oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: right;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-popup {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  background-color: #fff;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  content: "";
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-color: transparent;
-  border-top: 0;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-  bottom: -8px;
-  right: 11px;
-  border-bottom-color: #888;
-  border-width: 13px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  bottom: -8px;
-  right: 12px;
-  border-bottom-color: #fff;
-  border-width: 12px;
-}
-.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
-  -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  right: 1em;
-  cursor: auto;
-}
-.oo-ui-popupButtonWidget > .oo-ui-popupWidget {
-  margin-right: -1em;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: 0.5em 0.9em 0.5em 0.5em;
-  margin: 0;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: inset 0 0 0 0 #0274FF;
-  border-radius: 0.1em;
-  -webkit-transition: box-shadow 0.1s;
-  -moz-transition: box-shadow 0.1s;
-  -ms-transition: box-shadow 0.1s;
-  -o-transition: box-shadow 0.1s;
-  transition: box-shadow 0.1s;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-  padding-right: 2em;
-}
-.oo-ui-textInputWidget-icon {
-  width: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #aaa;
-  box-shadow: inset 0.4em 0 0 0 #0274ff;
-}
-.oo-ui-textInputWidget input[readonly],
-.oo-ui-textInputWidget textarea[readonly] {
-  color: #777;
-  text-shadow: 0 1px 1px #fff;
-}
-.oo-ui-textInputWidget input[readonly]:focus,
-.oo-ui-textInputWidget textarea[readonly]:focus {
-  box-shadow: inset 0.4em 0 0 0 #ccc;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement input,
-.oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-right: 2.4em;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.4em;
-  width: 2em;
-  height: 100%;
-  background-position: left center;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement input,
-.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-left: 2.2em;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.6em;
-  height: 100%;
-  background-position: right center;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  border: solid 1px #aaa;
-  border-radius: 0 0 0.1em 0.1em;
-  padding-bottom: 0.25em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted,
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
-  background-color: #eee;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget:hover .oo-ui-inlineMenuWidget-handle {
-  border-color: #aaa;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 2em;
-}
-.oo-ui-inlineMenuWidget .oo-ui-selectWidget {
-  border-top-color: #fff;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: right;
-  background-position: left center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
-  height: 2.35em;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement {
-  padding-left: 2.2em;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 2.2em;
-  background-position: center center;
-  border: solid 1px #ccc;
-  border-right: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-window {
-  line-height: 1em;
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-}
-.oo-ui-window-isolated {
-  background: transparent;
-  font-family: sans-serif;
-  font-size: 0.8em;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  right: 0;
-  left: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 1px 0 #aaa;
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: right;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-left: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-left-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  right: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  left: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0.75em 0.75em 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: right;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  left: 0;
-  right: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .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-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add.png);
-}
-.oo-ui-image-invert .oo-ui-icon-add,
-.oo-ui-image-invert.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add-invert.png);
-}
-.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced.png);
-}
-.oo-ui-image-invert .oo-ui-icon-advanced,
-.oo-ui-image-invert.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced-invert.png);
-}
-.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert.png);
-}
-.oo-ui-image-invert .oo-ui-icon-alert,
-.oo-ui-image-invert.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert-invert.png);
-}
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.png);
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check-invert.png);
-}
-.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear.png);
-}
-.oo-ui-image-invert .oo-ui-icon-clear,
-.oo-ui-image-invert.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear-invert.png);
-}
-.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close.png);
-}
-.oo-ui-image-invert .oo-ui-icon-close,
-.oo-ui-image-invert.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close-invert.png);
-}
-.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code.png);
-}
-.oo-ui-image-invert .oo-ui-icon-code,
-.oo-ui-image-invert.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code-invert.png);
-}
-.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse.png);
-}
-.oo-ui-image-invert .oo-ui-icon-collapse,
-.oo-ui-image-invert.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse-invert.png);
-}
-.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment.png);
-}
-.oo-ui-image-invert .oo-ui-icon-comment,
-.oo-ui-image-invert.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment-invert.png);
-}
-.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand.png);
-}
-.oo-ui-image-invert .oo-ui-icon-expand,
-.oo-ui-image-invert.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand-invert.png);
-}
-.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help.png);
-}
-.oo-ui-image-invert .oo-ui-icon-help,
-.oo-ui-image-invert.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help-invert.png);
-}
-.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info.png);
-}
-.oo-ui-image-invert .oo-ui-icon-info,
-.oo-ui-image-invert.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info-invert.png);
-}
-.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link.png);
-}
-.oo-ui-image-invert .oo-ui-icon-link,
-.oo-ui-image-invert.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link-invert.png);
-}
-.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu.png);
-}
-.oo-ui-image-invert .oo-ui-icon-menu,
-.oo-ui-image-invert.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu-invert.png);
-}
-.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl.png);
-}
-.oo-ui-image-invert .oo-ui-icon-next,
-.oo-ui-image-invert.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl-invert.png);
-}
-.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture.png);
-}
-.oo-ui-image-invert .oo-ui-icon-picture,
-.oo-ui-image-invert.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture-invert.png);
-}
-.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr.png);
-}
-.oo-ui-image-invert .oo-ui-icon-previous,
-.oo-ui-image-invert.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr-invert.png);
-}
-.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl.png);
-}
-.oo-ui-image-invert .oo-ui-icon-redo,
-.oo-ui-image-invert.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl-invert.png);
-}
-.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove.png);
-}
-.oo-ui-image-invert .oo-ui-icon-remove,
-.oo-ui-image-invert.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-invert.png);
-}
-.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search.png);
-}
-.oo-ui-image-invert .oo-ui-icon-search,
-.oo-ui-image-invert.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search-invert.png);
-}
-.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings.png);
-}
-.oo-ui-image-invert .oo-ui-icon-settings,
-.oo-ui-image-invert.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings-invert.png);
-}
-.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag.png);
-}
-.oo-ui-image-invert .oo-ui-icon-tag,
-.oo-ui-image-invert.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag-invert.png);
-}
-.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr.png);
-}
-.oo-ui-image-invert .oo-ui-icon-undo,
-.oo-ui-image-invert.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr-invert.png);
-}
-.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window.png);
-}
-.oo-ui-image-invert .oo-ui-icon-window,
-.oo-ui-image-invert.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window-invert.png);
-}
-.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert.png);
-}
-.oo-ui-image-invert .oo-ui-indicator-alert,
-.oo-ui-image-invert.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert-invert.png);
-}
-.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up.png);
-}
-.oo-ui-image-invert .oo-ui-indicator-up,
-.oo-ui-image-invert.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up-invert.png);
-}
-.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down.png);
-}
-.oo-ui-image-invert .oo-ui-indicator-down,
-.oo-ui-image-invert.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down-invert.png);
-}
-.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl.png);
-}
-.oo-ui-image-invert .oo-ui-indicator-next,
-.oo-ui-image-invert.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl-invert.png);
-}
-.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr.png);
-}
-.oo-ui-image-invert .oo-ui-indicator-previous,
-.oo-ui-image-invert.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr-invert.png);
-}
-.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required.png);
-}
-.oo-ui-image-invert .oo-ui-indicator-required,
-.oo-ui-image-invert.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required-invert.png);
-}
-.oo-ui-texture-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency.png);
-}
-.oo-ui-image-invert .oo-ui-texture-transparency,
-.oo-ui-image-invert.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency-invert.png);
-}
index 37b5d0c..1630dc8 100644 (file)
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:55Z
  */
 /* @noflip */
 .oo-ui-rtl {
-  direction: rtl;
+       direction: rtl;
 }
 /* @noflip */
 .oo-ui-ltr {
-  direction: ltr;
+       direction: ltr;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       cursor: pointer;
+       display: inline-block;
+       vertical-align: middle;
+       font-family: inherit;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
+       display: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
+       display: none;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
+       display: inline-block;
+       position: relative;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
+       display: inline-block;
+       vertical-align: top;
+       text-align: center;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: 0;
+       margin-left: 0;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-right: -0.75em;
+       margin-right: -0.75em;
+       margin-left: -0.75em;
+}
+.oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0;
 }
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 2.2em;
-  height: 2.2em;
+       width: 2.2em;
+       height: 2.2em;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ddd;
+       color: #dddddd;
+}
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
+       outline: none;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-left: 0.25em;
+       margin-left: 0.25em;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #757575;
+       color: #757575;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #444444;
+       color: #444444;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #598ad1;
+       color: #598ad1;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
+       color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #015ccc;
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #015ccc;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #00c697;
+       color: #00c697;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
+       color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #008c6d;
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #008c6d;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #e81915;
+       color: #e81915;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
+       color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #a7170f;
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       color: #a7170f;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.3em 1.2em;
-  border-radius: 0.3em;
-  -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-}
+       margin: 0.1em 0;
+       padding: 0.3em 1.2em;
+       border-radius: 0.3em;
+       -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+          -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+           -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+            -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+               transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
+}
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
+       outline: none;
+}
+.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 2.2em;
+       line-height: 2.2em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: -0.5em;
-  margin-right: -0.5em;
+       margin-left: -0.5em;
+       margin-right: -0.5em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: -0.5em;
-  margin-right: 0.3em;
+       margin-left: -0.5em;
+       margin-right: 0.3em;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  color: #ddd;
-  background: #fff;
-  border: solid 1px #cdcdcd;
+       color: #dddddd;
+       background: #ffffff;
+       border: solid 1px #cdcdcd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-  color: #757575;
-  background-color: #fff;
-  border: solid 1px #cdcdcd;
+       color: #757575;
+       background-color: #ffffff;
+       border: solid 1px #cdcdcd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-  border-color: #aaa;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       border-color: #aaaaaa;
 }
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #d0d0d0;
-  border-color: #d0d0d0;
+       background-color: #d0d0d0;
+       border-color: #d0d0d0;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #0274ff;
-  border-color: #0274ff;
+       text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
+       color: #ffffff;
+       background-color: #0274ff;
+       border-color: #0274ff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #015ccc;
+       box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #015ccc;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #015ccc;
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       background-color: #015ccc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #00af89;
-  border-color: #00af89;
+       text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
+       color: #ffffff;
+       background-color: #00af89;
+       border-color: #00af89;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #008c6d;
+       box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #008c6d;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #008c6d;
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       background-color: #008c6d;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #d11d13;
-  border-color: #d11d13;
+       text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
+       color: #ffffff;
+       background-color: #d11d13;
+       border-color: #d11d13;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #a7170f;
+       box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #a7170f;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #a7170f;
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+       background-color: #a7170f;
 }
 .oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
+       overflow-y: hidden;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       width: 100%;
+       -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;
+       overflow-y: auto;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
+       padding: 2em;
 }
 .oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 3em;
-  overflow-y: auto;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 3em;
+       overflow-y: auto;
 }
 .oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
 }
 .oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
+       padding: 1.5em;
 }
 .oo-ui-bookletLayout-outlinePanel {
-  border-right: solid 1px #ddd;
+       border-right: solid 1px #dddddd;
 }
 .oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-fieldLayout {
-  margin-bottom: 1em;
+       display: block;
+       margin-bottom: 1em;
 }
 .oo-ui-fieldLayout:before,
 .oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
+       content: " ";
+       display: table;
 }
 .oo-ui-fieldLayout:after {
-  clear: both;
+       clear: both;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: left;
+       display: block;
+       float: left;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: left;
+       display: block;
+       float: left;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: right;
+       text-align: right;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
+       z-index: 1;
 }
 .oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: right;
+       float: right;
 }
 .oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
+       padding: 0.5em 0.75em;
 }
 .oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
+       margin-bottom: 0;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-right: 5%;
-  width: 35%;
+       padding-top: 0.5em;
+       margin-right: 5%;
+       width: 35%;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
+       width: 60%;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
+       padding: 0.75em 0.5em 0.5em 0.5em;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
+       padding: 0.5em 0;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
+       padding: 0.5em 0;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
+       margin-top: 0.25em;
 }
 .oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
+       position: relative;
+       margin: 0;
+       padding: 0;
+       border: none;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
+       display: block;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
+       margin-top: 2em;
 }
 .oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
+       font-size: 1.5em;
+       margin-bottom: 0.5em;
+       padding: 0.25em 0;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-left: 1.75em;
-  line-height: 1.33em;
+       padding-left: 1.75em;
+       line-height: 1.33em;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  left: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
+       left: 0;
+       top: 0.25em;
+       width: 2em;
+       height: 2em;
 }
 .oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
 }
 .oo-ui-panelLayout {
-  position: relative;
+       position: relative;
 }
 .oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
+       overflow-y: auto;
 }
 .oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
 }
 .oo-ui-panelLayout-padded {
-  padding: 1.25em;
+       padding: 1.25em;
 }
 .oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
+       display: none;
 }
 .oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
+       display: block;
+       position: relative;
 }
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
+       z-index: 4;
 }
 .oo-ui-popupTool .oo-ui-popupWidget {
-  margin-left: 1.25em;
-  font-size: 0.8em;
+       /* @noflip */
+       margin-left: 1.25em;
+       font-size: 0.8em;
 }
 .oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
+       display: inline-block;
+       vertical-align: middle;
+       margin: 0.3em;
 }
 .oo-ui-toolGroup-empty {
-  display: none;
+       display: none;
 }
 .oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
+       color: #000000;
+}
+.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #888888;
 }
 .oo-ui-barToolGroup > .oo-ui-iconElement-icon,
 .oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
+       display: inline-block;
+       position: relative;
+       vertical-align: top;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
+       display: block;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
+       display: block;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-barToolGroup .oo-ui-tool-title,
 .oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
+       display: none;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
+       cursor: pointer;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
+       height: 1.5em;
+       padding: 0.25em;
 }
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
+       height: 1.5em;
+       width: 1.5em;
+       opacity: 0.8;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
+       opacity: 0.8;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
+       position: relative;
+       height: 2em;
+       min-width: 2.5em;
 }
 .oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
+       display: block;
+       cursor: pointer;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
 }
 .oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
+       display: none;
+       position: absolute;
+       z-index: 4;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
+       background-repeat: no-repeat;
+       background-position: center center;
 }
 .oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
+       display: block;
 }
 .oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  left: 0;
+       left: 0;
 }
 .oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  right: 0;
+       right: 0;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-table;
+       vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
+       min-width: 3.5em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
+       top: 0;
+       width: 2em;
+       height: 2em;
+       opacity: 0.8;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
+       right: 0;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
+       left: 0.25em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
+       line-height: 2.6em;
+       font-size: 0.8em;
+       margin: 0 1em;
 }
 .oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
+       line-height: 2.6em;
+       font-size: 0.8em;
+       margin: 0 0.6em;
+       font-weight: bold;
 }
 .oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
+       margin-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 2.25em;
+       margin-right: 2.25em;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  background-color: white;
+       top: 2em;
+       background-color: white;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-right: 0.25em;
+       height: 2em;
+       width: 2em;
+       margin-right: 0.25em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
+       line-height: 2em;
+       font-size: 0.8em;
 }
 .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;
+       display: inline-block;
+       width: 100%;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-listToolGroup .oo-ui-tool {
-  padding: 0 0.25em;
+       padding: 0 0.25em;
 }
 .oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-right: 0.5em;
+       padding-right: 0.5em;
 }
 .oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
+       color: #cccccc;
+}
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       color: #dddddd;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       padding: 0.25em 0 0.25em 0;
+       border: 1px solid #aaaaaa;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuToolGroup {
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
+       border: solid 1px #cccccc;
+       border-radius: 0.1em;
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
+       display: block;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-  min-width: 8em;
+       min-width: 8em;
 }
 .oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-  margin-left: -1px;
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       margin-left: -1px;
+       padding: 0.25em 0 0.25em 0;
+       border: 1px solid #aaaaaa;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 1em 0 0.25em;
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
+       padding: 0 1em 0 0.25em;
+       display: block;
+       cursor: pointer;
+       white-space: nowrap;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
+       background-image: none;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
+       background-color: #e1f3ff;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: #ccc;
+       color: #cccccc;
+       border-color: #cccccc;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-toolbar {
-  clear: both;
+       clear: both;
 }
 .oo-ui-toolbar-bar {
-  line-height: 1em;
+       line-height: 1em;
 }
 .oo-ui-toolbar-actions {
-  float: right;
+       float: right;
 }
 .oo-ui-toolbar-tools {
-  display: inline;
+       display: inline;
 }
 .oo-ui-toolbar-tools,
 .oo-ui-toolbar-actions,
 .oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
+       -webkit-touch-callout: default;
+       -webkit-user-select: all;
+          -moz-user-select: all;
+           -ms-user-select: all;
+               user-select: all;
 }
 .oo-ui-toolbar-shadow {
-  background-position: left top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
+       background-position: left top;
+       background-repeat: repeat-x;
+       position: absolute;
+       width: 100%;
+       pointer-events: none;
 }
 .oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
+       border-bottom: solid 1px #cccccc;
+       background: #ffffff;
 }
 .oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
+       border: none;
+       background: none;
 }
 .oo-ui-toolbar-shadow {
-  display: none;
+       display: none;
 }
 .oo-ui-selectWidget {
-  border-radius: 0.3em;
+       border-radius: 0.3em;
 }
 .oo-ui-selectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-left: -1px;
 }
 .oo-ui-selectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 2em 0.5em 3em;
-  border: none;
+       position: relative;
+       display: block;
+       cursor: pointer;
+       padding: 0.5em 2em 0.5em 3em;
+       border: none;
 }
 .oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
 }
 .oo-ui-optionWidget-highlighted {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
+       line-height: 1.5em;
 }
 .oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected,
 .oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
+       background-color: #a7dcff;
 }
 .oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
+       color: #cccccc;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
+       position: absolute;
+       background-repeat: no-repeat;
+       background-position: center center;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
+       top: 50%;
+       width: 2em;
+       height: 2em;
+       margin-top: -1em;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  left: 0.5em;
+       left: 0.5em;
 }
 .oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  right: 0.5em;
+       right: 0.5em;
 }
 .oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-left: -1px;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
+       display: inline-block;
+       padding: 0;
+       background-color: transparent;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
+       position: relative;
 }
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
+       position: static;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 2.2em;
+       height: 2.2em;
 }
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 2.2em;
-  margin-top: 0;
+       height: 2.2em;
+       margin-top: 0;
 }
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-labelWidget {
-  display: inline-block;
+       display: inline-block;
 }
 .oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 2.2em;
+       width: 2.2em;
 }
 .oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
+       display: inline-block;
+       vertical-align: middle;
+       background-position: center center;
+       background-repeat: no-repeat;
+       line-height: 2.5em;
+       height: 2.2em;
+       width: 2.2em;
 }
 .oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
+       opacity: 0.2;
 }
 .oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
+       display: inline-block;
+       vertical-align: middle;
 }
 .oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+       display: inline-block;
+       white-space: nowrap;
+       border-radius: 0.3em;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-left: -1px;
+       border-radius: 0;
+       margin-bottom: -1px;
+       margin-left: -1px;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
+       border-bottom-left-radius: 0.3em;
+       border-top-left-radius: 0.3em;
+       margin-left: 0;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
+       border-bottom-right-radius: 0.3em;
+       border-top-right-radius: 0.3em;
 }
 .oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  border: 1px #ddd solid;
+       position: relative;
+       display: inline-block;
+       vertical-align: middle;
+       overflow: hidden;
+       cursor: pointer;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       -webkit-transform: translateZ(0px);
+          -moz-transform: translateZ(0px);
+           -ms-transform: translateZ(0px);
+            -o-transform: translateZ(0px);
+               transform: translateZ(0px);
+       height: 2em;
+       width: 4em;
+       border-radius: 1em;
+       border: 1px #dddddd solid;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
+       cursor: default;
 }
 .oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       position: absolute;
+       display: block;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       right: 0;
+       left: 0;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
+       display: none;
 }
 .oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  left: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  border: 1px #ddd solid;
-  background-color: #f7f7f7;
-  -webkit-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  -moz-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  -ms-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  -o-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-  transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+       top: 0.25em;
+       left: 0.25em;
+       width: 1.5em;
+       height: 1.5em;
+       margin-top: -1px;
+       border-radius: 1em;
+       border: 1px #dddddd solid;
+       background-color: #f7f7f7;
+       -webkit-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+          -moz-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+           -ms-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+            -o-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
+               transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
 }
 .oo-ui-toggleSwitchWidget-glow {
-  border-radius: 1em;
-  background-color: #f7f7f7;
-  -webkit-transition: background-color 0.1s ease-in-out;
-  -moz-transition: background-color 0.1s ease-in-out;
-  -ms-transition: background-color 0.1s ease-in-out;
-  -o-transition: background-color 0.1s ease-in-out;
-  transition: background-color 0.1s ease-in-out;
+       border-radius: 1em;
+       background-color: #f7f7f7;
+       -webkit-transition: background-color 0.1s ease-in-out;
+          -moz-transition: background-color 0.1s ease-in-out;
+           -ms-transition: background-color 0.1s ease-in-out;
+            -o-transition: background-color 0.1s ease-in-out;
+               transition: background-color 0.1s ease-in-out;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  left: 2.25em;
-  margin-left: -2px;
+       left: 2.25em;
+       margin-left: -2px;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
+       display: block;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  left: 0.25em;
-  margin-left: 0;
+       left: 0.25em;
+       margin-left: 0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled {
-  border: 1px #ccc solid;
+       border: 1px #cccccc solid;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
+       border-color: #aaaaaa;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
-  background-color: #fff;
-  border-color: #aaa;
+       background-color: #ffffff;
+       border-color: #aaaaaa;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  background-color: #d0d0d0;
+       background-color: #d0d0d0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  background-color: #fff;
+       background-color: #ffffff;
+}
+.oo-ui-progressBarWidget {
+       width: 100%;
+       max-width: 50em;
+       border: solid 1px #0274ff;
+       border-radius: 0.1em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #0274ff;
+       background: #0274ff;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.2;
 }
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-popupWidget {
-  position: absolute;
+       position: absolute;
+       /* @noflip */
+       left: 0;
 }
 .oo-ui-popupWidget-popup {
-  position: relative;
-  overflow: hidden;
-  z-index: 1;
+       position: relative;
+       overflow: hidden;
+       z-index: 1;
 }
 .oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
+       display: none;
+       z-index: 1;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  top: 0;
-  background-repeat: no-repeat;
+       display: block;
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+       background-repeat: no-repeat;
 }
 .oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: right;
+       float: right;
 }
 .oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: left;
-  cursor: default;
+       float: left;
+       cursor: default;
 }
 .oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
+       clear: both;
+       overflow: hidden;
 }
 .oo-ui-popupWidget-popup {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  background-color: #fff;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       border: solid 1px #aaaaaa;
+       border-radius: 0.2em;
+       background-color: #ffffff;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
+       margin-top: 7px;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  content: "";
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-color: transparent;
-  border-top: 0;
+       content: "";
+       position: absolute;
+       width: 0;
+       height: 0;
+       border-style: solid;
+       border-color: transparent;
+       border-top: 0;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-  bottom: -8px;
-  left: -13px;
-  border-bottom-color: #888;
-  border-width: 13px;
+       bottom: -8px;
+       left: -13px;
+       border-bottom-color: #888888;
+       border-width: 13px;
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  bottom: -8px;
-  left: -12px;
-  border-bottom-color: #fff;
-  border-width: 12px;
+       bottom: -8px;
+       left: -12px;
+       border-bottom-color: #ffffff;
+       border-width: 12px;
 }
 .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;
+       -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-head {
-  height: 2.5em;
+       height: 2.5em;
 }
 .oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
+       margin: 0.25em;
 }
 .oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
+       margin: 0.75em 1em;
 }
 .oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+       box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
+       padding: 0 1em;
 }
 .oo-ui-popupButtonWidget {
-  position: relative;
+       position: relative;
 }
 .oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  cursor: auto;
+       position: absolute;
+       cursor: auto;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
-  left: 1em;
+       left: 1em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  left: -1em;
+       left: -1em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget {
-  left: 1.75em;
+       left: 1.75em;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  left: -1.75em;
+       left: -1.75em;
 }
 .oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
+       position: relative;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       display: inline-block;
+       width: 100%;
+       resize: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-textInputWidget > .oo-ui-iconElement-icon,
 .oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: absolute;
+       top: 0;
+       height: 100%;
+       background-repeat: no-repeat;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  left: 0;
+       left: 0;
 }
 .oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  right: 0;
+       right: 0;
 }
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
-  padding: 0.5em 0.5em 0.5em 0.9em;
-  margin: 0;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: inset 0 0 0 0 #0274FF;
-  border-radius: 0.1em;
-  -webkit-transition: box-shadow 0.1s;
-  -moz-transition: box-shadow 0.1s;
-  -ms-transition: box-shadow 0.1s;
-  -o-transition: box-shadow 0.1s;
-  transition: box-shadow 0.1s;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       padding: 0.5em 0.5em 0.5em 0.9em;
+       margin: 0;
+       font-size: 1em;
+       font-family: sans-serif;
+       background-color: #ffffff;
+       border: solid 1px #cccccc;
+       box-shadow: inset 0 0 0 0 #0274ff;
+       border-radius: 0.1em;
+       -webkit-transition: box-shadow 0.1s;
+          -moz-transition: box-shadow 0.1s;
+           -ms-transition: box-shadow 0.1s;
+            -o-transition: box-shadow 0.1s;
+               transition: box-shadow 0.1s;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-textInputWidget-decorated input,
 .oo-ui-textInputWidget-decorated textarea {
-  padding-left: 2em;
+       padding-left: 2em;
 }
 .oo-ui-textInputWidget-icon {
-  width: 2em;
+       width: 2em;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #aaa;
-  box-shadow: inset 0.4em 0 0 0 #0274ff;
+       outline: none;
+       border-color: #aaaaaa;
+       box-shadow: inset 0.4em 0 0 0 #0274ff;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-textInputWidget input[readonly],
 .oo-ui-textInputWidget textarea[readonly] {
-  color: #777;
-  text-shadow: 0 1px 1px #fff;
+       color: #777777;
+       text-shadow: 0 1px 1px #ffffff;
 }
 .oo-ui-textInputWidget input[readonly]:focus,
 .oo-ui-textInputWidget textarea[readonly]:focus {
-  box-shadow: inset 0.4em 0 0 0 #ccc;
+       box-shadow: inset 0.4em 0 0 0 #cccccc;
 }
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
 .oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-color: transparent;
+       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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement input,
 .oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-left: 2.4em;
+       padding-left: 2.4em;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.4em;
-  width: 2em;
-  height: 100%;
-  background-position: right center;
+       left: 0.4em;
+       width: 2em;
+       height: 100%;
+       background-position: right center;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement input,
 .oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-right: 2.2em;
+       padding-right: 2.2em;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.6em;
-  height: 100%;
-  background-position: left center;
+       width: 1.6em;
+       height: 100%;
+       background-position: left center;
 }
 .oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  border: solid 1px #aaa;
-  border-radius: 0 0 0.1em 0.1em;
-  padding-bottom: 0.25em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       position: absolute;
+       background: #ffffff;
+       margin-top: -1px;
+       border: solid 1px #aaaaaa;
+       border-radius: 0 0 0.1em 0.1em;
+       padding-bottom: 0.25em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
+       position: absolute;
+       width: 0;
+       height: 0;
+       overflow: hidden;
+       opacity: 0;
 }
 .oo-ui-menuItemWidget {
-  position: relative;
+       position: relative;
 }
 .oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
+       display: none;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
+       display: block;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
+       background-color: transparent;
 }
 .oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted {
-  background-color: #eee;
+       background-color: #eeeeee;
 }
 .oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget:hover .oo-ui-inlineMenuWidget-handle {
-  border-color: #aaa;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 2em;
-}
-.oo-ui-inlineMenuWidget .oo-ui-selectWidget {
-  border-top-color: #fff;
+       cursor: default;
+       padding: 0.33em 0.75em;
+       color: #888888;
+}
+.oo-ui-dropdownWidget {
+       position: relative;
+       display: inline-block;
+       margin: 0.25em 0;
+       width: 100%;
+       max-width: 50em;
+}
+.oo-ui-dropdownWidget-handle {
+       width: 100%;
+       display: inline-block;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       position: absolute;
+       background-position: center center;
+       background-repeat: no-repeat;
+}
+.oo-ui-dropdownWidget .oo-ui-menuWidget {
+       z-index: 1;
+       width: 100%;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       cursor: default;
+}
+.oo-ui-dropdownWidget-handle {
+       height: 2.5em;
+       border: solid 1px #cccccc;
+       border-radius: 0.1em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
+       right: 0;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       left: 0.25em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       line-height: 2.5em;
+       margin: 0 1em;
+}
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
+       top: 0;
+       width: 2.5em;
+       height: 2.5em;
+}
+.oo-ui-dropdownWidget:hover .oo-ui-dropdownWidget-handle {
+       border-color: #aaaaaa;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
+       color: #cccccc;
+       text-shadow: 0 1px 1px #ffffff;
+       border-color: #dddddd;
+       background-color: #f3f3f3;
+}
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
+       opacity: 0.2;
+}
+.oo-ui-dropdownWidget.oo-ui-iconElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-left: 3em;
+}
+.oo-ui-dropdownWidget.oo-ui-indicatorElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
+       margin-right: 2em;
+}
+.oo-ui-dropdownWidget .oo-ui-selectWidget {
+       border-top-color: #ffffff;
 }
 .oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       position: relative;
+       cursor: pointer;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-outlineControlsWidget-items,
 .oo-ui-outlineControlsWidget-movers {
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       float: left;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: left;
-  background-position: right center;
-  background-repeat: no-repeat;
+       float: left;
+       background-position: right center;
+       background-repeat: no-repeat;
 }
 .oo-ui-outlineControlsWidget-items {
-  float: left;
+       float: left;
 }
 .oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: left;
+       float: left;
 }
 .oo-ui-outlineControlsWidget-movers {
-  float: right;
+       float: right;
 }
 .oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: right;
+       float: right;
 }
 .oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
+       display: inline-block;
+       position: relative;
+       width: 100%;
+       max-width: 50em;
 }
 .oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
+       width: 100%;
+       z-index: 1;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
-  height: 2.35em;
+       height: 2.35em;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement {
-  padding-right: 2.2em;
+       padding-right: 2.2em;
 }
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 2.2em;
-  background-position: center center;
-  border: solid 1px #ccc;
-  border-left: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       width: 2.2em;
+       background-position: center center;
+       border: solid 1px #cccccc;
+       border-left: none;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
 }
 .oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
+       width: 100%;
 }
 .oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
+       position: absolute;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       overflow-x: hidden;
+       overflow-y: auto;
+}
+.oo-ui-searchWidget-query {
+       height: 2.4em;
+       top: 1px;
+}
+.oo-ui-searchWidget-query .oo-ui-textInputWidget input {
+       border-width: 1px 0;
+}
+.oo-ui-searchWidget-results {
+       top: 2.2em;
+       bottom: 0.2em;
+       line-height: 0;
 }
 .oo-ui-window {
-  line-height: 1em;
+       line-height: 1em;
 }
 .oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
+       width: 100%;
+       height: 100%;
+       margin: 0;
+       padding: 0;
 }
 .oo-ui-window-content:focus {
-  outline: none;
+       outline: none;
 }
 .oo-ui-window-head,
 .oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  left: 0;
-}
+       margin: 0;
+       padding: 0;
+       background: none;
+}
+.oo-ui-window-overlay,
+.oo-ui-window-inner-overlay {
+       position: absolute;
+       top: 0;
+       /* @noflip */
+       left: 0;
+}
+.oo-ui-window,
 .oo-ui-window-isolated {
-  background: transparent;
-  font-family: sans-serif;
-  font-size: 0.8em;
+       background: transparent;
+       font-family: sans-serif;
+       font-size: 0.8em;
 }
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
 .oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  left: 0;
-  right: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+       position: absolute;
+       left: 0;
+       right: 0;
+       overflow: hidden;
+       -webkit-box-sizing: border-box;
+          -moz-box-sizing: border-box;
+               box-sizing: border-box;
 }
 .oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
+       z-index: 1;
+       top: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
+       z-index: 2;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
+       z-index: 1;
+       bottom: 0;
 }
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
+.oo-ui-dialog-content > .oo-ui-window-inner-overlay {
+       z-index: 3;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 1px 0 #aaa;
+       box-shadow: 0 0 1px 0 #aaaaaa;
 }
 .oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
+       display: table;
+       table-layout: fixed;
+       width: 100%;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
+       display: table-cell;
+       width: 1%;
 }
 .oo-ui-messageDialog-actions-vertical {
-  display: block;
+       display: block;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
+       display: block;
+       overflow: hidden;
+       text-overflow: ellipsis;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
+       position: relative;
+       text-align: center;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
+       display: block;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
+       position: relative;
+       top: auto;
+       bottom: auto;
+       display: inline;
+       white-space: nowrap;
 }
 .oo-ui-messageDialog-title,
 .oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
+       display: block;
+       text-align: center;
+       padding-top: 0.5em;
 }
 .oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
+       font-size: 1.5em;
+       line-height: 1em;
+       color: #000000;
 }
 .oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
+       font-size: 0.9em;
+       line-height: 1.25em;
+       color: #666666;
 }
 .oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: left;
+       font-size: 1.1em;
+       line-height: 1.5em;
+       text-align: left;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-right: solid 1px #e5e5e5;
+       border-right: solid 1px #e5e5e5;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-right-width: 0;
+       border-right-width: 0;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
+       border-bottom: solid 1px #e5e5e5;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
+       border-bottom-width: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
+       text-align: center;
+       line-height: 3.4em;
+       padding: 0 2em;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
+       background-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
+       background-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
+       background-color: rgba(8, 126, 204, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
+       background-color: rgba(8, 126, 204, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
+       background-color: rgba(118, 171, 54, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
+       background-color: rgba(118, 171, 54, 0.1);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
+       background-color: rgba(212, 83, 83, 0.05);
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
+       background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
 }
 .oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
+       display: inline;
+       padding: 0;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
+       white-space: nowrap;
 }
 .oo-ui-processDialog-actions-safe,
 .oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
+       position: absolute;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-processDialog-actions-safe {
-  left: 0;
+       left: 0;
 }
 .oo-ui-processDialog-actions-primary {
-  right: 0;
+       right: 0;
 }
 .oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
+       display: none;
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       bottom: 0;
+       z-index: 2;
+       overflow-x: hidden;
+       overflow-y: auto;
 }
 .oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
+       height: 3.4em;
 }
 .oo-ui-processDialog-content .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+       top: 3.4em;
+       box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
 }
 .oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
+       position: relative;
+       height: 3.4em;
+       padding: 0 1em;
 }
 .oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
+       padding: 0.75em 0;
+       height: 1.9em;
+       cursor: default;
+       text-align: center;
 }
 .oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
+       font-weight: bold;
+       line-height: 1.9em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
+       padding-top: 0.75em;
+       padding-bottom: 0.75em;
+       min-width: 1.9em;
+       min-height: 1.9em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
+       line-height: 1.9em;
+       padding: 0 1em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
+       position: absolute;
+       margin-top: -0.125em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0 0.75em 0.75em;
+       margin: 0.75em 0 0.75em 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
+       padding: 0;
+       vertical-align: middle;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
+       background-color: rgba(0, 0, 0, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
+       background-color: rgba(0, 0, 0, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
+       margin: 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
+       /* Adjust for border so text aligns with title */
+       margin: -1px;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
+       background-color: rgba(8, 126, 204, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
+       background-color: rgba(8, 126, 204, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
+       font-weight: bold;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
+       background-color: rgba(118, 171, 54, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
+       background-color: rgba(118, 171, 54, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
+       background-color: rgba(212, 83, 83, 0.05);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
+       background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
+       left: 0.5em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
+       padding-left: 2.25em;
 }
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
+       right: 0.5em;
 }
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
+       padding-right: 2.25em;
 }
 .oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
+       min-height: 5em;
 }
 .oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
+       background-color: rgba(255, 255, 255, 0.9);
+       padding: 3em 3em 1.5em 3em;
+       text-align: center;
 }
 .oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
+       margin: 2em 1em 2em 1em;
 }
 .oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
+       font-size: 1.5em;
+       color: #000000;
+       margin-bottom: 2em;
 }
 .oo-ui-processDialog-error {
-  text-align: left;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
+       text-align: left;
+       margin: 1em;
+       padding: 1em;
+       border: solid 1px #ff9e9e;
+       background-color: #fff7f7;
+       border-radius: 0.25em;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
+       position: fixed;
+       width: 0;
+       height: 0;
+       overflow: hidden;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1em;
+       width: auto;
+       height: auto;
+       top: 0;
+       right: 0;
+       bottom: 0;
+       left: 0;
+       padding: 1em;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  right: 0;
-  left: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
+       position: absolute;
+       right: 0;
+       left: 0;
+       margin: auto;
+       overflow: hidden;
+       max-width: 100%;
+       max-height: 100%;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
+       width: 100%;
+       height: 100%;
 }
 .oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
+       width: 100%;
+       height: 100%;
+       top: 0;
+       bottom: 0;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
+       background-color: rgba(255, 255, 255, 0.5);
+       opacity: 0;
+       -webkit-transition: opacity 250ms ease-in-out;
+          -moz-transition: opacity 250ms ease-in-out;
+           -ms-transition: opacity 250ms ease-in-out;
+            -o-transition: opacity 250ms ease-in-out;
+               transition: opacity 250ms ease-in-out;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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;
+       top: 1em;
+       bottom: 1em;
+       background-color: #ffffff;
+       -webkit-transform: scale(0.5);
+          -moz-transform: scale(0.5);
+           -ms-transform: scale(0.5);
+            -o-transform: scale(0.5);
+               transform: scale(0.5);
+       -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
+       opacity: 1;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-  -webkit-transform: scale(1);
-  -moz-transform: scale(1);
-  -ms-transform: scale(1);
-  -o-transform: scale(1);
-  transform: scale(1);
+       -webkit-transform: scale(1);
+          -moz-transform: scale(1);
+           -ms-transform: scale(1);
+            -o-transform: scale(1);
+               transform: scale(1);
 }
 .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       border: solid 1px #aaaaaa;
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
 }
 
 .oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/add.svg);
 }
 .oo-ui-image-constructive .oo-ui-icon-add,
 .oo-ui-image-constructive.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add-constructive.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/add-constructive.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-add,
 .oo-ui-image-invert.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/add-invert.svg);
 }
 .oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-advanced,
 .oo-ui-image-invert.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced-invert.svg);
 }
 .oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/alert.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-alert,
 .oo-ui-image-invert.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/alert-invert.svg);
 }
 .oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
 }
 .oo-ui-image-primary .oo-ui-icon-check,
 .oo-ui-image-primary.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check-primary.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-primary.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-check,
 .oo-ui-image-invert.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/check-invert.svg);
 }
 .oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/clear.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-clear,
 .oo-ui-image-invert.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/clear-invert.svg);
 }
 .oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/close.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-close,
 .oo-ui-image-invert.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/close-invert.svg);
 }
 .oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/code.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-code,
 .oo-ui-image-invert.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/code-invert.svg);
 }
 .oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-collapse,
 .oo-ui-image-invert.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse-invert.svg);
 }
 .oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/comment.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-comment,
 .oo-ui-image-invert.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/comment-invert.svg);
 }
 .oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/expand.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-expand,
 .oo-ui-image-invert.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/expand-invert.svg);
 }
 .oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/help.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-help,
 .oo-ui-image-invert.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/help-invert.svg);
 }
 .oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/info.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-info,
 .oo-ui-image-invert.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/info-invert.svg);
 }
 .oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/link.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-link,
 .oo-ui-image-invert.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/link-invert.svg);
 }
 .oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/menu.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-menu,
 .oo-ui-image-invert.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/menu-invert.svg);
 }
 .oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-next,
 .oo-ui-image-invert.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr-invert.svg);
 }
 .oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/picture.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-picture,
 .oo-ui-image-invert.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/picture-invert.svg);
 }
 .oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-previous,
 .oo-ui-image-invert.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl-invert.svg);
 }
 .oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-redo,
 .oo-ui-image-invert.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg);
 }
 .oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/remove.svg);
 }
 .oo-ui-image-destructive .oo-ui-icon-remove,
 .oo-ui-image-destructive.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-destructive.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-destructive.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-remove,
 .oo-ui-image-invert.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-invert.svg);
 }
 .oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/search.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-search,
 .oo-ui-image-invert.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/search-invert.svg);
 }
 .oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/settings.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-settings,
 .oo-ui-image-invert.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/settings-invert.svg);
 }
 .oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/tag.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-tag,
 .oo-ui-image-invert.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/tag-invert.svg);
 }
 .oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-undo,
 .oo-ui-image-invert.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg);
 }
 .oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/window.svg);
 }
 .oo-ui-image-invert .oo-ui-icon-window,
 .oo-ui-image-invert.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/icons/window-invert.svg);
 }
 .oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert.svg);
 }
 .oo-ui-image-invert .oo-ui-indicator-alert,
 .oo-ui-image-invert.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert-invert.svg);
 }
 .oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up.svg);
 }
 .oo-ui-image-invert .oo-ui-indicator-up,
 .oo-ui-image-invert.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up-invert.svg);
 }
 .oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down.svg);
 }
 .oo-ui-image-invert .oo-ui-indicator-down,
 .oo-ui-image-invert.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down-invert.svg);
 }
 .oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr.svg);
 }
 .oo-ui-image-invert .oo-ui-indicator-next,
 .oo-ui-image-invert.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr-invert.svg);
 }
 .oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl.svg);
 }
 .oo-ui-image-invert .oo-ui-indicator-previous,
 .oo-ui-image-invert.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl-invert.svg);
 }
 .oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/required.svg);
 }
 .oo-ui-image-invert .oo-ui-indicator-required,
 .oo-ui-image-invert.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required-invert.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/indicators/required-invert.svg);
 }
 .oo-ui-texture-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
 .oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency.svg);
+       background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency.svg);
 }
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.svg.rtl.css b/resources/lib/oojs-ui/oojs-ui-mediawiki.svg.rtl.css
deleted file mode 100644 (file)
index 17d89ec..0000000
+++ /dev/null
@@ -1,1997 +0,0 @@
-/*!
- * 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: 2014-09-24T23:21:42Z
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  font-weight: bold;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-left: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 2.2em;
-  height: 2.2em;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #ddd;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-right: 0.25em;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #757575;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #444444;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #598ad1;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #015ccc;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #00c697;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #008c6d;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-  color: #e81915;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  color: #a7170f;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  margin: 0.1em 0;
-  padding: 0.3em 1.2em;
-  border-radius: 0.3em;
-  -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-  transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 2.2em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: -0.5em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: -0.5em;
-  margin-left: 0.3em;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  color: #ddd;
-  background: #fff;
-  border: solid 1px #cdcdcd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-  color: #757575;
-  background-color: #fff;
-  border: solid 1px #cdcdcd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-  border-color: #aaa;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #d0d0d0;
-  border-color: #d0d0d0;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #0274ff;
-  border-color: #0274ff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #015ccc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #015ccc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #00af89;
-  border-color: #00af89;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
-  color: #fff;
-  background-color: #d11d13;
-  border-color: #d11d13;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-  box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-  border-bottom-color: #a7170f;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  background-color: #a7170f;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 1.5em;
-}
-.oo-ui-bookletLayout-outlinePanel {
-  border-left: solid 1px #ddd;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: left;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-left: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-  border: none;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  font-size: 1.5em;
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-right: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  right: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout-padded {
-  padding: 1.25em;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-right: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 1;
-}
-.oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-  opacity: 0.8;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2em;
-  background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-left: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-tool {
-  padding: 0 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-left: 0.5em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  background-color: #eee;
-}
-.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-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuToolGroup {
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  margin-right: -1px;
-  padding: 0.25em 0 0.25em 0;
-  border: 1px solid #aaa;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
-}
-.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-  border-color: #aaa;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 0.25em 0 1em;
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  background-color: #e1f3ff;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled {
-  color: #ccc;
-  border-color: #ccc;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-  opacity: 0.2;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: left;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: right top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #ccc;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-toolbar-shadow {
-  display: none;
-}
-.oo-ui-selectWidget {
-  border-radius: 0.3em;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-right: -1px;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.5em 3em 0.5em 2em;
-  border: none;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget-highlighted {
-  background-color: #eee;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-}
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed {
-  background-color: #a7dcff;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  color: #ccc;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  left: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-right: -1px;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 2.2em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 2.2em;
-  margin-top: 0;
-}
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-  background-color: transparent;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 2.2em;
-  width: 2.2em;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-right: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-  border-radius: 1em;
-  border: 1px #ddd solid;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  right: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  border-radius: 1em;
-  border: 1px #ddd solid;
-  background-color: #f7f7f7;
-  -webkit-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  -moz-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  -ms-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  -o-transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-  transition: right 0.1s ease-in-out, margin-right 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget-glow {
-  border-radius: 1em;
-  background-color: #f7f7f7;
-  -webkit-transition: background-color 0.1s ease-in-out;
-  -moz-transition: background-color 0.1s ease-in-out;
-  -ms-transition: background-color 0.1s ease-in-out;
-  -o-transition: background-color 0.1s ease-in-out;
-  transition: background-color 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  right: 2.25em;
-  margin-right: -2px;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: block;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  right: 0.25em;
-  margin-right: 0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled {
-  border: 1px #ccc solid;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
-  border-color: #aaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
-  background-color: #fff;
-  border-color: #aaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  background-color: #d0d0d0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  background-color: #fff;
-}
-.oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: right;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-popup {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  background-color: #fff;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  content: "";
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-color: transparent;
-  border-top: 0;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-  bottom: -8px;
-  right: 11px;
-  border-bottom-color: #888;
-  border-width: 13px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-  bottom: -8px;
-  right: 12px;
-  border-bottom-color: #fff;
-  border-width: 12px;
-}
-.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
-  -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-  transition: width 100ms ease-in-out, height 100ms ease-in-out, right 100ms ease-in-out;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  right: 1em;
-  cursor: auto;
-}
-.oo-ui-popupButtonWidget > .oo-ui-popupWidget {
-  margin-right: -1em;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  width: 20em;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: 0.5em 0.9em 0.5em 0.5em;
-  margin: 0;
-  font-size: 1em;
-  font-family: sans-serif;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  box-shadow: inset 0 0 0 0 #0274FF;
-  border-radius: 0.1em;
-  -webkit-transition: box-shadow 0.1s;
-  -moz-transition: box-shadow 0.1s;
-  -ms-transition: box-shadow 0.1s;
-  -o-transition: box-shadow 0.1s;
-  transition: box-shadow 0.1s;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-  padding-right: 2em;
-}
-.oo-ui-textInputWidget-icon {
-  width: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  outline: none;
-  border-color: #aaa;
-  box-shadow: inset 0.4em 0 0 0 #0274ff;
-}
-.oo-ui-textInputWidget input[readonly],
-.oo-ui-textInputWidget textarea[readonly] {
-  color: #777;
-  text-shadow: 0 1px 1px #fff;
-}
-.oo-ui-textInputWidget input[readonly]:focus,
-.oo-ui-textInputWidget textarea[readonly]:focus {
-  box-shadow: inset 0.4em 0 0 0 #ccc;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-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;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement input,
-.oo-ui-textInputWidget.oo-ui-iconElement textarea {
-  padding-right: 2.4em;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.4em;
-  width: 2em;
-  height: 100%;
-  background-position: left center;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement input,
-.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-  padding-left: 2.2em;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 1.6em;
-  height: 100%;
-  background-position: right center;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: #fff;
-  margin-top: -1px;
-  border: solid 1px #aaa;
-  border-radius: 0 0 0.1em 0.1em;
-  padding-bottom: 0.25em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted,
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
-  background-color: #eee;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  padding: 0.33em 0.75em;
-  color: #888;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-  border: solid 1px #ccc;
-  border-radius: 0.1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 1em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget:hover .oo-ui-inlineMenuWidget-handle {
-  border-color: #aaa;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  border-color: #ddd;
-  background-color: #f3f3f3;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-  opacity: 0.2;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 2em;
-}
-.oo-ui-inlineMenuWidget .oo-ui-selectWidget {
-  border-top-color: #fff;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: right;
-  background-position: left center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
-  height: 2.35em;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement {
-  padding-left: 2.2em;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  width: 2.2em;
-  background-position: center center;
-  border: solid 1px #ccc;
-  border-right: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-window {
-  line-height: 1em;
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-}
-.oo-ui-window-isolated {
-  background: transparent;
-  font-family: sans-serif;
-  font-size: 0.8em;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  right: 0;
-  left: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  box-shadow: 0 0 1px 0 #aaa;
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: right;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-left: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-left-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  right: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  left: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.4em;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.4em;
-  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.4em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.9em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding-top: 0.75em;
-  padding-bottom: 0.75em;
-  min-width: 1.9em;
-  min-height: 1.9em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.9em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em 0.75em 0.75em 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  padding: 0;
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-  margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  /* Adjust for border so text aligns with title */
-  margin: -1px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: right;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  left: 0;
-  right: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 1em;
-  bottom: 1em;
-  background-color: #fff;
-  -webkit-transform: scale(0.5);
-  -moz-transform: scale(0.5);
-  -ms-transform: scale(0.5);
-  -o-transform: scale(0.5);
-  transform: scale(0.5);
-  -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-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .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-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #aaa;
-  border-radius: 0.2em;
-  box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-add,
-.oo-ui-image-invert.oo-ui-icon-add {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/add-invert.svg);
-}
-.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-advanced,
-.oo-ui-image-invert.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/advanced-invert.svg);
-}
-.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-alert,
-.oo-ui-image-invert.oo-ui-icon-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/alert-invert.svg);
-}
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/check-invert.svg);
-}
-.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-clear,
-.oo-ui-image-invert.oo-ui-icon-clear {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/clear-invert.svg);
-}
-.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-close,
-.oo-ui-image-invert.oo-ui-icon-close {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/close-invert.svg);
-}
-.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-code,
-.oo-ui-image-invert.oo-ui-icon-code {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/code-invert.svg);
-}
-.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-collapse,
-.oo-ui-image-invert.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/collapse-invert.svg);
-}
-.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-comment,
-.oo-ui-image-invert.oo-ui-icon-comment {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/comment-invert.svg);
-}
-.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-expand,
-.oo-ui-image-invert.oo-ui-icon-expand {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/expand-invert.svg);
-}
-.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-help,
-.oo-ui-image-invert.oo-ui-icon-help {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/help-invert.svg);
-}
-.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-info,
-.oo-ui-image-invert.oo-ui-icon-info {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/info-invert.svg);
-}
-.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-link,
-.oo-ui-image-invert.oo-ui-icon-link {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/link-invert.svg);
-}
-.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-menu,
-.oo-ui-image-invert.oo-ui-icon-menu {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/menu-invert.svg);
-}
-.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-next,
-.oo-ui-image-invert.oo-ui-icon-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-rtl-invert.svg);
-}
-.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-picture,
-.oo-ui-image-invert.oo-ui-icon-picture {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/picture-invert.svg);
-}
-.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-previous,
-.oo-ui-image-invert.oo-ui-icon-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/move-ltr-invert.svg);
-}
-.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-redo,
-.oo-ui-image-invert.oo-ui-icon-redo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg);
-}
-.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-remove,
-.oo-ui-image-invert.oo-ui-icon-remove {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/remove-invert.svg);
-}
-.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-search,
-.oo-ui-image-invert.oo-ui-icon-search {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/search-invert.svg);
-}
-.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-settings,
-.oo-ui-image-invert.oo-ui-icon-settings {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/settings-invert.svg);
-}
-.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-tag,
-.oo-ui-image-invert.oo-ui-icon-tag {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/tag-invert.svg);
-}
-.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-undo,
-.oo-ui-image-invert.oo-ui-icon-undo {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg);
-}
-.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-window,
-.oo-ui-image-invert.oo-ui-icon-window {
-  background-image: /* @embed */ url(themes/mediawiki/images/icons/window-invert.svg);
-}
-.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert.svg);
-}
-.oo-ui-image-invert .oo-ui-indicator-alert,
-.oo-ui-image-invert.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/alert-invert.svg);
-}
-.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up.svg);
-}
-.oo-ui-image-invert .oo-ui-indicator-up,
-.oo-ui-image-invert.oo-ui-indicator-up {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-up-invert.svg);
-}
-.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down.svg);
-}
-.oo-ui-image-invert .oo-ui-indicator-down,
-.oo-ui-image-invert.oo-ui-indicator-down {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-down-invert.svg);
-}
-.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl.svg);
-}
-.oo-ui-image-invert .oo-ui-indicator-next,
-.oo-ui-image-invert.oo-ui-indicator-next {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-rtl-invert.svg);
-}
-.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr.svg);
-}
-.oo-ui-image-invert .oo-ui-indicator-previous,
-.oo-ui-image-invert.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/arrow-ltr-invert.svg);
-}
-.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required.svg);
-}
-.oo-ui-image-invert .oo-ui-indicator-required,
-.oo-ui-image-invert.oo-ui-indicator-required {
-  background-image: /* @embed */ url(themes/mediawiki/images/indicators/required-invert.svg);
-}
-.oo-ui-texture-pending {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency.svg);
-}
-.oo-ui-image-invert .oo-ui-texture-transparency,
-.oo-ui-image-invert.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(themes/mediawiki/images/textures/transparency-invert.svg);
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-minerva.css b/resources/lib/oojs-ui/oojs-ui-minerva.css
deleted file mode 100644 (file)
index 862decf..0000000
+++ /dev/null
@@ -1,1374 +0,0 @@
-/*!
- * OOjs UI v0.1.0-pre (30b0407428)
- * 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: 2014-09-30T23:08:05Z
- */
-/* @noflip */
-.oo-ui-rtl {
-       direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-       direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-       cursor: pointer;
-       display: inline-block;
-       vertical-align: middle;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-       cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       display: inline-block;
-       vertical-align: middle;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-       display: inline-block;
-       position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-       display: inline-block;
-       vertical-align: top;
-       text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-left: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       margin-right: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       width: 3.35em;
-       height: 3.35em;
-       background-size: 2em auto;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       margin-left: 0.25em;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       line-height: 1.9em;
-}
-.oo-ui-clippableElement-clippable {
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-       overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-       width: 100%;
-       -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-       padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 3em;
-       overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-       position: absolute;
-       bottom: 0;
-       left: 0;
-       right: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-       padding: 0 0 1em;
-}
-.oo-ui-fieldLayout {
-       margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-       content: " ";
-       display: table;
-}
-.oo-ui-fieldLayout:after {
-       clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-       display: block;
-       float: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-       display: block;
-       float: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-       text-align: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-       display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-       z-index: 1;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-       float: right;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-       padding: 0.5em 0.75em;
-}
-.oo-ui-fieldLayout:last-child {
-       margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-       padding-top: 0.5em;
-       margin-right: 5%;
-       width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-       width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-       padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-       padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-       padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-       color: #cccccc;
-}
-.oo-ui-fieldsetLayout {
-       position: relative;
-       margin: 0;
-       padding: 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-       display: block;
-       position: absolute;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-       display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-       margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-       margin-bottom: 0.5em;
-       padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-       padding-left: 1.75em;
-       line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-       left: 0;
-       top: 0.25em;
-       width: 2em;
-       height: 2em;
-}
-.oo-ui-gridLayout {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-}
-.oo-ui-panelLayout {
-       position: relative;
-       padding: 1em 3.35em;
-}
-.oo-ui-panelLayout-scrollable {
-       overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-       display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-       display: block;
-       position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-       z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-       margin-left: 1.25em;
-       font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-       display: inline-block;
-       vertical-align: middle;
-       margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-       display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-       display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-       display: inline-block;
-       position: relative;
-       vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-       display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-       display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-       height: 1.5em;
-       padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-}
-.oo-ui-popupToolGroup {
-       position: relative;
-       height: 2em;
-       min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-       display: block;
-       cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       position: absolute;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-       cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       display: none;
-       position: absolute;
-       z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-       background-repeat: no-repeat;
-       background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-       display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-       left: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-       right: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-       display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       top: 0;
-       width: 2em;
-       height: 2em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-       right: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       left: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       line-height: 2.6em;
-       font-size: 0.8em;
-       margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-       line-height: 2.6em;
-       font-size: 0.8em;
-       margin: 0 0.6em;
-       font-weight: bold;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-left: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-right: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       top: 2.3em;
-       margin: 0 -1px;
-       border: solid 1px #dddddd;
-       background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 2em;
-       width: 2em;
-       margin-right: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       line-height: 2em;
-       font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-       display: block;
-       cursor: pointer;
-       white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-       padding: 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-       padding-right: 0.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-       display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-       display: block;
-       cursor: pointer;
-       white-space: nowrap;
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-       padding: 0.25em 0 0.25em 0;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-       padding: 0 1em 0 0.25em;
-}
-.oo-ui-toolbar {
-       clear: both;
-}
-.oo-ui-toolbar-bar {
-       line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-       float: right;
-}
-.oo-ui-toolbar-tools {
-       display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-       -webkit-touch-callout: default;
-       -webkit-user-select: all;
-          -moz-user-select: all;
-           -ms-user-select: all;
-               user-select: all;
-}
-.oo-ui-toolbar-shadow {
-       background-position: left top;
-       background-repeat: repeat-x;
-       position: absolute;
-       width: 100%;
-       pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-       border-bottom: solid 1px #dddddd;
-       background: white;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-       border: none;
-       background: none;
-}
-.oo-ui-selectWidget {
-       margin: 0;
-       padding: 0;
-}
-.oo-ui-optionWidget {
-       position: relative;
-       display: block;
-       cursor: pointer;
-       padding: 0.8em 1em 0.8em 3.35em;
-       border: none;
-       font-weight: bold;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-       cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-       display: block;
-       white-space: nowrap;
-       text-overflow: ellipsis;
-       overflow: hidden;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-       line-height: 1.5em;
-}
-.oo-ui-optionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-       padding-right: 1.5em;
-}
-.oo-ui-optionWidget-level-0 {
-       padding-left: 3.5em;
-}
-.oo-ui-optionWidget-level-0 .oo-ui-iconElement-icon {
-       left: 1em;
-}
-.oo-ui-optionWidget-level-1 {
-       padding-left: 5em;
-}
-.oo-ui-optionWidget-level-1 .oo-ui-iconElement-icon {
-       left: 2.5em;
-}
-.oo-ui-optionWidget-level-2 {
-       padding-left: 6.5em;
-}
-.oo-ui-optionWidget-level-2 .oo-ui-iconElement-icon {
-       left: 4em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-       position: absolute;
-       background-repeat: no-repeat;
-       background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-       top: 50%;
-       width: 2em;
-       height: 2em;
-       margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-       left: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-       right: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-       display: inline-block;
-       white-space: nowrap;
-}
-.oo-ui-buttonOptionWidget {
-       display: inline-block;
-       padding: 0;
-       background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       position: static;
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       height: 1.9em;
-       margin-top: 0;
-}
-.oo-ui-labelWidget {
-       display: inline-block;
-       padding: 0.5em 0;
-}
-.oo-ui-iconWidget {
-       display: inline-block;
-       vertical-align: middle;
-       background-position: center center;
-       background-repeat: no-repeat;
-       line-height: 2.5em;
-       height: 1.9em;
-       width: 1.9em;
-       opacity: 0.8;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-       opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-       display: inline-block;
-       vertical-align: middle;
-       background-position: center center;
-       background-repeat: no-repeat;
-       line-height: 2.5em;
-       height: 1.9em;
-       width: 1.9em;
-       opacity: 0.8;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-       opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-       border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       border-radius: 0;
-       margin-bottom: -1px;
-       margin-left: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-       border-bottom-left-radius: 0.3em;
-       border-top-left-radius: 0.3em;
-       margin-left: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 0.3em;
-       border-top-right-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-       position: relative;
-       display: inline-block;
-       vertical-align: middle;
-       overflow: hidden;
-       cursor: pointer;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       -webkit-transform: translateZ(0px);
-          -moz-transform: translateZ(0px);
-           -ms-transform: translateZ(0px);
-            -o-transform: translateZ(0px);
-               transform: translateZ(0px);
-       height: 2em;
-       width: 4em;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-       cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-       position: absolute;
-       display: block;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       right: 0;
-       left: 0;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: none;
-}
-.oo-ui-toggleSwitchWidget-grip {
-       top: 0.25em;
-       left: 0.25em;
-       width: 1.5em;
-       height: 1.5em;
-       margin-top: -1px;
-       -webkit-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-          -moz-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-           -ms-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-            -o-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-               transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-       -webkit-transition: opacity 200ms ease-in-out;
-          -moz-transition: opacity 200ms ease-in-out;
-           -ms-transition: opacity 200ms ease-in-out;
-            -o-transition: opacity 200ms ease-in-out;
-               transition: opacity 200ms ease-in-out;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-       left: 2.25em;
-       margin-left: -2px;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-       left: 0.25em;
-       margin-left: 0;
-}
-.oo-ui-popupWidget {
-       position: absolute;
-}
-.oo-ui-popupWidget-popup {
-       position: relative;
-       overflow: hidden;
-       z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-       display: none;
-       z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-       display: block;
-       position: absolute;
-       top: 0;
-       background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-       float: right;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-       float: left;
-       cursor: default;
-}
-.oo-ui-popupWidget-body {
-       clear: both;
-       overflow: hidden;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-       margin-top: 7px;
-}
-.oo-ui-popupWidget-head {
-       height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-       margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-       margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body-padded {
-       padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-       position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-       position: absolute;
-       cursor: auto;
-}
-.oo-ui-lookupInputWidget-menu {
-       background-color: #ffffff;
-}
-.oo-ui-textInputWidget {
-       position: relative;
-       -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%;
-       resize: none;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-       position: absolute;
-       top: 0;
-       height: 100%;
-       background-repeat: no-repeat;
-       cursor: pointer;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-       left: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-       right: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-       padding: 0.8em 1em;
-}
-.oo-ui-menuWidget {
-       position: absolute;
-       background: white;
-       border: solid 1px #dddddd;
-}
-.oo-ui-menuWidget input {
-       position: absolute;
-       width: 0;
-       height: 0;
-       overflow: hidden;
-       opacity: 0;
-}
-.oo-ui-menuItemWidget {
-       position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-       display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-       background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-       display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-       background: #347bff;
-       color: #ffffff;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-       background-size: 24px auto;
-}
-.oo-ui-menuSectionItemWidget {
-       cursor: default;
-       font-weight: normal;
-       color: #777777;
-       border: none;
-}
-.oo-ui-inlineMenuWidget {
-       position: relative;
-       display: inline-block;
-       margin: 0.25em 0;
-       min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-       width: 100%;
-       display: inline-block;
-       cursor: pointer;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-       position: absolute;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-       z-index: 1;
-       width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-       cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-       height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-       top: 0;
-       width: 2.5em;
-       height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-       right: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-       left: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-       line-height: 2.5em;
-       margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-       margin-left: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-       margin-right: 2em;
-}
-.oo-ui-outlineItemWidget {
-       position: relative;
-       cursor: pointer;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-       padding: 0.75em;
-}
-.oo-ui-outlineControlsWidget {
-       height: 3em;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-       float: left;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-       float: left;
-       background-position: right center;
-       background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-       float: left;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-       float: left;
-}
-.oo-ui-outlineControlsWidget-movers {
-       float: right;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-       float: right;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-       height: 2em;
-       margin: 0.5em;
-       padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-       width: 1.5em;
-       height: 2em;
-       margin: 0.5em 0 0.5em 0.5em;
-}
-.oo-ui-outlineControlsWidget-items {
-       margin-left: 0;
-}
-.oo-ui-comboBoxWidget {
-       display: inline-block;
-       position: relative;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-       width: 100%;
-       z-index: 1;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-       min-width: 20em;
-}
-.oo-ui-searchWidget-query {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-       width: 100%;
-}
-.oo-ui-searchWidget-results {
-       position: absolute;
-       bottom: 0;
-       left: 0;
-       right: 0;
-       overflow-x: hidden;
-       overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-       height: 4em;
-       padding: 0 1em;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-       margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-       top: 4em;
-       padding: 1em;
-       line-height: 0;
-}
-.oo-ui-window {
-       line-height: 1em;
-}
-.oo-ui-window-frame {
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-       width: 100%;
-       height: 100%;
-       margin: 0;
-       padding: 0;
-}
-.oo-ui-window-content:focus {
-       outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-window-body {
-       margin: 0;
-       padding: 0;
-       background: none;
-}
-.oo-ui-window-overlay {
-       position: absolute;
-       top: 0;
-       left: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-       position: absolute;
-       left: 0;
-       right: 0;
-       overflow: hidden;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-       z-index: 1;
-       top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-       z-index: 2;
-       top: 0;
-       bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-       z-index: 1;
-       bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-       z-index: 3;
-}
-.oo-ui-messageDialog-actions-horizontal {
-       display: table;
-       table-layout: fixed;
-       width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-       display: table-cell;
-       width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-       display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-       display: block;
-       overflow: hidden;
-       text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-       position: relative;
-       text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-       position: relative;
-       top: auto;
-       bottom: auto;
-       display: inline;
-       white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-       display: block;
-       text-align: center;
-       padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-       font-size: 1.5em;
-       line-height: 1em;
-       color: #000000;
-}
-.oo-ui-messageDialog-message {
-       font-size: 0.9em;
-       line-height: 1.25em;
-       color: #666666;
-}
-.oo-ui-messageDialog-message-verbose {
-       font-size: 1.1em;
-       line-height: 1.5em;
-       text-align: left;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-       border-right: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-       border-right-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-       border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-       border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-       text-align: center;
-       line-height: 3.4em;
-       padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-       background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-       background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-       background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-       background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-       font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-       background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-       background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-       background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-       background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-       overflow: hidden;
-       text-overflow: ellipsis;
-       white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-       display: inline;
-       padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-       white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-       left: 0;
-}
-.oo-ui-processDialog-actions-primary {
-       right: 0;
-}
-.oo-ui-processDialog-errors {
-       display: none;
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-       z-index: 2;
-       overflow-x: hidden;
-       overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-       height: 3.35em;
-       border-bottom: 1px solid #dddddd;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-       top: 3.35em;
-       padding: 2em 0;
-}
-.oo-ui-processDialog-navigation {
-       position: relative;
-       height: 3.35em;
-       padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-       padding: 0.75em 0;
-       height: 1.85em;
-       cursor: default;
-       text-align: center;
-}
-.oo-ui-processDialog-title {
-       font-weight: bold;
-       line-height: 1.85em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       padding: 0.35em 0.75em;
-       min-width: 1.85em;
-       min-height: 1.85em;
-       border: 1px solid #dddddd;
-       border-radius: 4px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-       line-height: 1.85em;
-       padding: 0 1em;
-       font-weight: bold;
-       color: #777777;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-       position: absolute;
-       margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button {
-       border: 1px solid transparent;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label {
-       color: #d11d13;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       padding: 0.75em 0.35em;
-       border: none;
-       border-radius: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button {
-       background-color: #347bff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-       color: #ffffff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       left: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-       padding-left: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       right: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-       padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-other {
-       position: absolute;
-       bottom: 1em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-       min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-       background-color: rgba(255, 255, 255, 0.9);
-       padding: 3em 3em 1.5em 3em;
-       text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-       margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-       font-size: 1.5em;
-       color: #000000;
-       margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-       text-align: left;
-       margin: 1em;
-       padding: 1em;
-       border: solid 1px #ff9e9e;
-       background-color: #fff7f7;
-       border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-       position: fixed;
-       width: 0;
-       height: 0;
-       overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-       width: auto;
-       height: auto;
-       top: 0;
-       right: 0;
-       bottom: 0;
-       left: 0;
-       padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-       position: absolute;
-       right: 0;
-       left: 0;
-       margin: auto;
-       overflow: hidden;
-       max-width: 100%;
-       max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-       width: 100%;
-       height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-       width: 100%;
-       height: 100%;
-       top: 0;
-       bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-       background-color: rgba(255, 255, 255, 0.5);
-       opacity: 0;
-       -webkit-transition: opacity 250ms ease-in-out;
-          -moz-transition: opacity 250ms ease-in-out;
-           -ms-transition: opacity 250ms ease-in-out;
-            -o-transition: opacity 250ms ease-in-out;
-               transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-       top: 0;
-       bottom: 0;
-       background-color: #ffffff;
-       -webkit-transform: translate3d(0, -200%, 0);
-          -moz-transform: translate3d(0, -200%, 0);
-           -ms-transform: translate3d(0, -200%, 0);
-            -o-transform: translate3d(0, -200%, 0);
-               transform: translate3d(0, -200%, 0);
-       -webkit-transition: transform 250ms ease-in-out;
-          -moz-transition: transform 250ms ease-in-out;
-           -ms-transition: transform 250ms ease-in-out;
-            -o-transition: transform 250ms ease-in-out;
-               transition: transform 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-       opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-       -webkit-transform: translate3d(0, 0, 0);
-          -moz-transform: translate3d(0, 0, 0);
-           -ms-transform: translate3d(0, 0, 0);
-            -o-transform: translate3d(0, 0, 0);
-               transform: translate3d(0, 0, 0);
-}
-.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-       border: solid 1px #cccccc;
-       border-radius: 0.5em;
-       box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-}
-
-.oo-ui-icon-check {
-       background-image: /* @embed */ url(themes/minerva/images/icons/check.png);
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-       background-image: /* @embed */ url(themes/minerva/images/icons/check-invert.png);
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-minerva.js b/resources/lib/oojs-ui/oojs-ui-minerva.js
deleted file mode 100644 (file)
index bd50874..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*!
- * OOjs UI v0.1.0-pre (30b0407428)
- * 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: 2014-09-30T23:08:05Z
- */
-/* Instantiation */
-
-OO.ui.theme = new OO.ui.Theme();
diff --git a/resources/lib/oojs-ui/oojs-ui-minerva.rtl.css b/resources/lib/oojs-ui/oojs-ui-minerva.rtl.css
deleted file mode 100644 (file)
index e452952..0000000
+++ /dev/null
@@ -1,1381 +0,0 @@
-/*!
- * 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: 2014-09-11T19:39:50Z
- */
-/*
- * Blank theme mixins.
- *
- * Base styles invoke these mixins at the end of their definitions. Override these mixins to add
- * additional rules to the base styles.
- */
-/*
- * Base styles.
- *
- * Themes should include this file after defining their variables and mixins.
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-left: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 3.35em;
-  height: 3.35em;
-  background-size: 2em auto;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-right: 0.25em;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 1.9em;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 0 0 1em;
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-left: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-right: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  right: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-  padding: 1em 3.35em;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-right: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2.3em;
-  margin: 0 -1px;
-  border: solid 1px #dddddd;
-  background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-left: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-left: 0.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: none;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-image: /* @embed */ url(images/icons/check.svg);
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 0.25em 0 1em;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: left;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: right top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #dddddd;
-  background: white;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-selectWidget {
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.8em 3.35em 0.8em 1em;
-  border: none;
-  font-weight: bold;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-optionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-  padding-left: 1.5em;
-}
-.oo-ui-optionWidget-level-0 {
-  padding-right: 3.5em;
-}
-.oo-ui-optionWidget-level-0 .oo-ui-iconElement-icon {
-  right: 1em;
-}
-.oo-ui-optionWidget-level-1 {
-  padding-right: 5em;
-}
-.oo-ui-optionWidget-level-1 .oo-ui-iconElement-icon {
-  right: 2.5em;
-}
-.oo-ui-optionWidget-level-2 {
-  padding-right: 6.5em;
-}
-.oo-ui-optionWidget-level-2 .oo-ui-iconElement-icon {
-  right: 4em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  left: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 1.9em;
-  margin-top: 0;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-  padding: 0.5em 0;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-right: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  right: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  -webkit-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -moz-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -ms-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -o-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  -webkit-transition: opacity 200ms ease-in-out;
-  -moz-transition: opacity 200ms ease-in-out;
-  -ms-transition: opacity 200ms ease-in-out;
-  -o-transition: opacity 200ms ease-in-out;
-  transition: opacity 200ms ease-in-out;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  right: 2.25em;
-  margin-right: -2px;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  right: 0.25em;
-  margin-right: 0;
-}
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: right;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  right: 1em;
-  cursor: auto;
-}
-.oo-ui-lookupInputWidget-menu {
-  background-color: #fff;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -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%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: .8em 1em;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: white;
-  border: solid 1px #dddddd;
-}
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background: #347bff;
-  color: #ffffff;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  background-size: 24px auto;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  font-weight: normal;
-  color: #777777;
-  border: none;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 2em;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  padding: 0.75em;
-}
-.oo-ui-outlineControlsWidget {
-  height: 3em;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: right;
-  background-position: left center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  height: 2em;
-  margin: 0.5em;
-  padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0.5em 0.5em 0;
-}
-.oo-ui-outlineControlsWidget-items {
-  margin-right: 0;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  z-index: 1;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget > .oo-ui-selectWidget {
-  min-width: 20em;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-  height: 4em;
-  padding: 0 1em;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-  top: 4em;
-  padding: 1em;
-  line-height: 0;
-}
-.oo-ui-window {
-  line-height: 1em;
-  /* Content div takes focus when opened, so hide outline */
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  right: 0;
-  left: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: right;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-left: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-left-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  right: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  left: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.35em;
-  border-bottom: 1px solid #dddddd;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.35em;
-  padding: 2em 0;
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.35em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.85em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.85em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding: 0.35em 0.75em;
-  min-width: 1.85em;
-  min-height: 1.85em;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.85em;
-  padding: 0 1em;
-  font-weight: bold;
-  color: #777777;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button {
-  border: 1px solid transparent;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label {
-  color: #d11d13;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding: 0.75em 0.35em;
-  border: none;
-  border-radius: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button {
-  background-color: #347bff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  color: #ffffff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog-actions-other {
-  position: absolute;
-  bottom: 1em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: right;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: fixed;
-  left: 0;
-  right: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 0;
-  bottom: 0;
-  background-color: #fff;
-  -webkit-transform: translate3d(0, -200%, 0);
-  -moz-transform: translate3d(0, -200%, 0);
-  -ms-transform: translate3d(0, -200%, 0);
-  -o-transform: translate3d(0, -200%, 0);
-  transform: translate3d(0, -200%, 0);
-  -webkit-transition: transform 250ms ease-in-out;
-  -moz-transition: transform 250ms ease-in-out;
-  -ms-transition: transform 250ms ease-in-out;
-  -o-transition: transform 250ms ease-in-out;
-  transition: transform 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-  -webkit-transform: translate3d(0, 0, 0);
-  -moz-transform: translate3d(0, 0, 0);
-  -ms-transform: translate3d(0, 0, 0);
-  -o-transform: translate3d(0, 0, 0);
-  transform: translate3d(0, 0, 0);
-}
-.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-}
-
-/*
- * Blank theme mixins.
- *
- * Base styles invoke these mixins at the end of their definitions. Override these mixins to add
- * additional rules to the base styles.
- */
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/minerva/images/icons/check.png);
-  background: #347bff;
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-minerva.svg.css b/resources/lib/oojs-ui/oojs-ui-minerva.svg.css
deleted file mode 100644 (file)
index 4d7451e..0000000
+++ /dev/null
@@ -1,1374 +0,0 @@
-/*!
- * OOjs UI v0.1.0-pre (30b0407428)
- * 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: 2014-09-30T23:08:05Z
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-left: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-right: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 3.35em;
-  height: 3.35em;
-  background-size: 2em auto;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-left: 0.25em;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 1.9em;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 0 0 1em;
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: right;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-right: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-left: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  left: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-  padding: 1em 3.35em;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-left: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2.3em;
-  margin: 0 -1px;
-  border: solid 1px #dddddd;
-  background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-right: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-right: 0.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 1em 0 0.25em;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: right;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: left top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #dddddd;
-  background: white;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-selectWidget {
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.8em 1em 0.8em 3.35em;
-  border: none;
-  font-weight: bold;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-optionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-  padding-right: 1.5em;
-}
-.oo-ui-optionWidget-level-0 {
-  padding-left: 3.5em;
-}
-.oo-ui-optionWidget-level-0 .oo-ui-iconElement-icon {
-  left: 1em;
-}
-.oo-ui-optionWidget-level-1 {
-  padding-left: 5em;
-}
-.oo-ui-optionWidget-level-1 .oo-ui-iconElement-icon {
-  left: 2.5em;
-}
-.oo-ui-optionWidget-level-2 {
-  padding-left: 6.5em;
-}
-.oo-ui-optionWidget-level-2 .oo-ui-iconElement-icon {
-  left: 4em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  right: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 1.9em;
-  margin-top: 0;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-  padding: 0.5em 0;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-left: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-  margin-left: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  left: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  -webkit-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  -moz-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  -ms-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  -o-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-  transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  -webkit-transition: opacity 200ms ease-in-out;
-  -moz-transition: opacity 200ms ease-in-out;
-  -ms-transition: opacity 200ms ease-in-out;
-  -o-transition: opacity 200ms ease-in-out;
-  transition: opacity 200ms ease-in-out;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  left: 2.25em;
-  margin-left: -2px;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  left: 0.25em;
-  margin-left: 0;
-}
-.oo-ui-popupWidget {
-  position: absolute;
-}
-.oo-ui-popupWidget-popup {
-  position: relative;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  top: 0;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: left;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  cursor: auto;
-}
-.oo-ui-lookupInputWidget-menu {
-  background-color: #fff;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -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%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  left: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  right: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: .8em 1em;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: white;
-  border: solid 1px #dddddd;
-}
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background: #347bff;
-  color: #ffffff;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  background-size: 24px auto;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  font-weight: normal;
-  color: #777777;
-  border: none;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  right: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  left: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 2em;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  padding: 0.75em;
-}
-.oo-ui-outlineControlsWidget {
-  height: 3em;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: left;
-  background-position: right center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  height: 2em;
-  margin: 0.5em;
-  padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0 0.5em 0.5em;
-}
-.oo-ui-outlineControlsWidget-items {
-  margin-left: 0;
-}
-.oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  min-width: 20em;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-  height: 4em;
-  padding: 0 1em;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-  top: 4em;
-  padding: 1em;
-  line-height: 0;
-}
-.oo-ui-window {
-  line-height: 1em;
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  left: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  left: 0;
-  right: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: left;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-right: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-right-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  left: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  right: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.35em;
-  border-bottom: 1px solid #dddddd;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.35em;
-  padding: 2em 0;
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.35em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.85em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.85em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding: 0.35em 0.75em;
-  min-width: 1.85em;
-  min-height: 1.85em;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.85em;
-  padding: 0 1em;
-  font-weight: bold;
-  color: #777777;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button {
-  border: 1px solid transparent;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label {
-  color: #d11d13;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding: 0.75em 0.35em;
-  border: none;
-  border-radius: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button {
-  background-color: #347bff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  color: #ffffff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-other {
-  position: absolute;
-  bottom: 1em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: left;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  right: 0;
-  left: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 0;
-  bottom: 0;
-  background-color: #fff;
-  -webkit-transform: translate3d(0, -200%, 0);
-  -moz-transform: translate3d(0, -200%, 0);
-  -ms-transform: translate3d(0, -200%, 0);
-  -o-transform: translate3d(0, -200%, 0);
-  transform: translate3d(0, -200%, 0);
-  -webkit-transition: transform 250ms ease-in-out;
-  -moz-transition: transform 250ms ease-in-out;
-  -ms-transition: transform 250ms ease-in-out;
-  -o-transition: transform 250ms ease-in-out;
-  transition: transform 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-  -webkit-transform: translate3d(0, 0, 0);
-  -moz-transform: translate3d(0, 0, 0);
-  -ms-transform: translate3d(0, 0, 0);
-  -o-transform: translate3d(0, 0, 0);
-  transform: translate3d(0, 0, 0);
-}
-.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-}
-
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/minerva/images/icons/check.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/minerva/images/icons/check-invert.svg);
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-minerva.svg.rtl.css b/resources/lib/oojs-ui/oojs-ui-minerva.svg.rtl.css
deleted file mode 100644 (file)
index 513f2a7..0000000
+++ /dev/null
@@ -1,1381 +0,0 @@
-/*!
- * 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: 2014-09-24T23:21:42Z
- */
-/* @noflip */
-.oo-ui-rtl {
-  direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-  direction: ltr;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-  cursor: pointer;
-  display: inline-block;
-  vertical-align: middle;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-  display: inline-block;
-  vertical-align: top;
-  text-align: center;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-  cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-right: 0;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-  margin-left: -0.75em;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  width: 3.35em;
-  height: 3.35em;
-  background-size: 2em auto;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  margin-right: 0.25em;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-  line-height: 1.9em;
-}
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 3em;
-  overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  padding: 0 0 1em;
-}
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  content: " ";
-  display: table;
-}
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  text-align: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-  z-index: 1;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
-  float: left;
-}
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help-content {
-  padding: 0.5em 0.75em;
-}
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-left: 5%;
-  width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labelElement-label {
-  padding: 0.75em 0.5em 0.5em 0.5em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labelElement-label {
-  padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-  margin-top: 0.25em;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-  color: #ccc;
-}
-.oo-ui-fieldsetLayout {
-  position: relative;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  display: block;
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-  display: inline-block;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-  margin-bottom: 0.5em;
-  padding: 0.25em 0;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-  padding-right: 1.75em;
-  line-height: 1.33em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-  right: 0;
-  top: 0.25em;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-panelLayout {
-  position: relative;
-  padding: 1em 3.35em;
-}
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-}
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  display: block;
-  position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-  z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-right: 1.25em;
-  font-size: 0.8em;
-}
-.oo-ui-toolGroup {
-  display: inline-block;
-  vertical-align: middle;
-  margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-  display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool {
-  display: inline-block;
-  position: relative;
-  vertical-align: top;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  height: 1.5em;
-  padding: 0.25em;
-}
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 1.5em;
-  width: 1.5em;
-}
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  display: none;
-  position: absolute;
-  z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-  right: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-  left: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-  min-width: 3.5em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2em;
-  height: 2em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 1em;
-}
-.oo-ui-popupToolGroup-header {
-  line-height: 2.6em;
-  font-size: 0.8em;
-  margin: 0 0.6em;
-  font-weight: bold;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-  margin-left: 2.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  top: 2.3em;
-  margin: 0 -1px;
-  border: solid 1px #dddddd;
-  background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-  height: 2em;
-  width: 2em;
-  margin-left: 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  line-height: 2em;
-  font-size: 0.8em;
-}
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  padding-left: 0.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  cursor: pointer;
-  white-space: nowrap;
-}
-.oo-ui-menuToolGroup .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-toolGroup-tools {
-  padding: 0.25em 0 0.25em 0;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  padding: 0 0.25em 0 1em;
-}
-.oo-ui-toolbar {
-  clear: both;
-}
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-  float: left;
-}
-.oo-ui-toolbar-tools {
-  display: inline;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-touch-callout: default;
-  -webkit-user-select: all;
-  -moz-user-select: all;
-  -ms-user-select: all;
-  user-select: all;
-}
-.oo-ui-toolbar-shadow {
-  background-position: right top;
-  background-repeat: repeat-x;
-  position: absolute;
-  width: 100%;
-  pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-  border-bottom: solid 1px #dddddd;
-  background: white;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  border: none;
-  background: none;
-}
-.oo-ui-selectWidget {
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  cursor: pointer;
-  padding: 0.8em 3.35em 0.8em 1em;
-  border: none;
-  font-weight: bold;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  display: block;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5em;
-}
-.oo-ui-optionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-  padding-left: 1.5em;
-}
-.oo-ui-optionWidget-level-0 {
-  padding-right: 3.5em;
-}
-.oo-ui-optionWidget-level-0 .oo-ui-iconElement-icon {
-  right: 1em;
-}
-.oo-ui-optionWidget-level-1 {
-  padding-right: 5em;
-}
-.oo-ui-optionWidget-level-1 .oo-ui-iconElement-icon {
-  right: 2.5em;
-}
-.oo-ui-optionWidget-level-2 {
-  padding-right: 6.5em;
-}
-.oo-ui-optionWidget-level-2 .oo-ui-iconElement-icon {
-  right: 4em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-  left: 0.5em;
-}
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-}
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  position: static;
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-  height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-  height: 1.9em;
-  margin-top: 0;
-}
-.oo-ui-labelWidget {
-  display: inline-block;
-  padding: 0.5em 0;
-}
-.oo-ui-iconWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-  line-height: 2.5em;
-  height: 1.9em;
-  width: 1.9em;
-  opacity: 0.8;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-.oo-ui-buttonGroupWidget {
-  border-radius: 0.3em;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  border-radius: 0;
-  margin-bottom: -1px;
-  margin-right: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-  border-bottom-right-radius: 0.3em;
-  border-top-right-radius: 0.3em;
-  margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-  overflow: hidden;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transform: translateZ(0px);
-  -moz-transform: translateZ(0px);
-  -ms-transform: translateZ(0px);
-  -o-transform: translateZ(0px);
-  transform: translateZ(0px);
-  height: 2em;
-  width: 4em;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  display: block;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-.oo-ui-toggleSwitchWidget-grip {
-  top: 0.25em;
-  right: 0.25em;
-  width: 1.5em;
-  height: 1.5em;
-  margin-top: -1px;
-  -webkit-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -moz-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -ms-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  -o-transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-  transition: right 200ms ease-in-out, margin-right 200ms ease-in-out;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  -webkit-transition: opacity 200ms ease-in-out;
-  -moz-transition: opacity 200ms ease-in-out;
-  -ms-transition: opacity 200ms ease-in-out;
-  -o-transition: opacity 200ms ease-in-out;
-  transition: opacity 200ms ease-in-out;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  right: 2.25em;
-  margin-right: -2px;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  right: 0.25em;
-  margin-right: 0;
-}
-.oo-ui-actionWidget.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-  display: none;
-  z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-  display: block;
-  position: absolute;
-  background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  float: right;
-  cursor: default;
-}
-.oo-ui-popupWidget-body {
-  clear: both;
-  overflow: hidden;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-  margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body-padded {
-  padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  right: 1em;
-  cursor: auto;
-}
-.oo-ui-lookupInputWidget-menu {
-  background-color: #fff;
-}
-.oo-ui-textInputWidget {
-  position: relative;
-  -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%;
-  resize: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  position: absolute;
-  top: 0;
-  height: 100%;
-  background-repeat: no-repeat;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-  right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  padding: .8em 1em;
-}
-.oo-ui-menuWidget {
-  position: absolute;
-  background: white;
-  border: solid 1px #dddddd;
-}
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  display: none;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-  display: block;
-}
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background: #347bff;
-  color: #ffffff;
-}
-.oo-ui-menuItemWidget .oo-ui-iconElement-icon {
-  background-size: 24px auto;
-}
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-  font-weight: normal;
-  color: #777777;
-  border: none;
-}
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  margin: 0.25em 0;
-  min-width: 20em;
-}
-.oo-ui-inlineMenuWidget-handle {
-  width: 100%;
-  display: inline-block;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  position: absolute;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-.oo-ui-inlineMenuWidget-handle {
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatorElement-indicator {
-  left: 0;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconElement-icon {
-  right: 0.25em;
-}
-.oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  line-height: 2.5em;
-  margin: 0 0.5em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-iconElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-right: 3em;
-}
-.oo-ui-inlineMenuWidget.oo-ui-indicatorElement .oo-ui-inlineMenuWidget-handle .oo-ui-labelElement-label {
-  margin-left: 2em;
-}
-.oo-ui-outlineItemWidget {
-  position: relative;
-  cursor: pointer;
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  padding: 0.75em;
-}
-.oo-ui-outlineControlsWidget {
-  height: 3em;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  float: right;
-  background-position: left center;
-  background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-  float: right;
-}
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: left;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-  height: 2em;
-  margin: 0.5em;
-  padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0.5em 0.5em 0;
-}
-.oo-ui-outlineControlsWidget-items {
-  margin-right: 0;
-}
-.oo-ui-comboBoxWidget {
-  display: inline-block;
-  position: relative;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  width: 100%;
-  z-index: 1;
-}
-.oo-ui-comboBoxWidget > .oo-ui-selectWidget {
-  min-width: 20em;
-}
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-}
-.oo-ui-searchWidget-results {
-  position: absolute;
-  bottom: 0;
-  right: 0;
-  left: 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-  height: 4em;
-  padding: 0 1em;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-  top: 4em;
-  padding: 1em;
-  line-height: 0;
-}
-.oo-ui-window {
-  line-height: 1em;
-}
-.oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-}
-.oo-ui-window-content:focus {
-  outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-  -webkit-touch-callout: none;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.oo-ui-window-body {
-  margin: 0;
-  padding: 0;
-  background: none;
-}
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  position: absolute;
-  right: 0;
-  left: 0;
-  overflow: hidden;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-  z-index: 1;
-  top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head.oo-ui-pendingElement-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-  z-index: 2;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-  z-index: 1;
-  bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-overlay {
-  z-index: 3;
-}
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-  display: block;
-  text-align: center;
-  padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-  font-size: 1.5em;
-  line-height: 1em;
-  color: #000;
-}
-.oo-ui-messageDialog-message {
-  font-size: 0.9em;
-  line-height: 1.25em;
-  color: #666;
-}
-.oo-ui-messageDialog-message-verbose {
-  font-size: 1.1em;
-  line-height: 1.5em;
-  text-align: right;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  border-left: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-  border-left-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  border-bottom: solid 1px #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-  border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-  text-align: center;
-  line-height: 3.4em;
-  padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-  background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-  background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:hover {
-  background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary:active {
-  background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-  background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-  background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-  background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-  background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-  display: inline;
-  padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-  right: 0;
-}
-.oo-ui-processDialog-actions-primary {
-  left: 0;
-}
-.oo-ui-processDialog-errors {
-  display: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 2;
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-  height: 3.35em;
-  border-bottom: 1px solid #dddddd;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-  top: 3.35em;
-  padding: 2em 0;
-}
-.oo-ui-processDialog-navigation {
-  position: relative;
-  height: 3.35em;
-  padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-  padding: 0.75em 0;
-  height: 1.85em;
-  cursor: default;
-  text-align: center;
-}
-.oo-ui-processDialog-title {
-  font-weight: bold;
-  line-height: 1.85em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding: 0.35em 0.75em;
-  min-width: 1.85em;
-  min-height: 1.85em;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-  line-height: 1.85em;
-  padding: 0 1em;
-  font-weight: bold;
-  color: #777777;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconElement-icon {
-  position: absolute;
-  margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-  vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button {
-  border: 1px solid transparent;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-flaggedElement-destructive .oo-ui-labelElement-label {
-  color: #d11d13;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button {
-  padding: 0.75em 0.35em;
-  border: none;
-  border-radius: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button {
-  background-color: #347bff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-primary .oo-ui-labelElement-label {
-  color: #ffffff;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  right: 0.5em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-right: 2.25em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-  left: 0.5em;
-}
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-labelElement-label {
-  padding-left: 2.25em;
-}
-.oo-ui-processDialog-actions-other {
-  position: absolute;
-  bottom: 1em;
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-  min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-  background-color: rgba(255, 255, 255, 0.9);
-  padding: 3em 3em 1.5em 3em;
-  text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-  margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-  font-size: 1.5em;
-  color: #000;
-  margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-  text-align: right;
-  margin: 1em;
-  padding: 1em;
-  border: solid 1px #ff9e9e;
-  background-color: #fff7f7;
-  border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  position: fixed;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
-  width: auto;
-  height: auto;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-  position: absolute;
-  left: 0;
-  right: 0;
-  margin: auto;
-  overflow: hidden;
-  max-width: 100%;
-  max-height: 100%;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame > iframe {
-  width: 100%;
-  height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  width: 100%;
-  height: 100%;
-  top: 0;
-  bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: opacity 250ms ease-in-out;
-  -moz-transition: opacity 250ms ease-in-out;
-  -ms-transition: opacity 250ms ease-in-out;
-  -o-transition: opacity 250ms ease-in-out;
-  transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 0;
-  bottom: 0;
-  background-color: #fff;
-  -webkit-transform: translate3d(0, -200%, 0);
-  -moz-transform: translate3d(0, -200%, 0);
-  -ms-transform: translate3d(0, -200%, 0);
-  -o-transform: translate3d(0, -200%, 0);
-  transform: translate3d(0, -200%, 0);
-  -webkit-transition: transform 250ms ease-in-out;
-  -moz-transition: transform 250ms ease-in-out;
-  -ms-transition: transform 250ms ease-in-out;
-  -o-transition: transform 250ms ease-in-out;
-  transition: transform 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-  opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-  -webkit-transform: translate3d(0, 0, 0);
-  -moz-transform: translate3d(0, 0, 0);
-  -ms-transform: translate3d(0, 0, 0);
-  -o-transform: translate3d(0, 0, 0);
-  transform: translate3d(0, 0, 0);
-}
-.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-}
-
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/minerva/images/icons/check.svg);
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-  background-image: /* @embed */ url(themes/minerva/images/icons/check-invert.svg);
-}
diff --git a/resources/lib/oojs-ui/oojs-ui.css b/resources/lib/oojs-ui/oojs-ui.css
deleted file mode 100644 (file)
index fa07706..0000000
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * 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 May 30 2014 12:12:37 GMT-0700 (PDT)
- */
-
-/* Textures */
-
-.oo-ui-texture-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-
-.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(images/textures/transparency.png);
-}
-
-/* RTL Definitions */
-
-/* @noflip */
-
-.oo-ui-rtl {
-  direction: rtl;
-}
-
-/* @noflip */
-
-.oo-ui-ltr {
-  direction: ltr;
-}
-
-.oo-ui-dialog {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1em;
-  line-height: 1em;
-  /* 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 {
-  position: fixed;
-  right: 0;
-  left: 0;
-  min-height: 12em;
-  margin: auto;
-  overflow: hidden;
-}
-
-.oo-ui-dialog > .oo-ui-window-frame .oo-ui-frame {
-  width: 100%;
-  height: 100%;
-}
-
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-buttonedElement-framed {
-  float: left;
-}
-
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-flaggableElement-primary,
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-flaggableElement-constructive,
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-flaggableElement-destructive {
-  float: right;
-}
-
-.oo-ui-dialog-content-footless .oo-ui-window-foot {
-  display: none;
-}
-
-.oo-ui-frame {
-  padding: 0;
-  margin: 0;
-}
-
-.oo-ui-frame-body {
-  padding: 0;
-  margin: 0;
-  background: none;
-}
-
-.oo-ui-frame-content:focus {
-  outline: none;
-}
-
-.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;
-  margin: 0.3em;
-  vertical-align: middle;
-}
-
-.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;
-          user-select: none;
-  -webkit-touch-callout: none;
-}
-
-.oo-ui-window-icon {
-  float: left;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-window-title {
-  float: left;
-  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;
-}
-
-.oo-ui-buttonedElement.oo-ui-widget-disabled .oo-ui-buttonedElement-button {
-  cursor: default;
-}
-
-.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 {
-  display: inline-block;
-  vertical-align: middle;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-buttonedElement-frameless {
-  position: relative;
-  display: inline-block;
-}
-
-.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
-  display: inline-block;
-  margin-left: 0.25em;
-  vertical-align: middle;
-}
-
-.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
-  display: inline-block;
-  text-align: center;
-  vertical-align: top;
-}
-
-.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
-  display: inline-block;
-  line-height: 1.9em;
-  vertical-align: middle;
-}
-
-.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 {
-  cursor: default;
-}
-
-.oo-ui-clippableElement-clippable {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
-}
-
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  -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-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 3em;
-  left: 0;
-  overflow-y: auto;
-}
-
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  left: 0;
-}
-
-.oo-ui-fieldLayout {
-  margin-bottom: 1em;
-}
-
-.oo-ui-fieldLayout:last-child {
-  margin-bottom: 0;
-}
-
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-  display: table;
-  content: " ";
-}
-
-.oo-ui-fieldLayout:after {
-  clear: both;
-}
-
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-labeledElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labeledElement-label {
-  display: block;
-  float: left;
-  width: 35%;
-  padding-top: 0.5em;
-  margin-right: 5%;
-}
-
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-field {
-  display: block;
-  float: left;
-  width: 60%;
-}
-
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-labeledElement-label {
-  text-align: right;
-}
-
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-labeledElement-label {
-  display: inline-block;
-  padding: 0.75em 0.5em 0.5em 0.5em;
-  vertical-align: middle;
-}
-
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-field {
-  display: inline-block;
-  padding: 0.5em 0;
-  vertical-align: middle;
-}
-
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top > .oo-ui-labeledElement-label {
-  padding: 0.5em 0;
-}
-
-.oo-ui-fieldsetLayout {
-  position: relative;
-  padding: 0;
-  margin: 0;
-}
-
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-
-.oo-ui-fieldsetLayout-labeled {
-  margin-top: -0.75em;
-}
-
-.oo-ui-fieldsetLayout > .oo-ui-labeledElement-label {
-  padding: 0.25em 0;
-  margin-bottom: 0.5em;
-}
-
-.oo-ui-fieldsetLayout.oo-ui-iconedElement > .oo-ui-labeledElement-label {
-  padding-left: 1.75em;
-  line-height: 1.33em;
-}
-
-.oo-ui-fieldsetLayout.oo-ui-iconedElement > .oo-ui-iconedElement-icon {
-  position: absolute;
-  top: 0.25em;
-  left: 0;
-  display: block;
-  width: 2em;
-  height: 2em;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-}
-
-.oo-ui-labelWidget {
-  padding: 0.5em 0;
-}
-
-.oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
-}
-
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  position: relative;
-  display: block;
-}
-
-.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;
-  vertical-align: top;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool-link {
-  display: block;
-  height: 1.5em;
-  padding: 0.25em;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  display: block;
-  width: 1.5em;
-  height: 1.5em;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: none;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
-  cursor: pointer;
-}
-
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
-}
-
-.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-listToolGroup .oo-ui-tool-link {
-  display: block;
-  padding-right: 0.5em;
-  white-space: nowrap;
-  cursor: pointer;
-}
-
-.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-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-
-.oo-ui-popupToolGroup {
-  position: relative;
-  height: 2em;
-  min-width: 2.5em;
-}
-
-.oo-ui-popupToolGroup.oo-ui-indicatedElement.oo-ui-iconedElement {
-  min-width: 3.5em;
-}
-
-.oo-ui-popupToolGroup-handle {
-  display: block;
-  cursor: pointer;
-}
-
-.oo-ui-popupToolGroup-handle .oo-ui-indicatedElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconedElement-icon {
-  position: absolute;
-  top: 0;
-  width: 2em;
-  height: 2em;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-popupToolGroup-handle .oo-ui-indicatedElement-indicator {
-  right: 0;
-}
-
-.oo-ui-popupToolGroup-handle .oo-ui-iconedElement-icon {
-  left: 0.25em;
-}
-
-.oo-ui-popupToolGroup-handle .oo-ui-labeledElement-label {
-  margin: 0 1em;
-  font-size: 0.8em;
-  line-height: 2.6em;
-}
-
-.oo-ui-popupToolGroup-header {
-  margin: 0 0.6em;
-  font-size: 0.8em;
-  font-weight: bold;
-  line-height: 2.6em;
-}
-
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-  cursor: default;
-}
-
-.oo-ui-popupToolGroup.oo-ui-iconedElement .oo-ui-popupToolGroup-handle .oo-ui-labeledElement-label {
-  margin-left: 3em;
-}
-
-.oo-ui-popupToolGroup.oo-ui-indicatedElement .oo-ui-popupToolGroup-handle .oo-ui-labeledElement-label {
-  margin-right: 2.25em;
-}
-
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-  position: absolute;
-  top: 2em;
-  left: -1px;
-  z-index: 4;
-  display: none;
-}
-
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconedElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-  display: block;
-}
-
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  margin-right: 0.25em;
-  vertical-align: middle;
-}
-
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  display: inline-block;
-  font-size: 0.8em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-  display: none;
-}
-
-.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-iconWidget {
-  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-iconWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-
-.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-indicatorWidget.oo-ui-widget-disabled {
-  opacity: 0.2;
-}
-
-.oo-ui-selectWidget {
-  padding: 0;
-  margin: 0;
-  list-style: none;
-}
-
-.oo-ui-optionWidget {
-  position: relative;
-  display: block;
-  margin: 0;
-  list-style: none;
-  cursor: pointer;
-  border: none;
-}
-
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-
-.oo-ui-optionWidget .oo-ui-labeledElement-label {
-  display: block;
-  overflow: hidden;
-  line-height: 1.5em;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.oo-ui-optionWidget .oo-ui-iconedElement-icon,
-.oo-ui-optionWidget .oo-ui-indicatedElement-indicator {
-  position: absolute;
-  top: 50%;
-  width: 2em;
-  height: 2em;
-  margin-top: -1em;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-optionWidget .oo-ui-iconedElement-icon {
-  left: 0.5em;
-}
-
-.oo-ui-optionWidget .oo-ui-indicatedElement-indicator {
-  right: 0.5em;
-}
-
-.oo-ui-menuWidget {
-  position: absolute;
-}
-
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
-}
-
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-}
-
-.oo-ui-popupWidget-tail {
-  display: none;
-}
-
-.oo-ui-popupWidget-tailed .oo-ui-popupWidget-popup {
-  margin-top: 7px;
-}
-
-.oo-ui-popupWidget-tailed .oo-ui-popupWidget-tail {
-  position: absolute;
-  display: block;
-  background-repeat: no-repeat;
-}
-
-.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-popupWidget-head .oo-ui-buttonWidget {
-  float: right;
-  margin: 0.25em;
-}
-
-.oo-ui-popupWidget-head .oo-ui-labeledElement-label {
-  float: left;
-  margin: 0.75em 1em;
-  cursor: default;
-}
-
-.oo-ui-popupWidget-body {
-  clear: both;
-}
-
-.oo-ui-buttonGroupWidget {
-  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-buttonOptionWidget {
-  display: inline-block;
-  background-color: transparent;
-}
-
-.oo-ui-buttonOptionWidget .oo-ui-buttonedElement-button {
-  position: relative;
-  height: 1.9em;
-}
-
-.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-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-}
-
-.oo-ui-buttonWidget {
-  display: inline-block;
-  vertical-align: middle;
-}
-
-.oo-ui-inlineMenuWidget {
-  position: relative;
-  display: inline-block;
-  min-width: 20em;
-  margin: 0.25em 0;
-}
-
-.oo-ui-inlineMenuWidget-handle {
-  display: inline-block;
-  width: 100%;
-  height: 2.5em;
-  cursor: pointer;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  -webkit-touch-callout: none;
-}
-
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatedElement-indicator,
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconedElement-icon {
-  position: absolute;
-  top: 0;
-  width: 2.5em;
-  height: 2.5em;
-  background-position: center center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-inlineMenuWidget-handle .oo-ui-indicatedElement-indicator {
-  right: 0;
-}
-
-.oo-ui-inlineMenuWidget-handle .oo-ui-iconedElement-icon {
-  left: 0.25em;
-}
-
-.oo-ui-inlineMenuWidget-handle .oo-ui-labeledElement-label {
-  margin: 0 0.5em;
-  line-height: 2.5em;
-}
-
-.oo-ui-inlineMenuWidget.oo-ui-iconedElement .oo-ui-inlineMenuWidget-handle .oo-ui-labeledElement-label {
-  margin-left: 3em;
-}
-
-.oo-ui-inlineMenuWidget.oo-ui-indicatedElement .oo-ui-inlineMenuWidget-handle .oo-ui-labeledElement-label {
-  margin-right: 2em;
-}
-
-.oo-ui-inlineMenuWidget .oo-ui-menuWidget {
-  z-index: 1;
-  width: 100%;
-}
-
-.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
-  cursor: default;
-}
-
-.oo-ui-menuItemWidget {
-  position: relative;
-}
-
-.oo-ui-menuItemWidget .oo-ui-iconedElement-icon {
-  display: none;
-}
-
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
-  background-color: transparent;
-}
-
-.oo-ui-menuItemWidget.oo-ui-optionWidget-selected .oo-ui-iconedElement-icon {
-  display: block;
-}
-
-.oo-ui-menuSectionItemWidget {
-  cursor: default;
-}
-
-.oo-ui-outlineControlsWidget {
-  height: 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-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-outlineControlsWidget-adders {
-  float: left;
-  margin-left: 0;
-}
-
-.oo-ui-outlineControlsWidget-adders .oo-ui-buttonWidget {
-  float: left;
-}
-
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
-}
-
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-  float: right;
-}
-
-.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-popupButtonWidget {
-  position: relative;
-}
-
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  left: 1em;
-  cursor: auto;
-}
-
-.oo-ui-searchWidget-query {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  height: 4em;
-  padding: 0 1em;
-}
-
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-  width: 100%;
-  margin: 0.75em 0;
-}
-
-.oo-ui-searchWidget-results {
-  position: absolute;
-  top: 4em;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1em;
-  overflow-x: hidden;
-  overflow-y: auto;
-  line-height: 0;
-}
-
-.oo-ui-textInputWidget {
-  position: relative;
-  -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%;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  resize: none;
-}
-
-.oo-ui-textInputWidget-icon {
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 100%;
-  background-position: right center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-toggleSwitchWidget {
-  position: relative;
-  display: inline-block;
-  width: 4em;
-  height: 2em;
-  overflow: hidden;
-  vertical-align: middle;
-  cursor: pointer;
-  -webkit-transform: translateZ(0);
-     -moz-transform: translateZ(0);
-      -ms-transform: translateZ(0);
-       -o-transform: translateZ(0);
-          transform: translateZ(0);
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-  cursor: default;
-}
-
-.oo-ui-toggleSwitchWidget-grip {
-  position: absolute;
-  top: 0.25em;
-  left: 0.25em;
-  display: block;
-  width: 1.5em;
-  height: 1.5em;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  -webkit-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-     -moz-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-      -ms-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-       -o-transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-          transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
-}
-
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  -webkit-transition: opacity 200ms ease-in-out;
-     -moz-transition: opacity 200ms ease-in-out;
-      -ms-transition: opacity 200ms ease-in-out;
-       -o-transition: opacity 200ms ease-in-out;
-          transition: opacity 200ms ease-in-out;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  -webkit-touch-callout: none;
-}
-
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  left: 2.25em;
-  margin-left: -2px;
-}
-
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-  left: 0.25em;
-  margin-left: 0;
-}
-
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  display: none;
-}
-
-/* Icons */
-
-.oo-ui-icon-add-item {
-  background-image: /* @embed */ url(images/icons/add-item.png);
-}
-
-.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(images/icons/advanced.png);
-}
-
-.oo-ui-icon-alert {
-  background-image: /* @embed */ url(images/icons/alert.png);
-}
-
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(images/icons/check.png);
-}
-
-.oo-ui-icon-clear {
-  background-image: /* @embed */ url(images/icons/clear.png);
-}
-
-.oo-ui-icon-close {
-  background-image: /* @embed */ url(images/icons/close.png);
-}
-
-.oo-ui-icon-code {
-  background-image: /* @embed */ url(images/icons/code.png);
-}
-
-.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(images/icons/collapse.png);
-}
-
-.oo-ui-icon-comment {
-  background-image: /* @embed */ url(images/icons/comment.png);
-}
-
-.oo-ui-icon-expand {
-  background-image: /* @embed */ url(images/icons/expand.png);
-}
-
-.oo-ui-icon-help {
-  background-image: /* @embed */ url(images/icons/help.png);
-}
-
-.oo-ui-icon-info {
-  background-image: /* @embed */ url(images/icons/info.png);
-}
-
-.oo-ui-icon-link {
-  background-image: /* @embed */ url(images/icons/link.png);
-}
-
-.oo-ui-icon-menu {
-  background-image: /* @embed */ url(images/icons/menu.png);
-}
-
-.oo-ui-icon-next {
-  background-image: /* @embed */ url(images/icons/move-ltr.png);
-}
-
-.oo-ui-icon-picture {
-  background-image: /* @embed */ url(images/icons/picture.png);
-}
-
-.oo-ui-icon-previous {
-  background-image: /* @embed */ url(images/icons/move-rtl.png);
-}
-
-.oo-ui-icon-redo {
-  background-image: /* @embed */ url(images/icons/arched-arrow-ltr.png);
-}
-
-.oo-ui-icon-remove {
-  background-image: /* @embed */ url(images/icons/remove.png);
-}
-
-.oo-ui-icon-search {
-  background-image: /* @embed */ url(images/icons/search.png);
-}
-
-.oo-ui-icon-settings {
-  background-image: /* @embed */ url(images/icons/settings.png);
-}
-
-.oo-ui-icon-tag {
-  background-image: /* @embed */ url(images/icons/tag.png);
-}
-
-.oo-ui-icon-undo {
-  background-image: /* @embed */ url(images/icons/arched-arrow-rtl.png);
-}
-
-.oo-ui-icon-window {
-  background-image: /* @embed */ url(images/icons/window.png);
-}
-
-/* Indicators */
-
-.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(images/indicators/alert.png);
-}
-
-.oo-ui-indicator-down {
-  background-image: /* @embed */ url(images/indicators/down.png);
-}
-
-.oo-ui-indicator-required {
-  background-image: /* @embed */ url(images/indicators/required.png);
-}
-
-.oo-ui-indicator-up {
-  background-image: /* @embed */ url(images/indicators/up.png);
-}
\ No newline at end of file
index 556bd57..62df780 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (30b0407428)
+ * OOjs UI v0.1.0-pre (b38d485723)
  * 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: 2014-09-30T23:08:05Z
+ * Date: 2014-11-04T22:41:45Z
  */
 ( function ( OO ) {
 
@@ -111,6 +111,10 @@ OO.ui.getLocalValue = function ( obj, lang, fallback ) {
                'ooui-outline-control-remove': 'Remove item',
                // Label for the toolbar group that contains a list of all other available tools
                'ooui-toolbar-more': 'More',
+               // Label for the fake tool that expands the full list of tools in a toolbar group
+               'ooui-toolgroup-expand': 'More',
+               // Label for the fake tool that collapses the full list of tools in a toolbar group
+               'ooui-toolgroup-collapse': 'Fewer',
                // Default label for the accept button of a confirmation dialog
                'ooui-dialog-message-accept': 'OK',
                // Default label for the reject button of a confirmation dialog
@@ -119,8 +123,10 @@ OO.ui.getLocalValue = function ( obj, lang, fallback ) {
                'ooui-dialog-process-error': 'Something went wrong',
                // Label for process dialog dismiss error button, visible when describing errors
                'ooui-dialog-process-dismiss': 'Dismiss',
-               // Label for process dialog retry action button, visible when describing recoverable errors
-               'ooui-dialog-process-retry': 'Try again'
+               // Label for process dialog retry action button, visible when describing only recoverable errors
+               'ooui-dialog-process-retry': 'Try again',
+               // Label for process dialog retry action button, visible when describing only warnings
+               'ooui-dialog-process-continue': 'Continue'
        };
 
        /**
@@ -198,7 +204,7 @@ OO.ui.getLocalValue = function ( obj, lang, fallback ) {
  * @param {Object} [config] Configuration options
  */
 OO.ui.PendingElement = function OoUiPendingElement( config ) {
-       // Config initialisation
+       // Configuration initialization
        config = config || {};
 
        // Properties
@@ -689,7 +695,7 @@ OO.ui.ActionSet.prototype.organize = function () {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {Function} [$] jQuery for the frame the widget is in
- * @cfg {string[]} [classes] CSS class names
+ * @cfg {string[]} [classes] CSS class names to add
  * @cfg {string} [text] Text to insert
  * @cfg {jQuery} [$content] Content elements to append (after text)
  */
@@ -701,9 +707,7 @@ OO.ui.Element = function OoUiElement( config ) {
        this.$ = config.$ || OO.ui.Element.getJQuery( document );
        this.$element = this.$( this.$.context.createElement( this.getTagName() ) );
        this.elementGroup = null;
-       this.debouncedUpdateThemeClassesHandler = OO.ui.bind(
-               this.debouncedUpdateThemeClasses, this
-       );
+       this.debouncedUpdateThemeClassesHandler = this.debouncedUpdateThemeClasses.bind( this );
        this.updateThemeClassesPending = false;
 
        // Initialization
@@ -727,7 +731,7 @@ OO.initClass( OO.ui.Element );
 /**
  * HTML tag name.
  *
- * This may be ignored if getTagName is overridden.
+ * This may be ignored if #getTagName is overridden.
  *
  * @static
  * @inheritable
@@ -798,7 +802,7 @@ OO.ui.Element.getWindow = function ( obj ) {
  *
  * @static
  * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the direction for
- * @return {string} Text direction, either `ltr` or `rtl`
+ * @return {string} Text direction, either 'ltr' or 'rtl'
  */
 OO.ui.Element.getDir = function ( obj ) {
        var isDoc, isWin;
@@ -865,15 +869,35 @@ OO.ui.Element.getFrameOffset = function ( from, to, offset ) {
 /**
  * Get the offset between two elements.
  *
+ * The two elements may be in a different frame, but in that case the frame $element is in must
+ * be contained in the frame $anchor is in.
+ *
  * @static
- * @param {jQuery} $from
- * @param {jQuery} $to
+ * @param {jQuery} $element Element whose position to get
+ * @param {jQuery} $anchor Element to get $element's position relative to
  * @return {Object} Translated position coordinates, containing top and left properties
  */
-OO.ui.Element.getRelativePosition = function ( $from, $to ) {
-       var from = $from.offset(),
-               to = $to.offset();
-       return { top: Math.round( from.top - to.top ), left: Math.round( from.left - to.left ) };
+OO.ui.Element.getRelativePosition = function ( $element, $anchor ) {
+       var iframe, iframePos,
+               pos = $element.offset(),
+               anchorPos = $anchor.offset(),
+               elementDocument = this.getDocument( $element ),
+               anchorDocument = this.getDocument( $anchor );
+
+       // If $element isn't in the same document as $anchor, traverse up
+       while ( elementDocument !== anchorDocument ) {
+               iframe = elementDocument.defaultView.frameElement;
+               if ( !iframe ) {
+                       throw new Error( '$element frame is not contained in $anchor frame' );
+               }
+               iframePos = $( iframe ).offset();
+               pos.left += iframePos.left;
+               pos.top += iframePos.top;
+               elementDocument = iframe.ownerDocument;
+       }
+       pos.left -= anchorPos.left;
+       pos.top -= anchorPos.top;
+       return pos;
 };
 
 /**
@@ -989,7 +1013,7 @@ OO.ui.Element.getClosestScrollableContainer = function ( el, dimension ) {
  *
  * @static
  * @param {HTMLElement} el Element to scroll into view
- * @param {Object} [config={}] Configuration config
+ * @param {Object} [config] Configuration options
  * @param {string} [config.duration] jQuery animation duration value
  * @param {string} [config.direction] Scroll in only one direction, e.g. 'x' or 'y', omit
  *  to scroll in both directions
@@ -1055,8 +1079,57 @@ OO.ui.Element.scrollIntoView = function ( el, config ) {
        }
 };
 
+/**
+ * Bind a handler for an event on a DOM element.
+ *
+ * Used to be for working around a jQuery bug (jqbug.com/14180),
+ * but obsolete as of jQuery 1.11.0.
+ *
+ * @static
+ * @deprecated Use jQuery#on instead.
+ * @param {HTMLElement|jQuery} el DOM element
+ * @param {string} event Event to bind
+ * @param {Function} callback Callback to call when the event fires
+ */
+OO.ui.Element.onDOMEvent = function ( el, event, callback ) {
+       $( el ).on( event, callback );
+};
+
+/**
+ * Unbind a handler bound with #static-method-onDOMEvent.
+ *
+ * @deprecated Use jQuery#off instead.
+ * @static
+ * @param {HTMLElement|jQuery} el DOM element
+ * @param {string} event Event to unbind
+ * @param {Function} [callback] Callback to unbind
+ */
+OO.ui.Element.offDOMEvent = function ( el, event, callback ) {
+       $( el ).off( event, callback );
+};
+
 /* Methods */
 
+/**
+ * Check if element supports one or more methods.
+ *
+ * @param {string|string[]} methods Method or list of methods to check
+ * @return {boolean} All methods are supported
+ */
+OO.ui.Element.prototype.supports = function ( methods ) {
+       var i, len,
+               support = 0;
+
+       methods = $.isArray( methods ) ? methods : [ methods ];
+       for ( i = 0, len = methods.length; i < len; i++ ) {
+               if ( $.isFunction( this[methods[i]] ) ) {
+                       support++;
+               }
+       }
+
+       return methods.length === support;
+};
+
 /**
  * Update the theme-provided classes.
  *
@@ -1146,7 +1219,7 @@ OO.ui.Element.prototype.setElementGroup = function ( group ) {
 /**
  * Scroll element into view.
  *
- * @param {Object} [config={}]
+ * @param {Object} [config] Configuration options
  */
 OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
        return OO.ui.Element.scrollIntoView( this.$element[0], config );
@@ -1174,37 +1247,6 @@ OO.ui.Element.prototype.offDOMEvent = function ( event, callback ) {
        OO.ui.Element.offDOMEvent( this.$element, event, callback );
 };
 
-( function () {
-       /**
-        * Bind a handler for an event on a DOM element.
-        *
-        * Used to be for working around a jQuery bug (jqbug.com/14180),
-        * but obsolete as of jQuery 1.11.0.
-        *
-        * @static
-        * @deprecated Use jQuery#on instead.
-        * @param {HTMLElement|jQuery} el DOM element
-        * @param {string} event Event to bind
-        * @param {Function} callback Callback to call when the event fires
-        */
-       OO.ui.Element.onDOMEvent = function ( el, event, callback ) {
-               $( el ).on( event, callback );
-       };
-
-       /**
-        * Unbind a handler bound with #static-method-onDOMEvent.
-        *
-        * @deprecated Use jQuery#off instead.
-        * @static
-        * @param {HTMLElement|jQuery} el DOM element
-        * @param {string} event Event to unbind
-        * @param {Function} [callback] Callback to unbind
-        */
-       OO.ui.Element.offDOMEvent = function ( el, event, callback ) {
-               $( el ).off( event, callback );
-       };
-}() );
-
 /**
  * Container for elements.
  *
@@ -1217,7 +1259,7 @@ OO.ui.Element.prototype.offDOMEvent = function ( event, callback ) {
  * @param {Object} [config] Configuration options
  */
 OO.ui.Layout = function OoUiLayout( config ) {
-       // Initialize config
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -1289,7 +1331,7 @@ OO.mixinClass( OO.ui.Widget, OO.EventEmitter );
 /**
  * Check if the widget is disabled.
  *
- * @param {boolean} Button is disabled
+ * @return {boolean} Button is disabled
  */
 OO.ui.Widget.prototype.isDisabled = function () {
        return this.disabled;
@@ -1419,12 +1461,14 @@ OO.ui.Window = function OoUiWindow( config ) {
        this.loading = null;
        this.size = config.size || this.constructor.static.size;
        this.$frame = this.$( '<div>' );
+       this.$overlay = this.$( '<div>' );
 
        // Initialization
        this.$element
                .addClass( 'oo-ui-window' )
-               .append( this.$frame );
+               .append( this.$frame, this.$overlay );
        this.$frame.addClass( 'oo-ui-window-frame' );
+       this.$overlay.addClass( 'oo-ui-window-overlay' );
 
        // NOTE: Additional intitialization will occur when #setManager is called
 };
@@ -1900,31 +1944,21 @@ OO.ui.Window.prototype.initialize = function () {
        this.$head = this.$( '<div>' );
        this.$body = this.$( '<div>' );
        this.$foot = this.$( '<div>' );
-       this.$overlay = this.$( '<div>' );
-       this.$focusTrap = this.$( '<div>' ).prop( 'tabIndex', 0 );
+       this.$innerOverlay = this.$( '<div>' );
 
        // Events
-       this.$element.on( 'mousedown', OO.ui.bind( this.onMouseDown, this ) );
+       this.$element.on( 'mousedown', this.onMouseDown.bind( this ) );
 
        // Initialization
        this.$head.addClass( 'oo-ui-window-head' );
        this.$body.addClass( 'oo-ui-window-body' );
        this.$foot.addClass( 'oo-ui-window-foot' );
-       this.$overlay.addClass( 'oo-ui-window-overlay' );
-       this.$focusTrap.addClass( 'oo-ui-window-focustrap' );
-       this.$content.append( this.$head, this.$body, this.$foot, this.$overlay, this.$focusTrap );
+       this.$innerOverlay.addClass( 'oo-ui-window-inner-overlay' );
+       this.$content.append( this.$head, this.$body, this.$foot, this.$innerOverlay );
 
        return this;
 };
 
-/**
- * Called when someone tries to focus the hidden element at the end of the dialog.
- * Sends focus back to the start of the dialog.
- */
-OO.ui.Window.prototype.onFocusTrapFocused = function () {
-       this.$content.find( ':focusable:first' ).focus();
-};
-
 /**
  * Open window.
  *
@@ -1967,8 +2001,6 @@ OO.ui.Window.prototype.setup = function ( data ) {
 
        this.$element.show();
        this.visible = true;
-       this.focusTrapHandler = OO.ui.bind( this.onFocusTrapFocused, this );
-       this.$focusTrap.on( 'focus', this.focusTrapHandler );
        this.getSetupProcess( data ).execute().done( function () {
                // Force redraw by asking the browser to measure the elements' widths
                win.$element.addClass( 'oo-ui-window-setup' ).width();
@@ -2047,15 +2079,14 @@ OO.ui.Window.prototype.teardown = function ( data ) {
        var win = this,
                deferred = $.Deferred();
 
-       this.getTeardownProcess( data ).execute().done( OO.ui.bind( function () {
+       this.getTeardownProcess( data ).execute().done( function () {
                // Force redraw by asking the browser to measure the elements' widths
                win.$element.removeClass( 'oo-ui-window-setup' ).width();
                win.$content.removeClass( 'oo-ui-window-content-setup' ).width();
                win.$element.hide();
-               this.$focusTrap.off( 'focus', this.focusTrapHandler );
                win.visible = false;
                deferred.resolve();
-       }, this ) );
+       } );
 
        return deferred.promise();
 };
@@ -2388,7 +2419,7 @@ OO.ui.Dialog.prototype.initialize = function () {
 
        // Events
        if ( this.constructor.static.escapable ) {
-               this.$document.on( 'keydown', OO.ui.bind( this.onDocumentKeyDown, this ) );
+               this.$document.on( 'keydown', this.onDocumentKeyDown.bind( this ) );
        }
 
        // Initialization
@@ -2428,7 +2459,7 @@ OO.ui.Dialog.prototype.detachActions = function () {
 OO.ui.Dialog.prototype.executeAction = function ( action ) {
        this.pushPending();
        return this.getActionProcess( action ).execute()
-               .always( OO.ui.bind( this.popPending, this ) );
+               .always( this.popPending.bind( this ) );
 };
 
 /**
@@ -2500,10 +2531,10 @@ OO.ui.WindowManager = function OoUiWindowManager( config ) {
        this.$ariaHidden = null;
        this.requestedSize = null;
        this.onWindowResizeTimeout = null;
-       this.onWindowResizeHandler = OO.ui.bind( this.onWindowResize, this );
-       this.afterWindowResizeHandler = OO.ui.bind( this.afterWindowResize, this );
-       this.onWindowMouseWheelHandler = OO.ui.bind( this.onWindowMouseWheel, this );
-       this.onDocumentKeyDownHandler = OO.ui.bind( this.onDocumentKeyDown, this );
+       this.onWindowResizeHandler = this.onWindowResize.bind( this );
+       this.afterWindowResizeHandler = this.afterWindowResize.bind( this );
+       this.onWindowMouseWheelHandler = this.onWindowMouseWheel.bind( this );
+       this.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );
 
        // Initialization
        this.$element
@@ -2617,8 +2648,10 @@ OO.ui.WindowManager.prototype.afterWindowResize = function () {
  *
  * @param {jQuery.Event} e Mouse wheel event
  */
-OO.ui.WindowManager.prototype.onWindowMouseWheel = function () {
-       return false;
+OO.ui.WindowManager.prototype.onWindowMouseWheel = function ( e ) {
+       // Kill all events in the parent window if the child window is isolated,
+       // or if the event didn't come from the child window
+       return !( this.shouldIsolate() || !$.contains( this.getCurrentWindow().$frame[0], e.target ) );
 };
 
 /**
@@ -2636,8 +2669,9 @@ OO.ui.WindowManager.prototype.onDocumentKeyDown = function ( e ) {
                case OO.ui.Keys.UP:
                case OO.ui.Keys.RIGHT:
                case OO.ui.Keys.DOWN:
-                       // Prevent any key events that might cause scrolling
-                       return false;
+                       // Kill all events in the parent window if the child window is isolated,
+                       // or if the event didn't come from the child window
+                       return !( this.shouldIsolate() || !$.contains( this.getCurrentWindow().$frame[0], e.target ) );
        }
 };
 
@@ -2879,7 +2913,7 @@ OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {
        var manager = this,
                preparing = [],
                closing = $.Deferred(),
-               opened = this.opened;
+               opened;
 
        // Argument handling
        if ( typeof win === 'string' ) {
@@ -2916,6 +2950,7 @@ OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {
                        manager.closing = closing;
                        manager.preparingToClose = null;
                        manager.emit( 'closing', win, closing, data );
+                       opened = manager.opened;
                        manager.opened = null;
                        opened.resolve( closing.promise(), data );
                        setTimeout( function () {
@@ -2997,7 +3032,7 @@ OO.ui.WindowManager.prototype.removeWindows = function ( names ) {
                if ( !win ) {
                        throw new Error( 'Cannot remove window' );
                }
-               promises.push( this.closeWindow( name ).then( OO.ui.bind( cleanup, null, name, win ) ) );
+               promises.push( this.closeWindow( name ).then( cleanup.bind( null, name, win ) ) );
        }
 
        return $.when.apply( $, promises );
@@ -3133,6 +3168,7 @@ OO.ui.WindowManager.prototype.destroy = function () {
  * @param {string|jQuery} message Description of error
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [recoverable=true] Error is recoverable
+ * @cfg {boolean} [warning=false] Whether this error is a warning or not.
  */
 OO.ui.Error = function OoUiElement( message, config ) {
        // Configuration initialization
@@ -3141,6 +3177,7 @@ OO.ui.Error = function OoUiElement( message, config ) {
        // Properties
        this.message = message instanceof jQuery ? message : String( message );
        this.recoverable = config.recoverable === undefined || !!config.recoverable;
+       this.warning = !!config.warning;
 };
 
 /* Setup */
@@ -3158,6 +3195,15 @@ OO.ui.Error.prototype.isRecoverable = function () {
        return this.recoverable;
 };
 
+/**
+ * Check if the error is a warning
+ *
+ * @return {boolean} Error is warning
+ */
+OO.ui.Error.prototype.isWarning = function () {
+       return this.warning;
+};
+
 /**
  * Get error message as DOM nodes.
  *
@@ -3499,7 +3545,7 @@ OO.ui.ToolGroupFactory.static.getDefaultClasses = function () {
  * @param {Object} [config] Configuration options
  */
 OO.ui.Theme = function OoUiTheme( config ) {
-       // Initialize config
+       // Configuration initialization
        config = config || {};
 };
 
@@ -3512,8 +3558,8 @@ OO.initClass( OO.ui.Theme );
 /**
  * Get a list of classes to be applied to a widget.
  *
- * @localdoc The 'on' and 'off' lists combined MUST contain keys for all classes the theme adds or
- *   removes, otherwise state transitions will not work properly.
+ * The 'on' and 'off' lists combined MUST contain keys for all classes the theme adds or removes,
+ * otherwise state transitions will not work properly.
  *
  * @param {OO.ui.Element} element Element for which to get classes
  * @return {Object.<string,string[]>} Categorized class names with `on` and `off` lists
@@ -3527,7 +3573,7 @@ OO.ui.Theme.prototype.getElementClasses = function ( /* element */ ) {
  *
  * For elements with theme logic hooks, this should be called anytime there's a state change.
  *
- * @param {OO.ui.Element} Element for which to update classes
+ * @param {OO.ui.Element} element Element for which to update classes
  * @return {Object.<string,string[]>} Categorized class names with `on` and `off` lists
  */
 OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
@@ -3551,7 +3597,8 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
  * @param {Object} [config] Configuration options
  * @cfg {jQuery} [$button] Button node, assigned to #$button, omit to use a generated `<a>`
  * @cfg {boolean} [framed=true] Render button with a frame
- * @cfg {number} [tabIndex=0] Button's tab index, use null to have no tabIndex
+ * @cfg {number} [tabIndex=0] Button's tab index. Use 0 to use default ordering, use -1 to prevent
+ *   tab focusing.
  * @cfg {string} [accessKey] Button's access key
  */
 OO.ui.ButtonElement = function OoUiButtonElement( config ) {
@@ -3564,8 +3611,8 @@ OO.ui.ButtonElement = function OoUiButtonElement( config ) {
        this.tabIndex = null;
        this.accessKey = null;
        this.active = false;
-       this.onMouseUpHandler = OO.ui.bind( this.onMouseUp, this );
-       this.onMouseDownHandler = OO.ui.bind( this.onMouseDown, this );
+       this.onMouseUpHandler = this.onMouseUp.bind( this );
+       this.onMouseDownHandler = this.onMouseDown.bind( this );
 
        // Initialization
        this.$element.addClass( 'oo-ui-buttonElement' );
@@ -3746,7 +3793,7 @@ OO.ui.ButtonElement.prototype.setActive = function ( value ) {
  * @cfg {jQuery} [$group] Container node, assigned to #$group, omit to use a generated `<div>`
  */
 OO.ui.GroupElement = function OoUiGroupElement( config ) {
-       // Configuration
+       // Configuration intialization
        config = config || {};
 
        // Properties
@@ -3850,9 +3897,9 @@ OO.ui.GroupElement.prototype.aggregate = function ( events ) {
 /**
  * Add items.
  *
- * Adding an existing item (by value) will move it.
+ * Adding an existing item will move it.
  *
- * @param {OO.ui.Element[]} items Item
+ * @param {OO.ui.Element[]} items Items
  * @param {number} [index] Index to insert items at
  * @chainable
  */
@@ -3984,7 +4031,7 @@ OO.ui.GroupElement.prototype.clearItems = function () {
  * @cfg {string} [iconTitle] Icon title text or a function that returns text
  */
 OO.ui.IconElement = function OoUiIconElement( config ) {
-       // Config intialization
+       // Configuration intialization
        config = config || {};
 
        // Properties
@@ -4058,7 +4105,7 @@ OO.ui.IconElement.prototype.setIconElement = function ( $icon ) {
 };
 
 /**
- * Set icon.
+ * Set icon name.
  *
  * @param {Object|string|null} icon Symbolic icon name, or map of icon names keyed by language ID;
  *  use the 'default' key to specify the icon to be used when there is no icon in the user's
@@ -4114,9 +4161,9 @@ OO.ui.IconElement.prototype.setIconTitle = function ( iconTitle ) {
 };
 
 /**
- * Get icon.
+ * Get icon name.
  *
- * @return {string} Icon
+ * @return {string} Icon name
  */
 OO.ui.IconElement.prototype.getIcon = function () {
        return this.icon;
@@ -4141,7 +4188,7 @@ OO.ui.IconElement.prototype.getIcon = function () {
  * @cfg {string} [indicatorTitle] Indicator title text or a function that returns text
  */
 OO.ui.IndicatorElement = function OoUiIndicatorElement( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Properties
@@ -4166,7 +4213,7 @@ OO.initClass( OO.ui.IndicatorElement );
  *
  * @static
  * @inheritable
- * @property {string|null} Symbolic indicator name or null for no indicator
+ * @property {string|null} Symbolic indicator name
  */
 OO.ui.IndicatorElement.static.indicator = null;
 
@@ -4205,7 +4252,7 @@ OO.ui.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {
 };
 
 /**
- * Set indicator.
+ * Set indicator name.
  *
  * @param {string|null} indicator Symbolic name of indicator to use or null for no indicator
  * @chainable
@@ -4258,9 +4305,9 @@ OO.ui.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle )
 };
 
 /**
- * Get indicator.
+ * Get indicator name.
  *
- * @return {string} title Symbolic name of indicator
+ * @return {string} Symbolic name of indicator
  */
 OO.ui.IndicatorElement.prototype.getIndicator = function () {
        return this.indicator;
@@ -4288,7 +4335,7 @@ OO.ui.IndicatorElement.prototype.getIndicatorTitle = function () {
  * @cfg {boolean} [autoFitLabel=true] Whether to fit the label or not.
  */
 OO.ui.LabelElement = function OoUiLabelElement( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Properties
@@ -4339,7 +4386,7 @@ OO.ui.LabelElement.prototype.setLabelElement = function ( $label ) {
  * Set the label.
  *
  * An empty string will result in the label being hidden. A string containing only whitespace will
- * be converted to a single &nbsp;
+ * be converted to a single `&nbsp;`.
  *
  * @param {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
  *  text; or null for no label
@@ -4364,7 +4411,7 @@ OO.ui.LabelElement.prototype.setLabel = function ( label ) {
 /**
  * Get the label.
  *
- * @return {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
+ * @return {jQuery|string|Function|null} Label nodes; text; a function that returns nodes or
  *  text; or null for no label
  */
 OO.ui.LabelElement.prototype.getLabel = function () {
@@ -4454,11 +4501,11 @@ OO.ui.PopupElement.prototype.getPopup = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string[]} [flags=[]] Styling flags, e.g. 'primary', 'destructive' or 'constructive'
+ * @cfg {string|string[]} [flags] Styling flags, e.g. 'primary', 'destructive' or 'constructive'
  * @cfg {jQuery} [$flagged] Flagged node, assigned to #$flagged, omit to use #$element
  */
 OO.ui.FlaggedElement = function OoUiFlaggedElement( config ) {
-       // Config initialization
+       // Configuration initialization
        config = config || {};
 
        // Properties
@@ -4512,7 +4559,7 @@ OO.ui.FlaggedElement.prototype.hasFlag = function ( flag ) {
 /**
  * Get the names of all flags set.
  *
- * @return {string[]} flags Flag names
+ * @return {string[]} Flag names
  */
 OO.ui.FlaggedElement.prototype.getFlags = function () {
        return Object.keys( this.flags );
@@ -4625,10 +4672,11 @@ OO.ui.FlaggedElement.prototype.setFlags = function ( flags ) {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {jQuery} [$titled] Titled node, assigned to #$titled, omit to use #$element
- * @cfg {string|Function} [title] Title text or a function that returns text
+ * @cfg {string|Function} [title] Title text or a function that returns text. If not provided, the
+ *    static property 'title' is used.
  */
 OO.ui.TitledElement = function OoUiTitledElement( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Properties
@@ -4734,8 +4782,8 @@ OO.ui.ClippableElement = function OoUiClippableElement( config ) {
        this.$clippableWindow = null;
        this.idealWidth = null;
        this.idealHeight = null;
-       this.onClippableContainerScrollHandler = OO.ui.bind( this.clip, this );
-       this.onClippableWindowResizeHandler = OO.ui.bind( this.clip, this );
+       this.onClippableContainerScrollHandler = this.clip.bind( this );
+       this.onClippableWindowResizeHandler = this.clip.bind( this );
 
        // Initialization
        this.setClippableElement( config.$clippable || this.$element );
@@ -4923,7 +4971,7 @@ OO.ui.ClippableElement.prototype.clip = function () {
  * @cfg {string|Function} [title] Title text or a function that returns text
  */
 OO.ui.Tool = function OoUiTool( toolGroup, config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -4938,6 +4986,8 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.toolbar = this.toolGroup.getToolbar();
        this.active = false;
        this.$title = this.$( '<span>' );
+       this.$titleText = this.$( '<span>' );
+       this.$accel = this.$( '<span>' );
        this.$link = this.$( '<a>' );
        this.title = null;
 
@@ -4945,7 +4995,11 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.toolbar.connect( this, { updateState: 'onUpdateState' } );
 
        // Initialization
-       this.$title.addClass( 'oo-ui-tool-title' );
+       this.$titleText.addClass( 'oo-ui-tool-title-text' );
+       this.$accel.addClass( 'oo-ui-tool-accel' );
+       this.$title
+               .addClass( 'oo-ui-tool-title' )
+               .append( this.$titleText, this.$accel );
        this.$link
                .addClass( 'oo-ui-tool-link' )
                .append( this.$icon, this.$title )
@@ -5077,7 +5131,7 @@ OO.ui.Tool.prototype.onSelect = function () {
 /**
  * Check if the button is active.
  *
- * @param {boolean} Button is active
+ * @return {boolean} Button is active
  */
 OO.ui.Tool.prototype.isActive = function () {
        return this.active;
@@ -5136,13 +5190,8 @@ OO.ui.Tool.prototype.updateTitle = function () {
                accel = this.toolbar.getToolAccelerator( this.constructor.static.name ),
                tooltipParts = [];
 
-       this.$title.empty()
-               .text( this.title )
-               .append(
-                       this.$( '<span>' )
-                               .addClass( 'oo-ui-tool-accel' )
-                               .text( accel )
-               );
+       this.$titleText.text( this.title );
+       this.$accel.text( accel );
 
        if ( titleTooltips && typeof this.title === 'string' && this.title.length ) {
                tooltipParts.push( this.title );
@@ -5203,7 +5252,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        // Events
        this.$element
                .add( this.$bar ).add( this.$group ).add( this.$actions )
-               .on( 'mousedown touchstart', OO.ui.bind( this.onPointerDown, this ) );
+               .on( 'mousedown touchstart', this.onPointerDown.bind( this ) );
 
        // Initialization
        this.$group.addClass( 'oo-ui-toolbar-tools' );
@@ -5298,7 +5347,7 @@ OO.ui.Toolbar.prototype.setup = function ( groups ) {
                                group.type = 'list';
                        }
                        if ( group.label === undefined ) {
-                               group.label = 'ooui-toolbar-more';
+                               group.label = OO.ui.msg( 'ooui-toolbar-more' );
                        }
                }
                // Check type has been registered
@@ -5415,14 +5464,14 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        this.exclude = config.exclude || [];
        this.promote = config.promote || [];
        this.demote = config.demote || [];
-       this.onCapturedMouseUpHandler = OO.ui.bind( this.onCapturedMouseUp, this );
+       this.onCapturedMouseUpHandler = this.onCapturedMouseUp.bind( this );
 
        // Events
        this.$element.on( {
-               'mousedown touchstart': OO.ui.bind( this.onPointerDown, this ),
-               'mouseup touchend': OO.ui.bind( this.onPointerUp, this ),
-               mouseover: OO.ui.bind( this.onMouseOver, this ),
-               mouseout: OO.ui.bind( this.onMouseOut, this )
+               'mousedown touchstart': this.onPointerDown.bind( this ),
+               'mouseup touchend': this.onPointerUp.bind( this ),
+               mouseover: this.onMouseOver.bind( this ),
+               mouseout: this.onMouseOut.bind( this )
        } );
        this.toolbar.getToolFactory().connect( this, { register: 'onToolFactoryRegister' } );
        this.aggregate( { disable: 'itemDisable' } );
@@ -6004,10 +6053,7 @@ OO.ui.ProcessDialog.prototype.initialize = function () {
                $: this.$,
                label: OO.ui.msg( 'ooui-dialog-process-dismiss' )
        } );
-       this.retryButton = new OO.ui.ButtonWidget( {
-               $: this.$,
-               label: OO.ui.msg( 'ooui-dialog-process-retry' )
-       } );
+       this.retryButton = new OO.ui.ButtonWidget( { $: this.$ } );
        this.$errors = this.$( '<div>' );
        this.$errorsTitle = this.$( '<div>' );
 
@@ -6075,7 +6121,7 @@ OO.ui.ProcessDialog.prototype.attachActions = function () {
  */
 OO.ui.ProcessDialog.prototype.executeAction = function ( action ) {
        OO.ui.ProcessDialog.super.prototype.executeAction.call( this, action )
-               .fail( OO.ui.bind( this.showErrors, this ) );
+               .fail( this.showErrors.bind( this ) );
 };
 
 /**
@@ -6101,12 +6147,16 @@ OO.ui.ProcessDialog.prototype.fitLabel = function () {
 OO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {
        var i, len, $item,
                items = [],
-               recoverable = true;
+               recoverable = true,
+               warning = false;
 
        for ( i = 0, len = errors.length; i < len; i++ ) {
                if ( !errors[i].isRecoverable() ) {
                        recoverable = false;
                }
+               if ( errors[i].isWarning() ) {
+                       warning = true;
+               }
                $item = this.$( '<div>' )
                        .addClass( 'oo-ui-processDialog-error' )
                        .append( errors[i].getMessage() );
@@ -6118,6 +6168,11 @@ OO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {
        } else {
                this.currentAction.setDisabled( true );
        }
+       if ( warning ) {
+               this.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-continue' ) );
+       } else {
+               this.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-retry' ) );
+       }
        this.retryButton.toggle( recoverable );
        this.$errorsTitle.after( this.$errorItems );
        this.$errors.show().scrollTop( 0 );
@@ -6146,7 +6201,7 @@ OO.ui.ProcessDialog.prototype.hideErrors = function () {
  * @cfg {boolean} [editable=false] Show controls for adding, removing and reordering pages
  */
 OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
-       // Initialize configuration
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -6184,7 +6239,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        }
        if ( this.autoFocus ) {
                // Event 'focus' does not bubble, but 'focusin' does
-               this.stackLayout.onDOMEvent( 'focusin', OO.ui.bind( this.onStackLayoutFocus, this ) );
+               this.stackLayout.onDOMEvent( 'focusin', this.onStackLayoutFocus.bind( this ) );
        }
 
        // Initialization
@@ -6562,28 +6617,28 @@ OO.ui.BookletLayout.prototype.updateOutlineWidget = function () {
 /**
  * Layout made of a field and optional label.
  *
- * @class
- * @extends OO.ui.Layout
- * @mixins OO.ui.LabelElement
- *
  * Available label alignment modes include:
  *  - left: Label is before the field and aligned away from it, best for when the user will be
  *    scanning for a specific label in a form with many fields
  *  - right: Label is before the field and aligned toward it, best for forms the user is very
  *    familiar with and will tab through field checking quickly to verify which field they are in
- *  - top: Label is before the field and above it, best for when the use will need to fill out all
+ *  - top: Label is before the field and above it, best for when the user will need to fill out all
  *    fields from top to bottom in a form with few fields
  *  - inline: Label is after the field and aligned toward it, best for small boolean fields like
  *    checkboxes or radio buttons
  *
+ * @class
+ * @extends OO.ui.Layout
+ * @mixins OO.ui.LabelElement
+ *
  * @constructor
- * @param {OO.ui.Widget} field Field widget
+ * @param {OO.ui.Widget} fieldWidget Field widget
  * @param {Object} [config] Configuration options
  * @cfg {string} [align='left'] Alignment mode, either 'left', 'right', 'top' or 'inline'
  * @cfg {string} [help] Explanatory text shown as a '?' icon.
  */
-OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
-       // Config initialization
+OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
+       // Configuration initialization
        config = $.extend( { align: 'left' }, config );
 
        // Parent constructor
@@ -6594,7 +6649,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
 
        // Properties
        this.$field = this.$( '<div>' );
-       this.field = field;
+       this.fieldWidget = fieldWidget;
        this.align = null;
        if ( config.help ) {
                this.popupButtonWidget = new OO.ui.PopupButtonWidget( {
@@ -6615,17 +6670,17 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
        }
 
        // Events
-       if ( this.field instanceof OO.ui.InputWidget ) {
-               this.$label.on( 'click', OO.ui.bind( this.onLabelClick, this ) );
+       if ( this.fieldWidget instanceof OO.ui.InputWidget ) {
+               this.$label.on( 'click', this.onLabelClick.bind( this ) );
        }
-       this.field.connect( this, { disable: 'onFieldDisable' } );
+       this.fieldWidget.connect( this, { disable: 'onFieldDisable' } );
 
        // Initialization
        this.$element.addClass( 'oo-ui-fieldLayout' );
        this.$field
                .addClass( 'oo-ui-fieldLayout-field' )
-               .toggleClass( 'oo-ui-fieldLayout-disable', this.field.isDisabled() )
-               .append( this.field.$element );
+               .toggleClass( 'oo-ui-fieldLayout-disable', this.fieldWidget.isDisabled() )
+               .append( this.fieldWidget.$element );
        this.setAlignment( config.align );
 };
 
@@ -6634,6 +6689,10 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
 OO.inheritClass( OO.ui.FieldLayout, OO.ui.Layout );
 OO.mixinClass( OO.ui.FieldLayout, OO.ui.LabelElement );
 
+/* Static Properties */
+
+OO.ui.FieldLayout.static.tagName = 'label';
+
 /* Methods */
 
 /**
@@ -6651,7 +6710,7 @@ OO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.FieldLayout.prototype.onLabelClick = function () {
-       this.field.simulateLabelClick();
+       this.fieldWidget.simulateLabelClick();
        return false;
 };
 
@@ -6661,12 +6720,13 @@ OO.ui.FieldLayout.prototype.onLabelClick = function () {
  * @return {OO.ui.Widget} Field widget
  */
 OO.ui.FieldLayout.prototype.getField = function () {
-       return this.field;
+       return this.fieldWidget;
 };
 
 /**
  * Set the field alignment mode.
  *
+ * @private
  * @param {string} value Alignment mode, either 'left', 'right', 'top' or 'inline'
  * @chainable
  */
@@ -6682,17 +6742,16 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
                } else {
                        this.$element.append( this.$help, this.$label, this.$field );
                }
-               // Set classes
+               // Set classes. The following classes can be used here:
+               // * oo-ui-fieldLayout-align-left
+               // * oo-ui-fieldLayout-align-right
+               // * oo-ui-fieldLayout-align-top
+               // * oo-ui-fieldLayout-align-inline
                if ( this.align ) {
                        this.$element.removeClass( 'oo-ui-fieldLayout-align-' + this.align );
                }
+               this.$element.addClass( 'oo-ui-fieldLayout-align-' + value );
                this.align = value;
-               // The following classes can be used here:
-               // oo-ui-fieldLayout-align-left
-               // oo-ui-fieldLayout-align-right
-               // oo-ui-fieldLayout-align-top
-               // oo-ui-fieldLayout-align-inline
-               this.$element.addClass( 'oo-ui-fieldLayout-align-' + this.align );
        }
 
        return this;
@@ -6705,17 +6764,16 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
  *
  * @class
  * @extends OO.ui.Layout
- * @mixins OO.ui.LabelElement
  * @mixins OO.ui.IconElement
+ * @mixins OO.ui.LabelElement
  * @mixins OO.ui.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [icon] Symbolic icon name
  * @cfg {OO.ui.FieldLayout[]} [items] Items to add
  */
 OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
-       // Config initialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -6742,10 +6800,6 @@ OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.IconElement );
 OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.LabelElement );
 OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.GroupElement );
 
-/* Static Properties */
-
-OO.ui.FieldsetLayout.static.tagName = 'div';
-
 /**
  * Layout with an HTML form.
  *
@@ -6754,6 +6808,9 @@ OO.ui.FieldsetLayout.static.tagName = 'div';
  *
  * @constructor
  * @param {Object} [config] Configuration options
+ * @cfg {string} [method] HTML form `method` attribute
+ * @cfg {string} [action] HTML form `action` attribute
+ * @cfg {string} [enctype] HTML form `enctype` attribute
  */
 OO.ui.FormLayout = function OoUiFormLayout( config ) {
        // Configuration initialization
@@ -6763,10 +6820,16 @@ OO.ui.FormLayout = function OoUiFormLayout( config ) {
        OO.ui.FormLayout.super.call( this, config );
 
        // Events
-       this.$element.on( 'submit', OO.ui.bind( this.onFormSubmit, this ) );
+       this.$element.on( 'submit', this.onFormSubmit.bind( this ) );
 
        // Initialization
-       this.$element.addClass( 'oo-ui-formLayout' );
+       this.$element
+               .addClass( 'oo-ui-formLayout' )
+               .attr( {
+                       method: config.method,
+                       action: config.action,
+                       enctype: config.enctype
+               } );
 };
 
 /* Setup */
@@ -6806,12 +6869,12 @@ OO.ui.FormLayout.prototype.onFormSubmit = function () {
  * @param {OO.ui.PanelLayout[]} panels Panels in the grid
  * @param {Object} [config] Configuration options
  * @cfg {number[]} [widths] Widths of columns as ratios
- * @cfg {number[]} [heights] Heights of columns as ratios
+ * @cfg {number[]} [heights] Heights of rows as ratios
  */
 OO.ui.GridLayout = function OoUiGridLayout( panels, config ) {
        var i, len, widths;
 
-       // Config initialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -6832,10 +6895,7 @@ OO.ui.GridLayout = function OoUiGridLayout( panels, config ) {
                this.layout( config.widths || [ 1 ], config.heights || [ 1 ] );
        } else {
                // Arrange in columns by default
-               widths = [];
-               for ( i = 0, len = this.panels.length; i < len; i++ ) {
-                       widths[i] = 1;
-               }
+               widths = this.panels.map( function () { return 1; } );
                this.layout( widths, [ 1 ] );
        }
 };
@@ -6854,10 +6914,6 @@ OO.inheritClass( OO.ui.GridLayout, OO.ui.Layout );
  * @event update
  */
 
-/* Static Properties */
-
-OO.ui.GridLayout.static.tagName = 'div';
-
 /* Methods */
 
 /**
@@ -6907,27 +6963,22 @@ OO.ui.GridLayout.prototype.layout = function ( widths, heights ) {
  * @fires update
  */
 OO.ui.GridLayout.prototype.update = function () {
-       var x, y, panel,
+       var x, y, panel, width, height, dimensions,
                i = 0,
-               left = 0,
                top = 0,
-               dimensions,
-               width = 0,
-               height = 0,
+               left = 0,
                cols = this.widths.length,
                rows = this.heights.length;
 
        for ( y = 0; y < rows; y++ ) {
                height = this.heights[y];
                for ( x = 0; x < cols; x++ ) {
-                       panel = this.panels[i];
                        width = this.widths[x];
+                       panel = this.panels[i];
                        dimensions = {
                                width: Math.round( width * 100 ) + '%',
                                height: Math.round( height * 100 ) + '%',
-                               top: Math.round( top * 100 ) + '%',
-                               // HACK: Work around IE bug by setting visibility: hidden; if width or height is zero
-                               visibility: width === 0 || height === 0 ? 'hidden' : ''
+                               top: Math.round( top * 100 ) + '%'
                        };
                        // If RTL, reverse:
                        if ( OO.ui.Element.getDir( this.$.context ) === 'rtl' ) {
@@ -6935,6 +6986,12 @@ OO.ui.GridLayout.prototype.update = function () {
                        } else {
                                dimensions.left = Math.round( left * 100 ) + '%';
                        }
+                       // HACK: Work around IE bug by setting visibility: hidden; if width or height is zero
+                       if ( width === 0 || height === 0 ) {
+                               dimensions.visibility = 'hidden';
+                       } else {
+                               dimensions.visibility = '';
+                       }
                        panel.$element.css( dimensions );
                        i++;
                        left += width;
@@ -6956,7 +7013,7 @@ OO.ui.GridLayout.prototype.update = function () {
  * @return {OO.ui.PanelLayout} The panel at the given postion
  */
 OO.ui.GridLayout.prototype.getPanel = function ( x, y ) {
-       return this.panels[( x * this.widths.length ) + y];
+       return this.panels[ ( x * this.widths.length ) + y ];
 };
 
 /**
@@ -6972,8 +7029,12 @@ OO.ui.GridLayout.prototype.getPanel = function ( x, y ) {
  * @cfg {boolean} [expanded=true] Expand size to fill the entire parent element
  */
 OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
-       // Config initialization
-       config = config || {};
+       // Configuration initialization
+       config = $.extend( {
+               scrollable: false,
+               padded: false,
+               expanded: true
+       }, config );
 
        // Parent constructor
        OO.ui.PanelLayout.super.call( this, config );
@@ -6983,12 +7044,10 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        if ( config.scrollable ) {
                this.$element.addClass( 'oo-ui-panelLayout-scrollable' );
        }
-
        if ( config.padded ) {
                this.$element.addClass( 'oo-ui-panelLayout-padded' );
        }
-
-       if ( config.expanded === undefined || config.expanded ) {
+       if ( config.expanded ) {
                this.$element.addClass( 'oo-ui-panelLayout-expanded' );
        }
 };
@@ -7125,7 +7184,7 @@ OO.ui.PageLayout.prototype.setActive = function ( active ) {
  * @cfg {OO.ui.Layout[]} [items] Layouts to add
  */
 OO.ui.StackLayout = function OoUiStackLayout( config ) {
-       // Config initialization
+       // Configuration initialization
        config = $.extend( { scrollable: true }, config );
 
        // Parent constructor
@@ -7346,13 +7405,13 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        // Properties
        this.active = false;
        this.dragging = false;
-       this.onBlurHandler = OO.ui.bind( this.onBlur, this );
+       this.onBlurHandler = this.onBlur.bind( this );
        this.$handle = this.$( '<span>' );
 
        // Events
        this.$handle.on( {
-               'mousedown touchstart': OO.ui.bind( this.onHandlePointerDown, this ),
-               'mouseup touchend': OO.ui.bind( this.onHandlePointerUp, this )
+               'mousedown touchstart': this.onHandlePointerDown.bind( this ),
+               'mouseup touchend': this.onHandlePointerUp.bind( this )
        } );
 
        // Initialization
@@ -7482,14 +7541,32 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
 /**
  * Drop down list layout of tools as labeled icon buttons.
  *
+ * This layout allows some tools to be collapsible, controlled by a "More" / "Fewer" option at the
+ * bottom of the main list. These are not automatically positioned at the bottom of the list; you
+ * may want to use the 'promote' and 'demote' configuration options to achieve this.
+ *
  * @class
  * @extends OO.ui.PopupToolGroup
  *
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
  * @param {Object} [config] Configuration options
+ * @cfg {Array} [allowCollapse] List of tools that can be collapsed. Remaining tools will be always
+ *  shown.
+ * @cfg {Array} [forceExpand] List of tools that *may not* be collapsed. All remaining tools will be
+ *  allowed to be collapsed.
+ * @cfg {boolean} [expanded=false] Whether the collapsible tools are expanded by default
  */
 OO.ui.ListToolGroup = function OoUiListToolGroup( toolbar, config ) {
+       // Configuration intialization
+       config = config || {};
+
+       // Properties (must be set before parent constructor, which calls #populate)
+       this.allowCollapse = config.allowCollapse;
+       this.forceExpand = config.forceExpand;
+       this.expanded = config.expanded !== undefined ? config.expanded : false;
+       this.collapsibleTools = [];
+
        // Parent constructor
        OO.ui.ListToolGroup.super.call( this, toolbar, config );
 
@@ -7507,6 +7584,96 @@ OO.ui.ListToolGroup.static.accelTooltips = true;
 
 OO.ui.ListToolGroup.static.name = 'list';
 
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+OO.ui.ListToolGroup.prototype.populate = function () {
+       var i, len, allowCollapse = [];
+
+       OO.ui.ListToolGroup.super.prototype.populate.call( this );
+
+       // Update the list of collapsible tools
+       if ( this.allowCollapse !== undefined ) {
+               allowCollapse = this.allowCollapse;
+       } else if ( this.forceExpand !== undefined ) {
+               allowCollapse = OO.simpleArrayDifference( Object.keys( this.tools ), this.forceExpand );
+       }
+
+       this.collapsibleTools = [];
+       for ( i = 0, len = allowCollapse.length; i < len; i++ ) {
+               if ( this.tools[ allowCollapse[i] ] !== undefined ) {
+                       this.collapsibleTools.push( this.tools[ allowCollapse[i] ] );
+               }
+       }
+
+       // Keep at the end, even when tools are added
+       this.$group.append( this.getExpandCollapseTool().$element );
+
+       this.getExpandCollapseTool().toggle( this.collapsibleTools.length !== 0 );
+
+       // Calling jQuery's .hide() and then .show() on a detached element caches the default value of its
+       // 'display' attribute and restores it, and the tool uses a <span> and can be hidden and re-shown.
+       // Is this a jQuery bug? http://jsfiddle.net/gtj4hu3h/
+       if ( this.getExpandCollapseTool().$element.css( 'display' ) === 'inline' ) {
+               this.getExpandCollapseTool().$element.css( 'display', 'inline-block' );
+       }
+
+       this.updateCollapsibleState();
+};
+
+OO.ui.ListToolGroup.prototype.getExpandCollapseTool = function () {
+       if ( this.expandCollapseTool === undefined ) {
+               var ExpandCollapseTool = function () {
+                       ExpandCollapseTool.super.apply( this, arguments );
+               };
+
+               OO.inheritClass( ExpandCollapseTool, OO.ui.Tool );
+
+               ExpandCollapseTool.prototype.onSelect = function () {
+                       this.toolGroup.expanded = !this.toolGroup.expanded;
+                       this.toolGroup.updateCollapsibleState();
+                       this.setActive( false );
+               };
+               ExpandCollapseTool.prototype.onUpdateState = function () {
+                       // Do nothing. Tool interface requires an implementation of this function.
+               };
+
+               ExpandCollapseTool.static.name = 'more-fewer';
+
+               this.expandCollapseTool = new ExpandCollapseTool( this );
+       }
+       return this.expandCollapseTool;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.ListToolGroup.prototype.onPointerUp = function ( e ) {
+       var ret = OO.ui.ListToolGroup.super.prototype.onPointerUp.call( this, e );
+
+       // Do not close the popup when the user wants to show more/fewer tools
+       if ( this.$( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length ) {
+               // Prevent the popup list from being hidden
+               this.setActive( true );
+       }
+
+       return ret;
+};
+
+OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
+       var i, len;
+
+       this.getExpandCollapseTool()
+               .setIcon( this.expanded ? 'collapse' : 'expand' )
+               .setTitle( OO.ui.msg( this.expanded ? 'ooui-toolgroup-collapse' : 'ooui-toolgroup-expand' ) );
+
+       for ( i = 0, len = this.collapsibleTools.length; i < len; i++ ) {
+               this.collapsibleTools[i].toggle( this.expanded );
+       }
+};
+
 /**
  * Drop down menu layout of tools as selectable menu items.
  *
@@ -7717,21 +7884,26 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
  *
  * Subclasses must handle `select` and `choose` events on #lookupMenu to make use of selections.
  *
+ * Subclasses that set the value of #lookupInput from their `choose` or `select` handler should
+ * be aware that this will cause new suggestions to be looked up for the new value. If this is
+ * not desired, disable lookups with #setLookupsDisabled, then set the value, then re-enable lookups.
+ *
  * @class
  * @abstract
  *
  * @constructor
  * @param {OO.ui.TextInputWidget} input Input widget
  * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$overlay=this.$( 'body' )] Overlay layer
+ * @cfg {jQuery} [$overlay] Overlay for dropdown; defaults to relative positioning
+ * @cfg {jQuery} [$container=input.$element] Element to render menu under
  */
 OO.ui.LookupInputWidget = function OoUiLookupInputWidget( input, config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Properties
        this.lookupInput = input;
-       this.$overlay = config.$overlay || this.$( 'body,.oo-ui-window-overlay' ).last();
+       this.$overlay = config.$overlay || this.$element;
        this.lookupMenu = new OO.ui.TextInputMenuWidget( this, {
                $: OO.ui.Element.getJQuery( this.$overlay ),
                input: this.lookupInput,
@@ -7740,21 +7912,22 @@ OO.ui.LookupInputWidget = function OoUiLookupInputWidget( input, config ) {
        this.lookupCache = {};
        this.lookupQuery = null;
        this.lookupRequest = null;
-       this.populating = false;
+       this.lookupsDisabled = false;
+       this.lookupInputFocused = false;
 
        // Events
-       this.$overlay.append( this.lookupMenu.$element );
-
        this.lookupInput.$input.on( {
-               focus: OO.ui.bind( this.onLookupInputFocus, this ),
-               blur: OO.ui.bind( this.onLookupInputBlur, this ),
-               mousedown: OO.ui.bind( this.onLookupInputMouseDown, this )
+               focus: this.onLookupInputFocus.bind( this ),
+               blur: this.onLookupInputBlur.bind( this ),
+               mousedown: this.onLookupInputMouseDown.bind( this )
        } );
        this.lookupInput.connect( this, { change: 'onLookupInputChange' } );
+       this.lookupMenu.connect( this, { toggle: 'onLookupMenuToggle' } );
 
        // Initialization
        this.$element.addClass( 'oo-ui-lookupWidget' );
        this.lookupMenu.$element.addClass( 'oo-ui-lookupWidget-menu' );
+       this.$overlay.append( this.lookupMenu.$element );
 };
 
 /* Methods */
@@ -7765,7 +7938,8 @@ OO.ui.LookupInputWidget = function OoUiLookupInputWidget( input, config ) {
  * @param {jQuery.Event} e Input focus event
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputFocus = function () {
-       this.openLookupMenu();
+       this.lookupInputFocused = true;
+       this.populateLookupMenu();
 };
 
 /**
@@ -7774,7 +7948,8 @@ OO.ui.LookupInputWidget.prototype.onLookupInputFocus = function () {
  * @param {jQuery.Event} e Input blur event
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputBlur = function () {
-       this.lookupMenu.toggle( false );
+       this.closeLookupMenu();
+       this.lookupInputFocused = false;
 };
 
 /**
@@ -7783,7 +7958,13 @@ OO.ui.LookupInputWidget.prototype.onLookupInputBlur = function () {
  * @param {jQuery.Event} e Input mouse down event
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputMouseDown = function () {
-       this.openLookupMenu();
+       // Only open the menu if the input was already focused.
+       // This way we allow the user to open the menu again after closing it with Esc
+       // by clicking in the input. Opening (and populating) the menu when initially
+       // clicking into the input is handled by the focus handler.
+       if ( this.lookupInputFocused && !this.lookupMenu.isVisible() ) {
+               this.populateLookupMenu();
+       }
 };
 
 /**
@@ -7792,7 +7973,23 @@ OO.ui.LookupInputWidget.prototype.onLookupInputMouseDown = function () {
  * @param {string} value New input value
  */
 OO.ui.LookupInputWidget.prototype.onLookupInputChange = function () {
-       this.openLookupMenu();
+       if ( this.lookupInputFocused ) {
+               this.populateLookupMenu();
+       }
+};
+
+/**
+ * Handle the lookup menu being shown/hidden.
+ * @param {boolean} visible Whether the lookup menu is now visible.
+ */
+OO.ui.LookupInputWidget.prototype.onLookupMenuToggle = function ( visible ) {
+       if ( !visible ) {
+               // When the menu is hidden, abort any active request and clear the menu.
+               // This has to be done here in addition to closeLookupMenu(), because
+               // MenuWidget will close itself when the user presses Esc.
+               this.abortLookupRequest();
+               this.lookupMenu.clearItems();
+       }
 };
 
 /**
@@ -7805,35 +8002,61 @@ OO.ui.LookupInputWidget.prototype.getLookupMenu = function () {
 };
 
 /**
- * Open the menu.
+ * Disable or re-enable lookups.
+ *
+ * When lookups are disabled, calls to #populateLookupMenu will be ignored.
+ *
+ * @param {boolean} disabled Disable lookups
+ */
+OO.ui.LookupInputWidget.prototype.setLookupsDisabled = function ( disabled ) {
+       this.lookupsDisabled = !!disabled;
+};
+
+/**
+ * Open the menu. If there are no entries in the menu, this does nothing.
  *
  * @chainable
  */
 OO.ui.LookupInputWidget.prototype.openLookupMenu = function () {
-       var value = this.lookupInput.getValue();
-
-       if ( this.lookupMenu.$input.is( ':focus' ) && $.trim( value ) !== '' ) {
-               this.populateLookupMenu();
+       if ( !this.lookupMenu.isEmpty() ) {
                this.lookupMenu.toggle( true );
-       } else {
-               this.lookupMenu
-                       .clearItems()
-                       .toggle( false );
        }
+       return this;
+};
 
+/**
+ * Close the menu, empty it, and abort any pending request.
+ *
+ * @chainable
+ */
+OO.ui.LookupInputWidget.prototype.closeLookupMenu = function () {
+       this.lookupMenu.toggle( false );
+       this.abortLookupRequest();
+       this.lookupMenu.clearItems();
        return this;
 };
 
 /**
- * Populate lookup menu with current information.
+ * Request menu items based on the input's current value, and when they arrive,
+ * populate the menu with these items and show the menu.
+ *
+ * If lookups have been disabled with #setLookupsDisabled, this function does nothing.
  *
  * @chainable
  */
 OO.ui.LookupInputWidget.prototype.populateLookupMenu = function () {
-       var widget = this;
+       var widget = this,
+               value = this.lookupInput.getValue();
+
+       if ( this.lookupsDisabled ) {
+               return;
+       }
 
-       if ( !this.populating ) {
-               this.populating = true;
+       // If the input is empty, clear the menu
+       if ( value === '' ) {
+               this.closeLookupMenu();
+       // Skip population if there is already a request pending for the current value
+       } else if ( value !== this.lookupQuery ) {
                this.getLookupMenuItems()
                        .done( function ( items ) {
                                widget.lookupMenu.clearItems();
@@ -7842,15 +8065,12 @@ OO.ui.LookupInputWidget.prototype.populateLookupMenu = function () {
                                                .addItems( items )
                                                .toggle( true );
                                        widget.initializeLookupMenuSelection();
-                                       widget.openLookupMenu();
                                } else {
-                                       widget.lookupMenu.toggle( true );
+                                       widget.lookupMenu.toggle( false );
                                }
-                               widget.populating = false;
                        } )
                        .fail( function () {
                                widget.lookupMenu.clearItems();
-                               widget.populating = false;
                        } );
        }
 
@@ -7858,7 +8078,7 @@ OO.ui.LookupInputWidget.prototype.populateLookupMenu = function () {
 };
 
 /**
- * Set selection in the lookup menu with current information.
+ * Select and highlight the first selectable item in the menu.
  *
  * @chainable
  */
@@ -7873,50 +8093,74 @@ OO.ui.LookupInputWidget.prototype.initializeLookupMenuSelection = function () {
  * Get lookup menu items for the current query.
  *
  * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument
- * of the done event
+ * of the done event. If the request was aborted to make way for a subsequent request,
+ * this promise will not be rejected: it will remain pending forever.
  */
 OO.ui.LookupInputWidget.prototype.getLookupMenuItems = function () {
        var widget = this,
                value = this.lookupInput.getValue(),
-               deferred = $.Deferred();
+               deferred = $.Deferred(),
+               ourRequest;
 
-       if ( value && value !== this.lookupQuery ) {
-               // Abort current request if query has changed
-               if ( this.lookupRequest ) {
-                       this.lookupRequest.abort();
-                       this.lookupQuery = null;
-                       this.lookupRequest = null;
-               }
-               if ( value in this.lookupCache ) {
-                       deferred.resolve( this.getLookupMenuItemsFromData( this.lookupCache[value] ) );
-               } else {
-                       this.lookupQuery = value;
-                       this.lookupRequest = this.getLookupRequest()
-                               .always( function () {
+       this.abortLookupRequest();
+       if ( value in this.lookupCache ) {
+               deferred.resolve( this.getLookupMenuItemsFromData( this.lookupCache[value] ) );
+       } else {
+               this.lookupInput.pushPending();
+               this.lookupQuery = value;
+               ourRequest = this.lookupRequest = this.getLookupRequest();
+               ourRequest
+                       .always( function () {
+                               // We need to pop pending even if this is an old request, otherwise
+                               // the widget will remain pending forever.
+                               // TODO: this assumes that an aborted request will fail or succeed soon after
+                               // being aborted, or at least eventually. It would be nice if we could popPending()
+                               // at abort time, but only if we knew that we hadn't already called popPending()
+                               // for that request.
+                               widget.lookupInput.popPending();
+                       } )
+                       .done( function ( data ) {
+                               // If this is an old request (and aborting it somehow caused it to still succeed),
+                               // ignore its success completely
+                               if ( ourRequest === widget.lookupRequest ) {
                                        widget.lookupQuery = null;
                                        widget.lookupRequest = null;
-                               } )
-                               .done( function ( data ) {
                                        widget.lookupCache[value] = widget.getLookupCacheItemFromData( data );
                                        deferred.resolve( widget.getLookupMenuItemsFromData( widget.lookupCache[value] ) );
-                               } )
-                               .fail( function () {
+                               }
+                       } )
+                       .fail( function () {
+                               // If this is an old request (or a request failing because it's being aborted),
+                               // ignore its failure completely
+                               if ( ourRequest === widget.lookupRequest ) {
+                                       widget.lookupQuery = null;
+                                       widget.lookupRequest = null;
                                        deferred.reject();
-                               } );
-                       this.pushPending();
-                       this.lookupRequest.always( function () {
-                               widget.popPending();
+                               }
                        } );
-               }
        }
        return deferred.promise();
 };
 
+/**
+ * Abort the currently pending lookup request, if any.
+ */
+OO.ui.LookupInputWidget.prototype.abortLookupRequest = function () {
+       var oldRequest = this.lookupRequest;
+       if ( oldRequest ) {
+               // First unset this.lookupRequest to the fail handler will notice
+               // that the request is no longer current
+               this.lookupRequest = null;
+               this.lookupQuery = null;
+               oldRequest.abort();
+       }
+};
+
 /**
  * Get a new request object of the current lookup query value.
  *
  * @abstract
- * @return {jqXHR} jQuery AJAX object, or promise object with an .abort() method
+ * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
  */
 OO.ui.LookupInputWidget.prototype.getLookupRequest = function () {
        // Stub, implemented in subclass
@@ -7924,26 +8168,25 @@ OO.ui.LookupInputWidget.prototype.getLookupRequest = function () {
 };
 
 /**
- * Handle successful lookup request.
- *
- * Overriding methods should call #populateLookupMenu when results are available and cache results
- * for future lookups in #lookupCache as an array of #OO.ui.MenuItemWidget objects.
+ * Get a list of menu item widgets from the data stored by the lookup request's done handler.
  *
  * @abstract
- * @param {Mixed} data Response from server
+ * @param {Mixed} data Cached result data, usually an array
+ * @return {OO.ui.MenuItemWidget[]} Menu items
  */
-OO.ui.LookupInputWidget.prototype.onLookupRequestDone = function () {
+OO.ui.LookupInputWidget.prototype.getLookupMenuItemsFromData = function () {
        // Stub, implemented in subclass
+       return [];
 };
 
 /**
- * Get a list of menu item widgets from the data stored by the lookup request's done handler.
+ * Get lookup cache item from server response data.
  *
  * @abstract
- * @param {Mixed} data Cached result data, usually an array
- * @return {OO.ui.MenuItemWidget[]} Menu items
+ * @param {Mixed} data Response from server
+ * @return {Mixed} Cached result data
  */
-OO.ui.LookupInputWidget.prototype.getLookupMenuItemsFromData = function () {
+OO.ui.LookupInputWidget.prototype.getLookupCacheItemFromData = function () {
        // Stub, implemented in subclass
        return [];
 };
@@ -8134,9 +8377,12 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {OO.ui.ButtonWidget} [items] Buttons to add
+ * @cfg {OO.ui.ButtonWidget[]} [items] Buttons to add
  */
 OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
        // Parent constructor
        OO.ui.ButtonGroupWidget.super.call( this, config );
 
@@ -8184,7 +8430,7 @@ OO.ui.ButtonWidget = function OoUiButtonWidget( config ) {
        OO.ui.IconElement.call( this, config );
        OO.ui.IndicatorElement.call( this, config );
        OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, config, $.extend( {}, config, { $titled: this.$button } ) );
+       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$button } ) );
        OO.ui.FlaggedElement.call( this, config );
 
        // Properties
@@ -8194,8 +8440,8 @@ OO.ui.ButtonWidget = function OoUiButtonWidget( config ) {
 
        // Events
        this.$button.on( {
-               click: OO.ui.bind( this.onClick, this ),
-               keypress: OO.ui.bind( this.onKeyPress, this )
+               click: this.onClick.bind( this ),
+               keypress: this.onKeyPress.bind( this )
        } );
 
        // Initialization
@@ -8249,7 +8495,7 @@ OO.ui.ButtonWidget.prototype.onClick = function () {
  */
 OO.ui.ButtonWidget.prototype.onKeyPress = function ( e ) {
        if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
-               this.onClick();
+               this.emit( 'click' );
                if ( this.isHyperlink ) {
                        return true;
                }
@@ -8331,7 +8577,7 @@ OO.ui.ButtonWidget.prototype.setTarget = function ( target ) {
  * @cfg {boolean} [framed=false] Render button with a frame
  */
 OO.ui.ActionWidget = function OoUiActionWidget( config ) {
-       // Config intialization
+       // Configuration initialization
        config = $.extend( { framed: false }, config );
 
        // Parent constructor
@@ -8580,137 +8826,61 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
 };
 
 /**
- * Icon widget.
+ * Dropdown menu of options.
  *
- * See OO.ui.IconElement for more information.
+ * Dropdown menus provide a control for accessing a menu and compose a menu within the widget, which
+ * can be accessed using the #getMenu method.
+ *
+ * Use with OO.ui.MenuItemWidget.
  *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconElement
+ * @mixins OO.ui.IndicatorElement
+ * @mixins OO.ui.LabelElement
  * @mixins OO.ui.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
+ * @cfg {Object} [menu] Configuration options to pass to menu widget
  */
-OO.ui.IconWidget = function OoUiIconWidget( config ) {
-       // Config intialization
-       config = config || {};
+OO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {
+       // Configuration initialization
+       config = $.extend( { indicator: 'down' }, config );
 
        // Parent constructor
-       OO.ui.IconWidget.super.call( this, config );
+       OO.ui.DropdownWidget.super.call( this, config );
 
        // Mixin constructors
-       OO.ui.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
-
-       // Initialization
-       this.$element.addClass( 'oo-ui-iconWidget' );
-};
-
-/* Setup */
-
-OO.inheritClass( OO.ui.IconWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.IconWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
-
-/* Static Properties */
-
-OO.ui.IconWidget.static.tagName = 'span';
-
-/**
- * Indicator widget.
- *
- * See OO.ui.IndicatorElement for more information.
- *
- * @class
- * @extends OO.ui.Widget
- * @mixins OO.ui.IndicatorElement
- * @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.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
-
-       // Initialization
-       this.$element.addClass( 'oo-ui-indicatorWidget' );
-};
-
-/* Setup */
-
-OO.inheritClass( OO.ui.IndicatorWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.TitledElement );
-
-/* Static Properties */
-
-OO.ui.IndicatorWidget.static.tagName = 'span';
-
-/**
- * Inline menu of options.
- *
- * Inline menus provide a control for accessing a menu and compose a menu within the widget, which
- * can be accessed using the #getMenu method.
- *
- * Use with OO.ui.MenuOptionWidget.
- *
- * @class
- * @extends OO.ui.Widget
- * @mixins OO.ui.IconElement
- * @mixins OO.ui.IndicatorElement
- * @mixins OO.ui.LabelElement
- * @mixins OO.ui.TitledElement
- *
- * @constructor
- * @param {Object} [config] Configuration options
- * @cfg {Object} [menu] Configuration options to pass to menu widget
- */
-OO.ui.InlineMenuWidget = function OoUiInlineMenuWidget( config ) {
-       // Configuration initialization
-       config = $.extend( { indicator: 'down' }, config );
-
-       // Parent constructor
-       OO.ui.InlineMenuWidget.super.call( this, config );
-
-       // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.IndicatorElement.call( this, config );
-       OO.ui.LabelElement.call( this, config );
-       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );
+       OO.ui.IconElement.call( this, config );
+       OO.ui.IndicatorElement.call( this, config );
+       OO.ui.LabelElement.call( this, config );
+       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$label } ) );
 
        // Properties
        this.menu = new OO.ui.MenuWidget( $.extend( { $: this.$, widget: this }, config.menu ) );
        this.$handle = this.$( '<span>' );
 
        // Events
-       this.$element.on( { click: OO.ui.bind( this.onClick, this ) } );
+       this.$element.on( { click: this.onClick.bind( this ) } );
        this.menu.connect( this, { select: 'onMenuSelect' } );
 
        // Initialization
        this.$handle
-               .addClass( 'oo-ui-inlineMenuWidget-handle' )
+               .addClass( 'oo-ui-dropdownWidget-handle' )
                .append( this.$icon, this.$label, this.$indicator );
        this.$element
-               .addClass( 'oo-ui-inlineMenuWidget' )
+               .addClass( 'oo-ui-dropdownWidget' )
                .append( this.$handle, this.menu.$element );
 };
 
 /* Setup */
 
-OO.inheritClass( OO.ui.InlineMenuWidget, OO.ui.Widget );
-OO.mixinClass( OO.ui.InlineMenuWidget, OO.ui.IconElement );
-OO.mixinClass( OO.ui.InlineMenuWidget, OO.ui.IndicatorElement );
-OO.mixinClass( OO.ui.InlineMenuWidget, OO.ui.LabelElement );
-OO.mixinClass( OO.ui.InlineMenuWidget, OO.ui.TitledElement );
+OO.inheritClass( OO.ui.DropdownWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.IconElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.IndicatorElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.LabelElement );
+OO.mixinClass( OO.ui.DropdownWidget, OO.ui.TitledElement );
 
 /* Methods */
 
@@ -8719,7 +8889,7 @@ OO.mixinClass( OO.ui.InlineMenuWidget, OO.ui.TitledElement );
  *
  * @return {OO.ui.MenuWidget} Menu of widget
  */
-OO.ui.InlineMenuWidget.prototype.getMenu = function () {
+OO.ui.DropdownWidget.prototype.getMenu = function () {
        return this.menu;
 };
 
@@ -8728,7 +8898,7 @@ OO.ui.InlineMenuWidget.prototype.getMenu = function () {
  *
  * @param {OO.ui.MenuItemWidget} item Selected menu item
  */
-OO.ui.InlineMenuWidget.prototype.onMenuSelect = function ( item ) {
+OO.ui.DropdownWidget.prototype.onMenuSelect = function ( item ) {
        var selectedLabel;
 
        if ( !item ) {
@@ -8750,7 +8920,7 @@ OO.ui.InlineMenuWidget.prototype.onMenuSelect = function ( item ) {
  *
  * @param {jQuery.Event} e Mouse click event
  */
-OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
+OO.ui.DropdownWidget.prototype.onClick = function ( e ) {
        // Skip clicks within the menu
        if ( $.contains( this.menu.$element[0], e.target ) ) {
                return;
@@ -8766,6 +8936,82 @@ OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
        return false;
 };
 
+/**
+ * Icon widget.
+ *
+ * See OO.ui.IconElement for more information.
+ *
+ * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.IconElement
+ * @mixins OO.ui.TitledElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.IconWidget = function OoUiIconWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.IconWidget.super.call( this, config );
+
+       // Mixin constructors
+       OO.ui.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );
+       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-iconWidget' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.IconWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.IconWidget, OO.ui.IconElement );
+OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
+
+/* Static Properties */
+
+OO.ui.IconWidget.static.tagName = 'span';
+
+/**
+ * Indicator widget.
+ *
+ * See OO.ui.IndicatorElement for more information.
+ *
+ * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.IndicatorElement
+ * @mixins OO.ui.TitledElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.IndicatorWidget.super.call( this, config );
+
+       // Mixin constructors
+       OO.ui.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );
+       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$element } ) );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-indicatorWidget' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.IndicatorWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.IndicatorElement );
+OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.TitledElement );
+
+/* Static Properties */
+
+OO.ui.IndicatorWidget.static.tagName = 'span';
+
 /**
  * Base class for input widgets.
  *
@@ -8778,12 +9024,11 @@ OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
  * @param {Object} [config] Configuration options
  * @cfg {string} [name=''] HTML input name
  * @cfg {string} [value=''] Input value
- * @cfg {boolean} [readOnly=false] Prevent changes
  * @cfg {Function} [inputFilter] Filter function to apply to the input. Takes a string argument and returns a string.
  */
 OO.ui.InputWidget = function OoUiInputWidget( config ) {
-       // Config intialization
-       config = $.extend( { readOnly: false }, config );
+       // Configuration initialization
+       config = config || {};
 
        // Parent constructor
        OO.ui.InputWidget.super.call( this, config );
@@ -8794,17 +9039,15 @@ OO.ui.InputWidget = function OoUiInputWidget( config ) {
        // Properties
        this.$input = this.getInputElement( config );
        this.value = '';
-       this.readOnly = false;
        this.inputFilter = config.inputFilter;
 
        // Events
-       this.$input.on( 'keydown mouseup cut paste change input select', OO.ui.bind( this.onEdit, this ) );
+       this.$input.on( 'keydown mouseup cut paste change input select', this.onEdit.bind( this ) );
 
        // Initialization
        this.$input
                .attr( 'name', config.name )
                .prop( 'disabled', this.isDisabled() );
-       this.setReadOnly( config.readOnly );
        this.$element.addClass( 'oo-ui-inputWidget' ).append( this.$input );
        this.setValue( config.value );
 };
@@ -8818,7 +9061,7 @@ OO.mixinClass( OO.ui.InputWidget, OO.ui.FlaggedElement );
 
 /**
  * @event change
- * @param value
+ * @param {string} value
  */
 
 /* Methods */
@@ -8826,6 +9069,7 @@ OO.mixinClass( OO.ui.InputWidget, OO.ui.FlaggedElement );
 /**
  * Get input element.
  *
+ * @private
  * @param {Object} [config] Configuration options
  * @return {jQuery} Input element
  */
@@ -8896,8 +9140,9 @@ OO.ui.InputWidget.prototype.setValue = function ( value ) {
 /**
  * Sanitize incoming value.
  *
- * Ensures value is a string, and converts undefined and null to empty strings.
+ * Ensures value is a string, and converts undefined and null to empty string.
  *
+ * @private
  * @param {string} value Original value
  * @return {string} Sanitized value
  */
@@ -8924,29 +9169,6 @@ OO.ui.InputWidget.prototype.simulateLabelClick = function () {
        }
 };
 
-/**
- * Check if the widget is read-only.
- *
- * @return {boolean}
- */
-OO.ui.InputWidget.prototype.isReadOnly = function () {
-       return this.readOnly;
-};
-
-/**
- * Set the read-only state of the widget.
- *
- * This should probably change the widgets's appearance and prevent it from being used.
- *
- * @param {boolean} state Make input read-only
- * @chainable
- */
-OO.ui.InputWidget.prototype.setReadOnly = function ( state ) {
-       this.readOnly = !!state;
-       this.$input.prop( 'readOnly', this.readOnly );
-       return this;
-};
-
 /**
  * @inheritdoc
  */
@@ -8978,6 +9200,160 @@ OO.ui.InputWidget.prototype.blur = function () {
        return this;
 };
 
+/**
+ * A button that is an input widget. Intended to be used within a OO.ui.FormLayout.
+ *
+ * @class
+ * @extends OO.ui.InputWidget
+ * @mixins OO.ui.ButtonElement
+ * @mixins OO.ui.IconElement
+ * @mixins OO.ui.IndicatorElement
+ * @mixins OO.ui.LabelElement
+ * @mixins OO.ui.TitledElement
+ * @mixins OO.ui.FlaggedElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {string} [type='button'] HTML tag `type` attribute, may be 'button', 'submit' or 'reset'
+ * @cfg {boolean} [useInputTag=false] Whether to use `<input/>` rather than `<button/>`. Only useful
+ *  if you need IE 6 support in a form with multiple buttons. If you use this option, icons and
+ *  indicators will not be displayed, it won't be possible to have a non-plaintext label, and it
+ *  won't be possible to set a value (which will internally become identical to the label).
+ */
+OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
+       // Configuration initialization
+       config = $.extend( { type: 'button', useInputTag: false }, config );
+
+       // Properties (must be set before parent constructor, which calls #setValue)
+       this.useInputTag = config.useInputTag;
+
+       // Parent constructor
+       OO.ui.ButtonInputWidget.super.call( this, config );
+
+       // Mixin constructors
+       OO.ui.ButtonElement.call( this, $.extend( {}, config, { $button: this.$input } ) );
+       OO.ui.IconElement.call( this, config );
+       OO.ui.IndicatorElement.call( this, config );
+       OO.ui.LabelElement.call( this, config );
+       OO.ui.TitledElement.call( this, $.extend( {}, config, { $titled: this.$input } ) );
+       OO.ui.FlaggedElement.call( this, config );
+
+       // Events
+       this.$input.on( {
+               click: this.onClick.bind( this ),
+               keypress: this.onKeyPress.bind( this )
+       } );
+
+       // Initialization
+       if ( !config.useInputTag ) {
+               this.$input.append( this.$icon, this.$label, this.$indicator );
+       }
+       this.$element.addClass( 'oo-ui-buttonInputWidget' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.ButtonInputWidget, OO.ui.InputWidget );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.ButtonElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.IconElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.IndicatorElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.LabelElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.TitledElement );
+OO.mixinClass( OO.ui.ButtonInputWidget, OO.ui.FlaggedElement );
+
+/* Events */
+
+/**
+ * @event click
+ */
+
+/* Methods */
+
+/**
+ * Get input element.
+ *
+ * @private
+ * @param {Object} [config] Configuration options
+ * @return {jQuery} Input element
+ */
+OO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {
+       // Configuration intialization
+       config = config || {};
+
+       var html = '<' + ( config.useInputTag ? 'input' : 'button' ) + ' type="' + config.type + '">';
+
+       return this.$( html );
+};
+
+/**
+ * Set label value.
+ *
+ * Overridden to support setting the 'value' of `<input/>` elements.
+ *
+ * @param {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
+ *  text; or null for no label
+ * @chainable
+ */
+OO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {
+       OO.ui.LabelElement.prototype.setLabel.call( this, label );
+
+       if ( this.useInputTag ) {
+               if ( typeof label === 'function' ) {
+                       label = OO.ui.resolveMsg( label );
+               }
+               if ( label instanceof jQuery ) {
+                       label = label.text();
+               }
+               if ( !label ) {
+                       label = '';
+               }
+               this.$input.val( label );
+       }
+
+       return this;
+};
+
+/**
+ * Set the value of the input.
+ *
+ * Overridden to disable for `<input/>` elements, which have value identical to the label.
+ *
+ * @param {string} value New value
+ * @chainable
+ */
+OO.ui.ButtonInputWidget.prototype.setValue = function ( value ) {
+       if ( !this.useInputTag ) {
+               OO.ui.ButtonInputWidget.super.prototype.setValue.call( this, value );
+       }
+       return this;
+};
+
+/**
+ * Handles mouse click events.
+ *
+ * @param {jQuery.Event} e Mouse click event
+ * @fires click
+ */
+OO.ui.ButtonInputWidget.prototype.onClick = function () {
+       if ( !this.isDisabled() ) {
+               this.emit( 'click' );
+       }
+       return false;
+};
+
+/**
+ * Handles keypress events.
+ *
+ * @param {jQuery.Event} e Keypress event
+ * @fires click
+ */
+OO.ui.ButtonInputWidget.prototype.onKeyPress = function ( e ) {
+       if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
+               this.emit( 'click' );
+       }
+       return false;
+};
+
 /**
  * Checkbox input widget.
  *
@@ -8999,13 +9375,12 @@ OO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) {
 
 OO.inheritClass( OO.ui.CheckboxInputWidget, OO.ui.InputWidget );
 
-/* Events */
-
 /* Methods */
 
 /**
  * Get input element.
  *
+ * @private
  * @return {jQuery} Input element
  */
 OO.ui.CheckboxInputWidget.prototype.getInputElement = function () {
@@ -9022,7 +9397,9 @@ OO.ui.CheckboxInputWidget.prototype.getValue = function () {
 };
 
 /**
- * Set value
+ * Set checked state of the checkbox
+ *
+ * @param {boolean} value New value
  */
 OO.ui.CheckboxInputWidget.prototype.setValue = function ( value ) {
        value = !!value;
@@ -9057,7 +9434,9 @@ OO.ui.CheckboxInputWidget.prototype.onEdit = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
+ * @cfg {string} [type='text'] HTML tag `type` attribute
  * @cfg {string} [placeholder] Placeholder text
+ * @cfg {boolean} [readOnly=false] Prevent changes
  * @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
@@ -9066,7 +9445,7 @@ OO.ui.CheckboxInputWidget.prototype.onEdit = function () {
  */
 OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        // Configuration initialization
-       config = config || {};
+       config = $.extend( { readOnly: false }, config );
 
        // Parent constructor
        OO.ui.TextInputWidget.super.call( this, config );
@@ -9077,6 +9456,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        OO.ui.PendingElement.call( this, config );
 
        // Properties
+       this.readOnly = false;
        this.multiline = !!config.multiline;
        this.autosize = !!config.autosize;
        this.maxRows = config.maxRows !== undefined ? config.maxRows : 10;
@@ -9086,17 +9466,18 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
 
        // Events
        this.$input.on( {
-               keypress: OO.ui.bind( this.onKeyPress, this ),
-               blur: OO.ui.bind( this.setValidityFlag, this )
+               keypress: this.onKeyPress.bind( this ),
+               blur: this.setValidityFlag.bind( this )
        } );
-       this.$element.on( 'DOMNodeInsertedIntoDocument', OO.ui.bind( this.onElementAttach, this ) );
-       this.$icon.on( 'mousedown', OO.ui.bind( this.onIconMouseDown, this ) );
-       this.$indicator.on( 'mousedown', OO.ui.bind( this.onIndicatorMouseDown, this ) );
+       this.$element.on( 'DOMNodeInsertedIntoDocument', this.onElementAttach.bind( this ) );
+       this.$icon.on( 'mousedown', this.onIconMouseDown.bind( this ) );
+       this.$indicator.on( 'mousedown', this.onIndicatorMouseDown.bind( this ) );
 
        // Initialization
        this.$element
                .addClass( 'oo-ui-textInputWidget' )
                .append( this.$icon, this.$indicator );
+       this.setReadOnly( config.readOnly );
        if ( config.placeholder ) {
                this.$input.attr( 'placeholder', config.placeholder );
        }
@@ -9212,6 +9593,29 @@ OO.ui.TextInputWidget.prototype.setValue = function ( value ) {
        return this;
 };
 
+/**
+ * Check if the widget is read-only.
+ *
+ * @return {boolean}
+ */
+OO.ui.TextInputWidget.prototype.isReadOnly = function () {
+       return this.readOnly;
+};
+
+/**
+ * Set the read-only state of the widget.
+ *
+ * This should probably change the widgets's appearance and prevent it from being used.
+ *
+ * @param {boolean} state Make input read-only
+ * @chainable
+ */
+OO.ui.TextInputWidget.prototype.setReadOnly = function ( state ) {
+       this.readOnly = !!state;
+       this.$input.prop( 'readOnly', this.readOnly );
+       return this;
+};
+
 /**
  * Automatically adjust the size of the text input.
  *
@@ -9255,14 +9659,18 @@ OO.ui.TextInputWidget.prototype.adjustSize = function () {
 /**
  * Get input element.
  *
+ * @private
  * @param {Object} [config] Configuration options
  * @return {jQuery} Input element
  */
 OO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {
-       return config.multiline ? this.$( '<textarea>' ) : this.$( '<input type="text" />' );
-};
+       // Configuration initialization
+       config = config || {};
 
-/* Methods */
+       var type = config.type || 'text';
+
+       return config.multiline ? this.$( '<textarea>' ) : this.$( '<input type="' + type + '" />' );
+};
 
 /**
  * Check if input supports multiple lines.
@@ -9294,7 +9702,7 @@ OO.ui.TextInputWidget.prototype.select = function () {
 
 /**
  * Sets the validation pattern to use.
- * @param validate {RegExp|string|null} Regular expression (or symbolic name referencing
+ * @param {RegExp|string|null} validate Regular expression (or symbolic name referencing
  *  one, see #static-validationPatterns)
  */
 OO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {
@@ -9309,9 +9717,10 @@ OO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {
  * Sets the 'invalid' flag appropriately.
  */
 OO.ui.TextInputWidget.prototype.setValidityFlag = function () {
-       this.isValid().done( OO.ui.bind( function ( valid ) {
-               this.setFlags( { invalid: !valid } );
-       }, this ) );
+       var widget = this;
+       this.isValid().done( function ( valid ) {
+               widget.setFlags( { invalid: !valid } );
+       } );
 };
 
 /**
@@ -9334,6 +9743,7 @@ OO.ui.TextInputWidget.prototype.isValid = function () {
  * @param {Object} [config] Configuration options
  * @cfg {Object} [menu] Configuration options to pass to menu widget
  * @cfg {Object} [input] Configuration options to pass to input widget
+ * @cfg {jQuery} [$overlay] Overlay layer; defaults to relative positioning
  */
 OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
        // Configuration initialization
@@ -9343,12 +9753,18 @@ OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
        OO.ui.ComboBoxWidget.super.call( this, config );
 
        // Properties
+       this.$overlay = config.$overlay || this.$element;
        this.input = new OO.ui.TextInputWidget( $.extend(
                { $: this.$, indicator: 'down', disabled: this.isDisabled() },
                config.input
        ) );
-       this.menu = new OO.ui.MenuWidget( $.extend(
-               { $: this.$, widget: this, input: this.input, disabled: this.isDisabled() },
+       this.menu = new OO.ui.TextInputMenuWidget( this.input, $.extend(
+               {
+                       $: OO.ui.Element.getJQuery( this.$overlay ),
+                       widget: this,
+                       input: this.input,
+                       disabled: this.isDisabled()
+               },
                config.menu
        ) );
 
@@ -9365,10 +9781,8 @@ OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
        } );
 
        // Initialization
-       this.$element.addClass( 'oo-ui-comboBoxWidget' ).append(
-               this.input.$element,
-               this.menu.$element
-       );
+       this.$element.addClass( 'oo-ui-comboBoxWidget' ).append( this.input.$element );
+       this.$overlay.append( this.menu.$element );
        this.onMenuItemsChange();
 };
 
@@ -9426,6 +9840,8 @@ OO.ui.ComboBoxWidget.prototype.onMenuChoose = function ( item ) {
  * Handle menu item change events.
  */
 OO.ui.ComboBoxWidget.prototype.onMenuItemsChange = function () {
+       var match = this.menu.getItemFromData( this.input.getValue() );
+       this.menu.selectItem( match );
        this.$element.toggleClass( 'oo-ui-comboBoxWidget-empty', this.menu.isEmpty() );
 };
 
@@ -9457,7 +9873,7 @@ OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) {
  * @param {Object} [config] Configuration options
  */
 OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -9465,13 +9881,14 @@ OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
 
        // Mixin constructors
        OO.ui.LabelElement.call( this, $.extend( {}, config, { $label: this.$element } ) );
+       OO.ui.TitledElement.call( this, config );
 
        // Properties
        this.input = config.input;
 
        // Events
        if ( this.input instanceof OO.ui.InputWidget ) {
-               this.$element.on( 'click', OO.ui.bind( this.onClick, this ) );
+               this.$element.on( 'click', this.onClick.bind( this ) );
        }
 
        // Initialization
@@ -9482,6 +9899,7 @@ OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
 
 OO.inheritClass( OO.ui.LabelWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.LabelWidget, OO.ui.LabelElement );
+OO.mixinClass( OO.ui.LabelWidget, OO.ui.TitledElement );
 
 /* Static Properties */
 
@@ -9513,7 +9931,7 @@ OO.ui.LabelWidget.prototype.onClick = function () {
  * @cfg {string} [rel] Value for `rel` attribute in DOM, allowing per-option styling
  */
 OO.ui.OptionWidget = function OoUiOptionWidget( data, config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -9856,7 +10274,7 @@ OO.ui.MenuSectionItemWidget.static.highlightable = false;
  * @cfg {boolean} [movable] Allow modification from outline controls
  */
 OO.ui.OutlineItemWidget = function OoUiOutlineItemWidget( data, config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -9985,6 +10403,7 @@ OO.ui.OutlineItemWidget.prototype.setLevel = function ( level ) {
  * @cfg {boolean} [anchor=true] Show anchor pointing to origin of popup
  * @cfg {string} [align='center'] Alignment of popup to origin
  * @cfg {jQuery} [$container] Container to prevent popup from rendering outside of
+ * @cfg {number} [containerPadding=10] How much padding to keep between popup and container
  * @cfg {jQuery} [$content] Content to append to the popup's body
  * @cfg {boolean} [autoClose=false] Popup auto-closes when it loses focus
  * @cfg {jQuery} [$autoCloseIgnore] Elements to not auto close when clicked
@@ -9992,7 +10411,7 @@ OO.ui.OutlineItemWidget.prototype.setLevel = function ( level ) {
  * @cfg {boolean} [padded] Add padding to the body
  */
 OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -10008,7 +10427,9 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.$head = this.$( '<div>' );
        this.$body = this.$( '<div>' );
        this.$anchor = this.$( '<div>' );
-       this.$container = config.$container; // If undefined, will be computed lazily in updateDimensions()
+       // If undefined, will be computed lazily in updateDimensions()
+       this.$container = config.$container;
+       this.containerPadding = config.containerPadding !== undefined ? config.containerPadding : 10;
        this.autoClose = !!config.autoClose;
        this.$autoCloseIgnore = config.$autoCloseIgnore;
        this.transitionTimeout = null;
@@ -10017,7 +10438,7 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.height = config.height !== undefined ? config.height : null;
        this.align = config.align || 'center';
        this.closeButton = new OO.ui.ButtonWidget( { $: this.$, framed: false, icon: 'close' } );
-       this.onMouseDownHandler = OO.ui.bind( this.onMouseDown, this );
+       this.onMouseDownHandler = this.onMouseDown.bind( this );
 
        // Events
        this.closeButton.connect( this, { click: 'onCloseButtonClick' } );
@@ -10055,16 +10476,6 @@ OO.inheritClass( OO.ui.PopupWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.PopupWidget, OO.ui.LabelElement );
 OO.mixinClass( OO.ui.PopupWidget, OO.ui.ClippableElement );
 
-/* Events */
-
-/**
- * @event hide
- */
-
-/**
- * @event show
- */
-
 /* Methods */
 
 /**
@@ -10192,8 +10603,7 @@ OO.ui.PopupWidget.prototype.setSize = function ( width, height, transition ) {
 OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        var popupOffset, originOffset, containerLeft, containerWidth, containerRight,
                popupLeft, popupRight, overlapLeft, overlapRight, anchorWidth,
-               widget = this,
-               padding = 10;
+               widget = this;
 
        if ( !this.$container ) {
                // Lazy-initialize $container if not specified in constructor
@@ -10215,8 +10625,8 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        containerLeft = Math.round( this.$container.offset().left );
        containerWidth = this.$container.innerWidth();
        containerRight = containerLeft + containerWidth;
-       popupLeft = popupOffset - padding;
-       popupRight = popupOffset + padding + this.width + padding;
+       popupLeft = popupOffset - this.containerPadding;
+       popupRight = popupOffset + this.containerPadding + this.width + this.containerPadding;
        overlapLeft = ( originOffset + popupLeft ) - containerLeft;
        overlapRight = containerRight - ( originOffset + popupRight );
 
@@ -10228,11 +10638,13 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        }
 
        // Adjust offset to avoid anchor being rendered too close to the edge
-       anchorWidth = this.$anchor.width();
-       if ( this.align === 'right' ) {
-               popupOffset += anchorWidth;
-       } else if ( this.align === 'left' ) {
-               popupOffset -= anchorWidth;
+       // $anchor.width() doesn't work with the pure CSS anchor (returns 0)
+       // TODO: Find a measurement that works for CSS anchors and image anchors
+       anchorWidth = this.$anchor[0].scrollWidth * 2;
+       if ( popupOffset + this.width < anchorWidth ) {
+               popupOffset = anchorWidth - this.width;
+       } else if ( -popupOffset < anchorWidth ) {
+               popupOffset = -anchorWidth;
        }
 
        // Prevent transition from being interrupted
@@ -10261,6 +10673,71 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        return this;
 };
 
+/**
+ * Progress bar widget.
+ *
+ * @class
+ * @extends OO.ui.Widget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {number} [progress=0] Initial progress
+ */
+OO.ui.ProgressBarWidget = function OoUiProgressBarWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.ProgressBarWidget.super.call( this, config );
+
+       // Properties
+       this.$bar = this.$( '<div>' );
+       this.progress = null;
+
+       // Initialization
+       this.setProgress( config.progress || 0 );
+       this.$bar.addClass( 'oo-ui-progressBarWidget-bar');
+       this.$element
+               .attr( {
+                       role: 'progressbar',
+                       'aria-valuemin': 0,
+                       'aria-valuemax': 100
+               } )
+               .addClass( 'oo-ui-progressBarWidget' )
+               .append( this.$bar );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.ProgressBarWidget, OO.ui.Widget );
+
+/* Static Properties */
+
+OO.ui.ProgressBarWidget.static.tagName = 'div';
+
+/* Methods */
+
+/**
+ * Get progress percent
+ *
+ * @return {number} Progress percent
+ */
+OO.ui.ProgressBarWidget.prototype.getProgress = function () {
+       return this.progress;
+};
+
+/**
+ * Set progress percent
+ *
+ * @param {number} progress Progress percent
+ */
+OO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {
+       this.progress = progress;
+
+       this.$bar.css( 'width', this.progress + '%' );
+       this.$element.attr( 'aria-valuenow', this.progress );
+};
+
 /**
  * Search widget.
  *
@@ -10302,7 +10779,7 @@ OO.ui.SearchWidget = function OoUiSearchWidget( config ) {
                highlight: 'onResultsHighlight',
                select: 'onResultsSelect'
        } );
-       this.query.$input.on( 'keydown', OO.ui.bind( this.onQueryKeydown, this ) );
+       this.query.$input.on( 'keydown', this.onQueryKeydown.bind( this ) );
 
        // Initialization
        this.$query
@@ -10419,7 +10896,7 @@ OO.ui.SearchWidget.prototype.getResults = function () {
 /**
  * Generic selection of options.
  *
- * Items can contain any rendering, and are uniquely identified by a has of thier data. Any widget
+ * Items can contain any rendering, and are uniquely identified by a hash of their data. Any widget
  * that provides options, from which the user must choose one, should be built on this class.
  *
  * Use together with OO.ui.OptionWidget.
@@ -10433,7 +10910,7 @@ OO.ui.SearchWidget.prototype.getResults = function () {
  * @cfg {OO.ui.OptionWidget[]} [items] Options to add
  */
 OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -10446,14 +10923,14 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
        this.pressed = false;
        this.selecting = null;
        this.hashes = {};
-       this.onMouseUpHandler = OO.ui.bind( this.onMouseUp, this );
-       this.onMouseMoveHandler = OO.ui.bind( this.onMouseMove, this );
+       this.onMouseUpHandler = this.onMouseUp.bind( this );
+       this.onMouseMoveHandler = this.onMouseMove.bind( this );
 
        // Events
        this.$element.on( {
-               mousedown: OO.ui.bind( this.onMouseDown, this ),
-               mouseover: OO.ui.bind( this.onMouseOver, this ),
-               mouseleave: OO.ui.bind( this.onMouseLeave, this )
+               mousedown: this.onMouseDown.bind( this ),
+               mouseover: this.onMouseOver.bind( this ),
+               mouseleave: this.onMouseLeave.bind( this )
        } );
 
        // Initialization
@@ -10978,7 +11455,7 @@ OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
  * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu
  */
 OO.ui.MenuWidget = function OoUiMenuWidget( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -10996,8 +11473,8 @@ OO.ui.MenuWidget = function OoUiMenuWidget( config ) {
        this.$widget = config.widget ? config.widget.$element : null;
        this.$previousFocus = null;
        this.isolated = !config.input;
-       this.onKeyDownHandler = OO.ui.bind( this.onKeyDown, this );
-       this.onDocumentMouseDownHandler = OO.ui.bind( this.onDocumentMouseDown, this );
+       this.onKeyDownHandler = this.onKeyDown.bind( this );
+       this.onDocumentMouseDownHandler = this.onDocumentMouseDown.bind( this );
 
        // Initialization
        this.$element
@@ -11186,7 +11663,9 @@ OO.ui.MenuWidget.prototype.toggle = function ( visible ) {
        visible = ( visible === undefined ? !this.visible : !!visible ) && !!this.items.length;
 
        var i, len,
-               change = visible !== this.isVisible();
+               change = visible !== this.isVisible(),
+               elementDoc = this.getElementDocument(),
+               widgetDoc = this.$widget ? this.$widget[0].ownerDocument : null;
 
        // Parent method
        OO.ui.MenuWidget.super.prototype.toggle.call( this, visible );
@@ -11210,9 +11689,15 @@ OO.ui.MenuWidget.prototype.toggle = function ( visible ) {
 
                        // Auto-hide
                        if ( this.autoHide ) {
-                               this.getElementDocument().addEventListener(
+                               elementDoc.addEventListener(
                                        'mousedown', this.onDocumentMouseDownHandler, true
                                );
+                               // Support $widget being in a different document
+                               if ( widgetDoc && widgetDoc !== elementDoc ) {
+                                       widgetDoc.addEventListener(
+                                               'mousedown', this.onDocumentMouseDownHandler, true
+                                       );
+                               }
                        }
                } else {
                        this.unbindKeyDownListener();
@@ -11220,9 +11705,15 @@ OO.ui.MenuWidget.prototype.toggle = function ( visible ) {
                                this.$previousFocus[0].focus();
                                this.$previousFocus = null;
                        }
-                       this.getElementDocument().removeEventListener(
+                       elementDoc.removeEventListener(
                                'mousedown', this.onDocumentMouseDownHandler, true
                        );
+                       // Support $widget being in a different document
+                       if ( widgetDoc && widgetDoc !== elementDoc ) {
+                               widgetDoc.removeEventListener(
+                                       'mousedown', this.onDocumentMouseDownHandler, true
+                               );
+                       }
                        this.toggleClipping( false );
                }
        }
@@ -11234,7 +11725,7 @@ OO.ui.MenuWidget.prototype.toggle = function ( visible ) {
  * Menu for a text input widget.
  *
  * This menu is specially designed to be positioned beneath the text input widget. Even if the input
- * is in a different frame, the menu's position is automatically calulated and maintained when the
+ * is in a different frame, the menu's position is automatically calculated and maintained when the
  * menu is toggled or the window is resized.
  *
  * @class
@@ -11246,13 +11737,16 @@ OO.ui.MenuWidget.prototype.toggle = function ( visible ) {
  * @cfg {jQuery} [$container=input.$element] Element to render menu under
  */
 OO.ui.TextInputMenuWidget = function OoUiTextInputMenuWidget( input, config ) {
+       // Configuration intialization
+       config = config || {};
+
        // Parent constructor
        OO.ui.TextInputMenuWidget.super.call( this, config );
 
        // Properties
        this.input = input;
        this.$container = config.$container || this.input.$element;
-       this.onWindowResizeHandler = OO.ui.bind( this.onWindowResize, this );
+       this.onWindowResizeHandler = this.onWindowResize.bind( this );
 
        // Initialization
        this.$element.addClass( 'oo-ui-textInputMenuWidget' );
@@ -11277,7 +11771,7 @@ OO.ui.TextInputMenuWidget.prototype.onWindowResize = function () {
  * @inheritdoc
  */
 OO.ui.TextInputMenuWidget.prototype.toggle = function ( visible ) {
-       visible = !!visible;
+       visible = visible === undefined ? !this.isVisible() : !!visible;
 
        var change = visible !== this.isVisible();
 
@@ -11309,30 +11803,14 @@ OO.ui.TextInputMenuWidget.prototype.toggle = function ( visible ) {
  * @chainable
  */
 OO.ui.TextInputMenuWidget.prototype.position = function () {
-       var frameOffset,
-               $container = this.$container,
-               dimensions = $container.offset();
+       var $container = this.$container,
+               pos = OO.ui.Element.getRelativePosition( $container, this.$element.offsetParent() );
 
        // Position under input
-       dimensions.top += $container.height();
+       pos.top += $container.height();
+       this.$element.css( pos );
 
-       // Compensate for frame position if in a differnt frame
-       if ( this.input.$.$iframe && this.input.$.context !== this.$element[0].ownerDocument ) {
-               frameOffset = OO.ui.Element.getRelativePosition(
-                       this.input.$.$iframe, this.$element.offsetParent()
-               );
-               dimensions.left += frameOffset.left;
-               dimensions.top += frameOffset.top;
-       } else {
-               // Fix for RTL (for some reason, no need to fix if the frameoffset is set)
-               if ( this.$element.css( 'direction' ) === 'rtl' ) {
-                       dimensions.right = this.$element.parent().position().left -
-                               $container.width() - dimensions.left;
-                       // Erase the value for 'left':
-                       delete dimensions.left;
-               }
-       }
-       this.$element.css( dimensions );
+       // Set width
        this.setIdealSize( $container.width() );
        // We updated the position, so re-evaluate the clipping state
        this.clip();
@@ -11352,7 +11830,7 @@ OO.ui.TextInputMenuWidget.prototype.position = function () {
  * @param {Object} [config] Configuration options
  */
 OO.ui.OutlineWidget = function OoUiOutlineWidget( config ) {
-       // Config intialization
+       // Configuration initialization
        config = config || {};
 
        // Parent constructor
@@ -11392,7 +11870,7 @@ OO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {
        this.$grip = this.$( '<span>' );
 
        // Events
-       this.$element.on( 'click', OO.ui.bind( this.onClick, this ) );
+       this.$element.on( 'click', this.onClick.bind( this ) );
 
        // Initialization
        this.$glow.addClass( 'oo-ui-toggleSwitchWidget-glow' );
diff --git a/resources/lib/oojs-ui/oojs-ui.rtl.css b/resources/lib/oojs-ui/oojs-ui.rtl.css
deleted file mode 100644 (file)
index 7f1fa34..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*!
- * 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: 2014-09-11T19:39:50Z
- */
-/*
- * Blank theme mixins.
- *
- * Base styles invoke these mixins at the end of their definitions. Override these mixins to add
- * additional rules to the base styles.
- */
-.oo-ui-icon-add-item {
-  background-image: /* @embed */ url(images/icons/add-item.png);
-}
-.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(images/icons/advanced.png);
-}
-.oo-ui-icon-alert {
-  background-image: /* @embed */ url(images/icons/alert.png);
-}
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(images/icons/check.png);
-}
-.oo-ui-icon-clear {
-  background-image: /* @embed */ url(images/icons/clear.png);
-}
-.oo-ui-icon-close {
-  background-image: /* @embed */ url(images/icons/close.png);
-}
-.oo-ui-icon-code {
-  background-image: /* @embed */ url(images/icons/code.png);
-}
-.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(images/icons/collapse.png);
-}
-.oo-ui-icon-comment {
-  background-image: /* @embed */ url(images/icons/comment.png);
-}
-.oo-ui-icon-expand {
-  background-image: /* @embed */ url(images/icons/expand.png);
-}
-.oo-ui-icon-help {
-  background-image: /* @embed */ url(images/icons/help.png);
-}
-.oo-ui-icon-info {
-  background-image: /* @embed */ url(images/icons/info.png);
-}
-.oo-ui-icon-link {
-  background-image: /* @embed */ url(images/icons/link.png);
-}
-.oo-ui-icon-menu {
-  background-image: /* @embed */ url(images/icons/menu.png);
-}
-.oo-ui-icon-next {
-  background-image: /* @embed */ url(images/icons/move-rtl.png);
-}
-.oo-ui-icon-picture {
-  background-image: /* @embed */ url(images/icons/picture.png);
-}
-.oo-ui-icon-previous {
-  background-image: /* @embed */ url(images/icons/move-ltr.png);
-}
-.oo-ui-icon-redo {
-  background-image: /* @embed */ url(images/icons/arched-arrow-rtl.png);
-}
-.oo-ui-icon-remove {
-  background-image: /* @embed */ url(images/icons/remove.png);
-}
-.oo-ui-icon-search {
-  background-image: /* @embed */ url(images/icons/search.png);
-}
-.oo-ui-icon-settings {
-  background-image: /* @embed */ url(images/icons/settings.png);
-}
-.oo-ui-icon-tag {
-  background-image: /* @embed */ url(images/icons/tag.png);
-}
-.oo-ui-icon-undo {
-  background-image: /* @embed */ url(images/icons/arched-arrow-ltr.png);
-}
-.oo-ui-icon-window {
-  background-image: /* @embed */ url(images/icons/window.png);
-}
-.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(images/indicators/alert.png);
-}
-.oo-ui-indicator-down {
-  background-image: /* @embed */ url(images/indicators/arrow-down.png);
-}
-.oo-ui-indicator-next {
-  background-image: /* @embed */ url(images/indicators/arrow-rtl.png);
-}
-.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(images/indicators/arrow-ltr.png);
-}
-.oo-ui-indicator-required {
-  background-image: /* @embed */ url(images/indicators/required.png);
-}
-.oo-ui-indicator-up {
-  background-image: /* @embed */ url(images/indicators/arrow-up.png);
-}
-.oo-ui-texture-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(images/textures/transparency.png);
-}
diff --git a/resources/lib/oojs-ui/oojs-ui.svg.rtl.css b/resources/lib/oojs-ui/oojs-ui.svg.rtl.css
deleted file mode 100644 (file)
index 5a78d6b..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*!
- * 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: 2014-09-11T19:39:50Z
- */
-/*
- * Blank theme mixins.
- *
- * Base styles invoke these mixins at the end of their definitions. Override these mixins to add
- * additional rules to the base styles.
- */
-.oo-ui-icon-add-item {
-  background-image: /* @embed */ url(images/icons/add-item.svg);
-}
-.oo-ui-icon-advanced {
-  background-image: /* @embed */ url(images/icons/advanced.svg);
-}
-.oo-ui-icon-alert {
-  background-image: /* @embed */ url(images/icons/alert.svg);
-}
-.oo-ui-icon-check {
-  background-image: /* @embed */ url(images/icons/check.svg);
-}
-.oo-ui-icon-clear {
-  background-image: /* @embed */ url(images/icons/clear.svg);
-}
-.oo-ui-icon-close {
-  background-image: /* @embed */ url(images/icons/close.svg);
-}
-.oo-ui-icon-code {
-  background-image: /* @embed */ url(images/icons/code.svg);
-}
-.oo-ui-icon-collapse {
-  background-image: /* @embed */ url(images/icons/collapse.svg);
-}
-.oo-ui-icon-comment {
-  background-image: /* @embed */ url(images/icons/comment.svg);
-}
-.oo-ui-icon-expand {
-  background-image: /* @embed */ url(images/icons/expand.svg);
-}
-.oo-ui-icon-help {
-  background-image: /* @embed */ url(images/icons/help.svg);
-}
-.oo-ui-icon-info {
-  background-image: /* @embed */ url(images/icons/info.svg);
-}
-.oo-ui-icon-link {
-  background-image: /* @embed */ url(images/icons/link.svg);
-}
-.oo-ui-icon-menu {
-  background-image: /* @embed */ url(images/icons/menu.svg);
-}
-.oo-ui-icon-next {
-  background-image: /* @embed */ url(images/icons/move-rtl.svg);
-}
-.oo-ui-icon-picture {
-  background-image: /* @embed */ url(images/icons/picture.svg);
-}
-.oo-ui-icon-previous {
-  background-image: /* @embed */ url(images/icons/move-ltr.svg);
-}
-.oo-ui-icon-redo {
-  background-image: /* @embed */ url(images/icons/arched-arrow-rtl.svg);
-}
-.oo-ui-icon-remove {
-  background-image: /* @embed */ url(images/icons/remove.svg);
-}
-.oo-ui-icon-search {
-  background-image: /* @embed */ url(images/icons/search.svg);
-}
-.oo-ui-icon-settings {
-  background-image: /* @embed */ url(images/icons/settings.svg);
-}
-.oo-ui-icon-tag {
-  background-image: /* @embed */ url(images/icons/tag.svg);
-}
-.oo-ui-icon-undo {
-  background-image: /* @embed */ url(images/icons/arched-arrow-ltr.svg);
-}
-.oo-ui-icon-window {
-  background-image: /* @embed */ url(images/icons/window.svg);
-}
-.oo-ui-indicator-alert {
-  background-image: /* @embed */ url(images/indicators/alert.svg);
-}
-.oo-ui-indicator-down {
-  background-image: /* @embed */ url(images/indicators/arrow-down.svg);
-}
-.oo-ui-indicator-next {
-  background-image: /* @embed */ url(images/indicators/arrow-rtl.svg);
-}
-.oo-ui-indicator-previous {
-  background-image: /* @embed */ url(images/indicators/arrow-ltr.svg);
-}
-.oo-ui-indicator-required {
-  background-image: /* @embed */ url(images/indicators/required.svg);
-}
-.oo-ui-indicator-up {
-  background-image: /* @embed */ url(images/indicators/arrow-up.svg);
-}
-.oo-ui-texture-pending {
-  background-image: /* @embed */ url(images/textures/pending.gif);
-}
-.oo-ui-texture-transparency {
-  background-image: /* @embed */ url(images/textures/transparency.svg);
-}
diff --git a/resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.png b/resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.png
deleted file mode 100644 (file)
index 9be50a6..0000000
Binary files a/resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.svg b/resources/lib/oojs-ui/themes/minerva/images/icons/check-invert.svg
deleted file mode 100644 (file)
index 12d7f0d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="44" height="44" viewBox="0, 0, 44, 44"><style>* { fill: #FFFFFF }</style>
-    <g id="check">
-        <path id="mark" d="M41.634,12.619 L15.347,37.121 L15.163,36.923 L9.999,31.386 L2.364,23.201 L8.019,17.924 L15.655,26.119 L36.281,6.879 z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/minerva/images/icons/check.png b/resources/lib/oojs-ui/themes/minerva/images/icons/check.png
deleted file mode 100644 (file)
index 654a034..0000000
Binary files a/resources/lib/oojs-ui/themes/minerva/images/icons/check.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/minerva/images/icons/check.svg b/resources/lib/oojs-ui/themes/minerva/images/icons/check.svg
deleted file mode 100644 (file)
index 248c636..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="44" height="44" viewBox="0, 0, 44, 44">
-    <g id="check">
-        <path id="mark" d="M41.634,12.619 L15.347,37.121 L15.163,36.923 L9.999,31.386 L2.364,23.201 L8.019,17.924 L15.655,26.119 L36.281,6.879 z"/>
-    </g>
-</svg>
index fa7ea70..34cdf76 100644 (file)
@@ -13,7 +13,7 @@
        font-weight: bold;
        color: white;
        vertical-align: baseline;
-       text-shadow: 0 1px rgba(0, 0, 0, 0.4);
+       text-shadow: 0 1px rgba(0, 0, 0, 0.4);
 }
 
 .mw-badge-inline {
index c44831c..5d6a1d4 100644 (file)
@@ -5,32 +5,19 @@
 /**
  * Get the attributes of an element directy as a plain object.
  *
- * If there are more elements in the collection, like most jQuery get/read methods,
- * this method will use the first element in the collection.
+ * If there is more than one element in the collection, similar to most other jQuery getter methods,
+ * this will use the first element in the collection.
  *
- * In IE6, the `attributes` map of a node includes *all* allowed attributes
- * for an element (including those not set). Those will have values like
- * `undefined`, `null`, `0`, `false`, `""` or `"inherit"`.
- *
- * However there may be attributes genuinely set to one of those values, and there
- * is no way to distinguish between attributes set to that and those not set and
- * it being the default. If you need them, set `all` to `true`. They are filtered out
- * by default.
- *
- * @param {boolean} [all=false]
  * @return {Object}
  */
-jQuery.fn.getAttrs = function ( all ) {
-       var map = this[0].attributes,
+jQuery.fn.getAttrs = function () {
+       var i,
+               map = this[0].attributes,
                attrs = {},
-               len = map.length,
-               i, v;
+               len = map.length;
 
        for ( i = 0; i < len; i++ ) {
-               v = map[i].nodeValue;
-               if ( all || ( v && v !== 'inherit' ) ) {
-                       attrs[ map[i].nodeName ] = v;
-               }
+               attrs[ map[i].name ] = map[i].value;
        }
 
        return attrs;
index 8d440fd..632769b 100644 (file)
@@ -24,8 +24,9 @@
 
        $.fn.textSelection = function ( command, options ) {
                var fn,
+                       alternateFn,
                        context,
-                       hasWikiEditorSurface, // The alt edit surface needs to implement the WikiEditor API
+                       hasWikiEditor,
                        needSave,
                        retval;
 
                        }
                };
 
+               alternateFn = $( this ).data( 'jquery.textSelection' );
+
                // Apply defaults
                switch ( command ) {
                        //case 'getContents': // no params
                                        force: false // Force a scroll even if the caret position is already visible
                                }, options );
                                break;
+                       case 'register':
+                               if ( alternateFn ) {
+                                       throw new Error( 'Another textSelection API was already registered' );
+                               }
+                               $( this ).data( 'jquery.textSelection', options );
+                               // No need to update alternateFn as this command only stores the options.
+                               // A command that uses it will set it again.
+                               return;
+                       case 'unregister':
+                               $( this ).removeData( 'jquery.textSelection' );
+                               return;
                }
 
                context = $( this ).data( 'wikiEditor-context' );
-               hasWikiEditorSurface = ( context !== undefined && context.$iframe !== undefined );
+               hasWikiEditor = ( context !== undefined && context.$iframe !== undefined );
 
                // IE selection restore voodoo
                needSave = false;
-               if ( hasWikiEditorSurface && context.savedSelection !== null ) {
+               if ( hasWikiEditor && context.savedSelection !== null ) {
                        context.fn.restoreSelection();
                        needSave = true;
                }
-               retval = ( hasWikiEditorSurface && context.fn[command] !== undefined ? context.fn : fn )[command].call( this, options );
-               if ( hasWikiEditorSurface && needSave ) {
+               retval = ( alternateFn && alternateFn[command] || fn[command] ).call( this, options );
+               if ( hasWikiEditor && needSave ) {
                        context.fn.saveSelection();
                }
 
index 4d2c47a..95ef62c 100644 (file)
                        data.message = $.parseHTML( mw.message( 'postedit-confirmation-saved', data.user || mw.user ).escaped() );
                }
 
-               $div = $(
-                       '<div class="postedit-container">' +
-                               '<div class="postedit">' +
-                                       '<div class="postedit-icon postedit-icon-checkmark postedit-content"></div>' +
-                                       '<a href="#" class="postedit-close">&times;</a>' +
-                               '</div>' +
-                       '</div>'
-               );
+               $div = mw.template.get( 'mediawiki.action.view.postEdit', 'postEdit.html' ).render();
 
                if ( typeof data.message === 'string' ) {
                        $div.find( '.postedit-content' ).text( data.message );
diff --git a/resources/src/mediawiki.action/templates/postEdit.html b/resources/src/mediawiki.action/templates/postEdit.html
new file mode 100644 (file)
index 0000000..dbb482a
--- /dev/null
@@ -0,0 +1,6 @@
+<div class="postedit-container">
+       <div class="postedit">
+               <div class="postedit-icon postedit-icon-checkmark postedit-content"></div>
+               <a href="#" class="postedit-close">&times;</a>
+       </div>
+</div>
index b85c8e8..3a19e02 100644 (file)
         *         console.log( data );
         *     } );
         *
+        * Multiple values for a parameter can be specified using an array (since MW 1.25):
+        *
+        *     var api = new mw.Api();
+        *     api.get( {
+        *         action: 'query',
+        *         meta: [ 'userinfo', 'siteinfo' ] // same effect as 'userinfo|siteinfo'
+        *     } ).done ( function ( data ) {
+        *         console.log( data );
+        *     } );
+        *
         * @class
         *
         * @constructor
                                delete parameters.token;
                        }
 
+                       for ( key in parameters ) {
+                               if ( $.isArray( parameters[key] ) ) {
+                                       parameters[key] = parameters[key].join( '|' );
+                               }
+                       }
+
                        // If multipart/form-data has been requested and emulation is possible, emulate it
                        if (
                                ajaxOptions.type === 'POST' &&
                postWithToken: function ( tokenType, params, ajaxOptions ) {
                        var api = this;
 
-                       // Do not allow deprecated ok-callback
-                       // FIXME: Remove this check when the deprecated ok-callback is removed in #post
-                       if ( $.isFunction( ajaxOptions ) ) {
-                               ajaxOptions = undefined;
-                       }
-
                        return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                params.token = token;
                                return api.post( params, ajaxOptions ).then(
                'nomodule',
                'mustbeposted',
                'badaccess-groups',
-               'stashfailed',
                'missingresult',
                'missingparam',
                'invalid-file-key',
                'fetchfileerror',
                'fileexists-shared-forbidden',
                'invalidtitle',
-               'notloggedin'
+               'notloggedin',
+
+               // Stash-specific errors - expanded
+               'stashfailed',
+               'stasherror',
+               'stashedfilenotfound',
+               'stashpathinvalid',
+               'stashfilestorage',
+               'stashzerolength',
+               'stashnotloggedin',
+               'stashwrongowner',
+               'stashnosuchfilekey'
        ];
 
        /**
index 830b02f..9405719 100644 (file)
@@ -23,7 +23,6 @@ div#column-one,
 #toc.tochidden,
 div#f-poweredbyico,
 div#f-copyrightico,
-li#viewcount,
 li#about,
 li#disclaimer,
 li#mobileview,
@@ -203,6 +202,7 @@ a.stub {
 /**
  * Floating divs
  */
+/* @noflip */
 div.floatright {
        float: right;
        clear: right;
@@ -214,6 +214,7 @@ div.floatright p {
        font-style: italic;
 }
 
+/* @noflip */
 div.floatleft {
        float: left;
        clear: left;
index 17fcc60..ec9888f 100644 (file)
 .button-colors(@bgColor) {
        background: @bgColor;
 
-       &:hover {
+       &:hover,
+       &:focus {
                // The inner bottom bevel should match the active background color.
                box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
                border-bottom-color: mix(#000, @bgColor, 20%);
-       }
-
-       &:focus {
-               box-shadow:inset 0px 0px 0px 3px rgba(0, 0, 0, 20%);
                outline: none;
-
                // remove outline in Firefox
                &::-moz-focus-inner {
                        border-color: transparent;
                }
-
        }
 
        &:active,
        // constructive/progressive/destructive color on hover and active.
        color: @colorButtonText;
 
-       &:hover {
+       &:hover,
+       &:focus {
                // lessphp doesn't implement tint, see above
                // color: tint(@textColor, 20%);
                color: mix(#fff, @textColor, 20%);
        }
 
-       &:focus {
-               box-shadow:inset 0px 0px 0px 3px rgba(0, 0, 0, 20%);
-               outline: none;
-
-               // remove outline in Firefox
-               &::-moz-focus-inner {
-                       border-color: transparent;
-               }
-
-       }
-
        &:active,
        &.mw-ui-checked {
                // lessphp doesn't implement shade, see above
index 622e818..26c32a5 100644 (file)
@@ -2,23 +2,65 @@
  * Implement AJAX navigation for multi-page images so the user may browse without a full page reload.
  */
 ( function ( mw, $ ) {
-       var jqXhr, $multipageimage, $spinner;
+       var jqXhr, $multipageimage, $spinner,
+               cache = {}, cacheOrder = [];
 
-       /* Fetch the next page and use jQuery to swap the table.multipageimage contents.
+       /* Fetch the next page, caching up to 10 last-loaded pages.
         * @param {string} url
-        * @param {boolean} [hist=false] Whether this is a load triggered by history navigation (if
-        *   true, this function won't push a new history state, for the browser did so already).
+        * @return {jQuery.Promise}
         */
-       function loadPage( url, hist ) {
-               var $tr;
-               if ( jqXhr ) {
+       function fetchPageData( url ) {
+               if ( jqXhr && jqXhr.abort ) {
                        // Prevent race conditions and piling up pending requests
                        jqXhr.abort();
-                       jqXhr = undefined;
                }
+               jqXhr = undefined;
+
+               // Try the cache
+               if ( cache[url] ) {
+                       // Update access freshness
+                       cacheOrder.splice( $.inArray( url, cacheOrder ), 1 );
+                       cacheOrder.push( url );
+                       return $.Deferred().resolve( cache[url] ).promise();
+               }
+
+               // @todo Don't fetch the entire page. Ideally we'd only fetch the content portion or the data
+               // (thumbnail urls) and update the interface manually.
+               jqXhr = $.ajax( url ).then( function ( data ) {
+                       return $( data ).find( 'table.multipageimage' ).contents();
+               } );
 
-               // Add a new spinner if one doesn't already exist
-               if ( !$spinner ) {
+               // Handle cache updates
+               jqXhr.done( function ( $contents ) {
+                       jqXhr = undefined;
+
+                       // Cache the newly loaded page
+                       cache[url] = $contents;
+                       cacheOrder.push( url );
+
+                       // Remove the oldest entry if we're over the limit
+                       if ( cacheOrder.length > 10 ) {
+                               delete cache[ cacheOrder[0] ];
+                               cacheOrder = cacheOrder.slice( 1 );
+                       }
+               } );
+
+               return jqXhr.promise();
+       }
+
+       /* Fetch the next page and use jQuery to swap the table.multipageimage contents.
+        * @param {string} url
+        * @param {boolean} [hist=false] Whether this is a load triggered by history navigation (if
+        *   true, this function won't push a new history state, for the browser did so already).
+        */
+       function switchPage( url, hist ) {
+               var $tr, promise;
+
+               // Start fetching data (might be cached)
+               promise = fetchPageData( url );
+
+               // Add a new spinner if one doesn't already exist and the data is not already ready
+               if ( !$spinner && promise.state() !== 'resolved' ) {
                        $tr = $multipageimage.find( 'tr' );
                        $spinner = $.createSpinner( {
                                size: 'large',
                        $multipageimage.empty().append( $spinner );
                }
 
-               // @todo Don't fetch the entire page. Ideally we'd only fetch the content portion or the data
-               // (thumbnail urls) and update the interface manually.
-               jqXhr = $.ajax( url ).done( function ( data ) {
-                       jqXhr = $spinner = undefined;
+               promise.done( function ( $contents ) {
+                       $spinner = undefined;
 
                        // Replace table contents
-                       $multipageimage.empty().append( $( data ).find( 'table.multipageimage' ).contents() );
+                       $multipageimage.empty().append( $contents.clone() );
 
                        bindPageNavigation( $multipageimage );
 
                                .extend( { title: mw.config.get( 'wgPageName' ), page: page } )
                                .toString();
 
-                       loadPage( uri );
+                       switchPage( uri );
                        e.preventDefault();
                } );
 
                $container.find( 'form[name="pageselector"]' ).one( 'change submit', function ( e ) {
-                       loadPage( this.action + '?' + $( this ).serialize() );
+                       switchPage( this.action + '?' + $( this ).serialize() );
                        e.preventDefault();
                } );
        }
                        $( window ).on( 'popstate', function ( e ) {
                                var state = e.originalEvent.state;
                                if ( state && state.tag === 'mw-pagination' ) {
-                                       loadPage( location.href, true );
+                                       switchPage( location.href, true );
                                }
                        } );
                }
index 392a2a6..11962f8 100644 (file)
@@ -112,7 +112,7 @@ h6 {
 }
 
 h3 {
-       font-size: 132%;
+       font-size: 128%;
 }
 
 h4 {
index 6b0bf99..55f2f89 100644 (file)
@@ -25,5 +25,9 @@
 
 .mw-changeslist-legend dd {
        margin-left: 1.5em;
+}
+
+.mw-changeslist-legend dt,
+.mw-changeslist-legend dd {
        line-height: 1.3em;
 }
index ef95507..4b6c14e 100644 (file)
@@ -106,9 +106,10 @@ fieldset#mw-searchoptions div#mw-search-togglebox input {
 fieldset#mw-searchoptions table {
        float: left;
        margin-right: 3em;
+       border-collapse: collapse;
 }
 fieldset#mw-searchoptions table td {
-       padding-right: 1em;
+       padding: 0 1em 0 0;
        white-space: nowrap;
 }
 fieldset#mw-searchoptions div.divider {
index 04bc978..87de646 100644 (file)
                                ctx,
                                meta,
                                previewSize = 180,
-                               thumb = $( '<div id="mw-upload-thumbnail" class="thumb tright">' +
-                                                       '<div class="thumbinner">' +
-                                                               '<div class="mw-small-spinner" style="width: 180px; height: 180px"></div>' +
-                                                               '<div class="thumbcaption"><div class="filename"></div><div class="fileinfo"></div></div>' +
-                                                       '</div>' +
-                                               '</div>' );
+                               thumb = mw.template.get( 'mediawiki.special.upload', 'thumbnail.html' ).render();
 
                        thumb.find( '.filename' ).text( file.name ).end()
                                .find( '.fileinfo' ).text( prettySize( file.size ) ).end();
diff --git a/resources/src/mediawiki.special/templates/thumbnail.html b/resources/src/mediawiki.special/templates/thumbnail.html
new file mode 100644 (file)
index 0000000..73042f2
--- /dev/null
@@ -0,0 +1,9 @@
+<div id="mw-upload-thumbnail" class="thumb tright">
+       <div class="thumbinner">
+               <div class="mw-small-spinner" style="width: 180px; height: 180px"></div>
+               <div class="thumbcaption">
+                       <div class="filename"></div>
+                       <div class="fileinfo"></div>
+               </div>
+       </div>
+</div>
index 77938db..f9944b4 100644 (file)
        /**
         * Internal helper that does the actual insertion of the button into the toolbar.
         *
-        * See #addButton for parameter documentation.
+        * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`,
+        * `sampleText` and `imageId` as separate arguments (in this order) is also supported.
         *
         * @private
+        *
+        * @param {Object} button Object with the following properties.
+        *  You are required to provide *either* the `onClick` parameter, or the three parameters
+        *  `tagOpen`, `tagClose` and `sampleText`, but not both (they're mutually exclusive).
+        * @param {string} [button.imageFile] Image to use for the button.
+        * @param {string} button.speedTip Tooltip displayed when user mouses over the button.
+        * @param {Function} [button.onClick] Function to be executed when the button is clicked.
+        * @param {string} [button.tagOpen]
+        * @param {string} [button.tagClose]
+        * @param {string} [button.sampleText] Alternative to `onClick`. `tagOpen`, `tagClose` and
+        *  `sampleText` together provide the markup that should be inserted into page text at
+        *  current cursor position.
+        * @param {string} [button.imageId] `id` attribute of the button HTML element. Can be
+        *  used to define the image with CSS if it's not provided as `imageFile`.
         */
-       function insertButton( b, speedTip, tagOpen, tagClose, sampleText, imageId ) {
+       function insertButton( button, speedTip, tagOpen, tagClose, sampleText, imageId ) {
                var $button;
 
                // Backwards compatibility
-               if ( typeof b !== 'object' ) {
-                       b = {
-                               imageFile: b,
+               if ( typeof button !== 'object' ) {
+                       button = {
+                               imageFile: button,
                                speedTip: speedTip,
                                tagOpen: tagOpen,
                                tagClose: tagClose,
                        };
                }
 
-               if ( b.imageFile ) {
+               if ( button.imageFile ) {
                        $button = $( '<img>' ).attr( {
-                       src: b.imageFile,
-                       alt: b.speedTip,
-                       title: b.speedTip,
-                       id: b.imageId || undefined,
-                       'class': 'mw-toolbar-editbutton'
+                               src: button.imageFile,
+                               alt: button.speedTip,
+                               title: button.speedTip,
+                               id: button.imageId || undefined,
+                               'class': 'mw-toolbar-editbutton'
                        } );
                } else {
                        $button = $( '<div>' ).attr( {
-                               title: b.speedTip,
-                               id: b.imageId || undefined,
+                               title: button.speedTip,
+                               id: button.imageId || undefined,
                                'class': 'mw-toolbar-editbutton'
                        } );
                }
 
                $button.click( function ( e ) {
-                       if ( b.onClick !== undefined ) {
-                               b.onClick( e );
+                       if ( button.onClick !== undefined ) {
+                               button.onClick( e );
                        } else {
-                               toolbar.insertTags( b.tagOpen, b.tagClose, b.sampleText );
+                               toolbar.insertTags( button.tagOpen, button.tagClose, button.sampleText );
                        }
 
                        return false;
                /**
                 * Add buttons to the toolbar.
                 *
-                * Takes care of race conditions and time-based dependencies
-                * by placing buttons in a queue if this method is called before
-                * the toolbar is created.
+                * Takes care of race conditions and time-based dependencies by placing buttons in a queue if
+                * this method is called before the toolbar is created.
                 *
                 * For backwards-compatibility, passing `imageFile`, `speedTip`, `tagOpen`, `tagClose`,
                 * `sampleText` and `imageId` as separate arguments (in this order) is also supported.
                 *
-                * @param {Object} button Object with the following properties.
-                *  You are required to provide *either* the `onClick` parameter, or the three parameters
-                *  `tagOpen`, `tagClose` and `sampleText`, but not both (they're mutually exclusive).
-                * @param {string} [button.imageFile] Image to use for the button.
-                * @param {string} button.speedTip Tooltip displayed when user mouses over the button.
-                * @param {Function} [button.onClick] Function to be executed when the button is clicked.
-                * @param {string} [button.tagOpen]
-                * @param {string} [button.tagClose]
-                * @param {string} [button.sampleText] Alternative to `onClick`. `tagOpen`, `tagClose` and
-                *  `sampleText` together provide the markup that should be inserted into page text at
-                *  current cursor position.
-                * @param {string} [button.imageId] `id` attribute of the button HTML element. Can be
-         *  used to define the image with CSS if it's not provided as `imageFile`.
+                * @inheritdoc #insertButton
                 */
                addButton: function () {
                        if ( isReady ) {
                                queue.push( slice.call( arguments ) );
                        }
                },
+
                /**
                 * Add multiple buttons to the toolbar (see also #addButton).
                 *
                                        }
                                );
                        }
-               },
-
-               // For backwards compatibility,
-               // Called from EditPage.php, maybe in other places as well.
-               init: function () {}
+               }
        };
 
        // Legacy (for compatibility with the code previously in skins/common.edit.js)
        mw.log.deprecate( window, 'addButton', toolbar.addButton, 'Use mw.toolbar.addButton instead.' );
        mw.log.deprecate( window, 'insertTags', toolbar.insertTags, 'Use mw.toolbar.insertTags instead.' );
 
+       // For backwards compatibility. Used to be called from EditPage.php, maybe other places as well.
+       mw.log.deprecate( toolbar, 'init', $.noop );
+
        // Expose API publicly
        mw.toolbar = toolbar;
 
        $( function () {
-               var i, b;
+               var i, button;
 
                // Used to determine where to insert tags
                $currentFocused = $( '#wpTextbox1' );
                $toolbar = $( '#toolbar' );
 
                for ( i = 0; i < queue.length; i++ ) {
-                       b = queue[i];
-                       if ( $.isArray( b ) ) {
+                       button = queue[i];
+                       if ( $.isArray( button ) ) {
                                // Forwarded arguments array from mw.toolbar.addButton
-                               insertButton.apply( toolbar, b );
+                               insertButton.apply( toolbar, button );
                        } else {
                                // Raw object from mw.toolbar.addButtons
-                               insertButton( b );
+                               insertButton( button );
                        }
                }
 
index 1a58170..f0fb7b9 100644 (file)
        }
 }
 
-.mixin-mw-ui-anchor-styles-quiet( @mainColor ) {
-       color: @colorTextLight;
-       text-decoration: none;
-
-       &:hover {
-               color: @mainColor;
-       }
-       &:focus, &:active {
-               color: darken( @mainColor, @colorDarkenPercentage );
-       }
-}
-
 /*
 Anchors
 
@@ -42,16 +30,16 @@ having to assign it as a button type. mw-ui-anchor only changes the text color,
 with other base classes, such as mw-ui-button.
 
 Markup:
-<a href=# class="mw-ui-anchor mw-ui-progressive {$modifiers}">Progressive</a>
-<a href=# class="mw-ui-anchor mw-ui-constructive {$modifiers}">Constructive</a>
-<a href=# class="mw-ui-anchor mw-ui-destructive {$modifiers}">Destructive</a>
+<a href="#" class="mw-ui-anchor mw-ui-progressive">Progressive</a>
+<a href="#" class="mw-ui-anchor mw-ui-constructive">Constructive</a>
+<a href="#" class="mw-ui-anchor mw-ui-destructive">Destructive</a>
 
 .mw-ui-quiet - Quiet until interaction.
 
 Styleguide 6.2.
 */
 
-// Setup compound anchor selectors (such as .mw-ui-anchor.my-ui-progressive)
+// Setup compound anchor selectors (such as .mw-ui-anchor.mw-ui-progressive)
 .mw-ui-anchor {
        &.mw-ui-progressive {
                .mixin-mw-ui-anchor-styles( @colorProgressive );
@@ -65,3 +53,28 @@ Styleguide 6.2.
                .mixin-mw-ui-anchor-styles( @colorDestructive );
        }
 }
+
+/*
+Quiet anchors
+
+Use quiet anchors when they are less important and alongside other progressive/destructive/progressive
+anchors. Use of quiet anchors is not recommended on mobile/tablet due to lack of hover state.
+
+Markup:
+<a href="#" class="mw-ui-anchor mw-ui-progressive mw-ui-quiet">Progressive</a>
+<a href="#" class="mw-ui-anchor mw-ui-constructive mw-ui-quiet">Constructive</a>
+<a href="#" class="mw-ui-anchor mw-ui-destructive mw-ui-quiet">Destructive</a>
+
+Styleguide 6.2.1.
+*/
+.mixin-mw-ui-anchor-styles-quiet( @mainColor ) {
+       color: @colorTextLight;
+       text-decoration: none;
+
+       &:hover {
+               color: @mainColor;
+       }
+       &:focus, &:active {
+               color: darken( @mainColor, @colorDarkenPercentage );
+       }
+}
index 01c481d..6ba7bf7 100644 (file)
@@ -47,7 +47,7 @@
        // Container styling
        .button-colors(#FFF);
        border-radius: @borderRadius;
-       min-width: 70px;
+       min-width: 4em;
 
        // Ensure that buttons and inputs are nicely aligned when they have differing heights
        vertical-align: middle;
 
        // Destructive buttons
        //
-       // Use destructive buttons for actions which result in the destruction of data.
-       // e.g. deleting a page.
+       // Use destructive buttons for actions that remove or limit, such as deleting a page or blocking a user.
        // This should not be used for cancel buttons.
        //
        // Markup:
 
        // Quiet buttons
        //
-       // Use quiet buttons when they are less important and alongisde other progressive/destructive/progressive buttons.
+       // Use quiet buttons when they are less important and alongside other constructive/progressive/destructive buttons.
+       // Use of quiet buttons is not recommended on mobile/tablet due to lack of hover state.
        //
        // Markup:
        // <div>
index 826c82f..35a44cb 100644 (file)
 //   <input type="checkbox" id="kss-example-5"><label for="kss-example-5">Standard checkbox</label>
 // </div>
 // <div class="mw-ui-checkbox">
-//   <input type="checkbox" id="kss-example-5-2" disabled><label for="kss-example-5-2">Disabled checkbox</label>
+//   <input type="checkbox" id="kss-example-5-checked" checked><label for="kss-example-5-checked">Standard checked checkbox</label>
+// </div>
+// <div class="mw-ui-checkbox">
+//   <input type="checkbox" id="kss-example-5-disabled" disabled><label for="kss-example-5-disabled">Disabled checkbox</label>
+// </div>
+// <div class="mw-ui-checkbox">
+//   <input type="checkbox" id="kss-example-5-disabled-checked" disabled checked><label for="kss-example-5-disabled-checked">Disabled checked checkbox</label>
 // </div>
 //
 // Styleguide 5.
                // ensure the invisible checkbox takes up the required width
                width: @checkboxSize;
                height: @checkboxSize;
+               // This is needed for Firefox mobile (See bug 71750 to workaround default Firefox stylesheet)
+               max-width: none;
+               margin-right: .4em;
 
                // the pseudo before element of the label after the checkbox now looks like a checkbox
                & + label {
                        cursor: pointer;
-                       margin: 0 .4em;
 
                        &::before {
-                                               content: '';
-                                               position: absolute;
-                                               left: 0;
-                                               display: inline-block;
-                                               border-radius: @borderRadius;
-                                               margin-right: 18px;
-                                               width: @checkboxSize;
-                                               height: @checkboxSize;
-                                               background-color: #fff;
-                                               border: 1px solid grey;
-                                       }
+                               content: '';
+                               position: absolute;
+                               left: 0;
+                               border-radius: @borderRadius;
+                               width: @checkboxSize;
+                               height: @checkboxSize;
+                               background-color: #fff;
+                               border: 1px solid grey;
+                       }
                }
 
                // when the input is checked, style the label pseudo before element that followed as a checked checkbox
index d85cc98..dc2ca52 100644 (file)
@@ -6,8 +6,11 @@
 
 // Mixins
 .mixin-mw-ui-icon-bgimage(@iconSvg, @iconPng) {
-       &.mw-ui-icon:before {
-               .background-image-svg(@iconSvg, @iconPng);
+       &.mw-ui-icon {
+               &:after,
+               &:before {
+                       .background-image-svg(@iconSvg, @iconPng);
+               }
        }
 }
 
                }
        }
 
-       &:before {
+       &.mw-ui-icon-after:after,
+       &.mw-ui-icon-before:before,
+       &.mw-ui-icon-element:before {
                background-position: 50% 50%;
                float: left;
                display: block;
                background-repeat: no-repeat;
                background-size: 100% auto;
-               position: relative;
                min-height: @iconSize;
                content: '';
        }
        // Styleguide 4.1.2
        &.mw-ui-icon-before {
                &:before {
+                       position: relative;
                        width: @iconSize;
                        margin-right: @gutterWidth;
                }
        }
+
+       // Icons with text before
+       //
+       // Markup:
+       // <div class="mw-ui-icon mw-ui-icon-after mw-ui-icon-ok mw-ui-progressive mw-ui-button">OK</div>
+       //
+       // Styleguide 4.1.3
+       &.mw-ui-icon-after {
+               &:after {
+                       position: relative;
+                       float: right;
+                       width: @iconSize;
+                       margin-left: @gutterWidth;
+               }
+       }
 }
 
 // Icons
index 685ca4d..c01dd36 100644 (file)
@@ -38,6 +38,7 @@
        border-radius: @borderRadius;
        // Override user agent stylesheet properties. Instead use parent element.
        color: inherit;
+       background-color: inherit;
        font-family: inherit;
        font-size: inherit;
        line-height: inherit;
index 95b18a8..7ced42f 100644 (file)
         */
        NS_SPECIAL = -1,
 
+       /**
+        * @private
+        * @static
+        * @property NS_MEDIA
+        */
+       NS_MEDIA = -2,
+
+       /**
+        * @private
+        * @static
+        * @property NS_FILE
+        */
+       NS_FILE = 6,
+
+       /**
+        * @private
+        * @static
+        * @property FILENAME_MAX_BYTES
+        */
+       FILENAME_MAX_BYTES = 240,
+
+       /**
+        * @private
+        * @static
+        * @property TITLE_MAX_BYTES
+        */
+       TITLE_MAX_BYTES = 255,
+
        /**
         * Get the namespace id from a namespace name (either from the localized, canonical or alias
         * name).
                '|&#x[0-9A-Fa-f]+;'
        ),
 
+       // From MediaWikiTitleCodec.php#L225 @26fcab1f18c568a41
+       // "Clean up whitespace" in function MediaWikiTitleCodec::splitTitleString()
+       rWhitespace = /[ _\u0009\u00A0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\s]+/g,
+
+       /**
+        * Slightly modified from Flinfo. Credit goes to Lupo and Flominator.
+        * @private
+        * @static
+        * @property sanitationRules
+        */
+       sanitationRules = [
+               // "signature"
+               {
+                       pattern: /~{3}/g,
+                       replace: '',
+                       generalRule: true
+               },
+               // Space, underscore, tab, NBSP and other unusual spaces
+               {
+                       pattern: rWhitespace,
+                       replace: ' ',
+                       generalRule: true
+               },
+               // unicode bidi override characters: Implicit, Embeds, Overrides
+               {
+                       pattern: /[\u200E\u200F\u202A-\u202E]/g,
+                       replace: '',
+                       generalRule: true
+               },
+               // control characters
+               {
+                       pattern: /[\x00-\x1f\x7f]/g,
+                       replace: '',
+                       generalRule: true
+               },
+               // URL encoding (possibly)
+               {
+                       pattern: /%([0-9A-Fa-f]{2})/g,
+                       replace: '% $1',
+                       generalRule: true
+               },
+               // HTML-character-entities
+               {
+                       pattern: /&(([A-Za-z0-9\x80-\xff]+|#[0-9]+|#x[0-9A-Fa-f]+);)/g,
+                       replace: '& $1',
+                       generalRule: true
+               },
+               // slash, colon (not supported by file systems like NTFS/Windows, Mac OS 9 [:], ext4 [/])
+               {
+                       pattern: /[:\/#]/g,
+                       replace: '-',
+                       fileRule: true
+               },
+               // brackets, greater than
+               {
+                       pattern: /[\]\}>]/g,
+                       replace: ')',
+                       generalRule: true
+               },
+               // brackets, lower than
+               {
+                       pattern: /[\[\{<]/g,
+                       replace: '(',
+                       generalRule: true
+               },
+               // everything that wasn't covered yet
+               {
+                       pattern: new RegExp( rInvalid.source, 'g' ),
+                       replace: '-',
+                       generalRule: true
+               },
+               // directory structures
+               {
+                       pattern: /^(\.|\.\.|\.\/.*|\.\.\/.*|.*\/\.\/.*|.*\/\.\.\/.*|.*\/\.|.*\/\.\.)$/g,
+                       replace: '',
+                       generalRule: true
+               }
+       ],
+
        /**
         * Internal helper for #constructor and #newFromtext.
         *
                        return false;
                }
 
-               // Disallow titles exceeding the 255 byte size limit (size of underlying database field)
+               // Disallow titles exceeding the TITLE_MAX_BYTES byte size limit (size of underlying database field)
                // Except for special pages, e.g. [[Special:Block/Long name]]
                // Note: The PHP implementation also asserts that even in NS_SPECIAL, the title should
                // be less than 512 bytes.
-               if ( namespace !== NS_SPECIAL && $.byteLength( title ) > 255 ) {
+               if ( namespace !== NS_SPECIAL && $.byteLength( title ) > TITLE_MAX_BYTES ) {
                        return false;
                }
 
                }
        },
 
+       /**
+        * Sanitizes a string based on a rule set and a filter
+        *
+        * @private
+        * @static
+        * @method sanitize
+        * @param {string} s
+        * @param {Array} filter
+        * @return {string}
+        */
+       sanitize = function ( s, filter ) {
+               var i, ruleLength, rule, m, filterLength,
+                       rules = sanitationRules;
+
+               for ( i = 0, ruleLength = rules.length; i < ruleLength; ++i ) {
+                       rule = rules[i];
+                       for ( m = 0, filterLength = filter.length; m < filterLength; ++m ) {
+                               if ( rule[filter[m]] ) {
+                                       s = s.replace( rule.pattern, rule.replace );
+                               }
+                       }
+               }
+               return s;
+       },
+
+       /**
+        * Cuts a string to a specific byte length, assuming UTF-8
+        * or less, if the last character is a multi-byte one
+        *
+        * @private
+        * @static
+        * @method trimToByteLength
+        * @param {string} s
+        * @param {number} length
+        * @return {string}
+        */
+       trimToByteLength = function ( s, length ) {
+               var byteLength, chopOffChars, chopOffBytes;
+
+               // bytelength is always greater or equal to the length in characters
+               s = s.substr( 0, length );
+               while ( ( byteLength = $.byteLength( s ) ) > length ) {
+                       // Calculate how many characters can be safely removed
+                       // First, we need to know how many bytes the string exceeds the threshold
+                       chopOffBytes = byteLength - length;
+                       // A character in UTF-8 is at most 4 bytes
+                       // One character must be removed in any case because the
+                       // string is too long
+                       chopOffChars = Math.max( 1, Math.floor( chopOffBytes / 4 ) );
+                       s = s.substr( 0, s.length - chopOffChars );
+               }
+               return s;
+       },
+
+       /**
+        * Cuts a file name to a specific byte length
+        *
+        * @private
+        * @static
+        * @method trimFileNameToByteLength
+        * @param {string} name without extension
+        * @param {string} extension file extension
+        * @return {string} The full name, including extension
+        */
+       trimFileNameToByteLength = function ( name, extension ) {
+               // There is a special byte limit for file names and ... remember the dot
+               return trimToByteLength( name, FILENAME_MAX_BYTES - extension.length - 1 ) + '.' + extension;
+       },
+
        // Polyfill for ES5 Object.create
        createObject = Object.create || ( function () {
                return function ( o ) {
         * Constructor for Title objects with a null return instead of an exception for invalid titles.
         *
         * @static
-        * @method
         * @param {string} title
         * @param {number} [namespace=NS_MAIN] Default namespace
         * @return {mw.Title|null} A valid Title object or null if the title is invalid
                return t;
        };
 
+       /**
+        * Constructor for Title objects from user input altering that input to
+        * produce a title that MediaWiki will accept as legal
+        *
+        * @static
+        * @param {string} title
+        * @param {number} [defaultNamespace=NS_MAIN]
+        *  If given, will used as default namespace for the given title.
+        * @param {Object} [options] additional options
+        * @param {string} [options.fileExtension='']
+        *  If the title is about to be created for the Media or File namespace,
+        *  ensures the resulting Title has the correct extension. Useful, for example
+        *  on systems that predict the type by content-sniffing, not by file extension.
+        *  If different from empty string, `forUploading` is assumed.
+        * @param {boolean} [options.forUploading=true]
+        *  Makes sure that a file is uploadable under the title returned.
+        *  There are pages in the file namespace under which file upload is impossible.
+        *  Automatically assumed if the title is created in the Media namespace.
+        * @return {mw.Title|null} A valid Title object or null if the input cannot be turned into a valid title
+        */
+       Title.newFromUserInput = function ( title, defaultNamespace, options ) {
+               var namespace, m, id, ext, parts, normalizeExtension;
+
+               // defaultNamespace is optional; check whether options moves up
+               if ( arguments.length < 3 && $.type( defaultNamespace ) === 'object' ) {
+                       options = defaultNamespace;
+                       defaultNamespace = undefined;
+               }
+
+               // merge options into defaults
+               options = $.extend( {
+                       fileExtension: '',
+                       forUploading: true
+               }, options );
+
+               normalizeExtension = function ( extension ) {
+                       // Remove only trailing space (that is removed by MW anyway)
+                       extension = extension.toLowerCase().replace(/\s*$/, '');
+                       return extension;
+               };
+
+               namespace = defaultNamespace === undefined ? NS_MAIN : defaultNamespace;
+
+               // Normalise whitespace and remove duplicates
+               title = $.trim( title.replace( rWhitespace, ' ' ) );
+
+               // Process initial colon
+               if ( title !== '' && title.charAt( 0 ) === ':' ) {
+                       // Initial colon means main namespace instead of specified default
+                       namespace = NS_MAIN;
+                       title = title
+                               // Strip colon
+                               .substr( 1 )
+                               // Trim underscores
+                               .replace( rUnderscoreTrim, '' );
+               }
+
+               // Process namespace prefix (if any)
+               m = title.match( rSplit );
+               if ( m ) {
+                       id = getNsIdByName( m[1] );
+                       if ( id !== false ) {
+                               // Ordinary namespace
+                               namespace = id;
+                               title = m[2];
+                       }
+               }
+
+               if ( namespace === NS_MEDIA
+                       || ( ( options.forUploading || options.fileExtension ) && ( namespace === NS_FILE ) )
+               ) {
+
+                       title = sanitize( title, [ 'generalRule', 'fileRule' ] );
+
+                       // Operate on the file extension
+                       // Although it is possible having spaces between the name and the ".ext" this isn't nice for
+                       // operating systems hiding file extensions -> strip them later on
+                       parts = title.split( '.' );
+
+                       if ( parts.length > 1 ) {
+
+                               // Get the last part, which is supposed to be the file extension
+                               ext = parts.pop();
+
+                               // Does the supplied file name carry the desired file extension?
+                               if ( options.fileExtension
+                                       && normalizeExtension( ext ) !== normalizeExtension( options.fileExtension )
+                               ) {
+
+                                       // No, push back, whatever there was after the dot
+                                       parts.push( ext );
+
+                                       // And add the desired file extension later
+                                       ext = options.fileExtension;
+                               }
+
+                               // Remove whitespace of the name part (that W/O extension)
+                               title = $.trim( parts.join( '.' ) );
+
+                               // Cut, if too long and append file extension
+                               title = trimFileNameToByteLength( title, ext );
+
+                       } else {
+
+                               // Missing file extension
+                               title = $.trim( parts.join( '.' ) );
+
+                               if ( options.fileExtension ) {
+
+                                       // Cut, if too long and append the desired file extension
+                                       title = trimFileNameToByteLength( title, options.fileExtension );
+
+                               } else {
+
+                                       // Name has no file extension and a fallback wasn't provided either
+                                       return null;
+                               }
+                       }
+               } else {
+
+                       title = sanitize( title, [ 'generalRule' ] );
+
+                       // Cut titles exceeding the TITLE_MAX_BYTES byte size limit
+                       // (size of underlying database field)
+                       if ( namespace !== NS_SPECIAL ) {
+                               title = trimToByteLength( title, TITLE_MAX_BYTES );
+                       }
+               }
+
+               // Any remaining initial :s are illegal.
+               title = title.replace( /^\:+/, '' );
+
+               return Title.newFromText( title, namespace );
+       };
+
+       /**
+        * Sanitizes a file name as supplied by the user, originating in the user's file system
+        * so it is most likely a valid MediaWiki title and file name after processing.
+        * Returns null on fatal errors.
+        *
+        * @static
+        * @param {string} uncleanName The unclean file name including file extension but
+        *   without namespace
+        * @param {string} [fileExtension] the desired file extension
+        * @return {mw.Title|null} A valid Title object or null if the title is invalid
+        */
+       Title.newFromFileName = function ( uncleanName, fileExtension ) {
+
+               return Title.newFromUserInput( 'File:' + uncleanName, {
+                       fileExtension: fileExtension,
+                       forUploading: true
+               } );
+       };
+
        /**
         * Get the file title from an image element
         *
diff --git a/resources/src/mediawiki/mediawiki.apihelp.css b/resources/src/mediawiki/mediawiki.apihelp.css
new file mode 100644 (file)
index 0000000..d127232
--- /dev/null
@@ -0,0 +1,86 @@
+.apihelp-header {
+       clear: both;
+       margin-bottom: 0.1em;
+}
+
+div.apihelp-linktrail {
+       font-size: smaller;
+}
+
+.apihelp-block {
+       margin-top: 0.5em;
+}
+
+.apihelp-block-head {
+       font-weight: bold;
+}
+
+.apihelp-flags {
+       font-size: smaller;
+       float: right;
+       border: 1px solid black;
+       padding: 0.25em;
+       width: 20em;
+}
+
+.apihelp-deprecated, .apihelp-flag-deprecated,
+.apihelp-flag-internal strong {
+       font-weight: bold;
+       color: red;
+}
+
+.apihelp-empty {
+       color: #888;
+}
+
+.apihelp-help-urls ul {
+       list-style-image: none;
+       list-style-type: none;
+       margin-left: 0;
+}
+
+.apihelp-parameters dl,
+.apihelp-examples dl,
+.apihelp-permissions dl {
+       margin-left: 2em;
+}
+
+.apihelp-parameters dt {
+       float: left;
+       clear: left;
+       min-width: 10em;
+       white-space: nowrap;
+       line-height: 1.5em;
+}
+
+.apihelp-parameters dt:after {
+       content: ':\A0'
+}
+
+.apihelp-parameters dd {
+       margin: 0 0 0.5em 10em;
+       line-height: 1.5em;
+}
+
+.apihelp-parameters dd p:first-child {
+       margin-top: 0;
+}
+
+.apihelp-parameters dd.info {
+       margin-left: 12em;
+       text-indent: -2em;
+}
+
+.apihelp-examples dt {
+       font-weight: normal;
+}
+
+.api-main-links {
+       text-align: center;
+}
+.api-main-links ul:before {
+       content: '[';
+}
+.api-main-links ul:after {
+       content: ']';
+}
diff --git a/resources/src/mediawiki/mediawiki.apipretty.css b/resources/src/mediawiki/mediawiki.apipretty.css
new file mode 100644 (file)
index 0000000..fe5e634
--- /dev/null
@@ -0,0 +1,11 @@
+h1.firstHeading {
+       display: none;
+}
+
+.api-pretty-header {
+       font-size: small;
+}
+
+.api-pretty-content {
+       white-space: pre-wrap;
+}
index 177367d..7fc5c42 100644 (file)
                                }, 1 );
 
                                // show an alert with this message
-                               return options.message;
+                               if ( $.isFunction( options.message ) ) {
+                                       return options.message();
+                               } else {
+                                       return options.message;
+                               }
                        }
                } ).on( showEventName, function () {
                        // Re-add onbeforeunload handler
index 1c0d833..6bcb87f 100644 (file)
                                target: '_blank'
                        } );
 
-                       // TODO: Use a stylesheet instead of these inline styles
-                       this.$dialog =
-                               $( '<div style="position: relative;"></div>' ).append(
-                                       $( '<div class="feedback-mode feedback-form"></div>' ).append(
-                                               $( '<small>' ).append(
-                                                       $( '<p>' ).msg(
-                                                               'feedback-bugornote',
-                                                               $bugNoteLink,
-                                                               fb.title.getNameText(),
-                                                               $feedbackPageLink.clone()
-                                                       )
-                                               ),
-                                               $( '<div style="margin-top: 1em;"></div>' )
-                                               .msg( 'feedback-subject' )
-                                               .append(
-                                                       $( '<br>' ),
-                                                       $( '<input type="text" class="feedback-subject" name="subject" maxlength="60" style="width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;"/>' )
-                                               ),
-                                               $( '<div style="margin-top: 0.4em;"></div>' )
-                                               .msg( 'feedback-message' )
-                                               .append(
-                                                       $( '<br>' ),
-                                                       $( '<textarea name="message" class="feedback-message" rows="5" cols="60"></textarea>' )
-                                               )
-                                       ),
-                                       $( '<div class="feedback-mode feedback-bugs"></div>' ).append(
-                                               $( '<p>' ).msg( 'feedback-bugcheck', $bugsListLink )
-                                       ),
-                                       $( '<div class="feedback-mode feedback-submitting" style="text-align: center; margin: 3em 0;"></div>' )
-                                       .msg( 'feedback-adding' )
-                                       .append(
-                                               $( '<br>' ),
-                                               $( '<span class="feedback-spinner"></span>' )
-                                       ),
-                                       $( '<div class="feedback-mode feedback-thanks" style="text-align: center; margin:1em"></div>' ).msg(
-                                               'feedback-thanks', fb.title.getNameText(), $feedbackPageLink.clone()
-                                       ),
-                                       $( '<div class="feedback-mode feedback-error" style="position: relative;"></div>' ).append(
-                                               $( '<div class="feedback-error-msg style="color: #990000; margin-top: 0.4em;"></div>' )
-                                       )
-                               );
+                       // TODO: Use a stylesheet instead of these inline styles in the template
+                       this.$dialog = mw.template.get( 'mediawiki.feedback', 'dialog.html' ).render();
+                       this.$dialog.find( '.feedback-mode small p' ).msg(
+                               'feedback-bugornote',
+                               $bugNoteLink,
+                               fb.title.getNameText(),
+                               $feedbackPageLink.clone()
+                       );
+                       this.$dialog.find( '.feedback-form .subject span' ).msg( 'feedback-subject' );
+                       this.$dialog.find( '.feedback-form .message span' ).msg( 'feedback-message' );
+                       this.$dialog.find( '.feedback-bugs p' ).msg( 'feedback-bugcheck', $bugsListLink );
+                       this.$dialog.find( '.feedback-submitting span' ).msg( 'feedback-adding' );
+                       this.$dialog.find( '.feedback-thanks' ).msg( 'feedback-thanks', fb.title.getNameText(),
+                               $feedbackPageLink.clone() );
 
                        this.$dialog.dialog( {
                                width: 500,
index 0bbf8fa..8ba57f6 100644 (file)
@@ -1,31 +1,15 @@
 /*!
- * .hlist fallbacks for IE 6, 7 and 8.
+ * .hlist fallbacks for IE 8.
  * @author [[User:Edokter]]
  */
 ( function ( mw, $ ) {
        var profile = $.client.profile();
 
-       if ( profile.name === 'msie' ) {
-               if ( profile.versionNumber === 8 ) {
-                       /* IE 8: Add pseudo-selector class to last-child list items */
-                       mw.hook( 'wikipage.content' ).add( function ( $content ) {
-                               $content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
-                                       .addClass( 'hlist-last-child' );
-                       } );
-               }
-               else if ( profile.versionNumber <= 7 ) {
-                       /* IE 7 and below: Generate interpuncts and parentheses */
-                       mw.hook( 'wikipage.content' ).add( function ( $content ) {
-                               var $hlists = $content.find( '.hlist' );
-                               $hlists.find( 'dt:not(:last-child)' )
-                                       .append( ': ' );
-                               $hlists.find( 'dd:not(:last-child)' )
-                                       .append( '<b>·</b> ' );
-                               $hlists.find( 'li:not(:last-child)' )
-                                       .append( '<b>·</b> ' );
-                               $hlists.find( 'dl dl, dl ol, dl ul, ol dl, ol ol, ol ul, ul dl, ul ol, ul ul' )
-                                       .prepend( '( ' ).append( ') ' );
-                       } );
-               }
+       if ( profile.name === 'msie' && profile.versionNumber === 8 ) {
+               /* Add pseudo-selector class to last-child list items */
+               mw.hook( 'wikipage.content' ).add( function ( $content ) {
+                       $content.find( '.hlist' ).find( 'dd:last-child, dt:last-child, li:last-child' )
+                               .addClass( 'hlist-last-child' );
+               } );
        }
 }( mediaWiki, jQuery ) );
index 594800e..fd76c80 100644 (file)
                }
 
                // Add/remove cloner clones without having to resubmit the form
-               $root.find( '.mw-htmlform-cloner-delete-button' ).click( function ( ev ) {
+               $root.find( '.mw-htmlform-cloner-delete-button' ).filter( ':input' ).click( function ( ev ) {
                        ev.preventDefault();
                        $( this ).closest( 'li.mw-htmlform-cloner-li' ).remove();
                } );
 
-               $root.find( '.mw-htmlform-cloner-create-button' ).click( function ( ev ) {
+               $root.find( '.mw-htmlform-cloner-create-button' ).filter( ':input' ).click( function ( ev ) {
                        var $ul, $li, html;
 
                        ev.preventDefault();
index e29c734..cfdb5a7 100644 (file)
                 */
                messages: new Map(),
 
+               /**
+                * Templates associated with a module
+                * @property {mw.Map}
+                */
+               templates: new Map(),
+
                /* Public Methods */
 
                /**
                                        mw.messages.set( registry[module].messages );
                                }
 
+                               // Initialise templates
+                               if ( registry[module].templates ) {
+                                       mw.templates.set( module, registry[module].templates );
+                               }
+
                                if ( $.isReady || registry[module].async ) {
                                        // Make sure we don't run the scripts until all (potentially asynchronous)
                                        // stylesheet insertions have completed.
                                 * whether it's safe to extend the stylesheet (see #canExpandStylesheetWith).
                                 *
                                 * @param {Object} msgs List of key/value pairs to be added to mw#messages.
+                                * @param {Object} [templates] List of key/value pairs to be added to mw#templates.
                                 */
-                               implement: function ( module, script, style, msgs ) {
+                               implement: function ( module, script, style, msgs, templates ) {
                                        // Validate input
                                        if ( typeof module !== 'string' ) {
                                                throw new Error( 'module must be a string, not a ' + typeof module );
                                        if ( !$.isPlainObject( msgs ) ) {
                                                throw new Error( 'msgs must be an object, not a ' + typeof msgs );
                                        }
+                                       if ( templates !== undefined && !$.isPlainObject( templates ) ) {
+                                               throw new Error( 'templates must be an object, not a ' + typeof templates );
+                                       }
                                        // Automatically register module
                                        if ( registry[module] === undefined ) {
                                                mw.loader.register( module );
                                        registry[module].script = script;
                                        registry[module].style = style;
                                        registry[module].messages = msgs;
+                                       // Templates are optional (for back-compat)
+                                       registry[module].templates = templates || {};
                                        // The module may already have been marked as erroneous
                                        if ( $.inArray( registry[module].state, ['error', 'missing'] ) === -1 ) {
                                                registry[module].state = 'loaded';
                                 * @param {Function} [ready] Callback to execute when all dependencies are ready
                                 * @param {Function} [error] Callback to execute if one or more dependencies failed
                                 * @return {jQuery.Promise}
+                                * @since 1.23 this returns a promise
                                 */
                                using: function ( dependencies, ready, error ) {
                                        var deferred = $.Deferred();
                                                        // Unversioned, private, or site-/user-specific
                                                        ( !descriptor.version || $.inArray( descriptor.group, [ 'private', 'user', 'site' ] ) !== -1 ) ||
                                                        // Partial descriptor
-                                                       $.inArray( undefined, [ descriptor.script, descriptor.style, descriptor.messages ] ) !== -1
+                                                       $.inArray( undefined, [ descriptor.script, descriptor.style,
+                                                                       descriptor.messages, descriptor.templates ] ) !== -1
                                                ) {
                                                        // Decline to store
                                                        return false;
                                                                        String( descriptor.script ) :
                                                                        JSON.stringify( descriptor.script ),
                                                                JSON.stringify( descriptor.style ),
-                                                               JSON.stringify( descriptor.messages )
+                                                               JSON.stringify( descriptor.messages ),
+                                                               JSON.stringify( descriptor.templates )
                                                        ];
                                                        // Attempted workaround for a possible Opera bug (bug 57567).
                                                        // This regex should never match under sane conditions.
diff --git a/resources/src/mediawiki/mediawiki.template.js b/resources/src/mediawiki/mediawiki.template.js
new file mode 100644 (file)
index 0000000..79f43d1
--- /dev/null
@@ -0,0 +1,123 @@
+/**
+ * @class mw.template
+ * @singleton
+ */
+( function ( mw, $ ) {
+       var compiledTemplates = {},
+               compilers = {};
+
+       mw.template = {
+               /**
+                * Register a new compiler and template.
+                *
+                * @param {string} name of compiler. Should also match with any file extensions of templates that want to use it.
+                * @param {Function} compiler which must implement a compile function
+                */
+               registerCompiler: function ( name, compiler ) {
+                       if ( !compiler.compile ) {
+                               throw new Error( 'Compiler must implement compile method.' );
+                       }
+                       compilers[name] = compiler;
+               },
+
+               /**
+                * Get the name of the compiler associated with a template based on its name.
+                *
+                * @param {string} templateName Name of template (including file suffix)
+                * @return {String} Name of compiler
+                */
+               getCompilerName: function ( templateName ) {
+                       var templateParts = templateName.split( '.' );
+
+                       if ( templateParts.length < 2 ) {
+                               throw new Error( 'Unable to identify compiler. Template name must have a suffix.' );
+                       }
+                       return templateParts[ templateParts.length - 1 ];
+               },
+
+               /**
+                * Get the compiler for a given compiler name.
+                *
+                * @param {string} compilerName Name of the compiler
+                * @return {Object} The compiler associated with that name
+                */
+               getCompiler: function ( compilerName ) {
+                       var compiler = compilers[ compilerName ];
+                       if ( !compiler ) {
+                               throw new Error( 'Unknown compiler ' + compilerName );
+                       }
+                       return compiler;
+               },
+
+               /**
+                * Register a template associated with a module.
+                *
+                * Compiles the newly added template based on the suffix in its name.
+                *
+                * @param {string} moduleName Name of ResourceLoader module to get the template from
+                * @param {string} templateName Name of template to add including file extension
+                * @param {string} templateBody Contents of a template (e.g. html markup)
+                * @return {Function} Compiled template
+                */
+               add: function ( moduleName, templateName, templateBody ) {
+                       var compiledTemplate,
+                               compilerName = this.getCompilerName( templateName );
+
+                       if (!compiledTemplates[moduleName]) {
+                               compiledTemplates[moduleName] = {};
+                       }
+
+                       compiledTemplate = this.compile( templateBody, compilerName );
+                       compiledTemplates[moduleName][ templateName ] = compiledTemplate;
+                       return compiledTemplate;
+               },
+
+               /**
+                * Retrieve a template by module and template name.
+                *
+                * @param {string} moduleName Name of the module to retrieve the template from
+                * @param {string} templateName Name of template to be retrieved
+                * @return {Object} Compiled template
+                */
+               get: function ( moduleName, templateName ) {
+                       var moduleTemplates, compiledTemplate;
+
+                       // Check if the template has already been compiled, compile it if not
+                       if ( !compiledTemplates[ moduleName ] || !compiledTemplates[ moduleName ][ templateName ] ) {
+                               moduleTemplates = mw.templates.get( moduleName );
+                               if ( !moduleTemplates || !moduleTemplates[ templateName ] ) {
+                                       throw new Error( 'Template ' + templateName + ' not found in module ' + moduleName );
+                               }
+
+                               // Add compiled version
+                               compiledTemplate = this.add( moduleName, templateName, moduleTemplates[ templateName ] );
+                       } else {
+                               compiledTemplate = compiledTemplates[ moduleName ][ templateName ];
+                       }
+                       return compiledTemplate;
+               },
+
+               /**
+                * Wrap our template engine of choice.
+                *
+                * @param {string} templateBody Template body
+                * @param {string} compilerName The name of a registered compiler
+                * @return {Object} Template interface
+                */
+               compile: function ( templateBody, compilerName ) {
+                       return this.getCompiler( compilerName ).compile( templateBody );
+               }
+       };
+
+       // Register basic html compiler
+       mw.template.registerCompiler( 'html', {
+               compile: function ( src ) {
+                       return {
+                               render: function () {
+                                       return $( $.parseHTML( $.trim( src ) ) );
+                               }
+                       };
+               }
+       } );
+
+}( mediaWiki, jQuery ) );
index 3a06a02..a53cbcb 100644 (file)
                addPortletLink: function ( portlet, href, text, id, tooltip, accesskey, nextnode ) {
                        var $item, $link, $portlet, $ul;
 
-                       // Check if there's atleast 3 arguments to prevent a TypeError
+                       // Check if there's at least 3 arguments to prevent a TypeError
                        if ( arguments.length < 3 ) {
                                return null;
                        }
diff --git a/resources/src/mediawiki/templates/dialog.html b/resources/src/mediawiki/templates/dialog.html
new file mode 100644 (file)
index 0000000..e116f3e
--- /dev/null
@@ -0,0 +1,25 @@
+<div style="position: relative; display: block;" class="ui-dialog-content ui-widget-content">
+       <div class="feedback-mode feedback-form">
+               <small><p></p></small>
+               <div class="subject" style="margin-top: 1em;">
+                       <span></span><br>
+                       <input type="text" class="feedback-subject" name="subject" maxlength="60"
+                               style="width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;">
+               </div>
+               <div class="message" style="margin-top: 0.4em;">
+                       <span></span><br>
+                       <textarea name="message" class="feedback-message" rows="5" cols="60"></textarea>
+               </div>
+       </div>
+       <div class="feedback-mode feedback-bugs">
+               <p></p>
+       </div>
+       <div class="feedback-mode feedback-submitting" style="text-align: center; margin: 3em 0;">
+               <span></span><br>
+               <span class="feedback-spinner"></span>
+       </div>
+       <div class="feedback-mode feedback-thanks" style="text-align: center; margin:1em"></div>
+       <div class="feedback-mode feedback-error" style="position: relative;">
+               <div class="feedback-error-msg" style=" color:#990000; margin-top:0.4em;"></div>
+       </div>
+</div>
index 2e8fed4..7391afd 100644 (file)
@@ -112,4 +112,7 @@ $wgAutoloadClasses += array(
        # tests/phpunit/includes/site
        'SiteTest' => "$testDir/phpunit/includes/site/SiteTest.php",
        'TestSites' => "$testDir/phpunit/includes/site/TestSites.php",
+
+       # tests/phpunit/includes/specialpage
+       'SpecialPageTestHelper' => "$testDir/phpunit/includes/specialpage/SpecialPageTestHelper.php",
 );
diff --git a/tests/browser/Gemfile b/tests/browser/Gemfile
deleted file mode 100644 (file)
index 3be33b7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#ruby=ruby-2.1.2
-#ruby-gemset=core
-
-source "https://rubygems.org"
-
-gem "mediawiki_api"
-gem "mediawiki_selenium"
diff --git a/tests/browser/Gemfile.lock b/tests/browser/Gemfile.lock
deleted file mode 100644 (file)
index 1ea4eb5..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    builder (3.2.2)
-    childprocess (0.5.3)
-      ffi (~> 1.0, >= 1.0.11)
-    cucumber (1.3.16)
-      builder (>= 2.1.2)
-      diff-lcs (>= 1.1.3)
-      gherkin (~> 2.12)
-      multi_json (>= 1.7.5, < 2.0)
-      multi_test (>= 0.1.1)
-    data_magic (0.19)
-      faker (>= 1.1.2)
-      yml_reader (>= 0.3)
-    diff-lcs (1.2.5)
-    domain_name (0.5.20)
-      unf (>= 0.0.5, < 1.0.0)
-    faker (1.4.3)
-      i18n (~> 0.5)
-    faraday (0.9.0)
-      multipart-post (>= 1.2, < 3)
-    faraday-cookie_jar (0.0.6)
-      faraday (>= 0.7.4)
-      http-cookie (~> 1.0.0)
-    ffi (1.9.3)
-    gherkin (2.12.2)
-      multi_json (~> 1.3)
-    headless (1.0.2)
-    http-cookie (1.0.2)
-      domain_name (~> 0.5)
-    i18n (0.6.11)
-    json (1.8.1)
-    mediawiki_api (0.2.1)
-      faraday (~> 0.9, >= 0.9.0)
-      faraday-cookie_jar (~> 0.0, >= 0.0.6)
-    mediawiki_selenium (0.3.2)
-      cucumber (~> 1.3, >= 1.3.10)
-      headless (~> 1.0, >= 1.0.1)
-      json (~> 1.8, >= 1.8.1)
-      mediawiki_api (~> 0.2, >= 0.2.1)
-      page-object (~> 1.0)
-      rest-client (~> 1.6, >= 1.6.7)
-      rspec-expectations (~> 2.14, >= 2.14.4)
-      syntax (~> 1.2, >= 1.2.0)
-    mime-types (2.3)
-    multi_json (1.10.1)
-    multi_test (0.1.1)
-    multipart-post (2.0.0)
-    netrc (0.7.7)
-    page-object (1.0.2)
-      page_navigation (>= 0.9)
-      selenium-webdriver (>= 2.42.0)
-      watir-webdriver (>= 0.6.9)
-    page_navigation (0.9)
-      data_magic (>= 0.14)
-    rest-client (1.7.2)
-      mime-types (>= 1.16, < 3.0)
-      netrc (~> 0.7)
-    rspec-expectations (2.99.2)
-      diff-lcs (>= 1.1.3, < 2.0)
-    rubyzip (1.1.6)
-    selenium-webdriver (2.42.0)
-      childprocess (>= 0.5.0)
-      multi_json (~> 1.0)
-      rubyzip (~> 1.0)
-      websocket (~> 1.0.4)
-    syntax (1.2.0)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.6)
-    watir-webdriver (0.6.10)
-      selenium-webdriver (>= 2.18.0)
-    websocket (1.0.7)
-    yml_reader (0.3)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  mediawiki_api
-  mediawiki_selenium
index 8630f5d..c011a68 100644 (file)
@@ -50,6 +50,7 @@ module.exports = function ( grunt ) {
                },
                banana: {
                        core: 'languages/i18n/',
+                       api: 'includes/api/i18n/',
                        installer: 'includes/installer/i18n/'
                },
                watch: {
index a9df683..529ab82 100644 (file)
@@ -941,7 +941,7 @@ class ParserTest {
                $tables = array( 'user', 'user_properties', 'user_former_groups', 'page', 'page_restrictions',
                        'protected_titles', 'revision', 'text', 'pagelinks', 'imagelinks',
                        'categorylinks', 'templatelinks', 'externallinks', 'langlinks', 'iwlinks',
-                       'site_stats', 'hitcounter', 'ipblocks', 'image', 'oldimage',
+                       'site_stats', 'ipblocks', 'image', 'oldimage',
                        'recentchanges', 'watchlist', 'interwiki', 'logging',
                        'querycache', 'objectcache', 'job', 'l10n_cache', 'redirect', 'querycachetwo',
                        'archive', 'user_groups', 'page_props', 'category', 'msg_resource', 'msg_resource_links'
index c90c4f6..8dfb4dd 100644 (file)
@@ -155,6 +155,39 @@ Template:OpenTable
 {|
 !!endarticle
 
+!!article
+Template:EmptyLITest
+!!text
+*a
+*
+*
+*b
+!!endarticle
+
+!!article
+Template:EmptyTRTest
+!!text
+{|
+|-
+|-
+|foo
+|-
+|-
+|bar
+|}
+!!endarticle
+
+!!article
+Template:EmptyTRWithHTMLAttrTest
+!!text
+<table>
+<tr align="center"></tr>
+<tr><td>foo</td></tr>
+<tr align="center"></tr>
+<tr><td>bar</td></tr>
+</table>
+!!endarticle
+
 ###
 ### Basic tests
 ###
@@ -1328,8 +1361,7 @@ parsoid
 !! wikitext
 {{echo|&ndash;}}
 !! 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>
+<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
 
 !! test
@@ -1488,6 +1520,19 @@ Comment semantics: unclosed comment at end
 
 !! end
 
+# Bug 58184: document parsoid's behaviour
+!! test
+Suppress comment closing tag in lenient browsers
+!! options
+parsoid=wt2html,html2html
+!! wikitext
+<!-- Browsers--!> think this is closed -->
+!! html/php
+
+!! html/parsoid
+<!-- Browsers--¡> think this is closed -->
+!! end
+
 !! test
 Comment in template title
 !! wikitext
@@ -1649,6 +1694,11 @@ x <div>foo</div> z
 <p>z</p>
 !! end
 
+# Tidy strips out the empty <div> tags. Parsoid doesn't.
+# So, we have a separate section for Parsoid. We don't want
+# to mimic this stripping behavior in Parsoid. It affects
+# editing experience and also requires us to maintain additional
+# info for RT-ing.
 !! test
 Empty lines between lines with block tags
 !! wikitext
@@ -1687,6 +1737,19 @@ b
 <p>d</p>
 <p><br /></p>
 <div>e</div>
+!! html/parsoid
+<div data-parsoid='{"stx":"html"}'></div>
+
+<p><br /></p>
+<div data-parsoid='{"stx":"html"}'></div><p>a</p>
+
+<p>b</p>
+<div data-parsoid='{"stx":"html"}'>a</div><p>b</p>
+
+<div data-parsoid='{"stx":"html"}'>b</div><p>d</p>
+
+<p><br /></p>
+<div data-parsoid='{"stx":"html"}'>e</div>
 !! end
 
 ## PHP parser emits output which is broken
@@ -1709,6 +1772,22 @@ b</div>
 <p>b</p>
 !! end
 
+## SSS FIXME: I can come up with other scenarios where this doesn't work because
+## of eager output of buffered tokens in the p-wrapper. But, I'm going to ignore
+## them for now.
+!! test
+P-wrapping should leave sol-transparent tags outside p-tags where possible
+!! options
+parsoid=wt2html
+!! wikitext
+a [[Category:A1]] [[Category:A2]]
+[[Category:A3]]
+[[Category:A4]]
+!! html/parsoid
+<p>a</p>
+<link href="Category:A1"/> <link href="Category:A2"/> <link href="Category:A3"/> <link href="Category:A4"/>
+!! end
+
 ###
 ### Preformatted text
 ###
@@ -1966,8 +2045,11 @@ Entities inside <pre>
 </p>
 !! end
 
+# Parsoid doesn't strip empty tags, like Tidy does.
 !! test
 Empty pre; pre inside other HTML tags (bug 54946)
+!! options
+parsoid=wt2html,wt2wt
 !! wikitext
 a
 
@@ -1975,7 +2057,7 @@ a
 foo
 </pre></div>
 <pre></pre>
-!! html
+!! html/php
 <p>a
 </p>
 <div><pre>
@@ -1983,12 +2065,18 @@ foo
 </pre></div>
 <pre></pre>
 
-!! html+tidy
+!! html/php+tidy
 <p>a</p>
 <div>
 <pre>
 foo
 </pre></div>
+!! html/parsoid
+<p>a</p>
+
+<div><pre>foo
+</pre></div>
+<pre></pre>
 !! end
 
 !! test
@@ -2156,10 +2244,10 @@ parsoid=wt2html
 <table><pre></pre></table>
 
 !! html/parsoid
-<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;pre &lt;pre>x&lt;/pre>"}},"i":0}}]}'>&lt;pre </span>
-<pre>x</pre>
+<p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;pre &lt;pre>x&lt;/pre>"}},"i":0}}]}'>&lt;pre </p><pre>x</pre>
+
+<p>&lt;pre </p>
 
-<span>&lt;pre </span>
 <table></table>
 !! end
 
@@ -2559,12 +2647,8 @@ c
 
 !! html/parsoid
 <pre>a</pre>
-<table>
-<tbody>
-<tr>
-<td> b</td></tr>
+ <table>
+ <tbody><tr><td> b</td></tr>
  </tbody></table>
 !!end
 
@@ -2613,6 +2697,12 @@ a
  c <blockquote> foo </blockquote>
 <pre><span> foo </span>
 </pre>
+!! html/parsoid
+ <p>a </p><p data-parsoid='{"stx":"html"}'> foo </p>
+ <p>b </p><div data-parsoid='{"stx":"html"}'> foo </div>
+ <p>c </p><blockquote data-parsoid='{"stx":"html"}'> foo </blockquote>
+<pre><span> foo </span>
+</pre>
 !! html+tidy
 <p>a</p>
 <p>foo</p>
@@ -2637,6 +2727,9 @@ a
 </pre>
  b <div> foo </div>
 
+!! html/parsoid
+<pre>a <span data-parsoid='{"stx":"html"}'>foo</span></pre>
+ b <div data-parsoid='{"stx":"html"}'> foo </div>
 !! html+tidy
 <pre>
 a <span>foo</span>
@@ -2878,8 +2971,7 @@ parsoid=wt2html,wt2wt
 {{echo| [[Category:foo]]}} <!-- No pre-wrapping -->
 !! 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 -->
+<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 -->
 !! end
 
 !! test
@@ -2892,7 +2984,6 @@ parsoid=wt2html,wt2wt
 !! html
 <pre>
 <link rel="mw:PageProp/Category" href="./Category:Foo"> a
-
 <link rel="mw:PageProp/Category" href="./Category:Foo"> <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b"}},"i":0}}]}'>b</span></pre>
 !! end
 
@@ -4004,8 +4095,8 @@ External links: with no contents
 </p>
 !! html/parsoid
 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo"></a></p>
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo">Bar</a></p>
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo"><span>Bar</span></a></p>
+<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo">Bar</a></p>
+<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo"><span>Bar</span></a></p>
 !! end
 
 !! test
@@ -4751,7 +4842,7 @@ Parenthesis in external links, w/ transclusion or comment
 </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;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;]}]],&amp;quot;dsr&amp;quot;:[20,31,null,null]}\">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 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}}"}}' data-mw='{"attribs":[[{"txt":"href"},{"html":"http://example.com/&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&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;]}]],&amp;quot;dsr&amp;quot;:[20,31,null,null]}\" 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}}]}\">hi&lt;/span>"}]]}'>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 -->"}}'>http://example.com</a>)</p>
 !! end
@@ -5129,8 +5220,8 @@ Accept "!!" in table data
 </td></tr></table>
 
 !! html/parsoid
-<table data-parsoid='{}'>
-<tbody data-parsoid='{}'><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'> Foo!! </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'></td></tr>
+<table>
+<tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'> Foo!! </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'></td></tr>
 </tbody></table>
 !! end
 
@@ -5574,7 +5665,7 @@ Wikitext table with html-syntax row
 !! test
 Implicit <td> after a |-
 !! options
-parsoid=wt2html,wt2wt
+parsoid=wt2html,html2html
 !! wikitext
 {|
 |-
@@ -5598,7 +5689,7 @@ a
 !! test
 <pre> tags should be recognized in an explicit <td> context, but not in an implicit <td> context
 !! options
-parsoid=wt2html,wt2wt
+parsoid=wt2html,html2html
 !! wikitext
 {|
 |-
 !! end
 
 # PHP + Tidy strips the list out of the table; Parsoid wraps it.
+# Parsoid generates the missing <td>, so wt2wt won't succeed.
 !! test
 Lists should be recognized in an implicit <td> context
 !! options
-parsoid=wt2html,wt2wt
+parsoid=wt2html,html2html
 !! wikitext
 {|
 |-
@@ -5679,14 +5771,19 @@ parsoid=wt2html,wt2wt
 {|
 |baz
 |}<b>quux</b>
-!! html
-<table><tbody>
+!! html+tidy
+<table>
 <tr>
-<td>foo</td></tr></tbody></table> bar
+<td>foo</td>
+</tr>
+</table>
+<p>bar</p>
 <table>
-<tbody>
 <tr>
-<td>baz</td></tr></tbody></table><b>quux</b>
+<td>baz</td>
+</tr>
+</table>
+<p><b>quux</b></p>
 !! end
 
 !! test
@@ -6483,7 +6580,7 @@ title=[[User:test/123]]
 <p><a href="#a">b</a>
 </p>
 !! html/parsoid
-<p data-parsoid='{}'><a rel="mw:WikiLink" href="../User:Test/123#a" data-parsoid='{"stx":"piped","a":{"href":"../User:Test/123#a"},"sa":{"href":"#a"}}'>b</a></p>
+<p><a rel="mw:WikiLink" href="../User:Test/123#a" data-parsoid='{"stx":"piped","a":{"href":"../User:Test/123#a"},"sa":{"href":"#a"}}'>b</a></p>
 !! end
 
 !! test
@@ -6503,7 +6600,7 @@ 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" title="Fool" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a></p>
+<p><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" title="Fool" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a></p>
 !! end
 
 !! test
@@ -6513,7 +6610,7 @@ 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" title="Fool" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a> are <b data-parsoid="{}">bold and foolish</b></p>
+<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" title="Fool" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a> are <b>bold and foolish</b></p>
 !! end
 
 !! article
@@ -6624,20 +6721,28 @@ Link with angle bracket after anchor
 
 !! test
 Inline interwiki link
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[MeatBall:SoftSecurity]]
-!! html
+!! html/php
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a></p>
 !! end
 
 !! test
 Inline interwiki link with empty title (bug 2372)
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[MeatBall:]]
-!! html
+!! html/php
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?" title="meatball:">MeatBall:</a></p>
 !! end
 
 !! test
@@ -6666,6 +6771,10 @@ Interwiki link with fragment (bug 2130)
 !! end
 
 # Ideally the wikipedia: prefix here should be proto-relative too
+# [CSA]: this is kind of a bogus test, as the PHP parser test doesn't
+# define the 'en' prefix, and originally the test used 'wikipedia',
+# which isn't a localinterwiki prefix hence the links to the 'en:Foo'
+# article.
 !! test
 Different interwiki prefixes mapping to the same URL
 !! wikitext
@@ -6683,19 +6792,19 @@ Different interwiki prefixes mapping to the same URL
 
 [[  wikiPEdia :Foo]]
 !! html/parsoid
-<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>
+<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}' title="en:Foo">en:Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}'>Foo</a></p>
+<p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">Foo</a></p>
 
-<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><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}' title="wikipedia:Foo">wikipedia:Foo</a></p>
 
-<p><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}'>Foo</a></p>
+<p><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}' title="wikipedia:Foo">Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":"wikipedia:en:Foo"},"isIW":true}'>wikipedia:en:Foo</a></p>
+<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":"wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
 
-<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":":wikipedia:en:Foo"},"isIW":true}'>wikipedia:en:Foo</a></p>
+<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":":wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
 
-<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><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}' title="wikipedia:Foo">  wikiPEdia :Foo</a></p>
 !! end
 
 !! test
@@ -6707,60 +6816,97 @@ Interwiki links that cannot be represented in wiki syntax
 [http://de.wikipedia.org/wiki/Foo?action=history has query]
 [http://de.wikipedia.org/wiki/#foo is just fragment]
 
+!! html/php
+<p><a href="http://www.usemod.com/cgi-bin/mb.pl?ok" class="extiw" title="meatball:ok">meatball:ok</a>
+<a href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" class="extiw" title="meatball:ok">ok with fragment</a>
+<a href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well%3F" class="extiw" title="meatball:ok as well?">ok ending with ? mark</a>
+<a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
+<a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a>
+</p>
 !! html/parsoid
-<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?">ok ending with ? mark</a>
+<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok" title="meatball:ok">meatball:ok</a>
+<a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" title="meatball:ok">ok with fragment</a>
+<a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well?" title="meatball:ok as well?">ok ending with ? mark</a>
 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
 <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>
+!! html/php
+<p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
+</p>
+!! html/parsoid
+<p><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"}' title="wikipedia:Foo">Bar</a></p>
 !! end
 
 !! test
 Local interwiki link
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[local:Template:Foo]]
-!! html
+!! html/php
 <p><a href="/wiki/Template:Foo" title="Template:Foo">local:Template:Foo</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Template:Foo" title="Template:Foo">local:Template:Foo</a></p>
 !! end
 
+# Parsoid does not mark self-links, by design.
 !! test
 Local interwiki link: self-link to current page
 !! options
 title=[[Main Page]]
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[local:Main Page]]
-!! html
+!! html/php
 <p><strong class="selflink">local:Main Page</strong>
 </p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">local:Main Page</a></p>
 !! end
 
 !! test
 Local interwiki link: prefix only (bug 64167)
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[local:]]
-!! html
+!! html/php
 <p><a href="/wiki/Main_Page" title="Main Page">local:</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">local:</a></p>
 !! end
 
 !! test
 Local interwiki link: with additional interwiki prefix (bug 61357)
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[local:meatball:Hello]]
-!! html
+!! html/php
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?Hello" class="extiw" title="meatball:Hello">local:meatball:Hello</a>
 </p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?Hello" title="meatball:Hello">local:meatball:Hello</a></p>
+!! end
+
+!! test
+Multiple local interwiki link prefixes
+!! wikitext
+[[local:local:local:local:mi:local:Foo]]
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! html/php
+<p><a href="/wiki/Foo" title="Foo">local:local:local:local:mi:local:Foo</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Foo" title="Foo">local:local:local:local:mi:local:Foo</a></p>
 !! end
 
 ###
@@ -6777,12 +6923,14 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/Chinese"/></p>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
 !! end
 
 !! test
 Interlanguage link with spacing
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 Blah blah blah
 [[   zh  :    Chinese     ]]
@@ -6790,8 +6938,8 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/Chinese"/></p>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
 !! end
 
 !! test
@@ -6804,9 +6952,9 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" href="//es.wikipedia.org/wiki/Spanish"/>
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/Chinese"/></p>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish"/>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
 !! end
 
 !! test
@@ -6819,9 +6967,9 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" href="//es.wikipedia.org/wiki/Spanish" data-parsoid='{"stx":"simple","a":{"href":"//es.wikipedia.org/wiki/Spanish"},"sa":{"href":"   es :Spanish"}}'/>
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/Chinese" data-parsoid='{"stx":"simple","a":{"href":"//zh.wikipedia.org/wiki/Chinese"},"sa":{"href":" ZH :Chinese"}}'/>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish" data-parsoid='{"stx":"simple","a":{"href":"http://es.wikipedia.org/wiki/Spanish"},"sa":{"href":"   es :Spanish"}}'/>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese" data-parsoid='{"stx":"simple","a":{"href":"http://zh.wikipedia.org/wiki/Chinese"},"sa":{"href":" ZH :Chinese"}}'/>
 !! end
 
 !! test
@@ -6835,8 +6983,8 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/Chinese"/></p>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
 !! end
 
 !! test
@@ -6851,9 +6999,9 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" href="//es.wikipedia.org/wiki/Spanish"/>
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/Chinese"/></p>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish"/>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
 !! end
 
 !! test
@@ -6865,8 +7013,8 @@ Blah blah blah
 <p>Blah blah blah
 </p>
 !! html/parsoid
-<p>Blah blah blah
-<link rel="mw:PageProp/Language" title="Multilingual" href="//wikisource.org/wiki/Article"/></p>
+<p>Blah blah blah</p>
+<link rel="mw:PageProp/Language" title="Multilingual" href="http://wikisource.org/wiki/Article"/>
 !! end
 
 !! test
@@ -6895,68 +7043,102 @@ He&amp;nbsp;llo [[He&amp;nbsp;llo]]
 
 !! test
 Parsoid: handle constructor well
-!! options
-parsoid
 !! wikitext
 [[constructor]]
 
 [[constructor:foo]]
-!! html
+!! html/php
+<p><a href="/index.php?title=Constructor&amp;action=edit&amp;redlink=1" class="new" title="Constructor (page does not exist)">constructor</a>
+</p><p><a href="/index.php?title=Constructor:foo&amp;action=edit&amp;redlink=1" class="new" title="Constructor:foo (page does not exist)">constructor:foo</a>
+</p>
+!! html/parsoid
 <p><a rel="mw:WikiLink" href="./Constructor" title="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><a rel="mw:WikiLink" href="./Foo" title="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
 
+!! article
+ko:
+!! text
+Test.
+!! endarticle
+
+# Note that `ko` isn't a known interlanguage prefix
 !! test
 Parsoid: recognize interlanguage links without a target page
 !! options
-parsoid
+ill
 !! wikitext
+[[es:]]
+
 [[ko:]]
-!! html
-<p><link rel="mw:PageProp/Language" href="http://ko.wikipedia.org/wiki/"></p>
+!! html/php
+es:
+!! html/parsoid
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/"/>
+
+<p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
 !! end
 
+# Note that `ko` isn't a known interwiki prefix
 !! test
 Parsoid: recognize interwiki links without a target page
 !! options
-parsoid
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
+[[:es:]]
+
 [[:ko:]]
-!! html
-<p><a rel="mw:ExtLink" href="//ko.wikipedia.org/wiki/">ko:</a></p>
+!! html/php
+<p><a href="http://es.wikipedia.org/wiki/" class="extiw" title="es:">es:</a>
+</p><p><a href="/wiki/Ko:" title="Ko:">ko:</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/" title="es:">es:</a></p>
+<p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
 !! end
 
 !! test
-Parsoid: Bug #45209, handle interwiki links pointing to the current wiki as plain wiki links
-!! options
-parsoid
+Handle interwiki links pointing to the current wiki as plain wiki links (bug 45209)
 !! wikitext
-[[en:Foo]]
-!! html
-<p><a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo"},"sa":{"href":"en:Foo"}}'>Foo</a></p>
+[[mi:Foo]]
+!! html/php
+<p><a href="/wiki/Foo" title="Foo">mi:Foo</a>
+</p>
+!! html/parsoid
+<p><a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo"},"sa":{"href":"mi:Foo"}}'>mi:Foo</a></p>
 !! end
 
 !! test
 Interlanguage link with preceding local interwiki link (bug 68085)
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 Blah blah blah
 [[local:es:Spanish]]
-!! html
+!! html/php
 <p>Blah blah blah
 <a href="http://es.wikipedia.org/wiki/Spanish" class="extiw" title="es:Spanish">local:es:Spanish</a>
 </p>
+!! html/parsoid
+<p>Blah blah blah
+<a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">local:es:Spanish</a></p>
 !! end
 
 !! test
 Looks like an interlanguage link, but is actually a local interwiki
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 Blah blah blah
 [[mi:Template:Foo]]
-!! html
+!! html/php
 <p>Blah blah blah
 <a href="/wiki/Template:Foo" title="Template:Foo">mi:Template:Foo</a>
 </p>
+!! html/parsoid
+<p>Blah blah blah
+<a rel="mw:WikiLink" href="Template:Foo" title="Template:Foo">mi:Template:Foo</a></p>
 !! end
 
 ###
@@ -6980,9 +7162,8 @@ 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">
+!! html/parsoid
+<link rel="mw:PageProp/redirect" href="./Main_Page"><link rel="mw:PageProp/redirect" href="./%5B%5BBar%5D%5D">
 !! end
 
 !! test
@@ -7248,11 +7429,12 @@ Horizontal ruler (should it add that extra space?)
 <hr >
 foo <hr
 > bar
-!! html
+!! html+tidy
 <hr />
 <hr />
-foo <hr /> bar
-
+<p>foo</p>
+<hr />
+<p>bar</p>
 !! end
 
 !! test
@@ -7718,6 +7900,8 @@ Unbalanced closing non-block tags don't break a list
 !! test
 Unclosed formatting tags that straddle lists are closed and reopened
 (php parser relies on Tidy to fix up)
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 # <s> a
 # b </s>
@@ -7727,12 +7911,8 @@ Unclosed formatting tags that straddle lists are closed and reopened
 <li><s>b</s></li>
 </ol>
 !! html/parsoid
-<ol>
-<li> <s> a </s>
-</li>
-<li> <s> b </s>
-</li>
-</ol>
+<ol><li> <s> a</s></li>
+<li><s> b </s></li></ol>
 !! end
 
 # Parsoid fails this test, but it might be tricky to support properly.
@@ -9237,19 +9417,15 @@ some
 <h3><span class="mw-headline" id="here">here</span></h3>
 
 !! html/parsoid
-<!-- comment --><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/><!-- comment --><meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><!-- comment -->
-<h2 data-parsoid='{}'> hu </h2>
+<!-- comment --><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/><!-- comment --><meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><!-- comment --><h2> hu </h2>
 
 <meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/>
+<p>some</p>
+<meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><ul><li> stuff</li>
+<li> here</li></ul>
 
-<p data-parsoid='{}'>some</p>
-<meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/>
-<ul data-parsoid='{}'>
-<li data-parsoid='{}'> stuff</li>
-
-<li data-parsoid='{}'> here</li></ul>
+<meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"&lt;includeonly>can have stuff&lt;/includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><h3> here </h3>
 
-<h3 data-parsoid='{}'> here </h3>
 !! end
 
 # TODO: test with DOM fragment reuse!
@@ -9270,25 +9446,17 @@ c}}d
 
 b}}
 !! 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
-
-
-<p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["a",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b\n<table></table>\nc"}},"i":0}},"d"]}'>ab</p><span about="#mwt2">
-</span>
-<table about="#mwt2"></table><span about="#mwt2">
-</span>
-<p about="#mwt2">cd</p>
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["a",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b&lt;table>&lt;/table>c"}},"i":0}},"d"]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>ab</p><table about="#mwt1" data-parsoid='{"stx":"html"}'></table><p about="#mwt1">cd</p>
 
+<p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["a",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b\n&lt;table>&lt;/table>\nc"}},"i":0}},"d"]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>ab</p><span about="#mwt2">
+</span><table about="#mwt2" data-parsoid='{"stx":"html"}'></table><span about="#mwt2">
+</span><p about="#mwt2">cd</p>
 
-<p about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n\n<table></table>\n\nb"}},"i":0}}]}'>a</p><span about="#mwt3">
+<p about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n\n&lt;table>&lt;/table>\n\nb"}},"i":0}}]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>a</p><span about="#mwt3">
 
-</span>
-<table about="#mwt3"></table><span about="#mwt3">
+</span><table about="#mwt3" data-parsoid='{"stx":"html"}'></table><span about="#mwt3">
 
-</span>
-<p about="#mwt3">b</p>
+</span><p about="#mwt3">b</p>
 !! end
 
 !! test
@@ -9405,11 +9573,9 @@ parsoid=wt2html,wt2wt
 |foo
 |}
 !!html/parsoid
-<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":""}},"i":0}}]}'></span>
-<table width="100%">
-<tbody>
-<tr>
-<td>foo</td></tr></tbody></table>
+<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":""}},"i":0}}]}'></span><table width="100%">
+<tbody><tr><td>foo</td></tr>
+</tbody></table>
 !!end
 
 !!test
@@ -9592,7 +9758,7 @@ Templates: Correctly encapsulate templates producing </p> tag without a correspo
 b</p>}}
 !! html/parsoid
 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\nb&lt;/p>"}},"i":0}}]}'>a
-b</p><p></p>
+b</p>
 !!end
 
 !!test
@@ -10841,8 +11007,7 @@ parsoid=wt2html,wt2wt,html2html
 <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 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>
+<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
@@ -10853,8 +11018,7 @@ Simple image (using File: namespace, now canonical)
 <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 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>
+<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
@@ -10925,9 +11089,9 @@ thumbsize=220
 <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"></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" title="Link1" data-parsoid='{"stx":"simple","a":{"href":"./Link1"},"sa":{"href":"Link1"},"dsr":[32,41,2,2]}'>Link1</a>
+<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"}]}'><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/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>Caption <a rel="mw:WikiLink" href="./Link1" title="Link1" data-parsoid='{"stx":"simple","a":{"href":"./Link1"},"sa":{"href":"Link1"}}'>Link1</a>
 [[]]
-<a rel="mw:WikiLink" href="./Link2" title="Link2" data-parsoid='{"stx":"simple","a":{"href":"./Link2"},"sa":{"href":"Link2"},"dsr":[47,56,2,2]}'>Link2</a>
+<a rel="mw:WikiLink" href="./Link2" title="Link2" data-parsoid='{"stx":"simple","a":{"href":"./Link2"},"sa":{"href":"Link2"}}'>Link2</a>
 </figcaption></figure>
 !! end
 
@@ -10961,7 +11125,7 @@ parsoid=wt2html,wt2wt,html2html
 <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"></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;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;]}]],&amp;quot;dsr&amp;quot;:[24,38,null,null]}\">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>
+<figure typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt2" data-mw='{"attribs":[["thumbnail",{"html":"thumb"}],["width",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&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;]}]],&amp;quot;dsr&amp;quot;:[24,38,null,null]}\" 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}}]}\">137px&lt;/span>"}]]}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" height="16" width="137"/></a><figcaption>This is a caption</figcaption></figure>
 !! end
 
 !! test
@@ -10972,7 +11136,7 @@ parsoid=wt2html,wt2wt,html2html
 <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"></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;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;]}]],&amp;quot;dsr&amp;quot;:[18,32,null,null]}\">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;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;]}]],&amp;quot;dsr&amp;quot;:[33,47,null,null]}\">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>
+<figure typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt3" data-mw='{"attribs":[["thumbnail",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&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;]}]],&amp;quot;dsr&amp;quot;:[18,32,null,null]}\" 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}}]}\">thumb&lt;/span>"}],["width",{"html":"&lt;span about=\"#mwt2\" typeof=\"mw:Transclusion\" data-parsoid=\"{&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;]}]],&amp;quot;dsr&amp;quot;:[33,47,null,null]}\" 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}}]}\">137px&lt;/span>"}]]}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" height="16" width="137"/></a><figcaption>This is a caption</figcaption></figure>
 !! end
 
 !! test
@@ -10983,7 +11147,7 @@ parsoid=wt2html,wt2wt,html2html
 <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 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;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;]}]],&amp;quot;dsr&amp;quot;:[18,31,null,null]}\">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>
+<p><span typeof="mw:Image mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"width","ak":"{{echo|50px}}"}]}' data-mw='{"attribs":[["width",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&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;]}]],&amp;quot;dsr&amp;quot;:[18,31,null,null]}\" 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}}]}\">50px&lt;/span>"}]]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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
 
 ## Parsoid does not provide editing support for images where templates produce multiple image attributes.
@@ -10999,7 +11163,6 @@ Image with multiple attributes from the same template
 <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
 
-# Parsoid's output here is broken (incorrect p-wrapping); see bug 64901.
 !! test
 Image with link tails
 !! options
@@ -11029,8 +11192,8 @@ thumbsize=220
 <p>456</p>
 !! 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="25" width="220"></a></figure>456
+<p>123</p><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><p>456</p>
+<p>123</p><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><p>456</p>
 !! end
 
 !! test
@@ -11102,7 +11265,7 @@ parsoid=wt2html,wt2wt,html2html
 <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>
+<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
@@ -11383,7 +11546,9 @@ parsoid=wt2html,wt2wt,html2html
 <div class="thumb tright"><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">caption</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><figcaption>caption</figcaption></figure><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><figcaption>caption</figcaption></figure><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><figcaption>caption</figcaption></figure>
+<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><figcaption>caption</figcaption></figure>
+<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><figcaption>caption</figcaption></figure>
+<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><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
@@ -11400,7 +11565,9 @@ parsoid=wt2html,wt2wt,html2html
 <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"></a></div>caption</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>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" 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" 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>
 !! end
 
 ###################
@@ -11527,7 +11694,10 @@ parsoid=wt2html,wt2wt,html2html
 <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><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 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>
+<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
 
 ###################
@@ -11886,7 +12056,9 @@ parsoid=wt2html,wt2wt,html2html
 <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"></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>
+<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
@@ -11927,12 +12099,7 @@ Parsoid-specific image handling - simple image with size and middle alignment
 !! 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>
-</span>
-</p>
+<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></span></p>
 !! end
 
 !! test
@@ -11943,12 +12110,7 @@ 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/50px-Foobar.jpg" height="6" width="50">
-</a>
-</span>
-</p>
+<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></span></p>
 !! end
 
 !! test
@@ -11968,12 +12130,7 @@ 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>
-</span>
-</p>
+<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></span></p>
 !! end
 
 !! test
@@ -11997,12 +12154,7 @@ Parsoid-specific image handling - thumbnail with halign, valign, and caption
 !! 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="25" width="220" />
-</a>
-<figcaption>caption content</figcaption>
-</figure>
+<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="25" width="220" /></a><figcaption>caption content</figcaption></figure>
 !! end
 
 !! test
@@ -12019,12 +12171,7 @@ Parsoid-specific image handling - thumbnail with specific size, halign, valign,
 !! 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" />
-</a>
-<figcaption>caption</figcaption>
-</figure>
+<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" /></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
@@ -12044,12 +12191,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File: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/3/3a/Foobar.jpg" height="220" width="1941" />
-</a>
-<figcaption>caption</figcaption>
-</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><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
@@ -12060,12 +12202,7 @@ parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File: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/3/3a/Foobar.jpg" height="220" width="1941" />
-</a>
-<figcaption>caption</figcaption>
-</figure>
+<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/3/3a/Foobar.jpg" height="220" width="1941" /></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
@@ -12081,10 +12218,7 @@ 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>
+<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
@@ -12273,8 +12407,28 @@ Render invalid page names as plain text (bug 51090)
 [[foo&lt;bar]]
 </p>
 !!html/parsoid
-<p>[[./../foo|bar]][[foo�|bar]][[foo/.|bar]][[foo/..|bar]][[foo~~~bar]][[foo>bar]][[foo[bar]][[.]][[..]][[foo././bar]]</p>
-<p>[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"./../foo"}},"i":0}}]}'>./../foo</span>|bar]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/."}},"i":0}}]}'>foo/.</span>|bar]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/.."}},"i":0}}]}'>foo/..</span>|bar]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo~~~~bar"}},"i":0}}]}'>foo~~~~bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo>bar"}},"i":0}}]}'>foo>bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo././bar"}},"i":0}}]}'>foo././bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo{bar"}},"i":0}}]}'>foo{bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo}bar"}},"i":0}}]}'>foo}bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo[bar"}},"i":0}}]}'>foo[bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo]bar"}},"i":0}}]}'>foo]bar</span>]][[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;bar"}},"i":0}}]}'>foo&lt;bar</span>]]</p>
+<p>[[./../foo|bar]]
+[[foo�|bar]]
+[[foo/.|bar]]
+[[foo/..|bar]]
+[[foo~~~bar]]
+[[foo>bar]]
+[[foo[bar]]
+[[.]]
+[[..]]
+[[foo././bar]]</p>
+
+<p>[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"./../foo"}},"i":0}}]}'>./../foo</span>|bar]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/."}},"i":0}}]}'>foo/.</span>|bar]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/.."}},"i":0}}]}'>foo/..</span>|bar]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo~~~~bar"}},"i":0}}]}'>foo~~~~bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo>bar"}},"i":0}}]}'>foo>bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo././bar"}},"i":0}}]}'>foo././bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo{bar"}},"i":0}}]}'>foo{bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo}bar"}},"i":0}}]}'>foo}bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo[bar"}},"i":0}}]}'>foo[bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo]bar"}},"i":0}}]}'>foo]bar</span>]]
+[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;bar"}},"i":0}}]}'>foo&lt;bar</span>]]</p>
 !!end
 
 !! test
@@ -12513,6 +12667,16 @@ parsoid
 <link rel="mw:PageProp/Category" href="Category:Foo#Bar">
 !! end
 
+!! test
+Normalize hrefs properly before testing for invalid link targets (bug 70894)
+!! options
+parsoid=html2wt
+!! html
+<link rel="mw:PageProp/Category" href="./Category:Toxine_bactérienne"/>
+!! wikitext
+[[Category:Toxine bactérienne]]
+!! end
+
 !! test
 Parsoid: Defaultsort
 !! options
@@ -12537,9 +12701,9 @@ ill
 !! html/php
 es:Alimento fr:Nourriture zh:食品
 !! html/parsoid
-<p><link rel="mw:PageProp/Language" href="//es.wikipedia.org/wiki/Alimento"/>
-<link rel="mw:PageProp/Language" href="//fr.wikipedia.org/wiki/Nourriture"/>
-<link rel="mw:PageProp/Language" href="//zh.wikipedia.org/wiki/食品"/></p>
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Alimento"/>
+<link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/Nourriture"/>
+<link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/食品"/>
 !! end
 
 !! test
@@ -12554,10 +12718,10 @@ ill
 !! html/php
 es:1 fr:1
 !! html/parsoid
-<p><link rel="mw:PageProp/Language" href="//es.wikipedia.org/wiki/1"/>
-<link rel="mw:PageProp/Language" href="//es.wikipedia.org/wiki/2"/>
-<link rel="mw:PageProp/Language" href="//fr.wikipedia.org/wiki/1"/>
-<link rel="mw:PageProp/Language" href="//fr.wikipedia.org/wiki/2"/></p>
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/1"/>
+<link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/2"/>
+<link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/1"/>
+<link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/2"/>
 !! end
 
 ###
@@ -13237,16 +13401,15 @@ parsoid
 </tbody></table>
 !! end
 
-# The PHP parser escapes the opening brace to &#123; for some reason, so
-# disabled this test for it.
 !! test
 div with braces in attribute value
-!! options
-parsoid
 !! wikitext
 <div title="{}">Foo</div>
-!! html
-<div title="{}">Foo</div>
+!! html/php
+<div title="&#123;}">Foo</div>
+
+!! html/parsoid
+<div title="{}">Foo</div>
 !! end
 
 # This it very inconsistent in the PHP parser: it returns 
@@ -13254,17 +13417,19 @@ parsoid
 # 'div with empty attribute value, space before equals'), but strips the
 # attribute completely if the space is missing. We hope that not much content
 # depends on this, so are implementing the behavior below in Parsoid for
-# consistencies' sake. Disabled for the PHP parser. 
+# consistencies' sake.
 # FIXME: fix this behavior in the PHP parser?
 !! test
 div with empty attribute value, no space before equals
 !! options
-parsoid
+parsoid=wt2html,html2html
 !! wikitext
 <div class=>HTML rocks</div>
-!! html
-<div class="">HTML rocks</div>
+!! html/php
+<div>HTML rocks</div>
 
+!! html/parsoid
+<div class="">HTML rocks</div>
 !! end
 
 !! test
@@ -13685,7 +13850,7 @@ Bug 2304: HTML attribute safety (dangerous template; 2309)
 <div title=""></div>
 
 !! html/parsoid
-<div title='" onmouseover="alert(document.cookie)' about="#mwt2" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"title"},{"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;dangerous attribute&amp;quot;,&amp;quot;href&amp;quot;:&amp;quot;./Template:Dangerous_attribute&amp;quot;},&amp;quot;params&amp;quot;:{},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;pi&amp;quot;:[[]],&amp;quot;dsr&amp;quot;:[12,35,null,null]}\">\" onmouseover=\"alert(document.cookie)&lt;/span>"}]]}' data-parsoid='{"stx":"html","a":{"title":"\" onmouseover=\"alert(document.cookie)"},"sa":{"title":"{{dangerous attribute}}"}}'></div>
+<div title='" onmouseover="alert(document.cookie)' about="#mwt2" typeof="mw:ExpandedAttrs" data-parsoid='{"stx":"html","a":{"title":"\" onmouseover=\"alert(document.cookie)"},"sa":{"title":"{{dangerous attribute}}"}}' data-mw='{"attribs":[[{"txt":"title"},{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&amp;quot;pi&amp;quot;:[[]],&amp;quot;dsr&amp;quot;:[12,35,null,null]}\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&amp;quot;target&amp;quot;:{&amp;quot;wt&amp;quot;:&amp;quot;dangerous attribute&amp;quot;,&amp;quot;href&amp;quot;:&amp;quot;./Template:Dangerous_attribute&amp;quot;},&amp;quot;params&amp;quot;:{},&amp;quot;i&amp;quot;:0}}]}\">\" onmouseover=\"alert(document.cookie)&lt;/span>"}]]}'></div>
 !! end
 
 !! test
@@ -14005,9 +14170,12 @@ Expansion of multi-line templates in attribute values (bug 6255 sanity check)
 !! wikitext
 <div style="background: 
 #00FF00">-</div>
-!! html
+!! html/php
 <div style="background: #00FF00">-</div>
 
+!! html/parsoid
+<div style="background: 
+#00FF00">-</div>
 !! end
 
 !! test
@@ -14245,6 +14413,10 @@ Nested template calls
 ###
 ### Sanitizer
 ###
+
+# HTML+Tidy effectively strips out the empty tags completely
+# But since Parsoid doesn't it wraps the <s></s> tags in p-tags
+# which Tidy would have done for the PHP parser had there been content inside it.
 !! test
 Sanitizer: Closing of open tags
 !! wikitext
@@ -14252,6 +14424,8 @@ Sanitizer: Closing of open tags
 !! html
 <s></s><table></table>
 
+!! html/parsoid
+<p><s></s></p><table></table>
 !! end
 
 !! test
@@ -14290,16 +14464,19 @@ Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id=
 </p>
 !! end
 
+# In HTML5, the restrictions are that id must contain at least one character,
+# and must not contain any space characters.
 !! test
 Sanitizer: Validating the contents of the id attribute (bug 4515)
 !! options
 disabled
 !! wikitext
-<br id=9 />
+<br id="" /><br id="a space" />
 !! html
-Something, but definitely not <br id="9" />...
+Something ...
 !! end
 
+# In HTML5, id must be unique amongst all the ids in the element's home subtree.
 !! test
 Sanitizer: Validating id attribute uniqueness (bug 4515, bug 6301)
 !! options
@@ -14405,29 +14582,36 @@ HTML bullet list, closed tags (bug 5497)
 <li>One</li>
 <li>Two</li>
 </ul>
-!! html
+!! html/php
 <ul>
 <li>One</li>
 <li>Two</li>
 </ul>
 
+!! html/parsoid
+<ul data-parsoid='{"stx":"html"}'>
+<li data-parsoid='{"stx":"html"}'>One</li>
+<li data-parsoid='{"stx":"html"}'>Two</li>
+</ul>
+
 !! end
 
 !! test
 HTML bullet list, unclosed tags (bug 5497)
-!! options
-disabled
 !! wikitext
 <ul>
 <li>One
 <li>Two
 </ul>
-!! html
+!! html/php+tidy
 <ul>
-<li>One
-</li>
-<li>Two
-</li>
+<li>One</li>
+<li>Two</li>
+</ul>
+!! html/parsoid
+<ul data-parsoid='{"stx":"html"}'>
+<li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>One</li>
+<li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>Two</li>
 </ul>
 
 !! end
@@ -14439,29 +14623,37 @@ HTML ordered list, closed tags (bug 5497)
 <li>One</li>
 <li>Two</li>
 </ol>
-!! html
+!! html/php
 <ol>
 <li>One</li>
 <li>Two</li>
 </ol>
 
+!! html/parsoid
+<ol data-parsoid='{"stx":"html"}'>
+<li data-parsoid='{"stx":"html"}'>One</li>
+<li data-parsoid='{"stx":"html"}'>Two</li>
+</ol>
+
 !! end
 
 !! test
 HTML ordered list, unclosed tags (bug 5497)
 !! options
-disabled
 !! wikitext
 <ol>
 <li>One
 <li>Two
 </ol>
-!! html
+!! html/php+tidy
 <ol>
-<li>One
-</li>
-<li>Two
-</li>
+<li>One</li>
+<li>Two</li>
+</ol>
+!! html/parsoid
+<ol data-parsoid='{"stx":"html"}'>
+<li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>One</li>
+<li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>Two</li>
 </ol>
 
 !! end
@@ -14493,8 +14685,6 @@ HTML nested bullet list, closed tags (bug 5497)
 
 !! test
 HTML nested bullet list, open tags (bug 5497)
-!! options
-disabled
 !! wikitext
 <ul>
 <li>One
@@ -14504,7 +14694,17 @@ disabled
 <li>Sub-two
 </ul>
 </ul>
-!! html
+!! html/php+tidy
+<ul>
+<li>One</li>
+<li>Two:
+<ul>
+<li>Sub-one</li>
+<li>Sub-two</li>
+</ul>
+</li>
+</ul>
+!! html/parsoid
 <ul>
 <li>One
 </li>
@@ -14547,8 +14747,6 @@ HTML nested ordered list, closed tags (bug 5497)
 
 !! test
 HTML nested ordered list, open tags (bug 5497)
-!! options
-disabled
 !! wikitext
 <ol>
 <li>One
@@ -14558,7 +14756,17 @@ disabled
 <li>Sub-two
 </ol>
 </ol>
-!! html
+!! html/php
+<ol>
+<li>One
+<li>Two:
+<ol>
+<li>Sub-one
+<li>Sub-two
+</ol>
+</ol>
+
+!! html/parsoid
 <ol>
 <li>One
 </li>
@@ -14834,7 +15042,7 @@ Fuzz testing: image with bogus manual thumbnail
 <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]}'/>
+<meta typeof="mw:Placeholder" data-parsoid='{"src":"[[Image:foobar.jpg|thumbnail= ]]","optList":[{"ck":"manualthumb","ak":"thumbnail= "}]}'/>
 !!end
 
 !! test
@@ -14912,15 +15120,19 @@ New wiki paragraph
 </p>
 !! end
 
+# FIXME: The current php output is documented
+# and desired output is the parsoid target.
 !! test
 Inline HTML vs wiki block nesting
-!! options
-disabled
 !! wikitext
 <b>Bold paragraph
 
 New wiki paragraph
-!! html
+!! html/php
+<p><b>Bold paragraph
+</p><p>New wiki paragraph</b>
+</p>
+!! html/parsoid
 <p><b>Bold paragraph</b>
 </p><p>New wiki paragraph
 </p>
@@ -15912,6 +16124,17 @@ Special:Search page linking.
 </p>
 !! end
 
+!! test
+{{!}} is a magic word
+!! wikitext
+{{!}} is a magic word there and {{!}} is still a magic word here
+!! html/php
+<p>| is a magic word there and | is still a magic word here
+</p>
+!! html/parsoid
+<p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}' data-parsoid='{"pi":[[]]}'>|</span> is a magic word there and <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}' data-parsoid='{"pi":[[]]}'>|</span> is still a magic word here</p>
+!! end
+
 !! test
 Say the magic word
 !! options
@@ -16416,35 +16639,16 @@ Another italics / bold test
 </pre>
 !!end
 
-# Note the results may be incorrect, as parserTest output included this:
-# XML error: Mismatched tag at byte 6120:
-# ...<dd> </dt></dl> </dd...
+# FIXME: The php output seems broken. It's interleaving some open/close tags.
 !! test
 dt/dd/dl test
-!! options
-disabled
 !! wikitext
 :;;;::
-!! html
-<dl>
-<dd><dl>
-<dt><dl>
-<dt><dl>
-<dt><dl>
-<dd><dl>
-<dd>
-</dd>
-</dl>
-</dd>
-</dl>
-</dt>
-</dl>
-</dt>
-</dl>
-</dt>
-</dl>
-</dd>
-</dl>
+!! html/php
+<dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd></dt></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl>
+
+!! html/parsoid
+<dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd></dd></dl></dd></dl></dt></dl></dt></dl></dt></dl></dd></dl>
 
 !!end
 
@@ -16587,7 +16791,7 @@ Definition list code coverage
 ; title   : def
 ; title : def
 ;title: def
-!! html
+!! html/php
 <dl><dt> title  &#160;</dt>
 <dd> def</dd>
 <dt> title&#160;</dt>
@@ -16595,6 +16799,10 @@ Definition list code coverage
 <dt>title</dt>
 <dd> def</dd></dl>
 
+!! html/parsoid
+<dl><dt> title  <span typeof="mw:Placeholder"> </span></dt><dd> def</dd>
+<dt> title<span typeof="mw:Placeholder"> </span></dt><dd> def</dd>
+<dt>title</dt><dd> def</dd></dl>
 !! end
 
 !! test
@@ -17277,45 +17485,51 @@ language=sr variant=sr-ec
 </p>
 !! end
 
-# This test is currently broken in the PHP parser (bug 52661)
+# FIXME: This test is currently broken in the PHP parser (bug 52661)
 !! test
 Don't break image parsing if language converter markup is in the caption.
 !! options
 language=sr
-disabled
 !! wikitext
 [[File:Foobar.jpg|-{R|caption}-]]
-!! html
+!! html/parsoid
 <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
 
-# This test is currently broken in the PHP parser (bug 52661)
+# FIXME: This test is currently broken in the PHP parser (bug 52661)
 !! test
 Don't break list handling if language converter markup is in the item.
 !! options
 language=zh variant=zh-cn
-disabled
 !! wikitext
 ;-{zh-cn:AAA;zh-tw:BBB}-
-!! html
+!! html/php
+<dl><dt><span class="error">在手动语言转换规则中检测到错误</span></dd></dl>
+
+!! html/parsoid
 <dl><dt>AAA
 </dt></dl>
-
 !! end
 
-# This test is currently broken in the PHP parser (bug 52661)
+# FIXME: This test is currently broken in the PHP parser (bug 52661)
 !! test
 Don't break table handling if language converter markup is in the cell.
 !! options
 language=sr variant=sr-ec
-disabled
 !! wikitext
 {|
 |-
 | -{R|B}-
 |}
-!! html
+!! html/php
+<table>
+
+<tr>
+<td>Б}-
+</td></tr></table>
+
+!! html/parsoid
 <table>
 
 <tr>
@@ -17534,12 +17748,13 @@ Line two
 
 !! test
 Nesting tags, paragraphs on lines which begin with <div>
-!! options
-disabled
 !! wikitext
 <div></div><strong>A
 B</strong>
-!! html
+!! html/php+tidy
+<p><strong>A</strong></p>
+<p><strong>B</strong></p>
+!! html/parsoid
 <div></div>
 <p><strong>A
 B</strong>
@@ -17941,27 +18156,31 @@ comment
 <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
 
+# FIXME: Omitting the php sections here because of differences in the local and
+# jenkins output. But, more importantly, the Bad.jpg isn't being stripped,
+# which seems to be a problem with the testing infrastructure.
 !! test
 Bad images - basic functionality
-!! options
-disabled
 !! wikitext
 [[File:Bad.jpg]]
-!! html
+!! html/parsoid
+<meta typeof="mw:Placeholder" data-parsoid='{"src":"[[File:Bad.jpg]]","optList":[]}'/>
 !! end
 
+# FIXME: Same reasoning as above. The expected php is:
+#  <p>Foo bar
+#  </p><p>Bar foo
+#  </p>
 !! test
 Bad images - bug 16039: text after bad image disappears
-!! options
-disabled
 !! wikitext
 Foo bar
 [[File:Bad.jpg]]
 Bar foo
-!! html
+!! html/parsoid
 <p>Foo bar
-</p><p>Bar foo
-</p>
+<meta typeof="mw:Placeholder" data-parsoid='{"src":"[[File:Bad.jpg]]","optList":[]}'/>
+Bar foo</p>
 !! end
 
 !! test
@@ -18138,18 +18357,22 @@ preload
 
 !! test
 Play a bit with r67090 and bug 3158
-!! options
-disabled
 !! 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>
-!! html
-<div style="width:50% !important">&nbsp;</div>
-<div style="width:50% !important">&nbsp;</div>
-<div style="width:50% !important">&nbsp;</div>
-<div style="border&#160;: solid;">&nbsp;</div>
+!! html/php
+<div style="width:50% !important">&#160;</div>
+<div style="width:50% !important">&#160;</div>
+<div style="width:50% !important">&#160;</div>
+<div style="border&#160;: solid;">&#160;</div>
+
+!! html/parsoid
+<div style="width:50% !important" data-parsoid='{"stx":"html"}'><span typeof="mw:Entity" data-parsoid='{"src":"&amp;nbsp;","srcContent":" "}'> </span></div>
+<div style="width:50% !important" data-parsoid='{"stx":"html","a":{"style":"width:50% !important"},"sa":{"style":"width:50%&amp;nbsp;!important"}}'><span typeof="mw:Entity" data-parsoid='{"src":"&amp;nbsp;","srcContent":" "}'> </span></div>
+<div style="width:50% !important" data-parsoid='{"stx":"html","a":{"style":"width:50% !important"},"sa":{"style":"width:50%&amp;#160;!important"}}'><span typeof="mw:Entity" data-parsoid='{"src":"&amp;nbsp;","srcContent":" "}'> </span></div>
+<div style="border : solid;" data-parsoid='{"stx":"html"}'><span typeof="mw:Entity" data-parsoid='{"src":"&amp;nbsp;","srcContent":" "}'> </span></div>
 
 !! end
 
@@ -18858,13 +19081,13 @@ parsoid=wt2html,wt2wt
 #### Parsoid-specific functionality tests
 #### -----------------------------------------------------------------
 
-# Bug 63642: Formatting elt fixup is cleaned up.
+# Bug 63642/66749: Formatting elt fixup around images is cleaned up.
 # We know wt2wt will fail, but we expect selser to pass.
 # Due to the nature of our testing, wt2wt and selser tests will enter the
 # blacklist and we'll catch selser regressions based on changes to the
 # blacklist entries for selser tests.
 !! test
-Bad treebuilder fixup of formatting elt is cleaned up
+1. Bad treebuilder fixup of formatting elt is cleaned up
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -18877,12 +19100,28 @@ parsoid=wt2html,wt2wt
 !! html/parsoid
 <table>
 <tbody><tr><td>
-<p><small></small></p>
-<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><small>Test</small></figcaption></figure>
-<p></p></td></tr>
+<small>
+<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>Test</figcaption></figure>
+</small>
+</td></tr>
 </tbody></table>
 !! end
 
+!! test
+2. Bad treebuilder fixup of formatting elt is cleaned up
+!! options
+parsoid=wt2html,wt2wt
+!! wikitext
+'''foo[[File:Foobar.jpg|thumb|caption]]bar'''
+
+<small>[[Image:Foobar.jpg|right|300px]]</small>
+!! html/parsoid
+<p><b>foo</b></p>
+<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><b>caption</b></figcaption></figure>
+<p><b>bar</b></p>
+<small><figure class="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="34" width="300"/></a></figure></small>
+!! end
+
 #### ----------------------------------------------------------------
 #### Parsoid-only testing of Parsoid's impl of <ref> and <references>
 #### tags. Parsoid's output for these tags differs from that of the
@@ -18898,9 +19137,9 @@ A <ref>foo</ref>
 B <ref name="x">foo</ref>
 C <ref name="y" />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-2">[2]</a></span>
+C <span about="#mwt6" class="reference" id="cite_ref-y-3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="#cite_note-y-3">[3]</a></span></p>
 !!end
 
 !!test
@@ -18911,8 +19150,8 @@ parsoid
 A <ref name="x">foo</ref>
 B <ref name="x" />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-x-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x-1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
 !!end
 
 !!test
@@ -18924,20 +19163,20 @@ A <ref name="x">foo</ref>
 B <ref name=" x " />
 C <ref name= x  />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-x-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x-1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+C <span about="#mwt6" class="reference" id="cite_ref-x-1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
 !!end
 
+# NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
 !!test
 Ref: 4. 'constructor' should be accepted as a valid ref-name
-(NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
 !!options
 parsoid
 !! wikitext
 A <ref name="constructor">foo</ref>
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-constructor-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"constructor"}}'><a href="#cite_note-constructor-1">[1]</a></span></p>
 !!end
 
 !!test
@@ -18951,9 +19190,9 @@ A <ref>
 
 <references />
 !! 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\" title=\"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;{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[55,76,null,null]}&#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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" 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\" title=\"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-parsoid=&#39;{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[55,76,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}&#39;>transclusion&lt;/span>\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<ol class="references" typeof="mw:Extension/references" about="#mwt5" 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" title="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>
@@ -18972,9 +19211,9 @@ A <ref>
 
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n bar\n baz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'>
+<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> foo
  bar
  baz
@@ -19002,9 +19241,9 @@ booz
 
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n\nbar\n\n\nbaz\n\n\n\nbooz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
-<ol about="#mwt2" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
+<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> foo
 
 bar
@@ -19028,9 +19267,9 @@ A <ref> foo {{echo|</ref> B C}}
 
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;span typeof=\"mw:Nowiki\" data-parsoid=&#39;{\"src\":\"{{\",\"dsr\":[12,14,0,0]}&#39;>{{&lt;/span>echo|"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C<span typeof="mw:Nowiki">}}</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> foo <span typeof="mw:Nowiki">{{</span>echo|</li>
 </ol>
 !!end
 
@@ -19042,9 +19281,9 @@ parsoid
 A <ref> foo <!--</ref> B C
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;!---->"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</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> foo <!----></li>
 </ol>
 !!end
 
@@ -19057,11 +19296,11 @@ A <ref> <b> foo </ref> B C
 
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" 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":{}}'><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 />"}' 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 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> <b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></li>
 </ol>
 !!end
 
@@ -19073,8 +19312,8 @@ parsoid
 A <ref>foo</ref> B
 C <ref>bar</ref> D
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B
+C <span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> D</p>
 !!end
 
 !!test
 <p><!--the newline at the end of this line moves out of the p-tag-->a</p>
 
 
-<p>b<!--the newline at the end of this line stays inside the p-tag--> <span about="#mwt1" class="reference" data-mw='{"name":"ref","attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span>
-<span about="#mwt2" class="reference" data-mw='{"name":"ref","attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[2]</a></span></p>
-
+<p>b<!--the newline at the end of this line stays inside the p-tag--> <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+<span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-2">[2]</a></span></p>
 
 <p>c</p>
 !!end
@@ -19108,8 +19346,8 @@ parsoid
 <ref>bar
 </ref> B
 !! 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>
+<p><span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> A
+<span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar\n"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> B</p>
 !!end
 
 !!test
@@ -19121,10 +19359,10 @@ parsoid
 
 <references />
 !! 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>
+<p><span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &amp;lt;ref>bar&amp;lt;/ref> baz"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
-<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 class="references" typeof="mw:Extension/references" about="#mwt5" 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 &lt;ref>bar&lt;/ref> baz</li>
 </ol>
 !!end
 
@@ -19138,10 +19376,10 @@ B1 <ref name="b" /> B2 <ref name="b">bar</ref>
 
 <references />
 !! 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>
+<p>A1 <span about="#mwt3" class="reference" id="cite_ref-a-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span> A2 <span about="#mwt4" class="reference" id="cite_ref-a-1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
+B1 <span about="#mwt7" class="reference" id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span> B2 <span about="#mwt8" class="reference" id="cite_ref-b-2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
 
-<ol about="#mwt10" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a-1-0">1.0</a> <a href="#cite_ref-a-1-1">1.1</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b-2-0">2.0</a> <a href="#cite_ref-b-2-1">2.1</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a-1-0">1.0</a> <a href="#cite_ref-a-1-1">1.1</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b-2-0">2.0</a> <a href="#cite_ref-b-2-1">2.1</a></span> bar</li>
 </ol>
 !!end
 
@@ -19155,10 +19393,10 @@ A <ref >foo</ref >
 
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></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></ol>
+<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> foo</li></ol>
 !!end
 
 !!test
@@ -19181,10 +19419,10 @@ B <ref group="b">bar</ref>
 
 <references group="a" />
 !! 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-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[b 1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}'><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 class="references" typeof="mw:Extension/references" about="#mwt6" 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>
 !!end
 
@@ -19201,14 +19439,14 @@ B <ref>bar</ref>
 
 <references />
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><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 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> foo</li>
 </ol>
 
-<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>
+<p>B <span about="#mwt6" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><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-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2-0">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" 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
 
@@ -19226,15 +19464,15 @@ C <ref>cfoo</ref>
 
 <references />
 !! 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-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"<ref>bfoo</ref>"}'><a href="#cite_note-2">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"afoo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}'><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 class="references" typeof="mw:Extension/references" about="#mwt6" 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-3-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-3">[2]</a></span></p>
+<p>C <span about="#mwt8" class="reference" id="cite_ref-3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}'><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-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 class="references" typeof="mw:Extension/references" about="#mwt10" 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
 
@@ -19251,13 +19489,11 @@ B <ref name="b">bar</ref>
 This should just get lost.
 </references>
 !! 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>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-a-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><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>"}' 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 class="references" typeof="mw:Extension/references" about="#mwt6" 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\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"a\\\">foo&amp;lt;/ref>\",\"dsr\":[59,82,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"a\"}}&#39;>&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"><span rel="mw:referencedBy"><a href="#cite_ref-a-1-0">↑</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> bar</li>
 </ol>
 !!end
 
@@ -19268,7 +19504,7 @@ parsoid
 !! wikitext
 <ref>Foo</ref> {{echo|<references />}}
 !! 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>
+<p><span about="#mwt3" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p> <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
 
 !! test
@@ -19285,12 +19521,12 @@ B <ref group="X" name="b" />
 <ref name="b">foo</ref>
 </references>
 !! html
-<p>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>"}'><a href="#cite_note-1" data-parsoid="{}">[1]</a></span>
-B <span about="#mwt4" class="reference" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}' id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref group=\"X\" name=\"b\" />"}'><a href="#cite_note-b-2" data-parsoid="{}">[X 1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo bar for a"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="#cite_note-b-2">[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-1" id="cite_note-1" data-parsoid="{}"><span rel="mw:referencedBy" data-parsoid="{}"><a href="#cite_ref-1-0" data-parsoid="{}">↑</a></span> foo bar for a</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" 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 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-2\">[X 1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'><li about="#cite_note-b-2" id="cite_note-b-2" data-parsoid="{}"><span rel="mw:referencedBy" data-parsoid="{}"><a href="#cite_ref-b-2-0" data-parsoid="{}">↑</a></span> foo</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"b\\\">foo&amp;lt;/ref>\",\"dsr\":[96,119,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"b\"}}&#39;>&lt;a href=\"#cite_note-b-2\">[X 1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> foo</li></ol>
 !! end
 
 !! test
@@ -19300,7 +19536,7 @@ parsoid
 !! wikitext
 <ref name="test &amp; me">hi</ref>
 !! html
-<p data-parsoid='{}'><span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"hi"},"attrs":{"name":"test &amp; me"}}' id="cite_ref-test &amp; me-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref name=\"test &amp;amp; me\">hi&lt;/ref>"}'><a href="#cite_note-test &amp; me-1" data-parsoid="{}">[1]</a></span></p>
+<p><span about="#mwt2" class="reference" id="cite_ref-test &amp; me-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref name=\"test &amp;amp; me\">hi&lt;/ref>"}' data-mw='{"name":"ref","body":{"html":"hi"},"attrs":{"name":"test &amp; me"}}'><a href="#cite_note-test &amp; me-1">[1]</a></span></p>
 !! end
 
 # This test is wt2html only because we're permitting the serializer to produce
@@ -19314,11 +19550,11 @@ 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>
+<p>a<span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 
-<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>
+<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> foo</li></ol>
 !! end
 
 !! test
@@ -19332,6 +19568,69 @@ foo
 foo<ol class="references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
 !! end
 
+#--------- Test stripping of empty nodes in template content ----------
+!!test
+Empty LI and TR nodes should be stripped from template content
+!!wikitext
+{{EmptyLITest}}
+{{EmptyTRTest}}
+!!html/parsoid
+<ul typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyLITest","href":"./Template:EmptyLITest"},"params":{},"i":0}}]}'>
+<li>a</li>
+<li>b</li>
+</ul>
+<table typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRTest","href":"./Template:EmptyTRTest"},"params":{},"i":0}}]}'>
+<tbody>
+<tr>
+<td>foo</td>
+</tr>
+<tr>
+<td>bar</td>
+</tr>
+</tbody>
+</table>
+!!end
+
+!!test
+Empty LI and TR nodes should not be stripped from top-level content
+!!wikitext
+* a
+*
+* b
+{|
+|-
+|-
+|foo
+|}
+!!html/parsoid
+<ul>
+<li> a</li>
+<li></li>
+<li> b</li>
+</ul>
+<table>
+<tbody>
+<tr></tr>
+<tr>
+<td>foo</td>
+</tr>
+</tbody>
+</table>
+!!end
+
+!!test
+Empty TR nodes should not be stripped if they have any attributes set
+!!wikitext
+{{EmptyTRWithHTMLAttrTest}}
+!!html/parsoid
+<table typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRWithHTMLAttrTest","href":"./Template:EmptyTRWithHTMLAttrTest"},"params":{},"i":0}}]}'>
+<tr align="center"></tr>
+<tr><td>foo</td></tr>
+<tr align="center"></tr>
+<tr><td>bar</td></tr>
+</table>
+!!end
+
 #### ----------------------------------------------------------------
 #### The following section of tests are primarily to test
 #### wikitext escaping capabilities of Parsoid.  Given that
@@ -19376,9 +19675,9 @@ parsoid
 <p>=foo<i>a</i><span typeof="mw:Nowiki">=</span></p>
 !!end
 
+# New headings and existing headings are handled differently
 !! test
 Headings: 1. Nested inside html
-(New headings and existing headings are handled differently)
 !! options
 parsoid=html2wt
 !! wikitext
@@ -19400,12 +19699,12 @@ parsoid=html2wt
 <h2>=foo=</h2>
 <h3>=foo=</h3>
 
-<h1 data-parsoid='{}'>=foo=</h1>
-<h2 data-parsoid='{}'>=foo=</h2>
-<h3 data-parsoid='{}'>=foo=</h3>
-<h4 data-parsoid='{}'>=foo=</h4>
-<h5 data-parsoid='{}'>=foo=</h5>
-<h6 data-parsoid='{}'>=foo=</h6>
+<h1 data-parsoid=''>=foo=</h1>
+<h2 data-parsoid=''>=foo=</h2>
+<h3 data-parsoid=''>=foo=</h3>
+<h4 data-parsoid=''>=foo=</h4>
+<h5 data-parsoid=''>=foo=</h5>
+<h6 data-parsoid=''>=foo=</h6>
 !!end
 
 !! test
@@ -19767,9 +20066,9 @@ parsoid
 ----=foo=
 ----*foo
 !! html
-<hr><span typeof="mw:Nowiki">----</span>
-<hr>=foo=
-<hr>*foo
+<hr><p><span typeof="mw:Nowiki">----</span></p>
+<hr><p>=foo=</p>
+<hr><p>*foo</p>
 !! end
 
 #### --------------- Tables ---------------
@@ -20300,10 +20599,10 @@ parsoid=html2wt,wt2wt
 </p>
 !! end
 
+# FIXME: Escaping one or both of [[ and ]] is also acceptable --
+#        this is one of the shortcomings of this format
 !! test
 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)
 !! wikitext
 ''[[foo''<nowiki>]]</nowiki>
 
@@ -20398,7 +20697,7 @@ parsoid
 foo <ref>''a''
  b</ref>
 !! html
-<p>foo <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"&lt;i data-parsoid=&#39;{\"dsr\":[9,14,2,2]}&#39;>a&lt;/i>\n b"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+<p>foo <span about="#mwt2" class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;i data-parsoid=&#39;{\"dsr\":[9,14,2,2]}&#39;>a&lt;/i>\n b"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 !! end
 
 !! test
@@ -20650,7 +20949,7 @@ Table with broken attribute value quoting on consecutive lines
 | title="Hello world|Foo
 | style="color:red|Bar
 |}
-!! html
+!! html/php
 <table>
 <tr>
 <td>Foo
@@ -20658,18 +20957,7 @@ Table with broken attribute value quoting on consecutive lines
 <td>Bar
 </td></tr></table>
 
-!! end
-
-!! test
-Parsoid-only: Table with broken attribute value quoting on consecutive lines
-!! options
-parsoid
-!! wikitext
-{|
-| title="Hello world|Foo
-| style="color:red|Bar
-|}
-!! html
+!! html/parsoid
 <table><tbody>
 <tr>
 <td title="Hello world">Foo
@@ -20783,9 +21071,9 @@ RT-ed inter-element separators should be valid separators
 
 !!end
 
+# Parsoid-only since PHP parser relies on Tidy for correct output
 !!test
 Trailing newlines in a deep dom-subtree that ends a wikitext line should be migrated out
-(Parsoid-only since PHP parser relies on Tidy for correct output)
 !!options
 parsoid
 !! wikitext
@@ -20798,6 +21086,14 @@ bar
 |<small>foo<small>
 |}
 !! html
+<table>
+<tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo
+<p>bar</p></small></td></tr>
+</tbody></table>
+
+<table>
+<tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo<small data-parsoid='{"stx":"html","autoInsertedEnd":true}'></small></small></td></tr>
+</tbody></table>
 !!end
 
 !!test
@@ -20874,15 +21170,15 @@ Indent and comment before table row
 </td></tr></table>
 
 !! html/parsoid
-<table data-parsoid='{}'>
- <!--hi--><tbody data-parsoid='{}'><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
+<table>
+ <!--hi--><tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
  <td data-parsoid='{"autoInsertedEnd":true}'> there</td></tr>
 </tbody></table>
 !! end
 
+# Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext
 !!test
 Empty TR followed by a template-generated TR
-(Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext)
 !!options
 parsoid
 !! wikitext
@@ -20993,20 +21289,20 @@ plain text
 !!end
 
 !!test
-1. Ensure fostered text content is wrapped in spans
+1. Ensure fostered text content is wrapped in element nodes
 !!options
 parsoid=wt2html
 !! wikitext
 <table>hi</table><table>ho</table>
 !! html
-<span>hi</span>
+<p>hi</p>
 <table></table>
-<span>ho</span>
+<p>ho</p>
 <table></table>
 !!end
 
 !!test
-2. Ensure fostered text content is wrapped in spans (traps regressions around fostered marker on the span getting lost)
+2. Ensure fostered text content is wrapped in element nodes (traps regressions around fostered marker on the element getting lost)
 !!options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -21015,11 +21311,9 @@ parsoid=wt2html,wt2wt
 <td> a
 </table>
 !! html
-<span> || ||</span>
-<table>
-<tbody>
-<tr>
-<td> a</td></tr>
+<p> || ||
+</p><table>
+<tbody><tr><td> a</td></tr>
 </tbody></table>
 !!end
 
@@ -21030,14 +21324,7 @@ parsoid=wt2html,wt2wt
 !! wikitext
 {{echo|<table>foo<tr><td>bar</td></tr></table>}}
 !! 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>
-<td>bar</td></tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</span>
-<table>
-<tbody>
-<tr>
-<td>bar</td></tr></tbody></table>
+<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><td>bar</td></tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</span><table><tbody><tr><td>bar</td></tr></tbody></table>
 !!end
 
 !!test
@@ -21047,14 +21334,13 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table>{{echo|foo<tr><td>bar</td></tr>}}</table>
 !! 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>
-<td>bar</td></tr>&quot;}},&quot;i&quot;:0}},&quot;</table>&quot;]}">foo</span>
-<table>
+<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;foo<tr><td>bar</td></tr>&quot;}},&quot;i&quot;:0}},&quot;</table>&quot;]}">foo</p><table>
 <tbody>
 <tr>
-<td>bar</td></tr></tbody></table>
+<td>bar</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21064,15 +21350,14 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table><div>{{echo|foo}}</div><tr><td>bar</td></tr></table>
 !! 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>
-<tr>
-<td>bar</td></tr></table>&quot;]}">foo</div>
+<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><tr><td>bar</td></tr></table>&quot;]}">foo</div>
 <table>
 <tbody>
 <tr>
-<td>bar</td></tr></tbody></table>
+<td>bar</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21082,17 +21367,16 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
 !! html
-<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
-<table>
-<div>
-<p>&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</p></div>
-<tr>
-<td>&quot;}},&quot;i&quot;:0}},&quot;bar</td></tr></table>&quot;]}">
-<p>foo</p></div>
+<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;<table><div><p>&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</p></div><tr><td>&quot;}},&quot;i&quot;:0}},&quot;bar</td></tr></table>&quot;]}">
+<p>foo</p>
+</div>
 <table>
 <tbody>
 <tr>
-<td>bar</td></tr></tbody></table>
+<td>bar</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21102,17 +21386,16 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
 !! html
-<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
-<table>
-<div>
-<p>&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</p></div>
-<tr>
-<td>&quot;}},&quot;i&quot;:0}},&quot;bar</td></tr></table>&quot;]}">
-<p>foo</p></div>
+<div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;<table><div><p>&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</p></div><tr><td>&quot;}},&quot;i&quot;:0}},&quot;bar</td></tr></table>&quot;]}">
+<p>foo</p>
+</div>
 <table>
 <tbody>
 <tr>
-<td>bar</td></tr></tbody></table>
+<td>bar</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21122,18 +21405,18 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table><tr><td><div><p>{{echo|foo</p></div></td>foo}}</tr></table>
 !! html
-<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
-<table>
-<tr>
-<td>
-<div>
-<p>&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</p></div></td>foo&quot;}},&quot;i&quot;:0}},&quot;</tr></table>&quot;]}">foo</span>
+<p typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;<table><tr><td><div><p>&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</p></div></td>foo&quot;}},&quot;i&quot;:0}},&quot;</tr></table>&quot;]}">foo</p>
 <table>
 <tbody>
 <tr>
 <td>
 <div>
-<p>foo</p></div></td></tr></tbody></table>
+<p>foo</p>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21143,18 +21426,18 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table><tr><td><div><p>{{echo|foo</p></div></td>foo</tr></table>}}<p>ok</p>
 !! html
-<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
-<table>
-<tr>
-<td>
-<div>
-<p>&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</p></div></td>foo</tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</span>
+<p typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;<table><tr><td><div><p>&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</p></div></td>foo</tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</p>
 <table>
 <tbody>
 <tr>
 <td>
 <div>
-<p>foo</p></div></td></tr></tbody></table>
+<p>foo</p>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
 <p>ok</p>
 !!end
 
@@ -21165,14 +21448,14 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table>{{echo|<p>foo</p>}}<td>bar</td></table>
 !! 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;
-<td>bar</td></table>&quot;]}">foo</p>
+<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;<td>bar</td></table>&quot;]}">foo</p>
 <table>
 <tbody>
 <tr>
-<td>bar</td></tr></tbody></table>
+<td>bar</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21186,11 +21469,13 @@ parsoid=wt2wt,wt2html
 |b
 |}
 !! 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>
+<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><p 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}}}</p><table>
 <tbody>
 <tr>
-<td>b</td></tr></tbody></table>
+<td>b</td>
+</tr>
+</tbody>
+</table>
 !!end
 
 !!test
@@ -21200,8 +21485,7 @@ parsoid=wt2wt,wt2html
 !! wikitext
 <table>{{echo|hi</table>hello}}
 !! html
-<span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["&lt;table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi&lt;/table>hello"}},"i":0}}]}' data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"pi":[[{"k":"1","spc":["","","",""]}]]}'>hi</span>
-<table about="#mwt2" data-parsoid='{"stx":"html"}'></table><span about="#mwt2" data-parsoid="{}">hello</span>
+<p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["&lt;table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi&lt;/table>hello"}},"i":0}}]}' data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"pi":[[{"k":"1","spc":["","","",""]}]]}'>hi</p><table about="#mwt2" data-parsoid='{"stx":"html"}'></table><p about="#mwt2">hello</p>
 !!end
 
 !!test
@@ -21216,7 +21500,7 @@ parsoid=wt2html,wt2wt
 </div>
 |}
 !! 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="{}">
+<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">
 </span>
 <table about="#mwt1" data-parsoid='{"autoInsertedEnd":true}'></table>
 
@@ -21256,15 +21540,15 @@ parsoid=html2wt
 # All these tests are marked Parsoid html2wt and html2html only
 # ----------------------------------------------------------------
 
+# 'mi' is a localinterwiki prefix as well as a language
 !! test
 Serialize interwiki links pointing to the current wiki as plain wiki links (bug 65869)
 !! options
 parsoid=html2wt
-language=es
 !! wikitext
 [[Foo]]
 !! html
-<p><a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Foo">Foo</a></p>
+<p><a rel="mw:ExtLink" href="http://mi.wikipedia.org/wiki/Foo">Foo</a></p>
 !! end
 
 !! test
@@ -21428,8 +21712,7 @@ parsoid
 !!end
 
 !! test
-Image: New block level image should have \n before and after (existing
-content)
+Image: New block level image should have \n before and after (existing content)
 !! options
 parsoid
 !! wikitext
@@ -21437,9 +21720,9 @@ parsoid
 [[File:Foobar.jpg|right|thumb|150x150px]]
 456
 !! 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>
+<p>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"}]}'><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/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>456</p>
 !!end
 
 !! test
@@ -21451,7 +21734,9 @@ parsoid
 [[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="12" width="110"/></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>
+<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="12" width="110"/></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
@@ -21770,9 +22055,9 @@ parsoid=html2wt
 
 ''A'''B'''''
 !! 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>
+<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>
 !! end
 
 #------------------------------------
index 4abb4e5..95d3c40 100644 (file)
@@ -223,6 +223,8 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                        $this->db->ignoreErrors( false );
                }
 
+               DeferredUpdates::clearPendingUpdates();
+
                wfProfileOut( __METHOD__ );
        }
 
@@ -481,7 +483,6 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                                'page_namespace' => 0,
                                'page_title' => ' ',
                                'page_restrictions' => null,
-                               'page_counter' => 0,
                                'page_is_redirect' => 0,
                                'page_is_new' => 0,
                                'page_random' => 0,
@@ -1148,10 +1149,24 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                $this->assertEmpty( $errors, implode( "\n", $errors ) );
        }
 
+       /**
+        * @param array $matcher
+        * @param string $actual
+        * @param bool $isHtml
+        *
+        * @return bool
+        */
+       private static function tagMatch( $matcher, $actual, $isHtml = true ) {
+               $dom = PHPUnit_Util_XML::load( $actual, $isHtml );
+               $tags = PHPUnit_Util_XML::findNodes( $dom, $matcher, $isHtml );
+               return count( $tags ) > 0 && $tags[0] instanceof DOMNode;
+       }
+
        /**
         * Note: we are overriding this method to remove the deprecated error
         * @see https://bugzilla.wikimedia.org/show_bug.cgi?id=69505
         * @see https://github.com/sebastianbergmann/phpunit/issues/1292
+        * @deprecated
         *
         * @param array $matcher
         * @param string $actual
@@ -1161,10 +1176,21 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        public static function assertTag( $matcher, $actual, $message = '', $isHtml = true ) {
                //trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
 
-               $dom = PHPUnit_Util_XML::load( $actual, $isHtml );
-               $tags = PHPUnit_Util_XML::findNodes( $dom, $matcher, $isHtml );
-               $matched = count( $tags ) > 0 && $tags[0] instanceof DOMNode;
+               self::assertTrue( self::tagMatch( $matcher, $actual, $isHtml ), $message );
+       }
+
+       /**
+        * @see MediaWikiTestCase::assertTag
+        * @deprecated
+        *
+        * @param array $matcher
+        * @param string $actual
+        * @param string $message
+        * @param bool $isHtml
+        */
+       public static function assertNotTag( $matcher, $actual, $message = '', $isHtml = true ) {
+               //trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
 
-               self::assertTrue( $matched, $message );
+               self::assertFalse( self::tagMatch( $matcher, $actual, $isHtml ), $message );
        }
 }
index b248d24..1974162 100644 (file)
@@ -133,6 +133,7 @@ class BlockTest extends MediaWikiLangTestCase {
                $username = 'BlockedUserToCreateAccountWith';
                $u = User::newFromName( $username );
                $u->setPassword( 'NotRandomPass' );
+               $u->setId( 14146 );
                $u->addToDatabase();
                unset( $u );
 
@@ -200,6 +201,12 @@ class BlockTest extends MediaWikiLangTestCase {
                        $oldBlock->delete();
                }
 
+               // Local perspective (blockee on current wiki)...
+               $user = User::newFromName( 'UserOnForeignWiki' );
+               $user->addToDatabase();
+               // Set user ID to match the test value
+               $this->db->update( 'user', array( 'user_id' => 14146 ), array( 'user_id' => $user->getId() ) );
+
                // Foreign perspective (blockee not on current wiki)...
                $block = new Block(
                        /* $address */ 'UserOnForeignWiki',
@@ -221,11 +228,6 @@ class BlockTest extends MediaWikiLangTestCase {
                $res = $block->insert( $this->db );
                $this->assertTrue( (bool)$res['id'], 'Block succeeded' );
 
-               // Local perspective (blockee on current wiki)...
-               $user = User::newFromName( 'UserOnForeignWiki' );
-               $user->addToDatabase();
-               // Set user ID to match the test value
-               $this->db->update( 'user', array( 'user_id' => 14146 ), array( 'user_id' => $user->getId() ) );
                $user = null; // clear
 
                $block = Block::newFromID( $res['id'] );
index 3acc48e..2bfabe4 100644 (file)
@@ -322,16 +322,16 @@ class GlobalTest extends MediaWikiTestCase {
                $wgDebugTimestamps = false;
 
                wfDebug( "This is a normal string" );
-               $this->assertEquals( "This is a normal string", file_get_contents( $wgDebugLogFile ) );
+               $this->assertEquals( "This is a normal string\n", file_get_contents( $wgDebugLogFile ) );
                unlink( $wgDebugLogFile );
 
                wfDebug( "This is nöt an ASCII string" );
-               $this->assertEquals( "This is nöt an ASCII string", file_get_contents( $wgDebugLogFile ) );
+               $this->assertEquals( "This is nöt an ASCII string\n", file_get_contents( $wgDebugLogFile ) );
                unlink( $wgDebugLogFile );
 
                wfDebug( "\00305This has böth UTF and control chars\003" );
                $this->assertEquals(
-                       " 05This has böth UTF and control chars ",
+                       " 05This has böth UTF and control chars \n",
                        file_get_contents( $wgDebugLogFile )
                );
                unlink( $wgDebugLogFile );
index 59ffb90..fbd2c31 100644 (file)
@@ -179,6 +179,18 @@ class HttpTest extends MediaWikiTestCase {
         * Constant values are from PHP 5.3.28 using cURL 7.24.0
         * @see http://php.net/manual/en/curl.constants.php
         *
+        * All constant values are present so that developers don’t need to remember
+        * to add them if added at a later date. The commented out constants were
+        * not found anywhere in the MediaWiki core code.
+        *
+        * Commented out constants that were not available in:
+        * HipHop VM 3.3.0 (rel)
+        * Compiler: heads/master-0-g08810d920dfff59e0774cf2d651f92f13a637175
+        * Repo schema: 3214fc2c684a4520485f715ee45f33f2182324b1
+        * Extension API: 20140829
+        *
+        * Commented out constants that were removed in PHP 5.6.0
+        *
         * @covers CurlHttpRequest::execute
         */
        public function provideCurlConstants() {
@@ -189,11 +201,11 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLAUTH_DIGEST' ),
                        array( 'CURLAUTH_GSSNEGOTIATE' ),
                        array( 'CURLAUTH_NTLM' ),
-                       array( 'CURLCLOSEPOLICY_CALLBACK' ),
-                       array( 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ),
-                       array( 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ),
-                       array( 'CURLCLOSEPOLICY_OLDEST' ),
-                       array( 'CURLCLOSEPOLICY_SLOWEST' ),
+                       // array( 'CURLCLOSEPOLICY_CALLBACK' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_OLDEST' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_SLOWEST' ), // removed in PHP 5.6.0
                        array( 'CURLE_ABORTED_BY_CALLBACK' ),
                        array( 'CURLE_BAD_CALLING_ORDER' ),
                        array( 'CURLE_BAD_CONTENT_ENCODING' ),
@@ -245,7 +257,7 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLE_RECV_ERROR' ),
                        array( 'CURLE_SEND_ERROR' ),
                        array( 'CURLE_SHARE_IN_USE' ),
-                       array( 'CURLE_SSH' ),
+                       // array( 'CURLE_SSH' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLE_SSL_CACERT' ),
                        array( 'CURLE_SSL_CERTPROBLEM' ),
                        array( 'CURLE_SSL_CIPHER' ),
@@ -263,14 +275,14 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLFTPAUTH_DEFAULT' ),
                        array( 'CURLFTPAUTH_SSL' ),
                        array( 'CURLFTPAUTH_TLS' ),
-                       array( 'CURLFTPMETHOD_MULTICWD' ),
-                       array( 'CURLFTPMETHOD_NOCWD' ),
-                       array( 'CURLFTPMETHOD_SINGLECWD' ),
+                       // array( 'CURLFTPMETHOD_MULTICWD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLFTPMETHOD_NOCWD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLFTPMETHOD_SINGLECWD' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLFTPSSL_ALL' ),
                        array( 'CURLFTPSSL_CONTROL' ),
                        array( 'CURLFTPSSL_NONE' ),
                        array( 'CURLFTPSSL_TRY' ),
-                       array( 'CURLINFO_CERTINFO' ),
+                       // array( 'CURLINFO_CERTINFO' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLINFO_CONNECT_TIME' ),
                        array( 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' ),
                        array( 'CURLINFO_CONTENT_LENGTH_UPLOAD' ),
@@ -285,7 +297,7 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLINFO_PRIVATE' ),
                        array( 'CURLINFO_REDIRECT_COUNT' ),
                        array( 'CURLINFO_REDIRECT_TIME' ),
-                       array( 'CURLINFO_REDIRECT_URL' ),
+                       // array( 'CURLINFO_REDIRECT_URL' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLINFO_REQUEST_SIZE' ),
                        array( 'CURLINFO_SIZE_DOWNLOAD' ),
                        array( 'CURLINFO_SIZE_UPLOAD' ),
@@ -306,8 +318,8 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_BUFFERSIZE' ),
                        array( 'CURLOPT_CAINFO' ),
                        array( 'CURLOPT_CAPATH' ),
-                       array( 'CURLOPT_CERTINFO' ),
-                       array( 'CURLOPT_CLOSEPOLICY' ),
+                       // array( 'CURLOPT_CERTINFO' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_CLOSEPOLICY' ), // removed in PHP 5.6.0
                        array( 'CURLOPT_CONNECTTIMEOUT' ),
                        array( 'CURLOPT_CONNECTTIMEOUT_MS' ),
                        array( 'CURLOPT_COOKIE' ),
@@ -331,8 +343,8 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_FTPPORT' ),
                        array( 'CURLOPT_FTPSSLAUTH' ),
                        array( 'CURLOPT_FTP_CREATE_MISSING_DIRS' ),
-                       array( 'CURLOPT_FTP_FILEMETHOD' ),
-                       array( 'CURLOPT_FTP_SKIP_PASV_IP' ),
+                       // array( 'CURLOPT_FTP_FILEMETHOD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_FTP_SKIP_PASV_IP' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_FTP_SSL' ),
                        array( 'CURLOPT_FTP_USE_EPRT' ),
                        array( 'CURLOPT_FTP_USE_EPSV' ),
@@ -348,14 +360,14 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_INFILESIZE' ),
                        array( 'CURLOPT_INTERFACE' ),
                        array( 'CURLOPT_IPRESOLVE' ),
-                       array( 'CURLOPT_KEYPASSWD' ),
+                       // array( 'CURLOPT_KEYPASSWD' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_KRB4LEVEL' ),
                        array( 'CURLOPT_LOW_SPEED_LIMIT' ),
                        array( 'CURLOPT_LOW_SPEED_TIME' ),
                        array( 'CURLOPT_MAXCONNECTS' ),
                        array( 'CURLOPT_MAXREDIRS' ),
-                       array( 'CURLOPT_MAX_RECV_SPEED_LARGE' ),
-                       array( 'CURLOPT_MAX_SEND_SPEED_LARGE' ),
+                       // array( 'CURLOPT_MAX_RECV_SPEED_LARGE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_MAX_SEND_SPEED_LARGE' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_NETRC' ),
                        array( 'CURLOPT_NOBODY' ),
                        array( 'CURLOPT_NOPROGRESS' ),
@@ -367,7 +379,7 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_POSTREDIR' ),
                        array( 'CURLOPT_PRIVATE' ),
                        array( 'CURLOPT_PROGRESSFUNCTION' ),
-                       array( 'CURLOPT_PROTOCOLS' ),
+                       // array( 'CURLOPT_PROTOCOLS' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_PROXY' ),
                        array( 'CURLOPT_PROXYAUTH' ),
                        array( 'CURLOPT_PROXYPORT' ),
@@ -379,14 +391,14 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_RANGE' ),
                        array( 'CURLOPT_READDATA' ),
                        array( 'CURLOPT_READFUNCTION' ),
-                       array( 'CURLOPT_REDIR_PROTOCOLS' ),
+                       // array( 'CURLOPT_REDIR_PROTOCOLS' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_REFERER' ),
                        array( 'CURLOPT_RESUME_FROM' ),
                        array( 'CURLOPT_RETURNTRANSFER' ),
-                       array( 'CURLOPT_SSH_AUTH_TYPES' ),
-                       array( 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ),
-                       array( 'CURLOPT_SSH_PRIVATE_KEYFILE' ),
-                       array( 'CURLOPT_SSH_PUBLIC_KEYFILE' ),
+                       // array( 'CURLOPT_SSH_AUTH_TYPES' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_SSH_PRIVATE_KEYFILE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_SSH_PUBLIC_KEYFILE' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_SSLCERT' ),
                        array( 'CURLOPT_SSLCERTPASSWD' ),
                        array( 'CURLOPT_SSLCERTTYPE' ),
@@ -414,28 +426,28 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_VERBOSE' ),
                        array( 'CURLOPT_WRITEFUNCTION' ),
                        array( 'CURLOPT_WRITEHEADER' ),
-                       array( 'CURLPROTO_ALL' ),
-                       array( 'CURLPROTO_DICT' ),
-                       array( 'CURLPROTO_FILE' ),
-                       array( 'CURLPROTO_FTP' ),
-                       array( 'CURLPROTO_FTPS' ),
-                       array( 'CURLPROTO_HTTP' ),
-                       array( 'CURLPROTO_HTTPS' ),
-                       array( 'CURLPROTO_LDAP' ),
-                       array( 'CURLPROTO_LDAPS' ),
-                       array( 'CURLPROTO_SCP' ),
-                       array( 'CURLPROTO_SFTP' ),
-                       array( 'CURLPROTO_TELNET' ),
-                       array( 'CURLPROTO_TFTP' ),
+                       // array( 'CURLPROTO_ALL' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_DICT' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_FILE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_FTP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_FTPS' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_HTTP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_HTTPS' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_LDAP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_LDAPS' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_SCP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_SFTP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_TELNET' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_TFTP' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLPROXY_HTTP' ),
-                       array( 'CURLPROXY_SOCKS4' ),
+                       // array( 'CURLPROXY_SOCKS4' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLPROXY_SOCKS5' ),
-                       array( 'CURLSSH_AUTH_DEFAULT' ),
-                       array( 'CURLSSH_AUTH_HOST' ),
-                       array( 'CURLSSH_AUTH_KEYBOARD' ),
-                       array( 'CURLSSH_AUTH_NONE' ),
-                       array( 'CURLSSH_AUTH_PASSWORD' ),
-                       array( 'CURLSSH_AUTH_PUBLICKEY' ),
+                       // array( 'CURLSSH_AUTH_DEFAULT' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_HOST' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_KEYBOARD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_NONE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_PASSWORD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_PUBLICKEY' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLVERSION_NOW' ),
                        array( 'CURL_HTTP_VERSION_1_0' ),
                        array( 'CURL_HTTP_VERSION_1_1' ),
@@ -457,8 +469,8 @@ class HttpTest extends MediaWikiTestCase {
        }
 
        /**
-        * Added this test based on an issue experienced with hhvm where it did
-        * not define a cURL constant.
+        * Added this test based on an issue experienced with HHVM 3.3.0-dev
+        * where it did not define a cURL constant.
         *
         * @bug 70570
         * @dataProvider provideCurlConstants
index 2fce6bf..678c89b 100644 (file)
@@ -34,7 +34,7 @@ class ImportTest extends MediaWikiLangTestCase {
                        }
                };
 
-               $importer = new WikiImporter( $source );
+               $importer = new WikiImporter( $source, ConfigFactory::getDefaultInstance()->makeConfig( 'main' ) );
                $importer->setPageOutCallback( $callback );
                $importer->doImport();
 
@@ -45,7 +45,7 @@ class ImportTest extends MediaWikiLangTestCase {
                return array(
                        array(
                                <<< EOF
-<mediawiki>
+<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="en">
        <page>
                <title>Test</title>
                <ns>0</ns>
@@ -59,10 +59,10 @@ class ImportTest extends MediaWikiLangTestCase {
                                <id>10</id>
                        </contributor>
                        <comment>Admin moved page [[Test]] to [[Test22]]</comment>
-                       <text xml:space="preserve" bytes="20">#REDIRECT [[Test22]]</text>
-                       <sha1>tq456o9x3abm7r9ozi6km8yrbbc56o6</sha1>
                        <model>wikitext</model>
                        <format>text/x-wiki</format>
+                       <text xml:space="preserve" bytes="20">#REDIRECT [[Test22]]</text>
+                       <sha1>tq456o9x3abm7r9ozi6km8yrbbc56o6</sha1>
                </revision>
        </page>
 </mediawiki>
@@ -72,7 +72,7 @@ EOF
                        ),
                        array(
                                <<< EOF
-<mediawiki>
+<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.9/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.9/ http://www.mediawiki.org/xml/export-0.9.xsd" version="0.9" xml:lang="en">
        <page>
                <title>Test</title>
                <ns>0</ns>
index dcb9856..05c1a66 100644 (file)
@@ -8,6 +8,9 @@ class MWTimestampTest extends MediaWikiLangTestCase {
        protected function setUp() {
                parent::setUp();
 
+               // Avoid 'GetHumanTimestamp' hook and others
+               $this->setMwGlobals( 'wgHooks', array() );
+
                RequestContext::getMain()->setLanguage( Language::factory( 'en' ) );
        }
 
index d7e8cd3..89d1de7 100644 (file)
@@ -172,7 +172,7 @@ mw.test.baz({token:123});mw.loader.state({"test.quux":"ready"});
                        array(
                                array( 'test.quux', ResourceLoaderModule::TYPE_COMBINED ),
                                '<script>if(window.mw){
-mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"css":[".mw-icon{transition:none}\n"]},{});
+mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"css":[".mw-icon{transition:none}\n"]},{},{});
 
 }</script>
 '
diff --git a/tests/phpunit/includes/PrefixSearchTest.php b/tests/phpunit/includes/PrefixSearchTest.php
new file mode 100644 (file)
index 0000000..a33f6a6
--- /dev/null
@@ -0,0 +1,216 @@
+<?php
+/**
+ * @group Search
+ * @group Database
+ */
+class PrefixSearchTest extends MediaWikiLangTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+
+               if ( !$this->isWikitextNS( NS_MAIN ) ) {
+                       $this->markTestSkipped( 'Main namespace does not support wikitext.' );
+               }
+
+               $this->insertPages();
+
+               // Avoid special pages from extensions interferring with the tests
+               $this->setMwGlobals( 'wgSpecialPages', array() );
+       }
+
+       protected function searchProvision( Array $results = null ) {
+               if ( $results === null ) {
+                       $this->setMwGlobals( 'wgHooks', array() );
+               } else {
+                       $this->setMwGlobals( 'wgHooks', array(
+                               'PrefixSearchBackend' => array(
+                                       function ( $namespaces, $search, $limit, &$srchres ) use ( $results ) {
+                                               $srchres = $results;
+                                               return false;
+                                       }
+                               ),
+                       ) );
+               }
+       }
+
+       public function insertPages() {
+               $this->insertPage( 'Sandbox' );
+               $this->insertPage( 'Bar' );
+               $this->insertPage( 'Example' );
+               $this->insertPage( 'Example Bar' );
+               $this->insertPage( 'Example Foo' );
+               $this->insertPage( 'Example Foo/Bar' );
+               $this->insertPage( 'Example/Baz' );
+
+               $this->insertPage( 'Talk:Sandbox' );
+               $this->insertPage( 'Talk:Example' );
+
+               $this->insertPage( 'User:Example' );
+       }
+
+       public static function provideSearch() {
+               return array(
+                       array( array(
+                               'Empty string',
+                               'query' => '',
+                               'results' => array(),
+                       ) ),
+                       array( array(
+                               'Main namespace with title prefix',
+                               'query' => 'Ex',
+                               'results' => array(
+                                       'Example',
+                                       'Example/Baz',
+                                       'Example Bar',
+                               ),
+                       ) ),
+                       array( array(
+                               'Talk namespace prefix',
+                               'query' => 'Talk:',
+                               'results' => array(
+                                       'Talk:Example',
+                                       'Talk:Sandbox',
+                               ),
+                       ) ),
+                       array( array(
+                               'User namespace prefix',
+                               'query' => 'User:',
+                               'results' => array(
+                                       'User:Example',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special namespace prefix',
+                               'query' => 'Special:',
+                               'results' => array(
+                                       'Special:ActiveUsers',
+                                       'Special:AllMessages',
+                                       'Special:AllMyFiles',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special namespace with prefix',
+                               'query' => 'Special:Un',
+                               'results' => array(
+                                       'Special:Unblock',
+                                       'Special:UncategorizedCategories',
+                                       'Special:UncategorizedFiles',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special page name',
+                               'query' => 'Special:EditWatchlist',
+                               'results' => array(
+                                       'Special:EditWatchlist',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special page subpages',
+                               'query' => 'Special:EditWatchlist/',
+                               'results' => array(
+                                       'Special:EditWatchlist/clear',
+                                       'Special:EditWatchlist/raw',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special page subpages with prefix',
+                               'query' => 'Special:EditWatchlist/cl',
+                               'results' => array(
+                                       'Special:EditWatchlist/clear',
+                               ),
+                       ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSearch
+        * @covers PrefixSearch::search
+        * @covers PrefixSearch::searchBackend
+        */
+       public function testSearch( Array $case ) {
+               $this->searchProvision( null );
+               $searcher = new StringPrefixSearch;
+               $results = $searcher->search( $case['query'], 3 );
+               $this->assertEquals(
+                       $case['results'],
+                       $results,
+                       $case[0]
+               );
+       }
+
+       public static function provideSearchBackend() {
+               return array(
+                       array( array(
+                               'Simple case',
+                               'provision' => array(
+                                       'Bar',
+                                       'Barcelona',
+                                       'Barbara',
+                               ),
+                               'query' => 'Bar',
+                               'results' => array(
+                                       'Bar',
+                                       'Barcelona',
+                                       'Barbara',
+                               ),
+                       ) ),
+                       array( array(
+                               'Exact match not on top (bug 70958)',
+                               'provision' => array(
+                                       'Barcelona',
+                                       'Bar',
+                                       'Barbara',
+                               ),
+                               'query' => 'Bar',
+                               'results' => array(
+                                       'Bar',
+                                       'Barcelona',
+                                       'Barbara',
+                               ),
+                       ) ),
+                       array( array(
+                               'Exact match missing (bug 70958)',
+                               'provision' => array(
+                                       'Barcelona',
+                                       'Barbara',
+                                       'Bart',
+                               ),
+                               'query' => 'Bar',
+                               'results' => array(
+                                       'Bar',
+                                       'Barcelona',
+                                       'Barbara',
+                               ),
+                       ) ),
+                       array( array(
+                               'Exact match missing and not existing',
+                               'provision' => array(
+                                       'Exile',
+                                       'Exist',
+                                       'External',
+                               ),
+                               'query' => 'Ex',
+                               'results' => array(
+                                       'Exile',
+                                       'Exist',
+                                       'External',
+                               ),
+                       ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSearchBackend
+        * @covers PrefixSearch::searchBackend
+        */
+       public function testSearchBackend( Array $case ) {
+               $this->searchProvision( $case['provision'] );
+               $searcher = new StringPrefixSearch;
+               $results = $searcher->search( $case['query'], 3 );
+               $this->assertEquals(
+                       $case['results'],
+                       $results,
+                       $case[0]
+               );
+       }
+}
index cae0e52..a9e5be2 100644 (file)
@@ -88,9 +88,9 @@ class RequestContextTest extends MediaWikiTestCase {
                unset( $sc ); // restore previous context
 
                $info = $context->exportSession();
-               $this->assertEquals( $oInfo['ip'], $info['ip'], "Correct initial IP address." );
-               $this->assertEquals( $oInfo['headers'], $info['headers'], "Correct initial headers." );
-               $this->assertEquals( $oInfo['sessionId'], $info['sessionId'], "Correct initial session ID." );
-               $this->assertEquals( $oInfo['userId'], $info['userId'], "Correct initial user ID." );
+               $this->assertEquals( $oInfo['ip'], $info['ip'], "Correct restored IP address." );
+               $this->assertEquals( $oInfo['headers'], $info['headers'], "Correct restored headers." );
+               $this->assertEquals( $oInfo['sessionId'], $info['sessionId'], "Correct restored session ID." );
+               $this->assertEquals( $oInfo['userId'], $info['userId'], "Correct restored user ID." );
        }
 }
index 610a6ac..754568d 100644 (file)
@@ -5,24 +5,41 @@
  * like password if we log in via the API.
  */
 class TestUser {
+       /**
+        * @deprecated Since 1.25. Use TestUser::getUser()->getName()
+        * @private
+        * @var string
+        */
        public $username;
+
+       /**
+        * @deprecated Since 1.25. Use TestUser::getPassword()
+        * @private
+        * @var string
+        */
        public $password;
-       public $email;
-       public $groups;
+
+       /**
+        * @deprecated Since 1.25. Use TestUser::getUser()
+        * @private
+        * @var User
+        */
        public $user;
 
+       private function assertNotReal() {
+               global $wgDBprefix;
+               if ( $wgDBprefix !== MediaWikiTestCase::DB_PREFIX && $wgDBprefix !== MediaWikiTestCase::ORA_DB_PREFIX ) {
+                       throw new MWException( "Can't create user on real database" );
+               }
+       }
+
        public function __construct( $username, $realname = 'Real Name',
                $email = 'sample@example.com', $groups = array()
        ) {
-               $this->username = $username;
-               $this->realname = $realname;
-               $this->email = $email;
-               $this->groups = $groups;
+               $this->assertNotReal();
 
-               // don't allow user to hardcode or select passwords -- people sometimes run tests
-               // on live wikis. Sometimes we create sysop users in these tests. A sysop user with
-               // a known password would be a Bad Thing.
-               $this->password = User::randomPassword();
+               $this->username = $username;
+               $this->password = 'TestUser';
 
                $this->user = User::newFromName( $this->username );
                $this->user->load();
@@ -31,32 +48,99 @@ class TestUser {
                // But for now, we just need to create or update the user with the desired properties.
                // we particularly need the new password, since we just generated it randomly.
                // In core MediaWiki, there is no functionality to delete users, so this is the best we can do.
-               if ( !$this->user->getID() ) {
+               if ( !$this->user->isLoggedIn() ) {
                        // create the user
                        $this->user = User::createNew(
                                $this->username, array(
-                                       "email" => $this->email,
-                                       "real_name" => $this->realname
+                                       "email" => $email,
+                                       "real_name" => $realname
                                )
                        );
+
                        if ( !$this->user ) {
-                               throw new Exception( "error creating user" );
+                               throw new MWException( "Error creating TestUser " . $username );
                        }
                }
 
-               // update the user to use the new random password and other details
-               $this->user->setPassword( $this->password );
-               $this->user->setEmail( $this->email );
-               $this->user->setRealName( $this->realname );
+               // Update the user to use the password and other details
+               $change = $this->setPassword( $this->password ) ||
+                       $this->setEmail( $email ) ||
+                       $this->setRealName( $realname );
 
                // Adjust groups by adding any missing ones and removing any extras
                $currentGroups = $this->user->getGroups();
-               foreach ( array_diff( $this->groups, $currentGroups ) as $group ) {
+               foreach ( array_diff( $groups, $currentGroups ) as $group ) {
                        $this->user->addGroup( $group );
                }
-               foreach ( array_diff( $currentGroups, $this->groups ) as $group ) {
+               foreach ( array_diff( $currentGroups, $groups ) as $group ) {
                        $this->user->removeGroup( $group );
                }
-               $this->user->saveSettings();
+               if ( $change ) {
+                       $this->user->saveSettings();
+               }
+       }
+
+       /**
+        * @param string $realname
+        * @return bool
+        */
+       private function setRealName( $realname ) {
+               if ( $this->user->getRealName() !== $realname ) {
+                       $this->user->setRealName( $realname );
+                       return true;
+               }
+
+               return false;
+       }
+
+       /**
+        * @param string $email
+        * @return bool
+        */
+       private function setEmail( $email ) {
+               if ( $this->user->getEmail() !== $email ) {
+                       $this->user->setEmail( $email );
+                       return true;
+               }
+
+               return false;
+       }
+
+       /**
+        * @param string $password
+        * @return bool
+        */
+       private function setPassword( $password ) {
+               $passwordFactory = $this->user->getPasswordFactory();
+               $oldDefaultType = $passwordFactory->getDefaultType();
+
+               // A is unsalted MD5 (thus fast) ... we don't care about security here, this is test only
+               $passwordFactory->setDefaultType( 'A' );
+               $newPassword = $passwordFactory->newFromPlaintext( $password, $this->user->getPassword() );
+
+               $change = false;
+               if ( !$this->user->getPassword()->equals( $newPassword ) ) {
+                       // Password changed
+                       $this->user->setPassword( $password );
+                       $change = true;
+               }
+
+               $passwordFactory->setDefaultType( $oldDefaultType );
+
+               return $change;
+       }
+
+       /**
+        * @return User
+        */
+       public function getUser() {
+               return $this->user;
+       }
+
+       /**
+        * @return string
+        */
+       public function getPassword() {
+               return $this->password;
        }
 }
index d2400b3..6af1862 100644 (file)
@@ -403,7 +403,8 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->setTitle( NS_USER );
                $this->setUserPerm( '' );
-               $this->assertEquals( array( array( 'badaccess-group0' ), array( 'namespaceprotected', 'User', 'bogus' ) ),
+               $this->assertEquals( array( array( 'badaccess-group0' ),
+                               array( 'namespaceprotected', 'User', 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus', $this->user ) );
 
                $this->setTitle( NS_MEDIAWIKI );
@@ -630,7 +631,8 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->assertEquals( false,
                        $this->title->userCan( 'bogus', $this->user ) );
-               $this->assertEquals( array( array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n", 'bogus' ),
+               $this->assertEquals( array(
+                               array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n", 'bogus' ),
                                array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n", 'bogus' ),
                                array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n", 'bogus' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus', $this->user ) );
@@ -648,10 +650,10 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
        public function testActionPermissions() {
                $this->setUserPerm( array( "createpage" ) );
                $this->setTitle( NS_MAIN, "test page" );
-               $this->title->mTitleProtection['pt_create_perm'] = '';
-               $this->title->mTitleProtection['pt_user'] = $this->user->getID();
-               $this->title->mTitleProtection['pt_expiry'] = wfGetDB( DB_SLAVE )->getInfinity();
-               $this->title->mTitleProtection['pt_reason'] = 'test';
+               $this->title->mTitleProtection['permission'] = '';
+               $this->title->mTitleProtection['user'] = $this->user->getID();
+               $this->title->mTitleProtection['expiry'] = wfGetDB( DB_SLAVE )->getInfinity();
+               $this->title->mTitleProtection['reason'] = 'test';
                $this->title->mCascadeRestriction = false;
 
                $this->assertEquals( array( array( 'titleprotected', 'Useruser', 'test' ) ),
@@ -659,7 +661,7 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                $this->assertEquals( false,
                        $this->title->userCan( 'create', $this->user ) );
 
-               $this->title->mTitleProtection['pt_create_perm'] = 'sysop';
+               $this->title->mTitleProtection['permission'] = 'editprotected';
                $this->setUserPerm( array( 'createpage', 'protect' ) );
                $this->assertEquals( array( array( 'titleprotected', 'Useruser', 'test' ) ),
                        $this->title->getUserPermissionsErrors( 'create', $this->user ) );
index fb58381..a4bc427 100644 (file)
@@ -428,14 +428,14 @@ class TitleTest extends MediaWikiTestCase {
        public function testGetPageViewLanguage( $expected, $titleText, $contLang,
                $lang, $variant, $msg = ''
        ) {
-               global $wgLanguageCode, $wgContLang, $wgLang, $wgDefaultLanguageVariant, $wgAllowUserJs;
-
                // Setup environnement for this test
-               $wgLanguageCode = $contLang;
-               $wgContLang = Language::factory( $contLang );
-               $wgLang = Language::factory( $lang );
-               $wgDefaultLanguageVariant = $variant;
-               $wgAllowUserJs = true;
+               $this->setMwGlobals( array(
+                       'wgLanguageCode' => $contLang,
+                       'wgContLang' => Language::factory( $contLang ),
+                       'wgLang' => Language::factory( $lang ),
+                       'wgDefaultLanguageVariant' => $variant,
+                       'wgAllowUserJs' => true,
+               ) );
 
                $title = Title::newFromText( $titleText );
                $this->assertInstanceOf( 'Title', $title,
index a0c20bb..f9ef317 100644 (file)
@@ -281,9 +281,7 @@ class UserTest extends MediaWikiTestCase {
         * @covers User::getPasswordExpired()
         */
        public function testPasswordExpire() {
-               global $wgPasswordExpireGrace;
-               $wgTemp = $wgPasswordExpireGrace;
-               $wgPasswordExpireGrace = 3600 * 24 * 7; // 7 days
+               $this->setMwGlobals( 'wgPasswordExpireGrace', 3600 * 24 * 7 ); // 7 days
 
                $user = User::newFromName( 'UnitTestUser' );
                $user->loadDefaults( 'UnitTestUser' );
@@ -296,8 +294,6 @@ class UserTest extends MediaWikiTestCase {
                $ts = time() - ( 3600 * 24 * 10 ); // 10 days ago
                $user->expirePassword( $ts );
                $this->assertEquals( 'hard', $user->getPasswordExpired() );
-
-               $wgPasswordExpireGrace = $wgTemp;
        }
 
        /**
index 7f7945b..c011e9a 100644 (file)
@@ -55,8 +55,8 @@ class WikiPageTest extends MediaWikiLangTestCase {
        }
 
        /**
-        * @param Title $title
-        * @param string $model
+        * @param Title|string $title
+        * @param string|null $model
         * @return WikiPage
         */
        protected function newPage( $title, $model = null ) {
index cc6fb11..6681c7a 100644 (file)
@@ -117,6 +117,15 @@ class ActionTest extends MediaWikiTestCase {
                $this->assertEquals( 'revisiondelete', $actionName );
        }
 
+       public function testGetActionName_whenCanNotUseWikiPage_defaultsToView() {
+               $request = new FauxRequest( array( 'action' => 'edit' ) );
+               $context = new DerivativeContext( RequestContext::getMain() );
+               $context->setRequest( $request );
+               $actionName = Action::getActionName( $context );
+
+               $this->assertEquals( 'view', $actionName );
+       }
+
        /**
         * @dataProvider actionProvider
         * @param string $requestedAction
index 780cf9e..4bf6deb 100644 (file)
 class ApiMainTest extends ApiTestCase {
 
        /**
-        * Test that the API will accept a FauxRequest and execute. The help action
-        * (default) throws a UsageException. Just validate we're getting proper XML
-        *
-        * @expectedException UsageException
+        * Test that the API will accept a FauxRequest and execute.
         */
        public function testApi() {
                $api = new ApiMain(
-                       new FauxRequest( array( 'action' => 'help', 'format' => 'xml' ) )
+                       new FauxRequest( array( 'action' => 'query', 'meta' => 'siteinfo' ) )
                );
                $api->execute();
-               $api->getPrinter()->setBufferResult( true );
-               $api->printResult( false );
-               $resp = $api->getPrinter()->getBuffer();
-
-               libxml_use_internal_errors( true );
-               $sxe = simplexml_load_string( $resp );
-               $this->assertNotInternalType( "bool", $sxe );
-               $this->assertThat( $sxe, $this->isInstanceOf( "SimpleXMLElement" ) );
+               $data = $api->getResultData();
+               $this->assertInternalType( 'array', $data );
+               $this->assertArrayHasKey( 'query', $data );
        }
 
        public static function provideAssert() {
index 5f955bb..bd34018 100644 (file)
@@ -17,8 +17,6 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
        /** @var DerivativeContext */
        private $mContext;
 
-       private $mOldGetPreferencesHooks;
-
        private static $Success = array( 'options' => 'success' );
 
        protected function setUp() {
@@ -50,21 +48,11 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
 
                $this->mTested = new ApiOptions( $main, 'options' );
 
-               global $wgHooks;
-               if ( !isset( $wgHooks['GetPreferences'] ) ) {
-                       $wgHooks['GetPreferences'] = array();
-               }
-               $this->mOldGetPreferencesHooks = $wgHooks['GetPreferences'];
-               $wgHooks['GetPreferences'][] = array( $this, 'hookGetPreferences' );
-       }
-
-       protected function tearDown() {
-               global $wgHooks;
-
-               $wgHooks['GetPreferences'] = $this->mOldGetPreferencesHooks;
-               $this->mOldGetPreferencesHooks = false;
-
-               parent::tearDown();
+               $this->mergeMwGlobalArrayValue( 'wgHooks', array(
+                       'GetPreferences' => array(
+                               array( $this, 'hookGetPreferences' )
+                       )
+               ) );
        }
 
        public function hookGetPreferences( $user, &$preferences ) {
index cd14194..9a552fa 100644 (file)
@@ -8,6 +8,11 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
         */
        protected $apiContext;
 
+       /**
+        * @var array
+        */
+       protected $tablesUsed = array( 'user', 'user_groups', 'user_properties' );
+
        protected function setUp() {
                global $wgServer;
 
@@ -134,10 +139,14 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                }
 
                if ( isset( $session['wsToken'] ) && $session['wsToken'] ) {
+                       // @todo Why does this directly mess with the session? Fix that.
                        // add edit token to fake session
                        $session['wsEditToken'] = $session['wsToken'];
                        // add token to request parameters
-                       $params['token'] = md5( $session['wsToken'] ) . User::EDIT_TOKEN_SUFFIX;
+                       $timestamp = wfTimestamp();
+                       $params['token'] = hash_hmac( 'md5', $timestamp, $session['wsToken'] ) .
+                               dechex( $timestamp ) .
+                               User::EDIT_TOKEN_SUFFIX;
 
                        return $this->doApiRequest( $params, $session, false, $user );
                } else {
index 13da33c..d04766b 100644 (file)
@@ -20,7 +20,7 @@ class PrefixUniquenessTest extends MediaWikiTestCase {
                        $class = get_class( $module );
 
                        $prefix = $module->getModulePrefix();
-                       if ( isset( $prefixes[$prefix] ) ) {
+                       if ( $prefix !== '' && isset( $prefixes[$prefix] ) ) {
                                $this->fail( "Module prefix '{$prefix}' is shared between {$class} and {$prefixes[$prefix]}" );
                        }
                        $prefixes[$module->getModulePrefix()] = $class;
index 5f6d53c..af77570 100644 (file)
@@ -16,15 +16,12 @@ abstract class ApiFormatTestBase extends ApiTestCase {
                $module = $data[3];
 
                $printer = $module->createPrinterByName( $format );
-               $printer->setUnescapeAmps( false );
-
-               $printer->initPrinter( false );
 
                ob_start();
+               $printer->initPrinter( false );
                $printer->execute();
-               $out = ob_get_clean();
-
                $printer->closePrinter();
+               $out = ob_get_clean();
 
                return $out;
        }
index 347cd6f..46f1b7b 100644 (file)
@@ -62,7 +62,8 @@ class ApiQueryContinue2Test extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 1 prop + 1 list
-               $data = $this->query( $mk( 99, 99, true ), 1, 'g1p', false );
+               $data = $this->query( $mk( 99, 99, true ), 1, 'g1p', false ) +
+                       array( 'batchcomplete' => '' );
                $this->checkC( $data, $mk( 1, 1, true ), 6, 'g1p-11t' );
                $this->checkC( $data, $mk( 2, 2, true ), 3, 'g1p-22t' );
                $this->checkC( $data, $mk( 1, 1, false ), 6, 'g1p-11f' );
index 0379790..56130f1 100644 (file)
@@ -68,7 +68,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                                'aplimit' => "$l",
                        );
                };
-               $data = $this->query( $mk( 99 ), 1, '1L', false );
+               $data = $this->query( $mk( 99 ), 1, '1L', false ) +
+                       array( 'batchcomplete' => '' );
 
                // 1 list
                $this->checkC( $data, $mk( 1 ), 5, '1L-1' );
@@ -95,7 +96,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // 2 lists
-               $data = $this->query( $mk( 99, 99 ), 1, '2L', false );
+               $data = $this->query( $mk( 99, 99 ), 1, '2L', false ) +
+                       array( 'batchcomplete' => '' );
                $this->checkC( $data, $mk( 1, 1 ), 5, '2L-11' );
                $this->checkC( $data, $mk( 2, 2 ), 3, '2L-22' );
                $this->checkC( $data, $mk( 3, 3 ), 2, '2L-33' );
@@ -119,7 +121,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 1 prop
-               $data = $this->query( $mk( 99, 99 ), 1, 'G1P', false );
+               $data = $this->query( $mk( 99, 99 ), 1, 'G1P', false ) +
+                       array( 'batchcomplete' => '' );
                $this->checkC( $data, $mk( 1, 1 ), 11, 'G1P-11' );
                $this->checkC( $data, $mk( 2, 2 ), 6, 'G1P-22' );
                $this->checkC( $data, $mk( 3, 3 ), 4, 'G1P-33' );
@@ -144,7 +147,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 2 props
-               $data = $this->query( $mk( 99, 99, 99 ), 1, 'G2P', false );
+               $data = $this->query( $mk( 99, 99, 99 ), 1, 'G2P', false ) +
+                       array( 'batchcomplete' => '' );
                $this->checkC( $data, $mk( 1, 1, 1 ), 16, 'G2P-111' );
                $this->checkC( $data, $mk( 2, 2, 2 ), 9, 'G2P-222' );
                $this->checkC( $data, $mk( 3, 3, 3 ), 6, 'G2P-333' );
@@ -177,7 +181,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 1 prop + 1 list
-               $data = $this->query( $mk( 99, 99, 99 ), 1, 'G1P1L', false );
+               $data = $this->query( $mk( 99, 99, 99 ), 1, 'G1P1L', false ) +
+                       array( 'batchcomplete' => '' );
                $this->checkC( $data, $mk( 1, 1, 1 ), 11, 'G1P1L-111' );
                $this->checkC( $data, $mk( 2, 2, 2 ), 6, 'G1P1L-222' );
                $this->checkC( $data, $mk( 3, 3, 3 ), 4, 'G1P1L-333' );
@@ -214,7 +219,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 1 prop + 1 list
-               $data = $this->query( $mk( 99, 99, 99, 99, 99 ), 1, 'G2P2L1M', false );
+               $data = $this->query( $mk( 99, 99, 99, 99, 99 ), 1, 'G2P2L1M', false ) +
+                       array( 'batchcomplete' => '' );
                $this->checkC( $data, $mk( 1, 1, 1, 1, 1 ), 16, 'G2P2L1M-11111' );
                $this->checkC( $data, $mk( 2, 2, 2, 2, 2 ), 9, 'G2P2L1M-22222' );
                $this->checkC( $data, $mk( 3, 3, 3, 3, 3 ), 6, 'G2P2L1M-33333' );
@@ -244,7 +250,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 1 prop
-               $data = $this->query( $mk( 99, true, 99, true ), 1, 'G=P', false );
+               $data = $this->query( $mk( 99, true, 99, true ), 1, 'G=P', false ) +
+                       array( 'batchcomplete' => '' );
 
                $this->checkC( $data, $mk( 1, true, 1, true ), 4, 'G=P-1t1t' );
                $this->checkC( $data, $mk( 2, true, 2, true ), 2, 'G=P-2t2t' );
@@ -290,7 +297,8 @@ class ApiQueryContinueTest extends ApiQueryContinueTestBase {
                        );
                };
                // generator + 1 list
-               $data = $this->query( $mk( 99, true, 99, true ), 1, 'G=L', false );
+               $data = $this->query( $mk( 99, true, 99, true ), 1, 'G=L', false ) +
+                       array( 'batchcomplete' => '' );
 
                $this->checkC( $data, $mk( 1, true, 1, true ), 5, 'G=L-1t1t' );
                $this->checkC( $data, $mk( 2, true, 2, true ), 3, 'G=L-2t2t' );
index bce6268..a5f2684 100644 (file)
@@ -62,6 +62,8 @@ abstract class ApiQueryContinueTestBase extends ApiQueryTestBase {
                }
                if ( $useContinue && !isset( $params['continue'] ) ) {
                        $params['continue'] = '';
+               } else {
+                       $params['rawcontinue'] = '1';
                }
                $count = 0;
                $result = array();
index bba22c7..200027d 100644 (file)
@@ -7,32 +7,21 @@
  * @covers ApiQuery
  */
 class ApiQueryTest extends ApiTestCase {
-       /**
-        * @var array Storage for $wgHooks
-        */
-       protected $hooks;
-
        protected function setUp() {
-               global $wgHooks;
-
                parent::setUp();
                $this->doLogin();
 
-               // Setup en: as interwiki prefix
-               $this->hooks = $wgHooks;
-               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
-                       if ( $prefix == 'apiquerytestiw' ) {
-                               $data = array( 'iw_url' => 'wikipedia' );
-                       }
-                       return false;
-               };
-       }
-
-       protected function tearDown() {
-               global $wgHooks;
-               $wgHooks = $this->hooks;
-
-               parent::tearDown();
+               // Setup apiquerytestiw: as interwiki prefix
+               $this->setMwGlobals( 'wgHooks', array(
+                       'InterwikiLoadPrefix' => array(
+                               function ( $prefix, &$data ) {
+                                       if ( $prefix == 'apiquerytestiw' ) {
+                                               $data = array( 'iw_url' => 'wikipedia' );
+                                       }
+                                       return false;
+                               }
+                       )
+               ) );
        }
 
        public function testTitlesGetNormalized() {
index 56c15b2..1220bb4 100644 (file)
@@ -95,6 +95,9 @@ STR;
                if ( !array_key_exists( 'action', $req ) ) {
                        $req['action'] = 'query';
                }
+               if ( !array_key_exists( 'continue', $req ) ) {
+                       $req['rawcontinue'] = '1';
+               }
                foreach ( $req as &$val ) {
                        if ( is_array( $val ) ) {
                                $val = implode( '|', array_unique( $val ) );
index fc06a50..35ff919 100644 (file)
@@ -60,21 +60,23 @@ class LocalisationCacheTest extends MediaWikiTestCase {
        }
 
        public function testRecacheFallbacksWithHooks() {
-               global $wgHooks;
-
                // Use hook to provide updates for messages. This is what the
                // LocalisationUpdate extension does. See bug 68781.
-               $wgHooks['LocalisationCacheRecacheFallback'][] = function (
-                       LocalisationCache $lc,
-                       $code,
-                       array &$cache
-               ) {
-                       if ( $code === 'ru' ) {
-                               $cache['messages']['present-uk'] = 'ru-override';
-                               $cache['messages']['present-ru'] = 'ru-override';
-                               $cache['messages']['present-en'] = 'ru-override';
-                       }
-               };
+               $this->mergeMwGlobalArrayValue( 'wgHooks', array(
+                       'LocalisationCacheRecacheFallback' => array(
+                               function (
+                                       LocalisationCache $lc,
+                                       $code,
+                                       array &$cache
+                               ) {
+                                       if ( $code === 'ru' ) {
+                                               $cache['messages']['present-uk'] = 'ru-override';
+                                               $cache['messages']['present-ru'] = 'ru-override';
+                                               $cache['messages']['present-en'] = 'ru-override';
+                                       }
+                               }
+                       )
+               ) );
 
                $lc = new LocalisationCache( array( 'store' => 'detect' ) );
                $lc->recache( 'uk' );
index 3d491e9..868d6c2 100644 (file)
@@ -57,7 +57,8 @@ class BloomCacheRedisTest extends MediaWikiTestCase {
                        'value2898',
                        'value2975'
                );
-               $this->assertEquals( $eFalsePositives, $falsePositives, "Correct number of false positives found." );
+               $this->assertEquals( $eFalsePositives, $falsePositives,
+                       "Correct number of false positives found." );
        }
 
        protected function tearDown() {
index 98903f1..7c2ba1a 100644 (file)
@@ -46,6 +46,7 @@ class RecentChangeTest extends MediaWikiTestCase {
         * - protect/modifyprotect
         * - protect/unprotect
         * - upload/upload
+        * - merge/merge
         *
         * As well as the following Auto Edit Summaries:
         * - blank
@@ -229,6 +230,25 @@ class RecentChangeTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeMerge() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # merge/merge
+               $this->assertIRCComment(
+                       $this->context->msg( 'pagemerge-logentry', 'SomeTitle', 'Dest', 'timestamp' )->plain()
+                               . $sep . $this->user_comment,
+                       'merge', 'merge',
+                       array(
+                               '4::dest' => 'Dest',
+                               '5::mergepoint' => 'timestamp',
+                       ),
+                       $this->user_comment
+               );
+       }
+
        /**
         * @todo Emulate these edits somehow and extract
         * raw edit summary from RecentChange object
index 70b9e68..28068d5 100644 (file)
@@ -87,34 +87,10 @@ class GlobalVarConfigTest extends MediaWikiTestCase {
                $this->assertEquals( $config->get( $name ), $expected );
        }
 
-       public static function provideSet() {
-               return array(
-                       array( 'Foo', 'wg', 'wgFoo' ),
-                       array( 'SomethingRandom', 'wg', 'wgSomethingRandom' ),
-                       array( 'FromAnExtension', 'eg', 'egFromAnExtension' ),
-                       array( 'NoPrefixHere', '', 'NoPrefixHere' ),
-               );
-       }
-
        private function maybeStashGlobal( $var ) {
                if ( array_key_exists( $var, $GLOBALS ) ) {
                        // Will be reset after this test is over
                        $this->stashMwGlobals( $var );
                }
        }
-
-       /**
-        * @dataProvider provideSet
-        * @covers GlobalVarConfig::set
-        * @covers GlobalVarConfig::setWithPrefix
-        */
-       public function testSet( $name, $prefix, $var ) {
-               $this->hideDeprecated( 'GlobalVarConfig::set' );
-               $this->maybeStashGlobal( $var );
-               $config = new GlobalVarConfig( $prefix );
-               $random = wfRandomString();
-               $config->set( $name, $random );
-               $this->assertArrayHasKey( $var, $GLOBALS );
-               $this->assertEquals( $random, $GLOBALS[$var] );
-       }
 }
index 2f81109..dd61f85 100644 (file)
@@ -7,11 +7,8 @@
  */
 class TextContentTest extends MediaWikiLangTestCase {
        protected $context;
-       protected $savedContentGetParserOutput;
 
        protected function setUp() {
-               global $wgHooks;
-
                parent::setUp();
 
                // Anon user
@@ -32,24 +29,8 @@ class TextContentTest extends MediaWikiLangTestCase {
                        'wgUseTidy' => false,
                        'wgAlwaysUseTidy' => false,
                        'wgCapitalLinks' => true,
+                       'wgHooks' => array(), // bypass hook ContentGetParserOutput that force custom rendering
                ) );
-
-               // bypass hooks that force custom rendering
-               if ( isset( $wgHooks['ContentGetParserOutput'] )  ) {
-                       $this->savedContentGetParserOutput = $wgHooks['ContentGetParserOutput'];
-                       unset( $wgHooks['ContentGetParserOutput'] );
-               }
-       }
-
-       public function teardown() {
-               global $wgHooks;
-
-               // restore hooks that force custom rendering
-               if ( $this->savedContentGetParserOutput !== null ) {
-                       $wgHooks['ContentGetParserOutput'] = $this->savedContentGetParserOutput;
-               }
-
-               parent::teardown();
        }
 
        public function newContent( $text ) {
index 7171ee5..f0c829c 100644 (file)
@@ -99,6 +99,10 @@ class ORMTableTest extends MediaWikiTestCase {
 
 class PageORMTableForTesting extends ORMTable {
 
+       public function __construct() {
+               $this->fieldPrefix = 'page_';
+       }
+
        /**
         * @see ORMTable::getName
         *
@@ -138,13 +142,4 @@ class PageORMTableForTesting extends ORMTable {
                        'title' => 'str',
                );
        }
-
-       /**
-        * @see ORMTable::getFieldPrefix
-        *
-        * @return string
-        */
-       protected function getFieldPrefix() {
-               return 'page_';
-       }
 }
index c9459c9..ca31cf9 100644 (file)
@@ -150,6 +150,10 @@ class TestORMRow extends ORMRow {
 
 class TestORMTable extends ORMTable {
 
+       public function __construct() {
+               $this->fieldPrefix = 'test_';
+       }
+
        /**
         * Returns the name of the database table objects of this type are stored in.
         *
@@ -204,15 +208,4 @@ class TestORMTable extends ORMTable {
                        'time' => 'str', // TS_MW
                );
        }
-
-       /**
-        * Gets the db field prefix.
-        *
-        * @since 1.20
-        *
-        * @return string
-        */
-       protected function getFieldPrefix() {
-               return 'test_';
-       }
 }
diff --git a/tests/phpunit/includes/installer/DatabaseUpdaterTest.php b/tests/phpunit/includes/installer/DatabaseUpdaterTest.php
new file mode 100644 (file)
index 0000000..abff3e6
--- /dev/null
@@ -0,0 +1,279 @@
+<?php
+
+class DatabaseUpdaterTest extends MediaWikiTestCase {
+
+       public function testSetAppliedUpdates() {
+               $db = new FakeDatabase();
+               $dbu = new FakeDatabaseUpdater( $db );
+               $dbu->setAppliedUpdates( "test", array() );
+               $expected = "updatelist-test-" . time() . "0";
+               $actual = $db->lastInsertData['ul_key'];
+               $this->assertEquals( $expected, $actual, var_export( $db->lastInsertData, true ) );
+               $dbu->setAppliedUpdates( "test", array() );
+               $expected = "updatelist-test-" . time() . "1";
+               $actual = $db->lastInsertData['ul_key'];
+               $this->assertEquals( $expected, $actual, var_export( $db->lastInsertData, true ) );
+       }
+}
+
+class FakeDatabase extends DatabaseBase {
+       public $lastInsertTable;
+       public $lastInsertData;
+
+       function __construct() {
+       }
+
+       function clearFlag( $arg ) {
+       }
+
+       function setFlag( $arg ) {
+       }
+
+       public function insert( $table, $a, $fname = __METHOD__, $options = array() ) {
+               $this->lastInsertTable = $table;
+               $this->lastInsertData = $a;
+       }
+
+       /**
+        * Get the type of the DBMS, as it appears in $wgDBtype.
+        *
+        * @return string
+        */
+       function getType() {
+               // TODO: Implement getType() method.
+       }
+
+       /**
+        * Open a connection to the database. Usually aborts on failure
+        *
+        * @param string $server Database server host
+        * @param string $user Database user name
+        * @param string $password Database user password
+        * @param string $dbName Database name
+        * @return bool
+        * @throws DBConnectionError
+        */
+       function open( $server, $user, $password, $dbName ) {
+               // TODO: Implement open() method.
+       }
+
+       /**
+        * Fetch the next row from the given result object, in object form.
+        * Fields can be retrieved with $row->fieldname, with fields acting like
+        * member variables.
+        * If no more rows are available, false is returned.
+        *
+        * @param ResultWrapper|stdClass $res Object as returned from DatabaseBase::query(), etc.
+        * @return stdClass|bool
+        * @throws DBUnexpectedError Thrown if the database returns an error
+        */
+       function fetchObject( $res ) {
+               // TODO: Implement fetchObject() method.
+       }
+
+       /**
+        * Fetch the next row from the given result object, in associative array
+        * form. Fields are retrieved with $row['fieldname'].
+        * If no more rows are available, false is returned.
+        *
+        * @param ResultWrapper $res Result object as returned from DatabaseBase::query(), etc.
+        * @return array|bool
+        * @throws DBUnexpectedError Thrown if the database returns an error
+        */
+       function fetchRow( $res ) {
+               // TODO: Implement fetchRow() method.
+       }
+
+       /**
+        * Get the number of rows in a result object
+        *
+        * @param mixed $res A SQL result
+        * @return int
+        */
+       function numRows( $res ) {
+               // TODO: Implement numRows() method.
+       }
+
+       /**
+        * Get the number of fields in a result object
+        * @see http://www.php.net/mysql_num_fields
+        *
+        * @param mixed $res A SQL result
+        * @return int
+        */
+       function numFields( $res ) {
+               // TODO: Implement numFields() method.
+       }
+
+       /**
+        * Get a field name in a result object
+        * @see http://www.php.net/mysql_field_name
+        *
+        * @param mixed $res A SQL result
+        * @param int $n
+        * @return string
+        */
+       function fieldName( $res, $n ) {
+               // TODO: Implement fieldName() method.
+       }
+
+       /**
+        * Get the inserted value of an auto-increment row
+        *
+        * The value inserted should be fetched from nextSequenceValue()
+        *
+        * Example:
+        * $id = $dbw->nextSequenceValue( 'page_page_id_seq' );
+        * $dbw->insert( 'page', array( 'page_id' => $id ) );
+        * $id = $dbw->insertId();
+        *
+        * @return int
+        */
+       function insertId() {
+               // TODO: Implement insertId() method.
+       }
+
+       /**
+        * Change the position of the cursor in a result object
+        * @see http://www.php.net/mysql_data_seek
+        *
+        * @param mixed $res A SQL result
+        * @param int $row
+        */
+       function dataSeek( $res, $row ) {
+               // TODO: Implement dataSeek() method.
+       }
+
+       /**
+        * Get the last error number
+        * @see http://www.php.net/mysql_errno
+        *
+        * @return int
+        */
+       function lastErrno() {
+               // TODO: Implement lastErrno() method.
+       }
+
+       /**
+        * Get a description of the last error
+        * @see http://www.php.net/mysql_error
+        *
+        * @return string
+        */
+       function lastError() {
+               // TODO: Implement lastError() method.
+       }
+
+       /**
+        * mysql_fetch_field() wrapper
+        * Returns false if the field doesn't exist
+        *
+        * @param string $table Table name
+        * @param string $field Field name
+        *
+        * @return Field
+        */
+       function fieldInfo( $table, $field ) {
+               // TODO: Implement fieldInfo() method.
+       }
+
+       /**
+        * Get information about an index into an object
+        * @param string $table Table name
+        * @param string $index Index name
+        * @param string $fname Calling function name
+        * @return mixed Database-specific index description class or false if the index does not exist
+        */
+       function indexInfo( $table, $index, $fname = __METHOD__ ) {
+               // TODO: Implement indexInfo() method.
+       }
+
+       /**
+        * Get the number of rows affected by the last write query
+        * @see http://www.php.net/mysql_affected_rows
+        *
+        * @return int
+        */
+       function affectedRows() {
+               // TODO: Implement affectedRows() method.
+       }
+
+       /**
+        * Wrapper for addslashes()
+        *
+        * @param string $s String to be slashed.
+        * @return string Slashed string.
+        */
+       function strencode( $s ) {
+               // TODO: Implement strencode() method.
+       }
+
+       /**
+        * Returns a wikitext link to the DB's website, e.g.,
+        *   return "[http://www.mysql.com/ MySQL]";
+        * Should at least contain plain text, if for some reason
+        * your database has no website.
+        *
+        * @return string Wikitext of a link to the server software's web site
+        */
+       function getSoftwareLink() {
+               // TODO: Implement getSoftwareLink() method.
+       }
+
+       /**
+        * A string describing the current software version, like from
+        * mysql_get_server_info().
+        *
+        * @return string Version information from the database server.
+        */
+       function getServerVersion() {
+               // TODO: Implement getServerVersion() method.
+       }
+
+       /**
+        * Closes underlying database connection
+        * @since 1.20
+        * @return bool Whether connection was closed successfully
+        */
+       protected function closeConnection() {
+               // TODO: Implement closeConnection() method.
+       }
+
+       /**
+        * The DBMS-dependent part of query()
+        *
+        * @param string $sql SQL query.
+        * @return ResultWrapper|bool Result object to feed to fetchObject,
+        *   fetchRow, ...; or false on failure
+        */
+       protected function doQuery( $sql ) {
+               // TODO: Implement doQuery() method.
+       }
+}
+
+class FakeDatabaseUpdater extends DatabaseUpdater {
+       function __construct( $db ) {
+               $this->db = $db;
+               self::$updateCounter = 0;
+       }
+
+       /**
+        * Get an array of updates to perform on the database. Should return a
+        * multi-dimensional array. The main key is the MediaWiki version (1.12,
+        * 1.13...) with the values being arrays of updates, identical to how
+        * updaters.inc did it (for now)
+        *
+        * @return array
+        */
+       protected function getCoreUpdateList() {
+               return array();
+       }
+
+       public function canUseNewUpdatelog() {
+               return true;
+       }
+
+       public function setAppliedUpdates( $version, $updates = array() ) {
+               parent::setAppliedUpdates( $version, $updates );
+       }
+}
index 69e4006..ea1a4f6 100644 (file)
@@ -247,8 +247,13 @@ class JobQueueTest extends MediaWikiTestCase {
                        $this->assertNull( $queue->push( $this->newJob( 0, $root1 ) ), "Push worked ($desc)" );
                }
                $queue->deduplicateRootJob( $this->newJob( 0, $root1 ) );
-               sleep( 1 ); // roo job timestamp will increase
-               $root2 = Job::newRootJobParams( "nulljobspam:$id" ); // task ID/timestamp
+
+               $root2 = $root1;
+               # Add a second to UNIX epoch and format back to TS_MW
+               $root2_ts = strtotime( $root2['rootJobTimestamp'] );
+               $root2_ts++;
+               $root2['rootJobTimestamp'] = wfTimestamp( TS_MW, $root2_ts );
+
                $this->assertNotEquals( $root1['rootJobTimestamp'], $root2['rootJobTimestamp'],
                        "Root job signatures have different timestamps." );
                for ( $i = 0; $i < 5; ++$i ) {
index af68ab0..7657633 100644 (file)
@@ -169,12 +169,28 @@ class FormatJsonTest extends MediaWikiTestCase {
                $this->assertEquals( $value, $st->getValue() );
        }
 
+       /**
+        * Test data for testParseTryFixing.
+        *
+        * HHVM has a lenient json parser (yeah great idea right?) which allows
+        * trailing commas for array and object delarations among other things, so
+        * our JSON_ERROR_SYNTAX rescue block is not always triggered. It however
+        * isn't lenient in exactly the same ways as our TRY_FIXING mode, so the
+        * assertions in this test are a bit more complicated than they ideally
+        * would be:
+        *
+        * Optional third argument: true if hhvm parses the value without
+        * intervention, false otherwise. Defaults to true.
+        *
+        * Optional fourth argument: expected cannonical JSON serialization of HHVM
+        * parsed result. Defaults to the second argument's value.
+        */
        public static function provideParseTryFixing() {
                return array(
-                       array( "[,]", '[]' ),
-                       array( "[ , ]", '[]' ),
+                       array( "[,]", '[]', false ),
+                       array( "[ , ]", '[]', false ),
                        array( "[ , }", false ),
-                       array( '[1],', false ),
+                       array( '[1],', false, true, '[1]' ),
                        array( "[1,]", '[1]' ),
                        array( "[1\n,]", '[1]' ),
                        array( "[1,\n]", '[1]' ),
@@ -182,24 +198,43 @@ class FormatJsonTest extends MediaWikiTestCase {
                        array( "[1\n,\n]\n", '[1]' ),
                        array( '["a,",]', '["a,"]' ),
                        array( "[[1,]\n,[2,\n],[3\n,]]", '[[1],[2],[3]]' ),
-                       array( '[[1,],[2,],[3,]]', false ), // I wish we could parse this, but would need quote parsing
-                       array( '[1,,]', false ),
+                       // I wish we could parse this, but would need quote parsing
+                       array( '[[1,],[2,],[3,]]', false, true, '[[1],[2],[3]]' ),
+                       array( '[1,,]', false, false, '[1]' ),
                );
        }
 
        /**
         * @dataProvider provideParseTryFixing
         * @param string $value
-        * @param string|bool $expected
+        * @param string|bool $expected Expected result with Zend PHP
+        * @param bool $hhvmParses Will HHVM parse this value without TRY_FIXING?
+        * @param string|bool $expectedHHVM Expected result with HHVM if different
+        * from the PHP5 expectation
         */
-       public function testParseTryFixing( $value, $expected ) {
+       public function testParseTryFixing(
+               $value, $expected,
+               $hhvmParses = true, $expectedHHVM = null
+       ) {
+               // PHP5 results are always expected to have isGood() === false
+               $expectedGoodStatus = false;
+
+               if ( wfIsHHVM() ) {
+                       // Use HHVM specific expected result if provided
+                       $expected = ( $expectedHHVM === null ) ? $expected : $expectedHHVM;
+                       // If HHVM parses the value natively, expect isGood() === true
+                       $expectedGoodStatus = $hhvmParses;
+               }
+
                $st = FormatJson::parse( $value, FormatJson::TRY_FIXING );
                $this->assertType( 'Status', $st );
                if ( $expected === false ) {
-                       $this->assertFalse( $st->isOK() );
+                       $this->assertFalse( $st->isOK(), 'Expected isOK() == false' );
                } else {
-                       $this->assertFalse( $st->isGood() );
-                       $this->assertTrue( $st->isOK() );
+                       $this->assertSame( $expectedGoodStatus, $st->isGood(),
+                               'Expected isGood() == ' . ( $expectedGoodStatus ? 'true' : 'false' )
+                       );
+                       $this->assertTrue( $st->isOK(), 'Expected isOK == true' );
                        $val = FormatJson::encode( $st->getValue(), false, FormatJson::ALL_OK );
                        $this->assertEquals( $expected, $val );
                }
@@ -222,6 +257,64 @@ class FormatJsonTest extends MediaWikiTestCase {
                $this->assertFalse( $st->isOK() );
        }
 
+       public function provideStripComments() {
+               return array(
+                       array( '{"a":"b"}', '{"a":"b"}' ),
+                       array( "{\"a\":\"b\"}\n", "{\"a\":\"b\"}\n" ),
+                       array( '/*c*/{"c":"b"}', '{"c":"b"}' ),
+                       array( '{"a":"c"}/*c*/', '{"a":"c"}' ),
+                       array( '/*c//d*/{"c":"b"}', '{"c":"b"}' ),
+                       array( '{/*c*/"c":"b"}', '{"c":"b"}' ),
+                       array( "/*\nc\r\n*/{\"c\":\"b\"}", '{"c":"b"}' ),
+                       array( "//c\n{\"c\":\"b\"}", '{"c":"b"}' ),
+                       array( "//c\r\n{\"c\":\"b\"}", '{"c":"b"}' ),
+                       array( '{"a":"c"}//c', '{"a":"c"}' ),
+                       array( "{\"a-c\"://c\n\"b\"}", '{"a-c":"b"}' ),
+                       array( '{"/*a":"b"}', '{"/*a":"b"}' ),
+                       array( '{"a":"//b"}', '{"a":"//b"}' ),
+                       array( '{"a":"b/*c*/"}', '{"a":"b/*c*/"}' ),
+                       array( "{\"\\\"/*a\":\"b\"}", "{\"\\\"/*a\":\"b\"}" ),
+                       array( '', '' ),
+                       array( '/*c', '' ),
+                       array( '//c', '' ),
+                       array( '"http://example.com"', '"http://example.com"' ),
+                       array( "\0", "\0" ),
+                       array( '"Blåbærsyltetøy"', '"Blåbærsyltetøy"' ),
+               );
+       }
+
+       /**
+        * @covers FormatJson::stripComments
+        * @dataProvider provideStripComments
+        * @param string $json
+        * @param string $expect
+        */
+       public function testStripComments( $json, $expect ) {
+               $this->assertSame( $expect, FormatJson::stripComments( $json ) );
+       }
+
+       public function provideParseStripComments() {
+               return array(
+                       array( '/* blah */true', true ),
+                       array( "// blah \ntrue", true ),
+                       array( '[ "a" , /* blah */ "b" ]', array( 'a', 'b' ) ),
+               );
+       }
+
+       /**
+        * @covers FormatJson::parse
+        * @covers FormatJson::stripComments
+        * @dataProvider provideParseStripComments
+        * @param string $json
+        * @param mixed $expect
+        */
+       public function testParseStripComments( $json, $expect ) {
+               $st = FormatJson::parse( $json, FormatJson::STRIP_COMMENTS );
+               $this->assertType( 'Status', $st );
+               $this->assertTrue( $st->isGood() );
+               $this->assertEquals( $expect, $st->getValue() );
+       }
+
        /**
         * Generate a set of test cases for a particular combination of encoder options.
         *
diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
new file mode 100644 (file)
index 0000000..95da847
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+
+/**
+ * @group ResourceLoader
+ */
+class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+
+               // The return value of the closure shouldn't matter since this test should
+               // never call it
+               SkinFactory::getDefaultInstance()->register(
+                       'fakeskin',
+                       'FakeSkin',
+                       function () {
+                       }
+               );
+       }
+
+       public static function getModules() {
+               $base = array(
+                       'localBasePath' => realpath( dirname( __FILE__ ) ),
+               );
+
+               return array(
+                       'noTemplateModule' => array(),
+
+                       'htmlTemplateModule' => $base + array(
+                               'templates' => array(
+                                       'templates/template.html',
+                                       'templates/template2.html',
+                               )
+                       ),
+
+                       'aliasedHtmlTemplateModule' => $base + array(
+                               'templates' => array(
+                                       'foo.html' => 'templates/template.html',
+                                       'bar.html' => 'templates/template2.html',
+                               )
+                       ),
+
+                       'templateModuleHandlebars' => $base + array(
+                               'templates' => array(
+                                       'templates/template_awesome.handlebars',
+                               ),
+                       ),
+               );
+       }
+
+       public static function providerGetTemplates() {
+               $modules = self::getModules();
+
+               return array(
+                       array(
+                               $modules['noTemplateModule'],
+                               array(),
+                       ),
+                       array(
+                               $modules['templateModuleHandlebars'],
+                               array(
+                                       'templates/template_awesome.handlebars' => "wow\n",
+                               ),
+                       ),
+                       array(
+                               $modules['htmlTemplateModule'],
+                               array(
+                                       'templates/template.html' => "<strong>hello</strong>\n",
+                                       'templates/template2.html' => "<div>goodbye</div>\n",
+                               ),
+                       ),
+                       array(
+                               $modules['aliasedHtmlTemplateModule'],
+                               array(
+                                       'foo.html' => "<strong>hello</strong>\n",
+                                       'bar.html' => "<div>goodbye</div>\n",
+                               ),
+                       ),
+               );
+       }
+
+       public static function providerGetModifiedTime() {
+               $modules = self::getModules();
+
+               return array(
+                       // Check the default value when no templates present in module is 1
+                       array( $modules['noTemplateModule'], 1 ),
+               );
+       }
+
+       /**
+        * @covers ResourceLoaderFileModule::getAllSkinStyleFiles
+        */
+       public function testGetAllSkinStyleFiles() {
+               $baseParams = array(
+                       'scripts' => array(
+                               'foo.js',
+                               'bar.js',
+                       ),
+                       'styles' => array(
+                               'foo.css',
+                               'bar.css' => array( 'media' => 'print' ),
+                               'screen.less' => array( 'media' => 'screen' ),
+                               'screen-query.css' => array( 'media' => 'screen and (min-width: 400px)' ),
+                       ),
+                       'skinStyles' => array(
+                               'default' => 'quux-fallback.less',
+                               'fakeskin' => array(
+                                       'baz-vector.css',
+                                       'quux-vector.less',
+                               ),
+                       ),
+                       'messages' => array(
+                               'hello',
+                               'world',
+                       ),
+               );
+
+               $module = new ResourceLoaderFileModule( $baseParams );
+
+               $this->assertEquals(
+                       array(
+                               'foo.css',
+                               'baz-vector.css',
+                               'quux-vector.less',
+                               'quux-fallback.less',
+                               'bar.css',
+                               'screen.less',
+                               'screen-query.css',
+                       ),
+                       array_map( 'basename', $module->getAllStyleFiles() )
+               );
+       }
+
+       /**
+        * @dataProvider providerGetTemplates
+        * @covers ResourceLoaderFileModule::getTemplates
+        */
+       public function testGetTemplates( $module, $expected ) {
+               $rl = new ResourceLoaderFileModule( $module );
+
+               $this->assertEquals( $rl->getTemplates(), $expected );
+       }
+
+       /**
+        * @dataProvider providerGetModifiedTime
+        * @covers ResourceLoaderFileModule::getModifiedTime
+        */
+       public function testGetModifiedTime( $module, $expected ) {
+               $rl = new ResourceLoaderFileModule( $module );
+               $ts = $rl->getModifiedTime( new ResourceLoaderContext(
+                       new ResourceLoader, new FauxRequest() ) );
+               $this->assertEquals( $ts, $expected );
+       }
+}
index b0edaaf..b25e9b0 100644 (file)
@@ -2,65 +2,6 @@
 
 class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
 
-       protected function setUp() {
-               parent::setUp();
-
-               // The return value of the closure shouldn't matter since this test should
-               // never call it
-               SkinFactory::getDefaultInstance()->register(
-                       'fakeskin',
-                       'FakeSkin',
-                       function () {
-                       }
-               );
-       }
-
-       /**
-        * @covers ResourceLoaderFileModule::getAllSkinStyleFiles
-        */
-       public function testGetAllSkinStyleFiles() {
-               $context = self::getResourceLoaderContext();
-
-               $baseParams = array(
-                       'scripts' => array(
-                               'foo.js',
-                               'bar.js',
-                       ),
-                       'styles' => array(
-                               'foo.css',
-                               'bar.css' => array( 'media' => 'print' ),
-                               'screen.less' => array( 'media' => 'screen' ),
-                               'screen-query.css' => array( 'media' => 'screen and (min-width: 400px)' ),
-                       ),
-                       'skinStyles' => array(
-                               'default' => 'quux-fallback.less',
-                               'fakeskin' => array(
-                                       'baz-vector.css',
-                                       'quux-vector.less',
-                               ),
-                       ),
-                       'messages' => array(
-                               'hello',
-                               'world',
-                       ),
-               );
-
-               $module = new ResourceLoaderFileModule( $baseParams );
-
-               $this->assertEquals(
-                       array(
-                               'foo.css',
-                               'baz-vector.css',
-                               'quux-vector.less',
-                               'quux-fallback.less',
-                               'bar.css',
-                               'screen.less',
-                               'screen-query.css',
-                       ),
-                       array_map( 'basename', $module->getAllStyleFiles() )
-               );
-       }
-
        /**
         * @covers ResourceLoaderModule::getDefinitionSummary
         * @covers ResourceLoaderFileModule::getDefinitionSummary
index 7664d5b..5cdfa77 100644 (file)
@@ -2,8 +2,6 @@
 
 class ResourceLoaderTest extends ResourceLoaderTestCase {
 
-       protected static $resourceLoaderRegisterModulesHook;
-
        protected function setUp() {
                parent::setUp();
 
@@ -30,17 +28,6 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                ) );
        }
 
-       /* Hook Methods */
-
-       /**
-        * ResourceLoaderRegisterModules hook
-        */
-       public static function resourceLoaderRegisterModules( &$resourceLoader ) {
-               self::$resourceLoaderRegisterModulesHook = true;
-
-               return true;
-       }
-
        /* Provider Methods */
        public static function provideValidModules() {
                return array(
@@ -56,9 +43,21 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
         * @covers ResourceLoader::__construct
         */
        public function testCreatingNewResourceLoaderCallsRegistrationHook() {
-               self::$resourceLoaderRegisterModulesHook = false;
+               $resourceLoaderRegisterModulesHook = false;
+
+               $this->setMwGlobals( 'wgHooks', array(
+                       'ResourceLoaderRegisterModules' => array(
+                               function ( &$resourceLoader ) use ( &$resourceLoaderRegisterModulesHook ) {
+                                       $resourceLoaderRegisterModulesHook = true;
+                               }
+                       )
+               ) );
+
                $resourceLoader = new ResourceLoader();
-               $this->assertTrue( self::$resourceLoaderRegisterModulesHook );
+               $this->assertTrue(
+                       $resourceLoaderRegisterModulesHook,
+                       'Hook ResourceLoaderRegisterModules called'
+               );
 
                return $resourceLoader;
        }
@@ -242,7 +241,3 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                }
        }
 }
-
-/* Hooks */
-global $wgHooks;
-$wgHooks['ResourceLoaderRegisterModules'][] = 'ResourceLoaderTest::resourceLoaderRegisterModules';
diff --git a/tests/phpunit/includes/resourceloader/templates/template.html b/tests/phpunit/includes/resourceloader/templates/template.html
new file mode 100644 (file)
index 0000000..1f6a7d2
--- /dev/null
@@ -0,0 +1 @@
+<strong>hello</strong>
diff --git a/tests/phpunit/includes/resourceloader/templates/template2.html b/tests/phpunit/includes/resourceloader/templates/template2.html
new file mode 100644 (file)
index 0000000..a322f67
--- /dev/null
@@ -0,0 +1 @@
+<div>goodbye</div>
diff --git a/tests/phpunit/includes/resourceloader/templates/template_awesome.handlebars b/tests/phpunit/includes/resourceloader/templates/template_awesome.handlebars
new file mode 100644 (file)
index 0000000..5f5c07d
--- /dev/null
@@ -0,0 +1 @@
+wow
index cb12273..fd6911f 100644 (file)
@@ -52,12 +52,23 @@ class SpecialPageFactoryTest extends MediaWikiTestCase {
        }
 
        public function specialPageProvider() {
+               $specialPageTestHelper = new SpecialPageTestHelper();
+
                return array(
                        'class name' => array( 'SpecialAllPages', false ),
                        'closure' => array( function () {
                                return new SpecialAllPages();
                        }, false ),
                        'function' => array( array( $this, 'newSpecialAllPages' ), false ),
+                       'callback string' => array( 'SpecialPageTestHelper::newSpecialAllPages', false ),
+                       'callback with object' => array(
+                               array( $specialPageTestHelper, 'newSpecialAllPages' ),
+                               false
+                       ),
+                       'callback array' => array(
+                               array( 'SpecialPageTestHelper', 'newSpecialAllPages' ),
+                               false
+                       )
                );
        }
 
diff --git a/tests/phpunit/includes/specialpage/SpecialPageTestHelper.php b/tests/phpunit/includes/specialpage/SpecialPageTestHelper.php
new file mode 100644 (file)
index 0000000..37e29dc
--- /dev/null
@@ -0,0 +1,24 @@
+<?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
+ */
+class SpecialPageTestHelper {
+
+       public static function newSpecialAllPages() {
+               return new SpecialAllPages();
+       }
+
+}
index 41d8dee..f23b264 100644 (file)
@@ -9,21 +9,17 @@ class UploadBaseTest extends MediaWikiTestCase {
        protected $upload;
 
        protected function setUp() {
-               global $wgHooks;
                parent::setUp();
 
                $this->upload = new UploadTestHandler;
-               $this->hooks = $wgHooks;
-               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
-                       return false;
-               };
-       }
-
-       protected function tearDown() {
-               global $wgHooks;
-               $wgHooks = $this->hooks;
 
-               parent::tearDown();
+               $this->setMwGlobals( 'wgHooks', array(
+                       'InterwikiLoadPrefix' => array(
+                               function ( $prefix, &$data ) {
+                                       return false;
+                               }
+                       ),
+               ) );
        }
 
        /**
@@ -112,22 +108,22 @@ class UploadBaseTest extends MediaWikiTestCase {
         * This method should be abstracted so we can test different settings.
         */
        public function testMaxUploadSize() {
-               global $wgMaxUploadSize;
-               $savedGlobal = $wgMaxUploadSize; // save global
-               global $wgFileExtensions;
-               $wgFileExtensions[] = 'txt';
-
-               $wgMaxUploadSize = 100;
+               $this->setMwGlobals( array(
+                       'wgMaxUploadSize' => 100,
+                       'wgFileExtensions' => array(
+                               'txt',
+                       ),
+               ) );
 
-               $filename = $this->createFileOfSize( $wgMaxUploadSize );
+               $filename = $this->createFileOfSize( 100 );
                $this->upload->initializePathInfo( basename( $filename ) . '.txt', $filename, 100 );
                $result = $this->upload->verifyUpload();
                unlink( $filename );
 
                $this->assertEquals(
-                       array( 'status' => UploadBase::OK ), $result );
-
-               $wgMaxUploadSize = $savedGlobal; // restore global
+                       array( 'status' => UploadBase::OK ),
+                       $result
+               );
        }
 
 
index 7e37534..73e4c1a 100644 (file)
@@ -6,6 +6,12 @@
 
 class MWCryptHKDFTest extends MediaWikiTestCase {
 
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( 'wgSecretKey', '5bf1945342e67799cb50704a7fa19ac6' );
+       }
+
        /**
         * Test basic usage works
         */
index fc58022..e6a0cf0 100644 (file)
@@ -37,7 +37,7 @@ class LanguageGvTest extends LanguageClassesTestCase {
                        array( 'other', 23 ),
                        array( 'other', 50 ),
                        array( 'few', 60 ),
-                       array( 'other', 80 ),
+                       array( 'few', 80 ),
                        array( 'few', 100 )
                );
        }
index f64fc72..1381afb 100644 (file)
@@ -13,7 +13,7 @@ class LanguageRuTest extends LanguageClassesTestCase {
         * @covers Language::convertPlural
         */
        public function testPlural( $result, $value ) {
-               $forms = array( 'one', 'many', 'other' );
+               $forms = array( 'one', 'few', 'many', 'other' );
                $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
        }
 
@@ -22,9 +22,9 @@ class LanguageRuTest extends LanguageClassesTestCase {
         * @covers Language::convertPlural
         */
        public function testExplicitPlural() {
-               $forms = array( 'one', 'many', 'other', '12=dozen' );
+               $forms = array( 'one', 'few', 'many', 'other', '12=dozen' );
                $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
-               $forms = array( 'one', 'many', '100=hundred', 'other', '12=dozen' );
+               $forms = array( 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' );
                $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
        }
 
@@ -42,10 +42,10 @@ class LanguageRuTest extends LanguageClassesTestCase {
                        array( 'many', 11 ),
                        array( 'one', 91 ),
                        array( 'one', 121 ),
-                       array( 'other', 2 ),
-                       array( 'other', 3 ),
-                       array( 'other', 4 ),
-                       array( 'other', 334 ),
+                       array( 'few', 2 ),
+                       array( 'few', 3 ),
+                       array( 'few', 4 ),
+                       array( 'few', 334 ),
                        array( 'many', 5 ),
                        array( 'many', 15 ),
                        array( 'many', 120 ),
index 7ac51c6..20f5bd7 100644 (file)
@@ -28,7 +28,9 @@ class LanguageTlTest extends LanguageClassesTestCase {
                return array(
                        array( 'one', 0 ),
                        array( 'one', 1 ),
-                       array( 'other', 2 ),
+                       array( 'one', 2 ),
+                       array( 'other', 4 ),
+                       array( 'other', 6 ),
                );
        }
 }
index 8b6aef5..415e11b 100644 (file)
@@ -330,6 +330,12 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
                $this->assertTextNode( "comment", $summary );
                $this->skipWhitespace();
 
+               $this->assertTextNode( "model", $model );
+               $this->skipWhitespace();
+
+               $this->assertTextNode( "format", $format );
+               $this->skipWhitespace();
+
                if ( $this->xml->name == "text" ) {
                        // note: <text> tag may occur here or at the very end.
                        $text_found = true;
@@ -340,12 +346,6 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
 
                $this->assertTextNode( "sha1", $text_sha1 );
 
-               $this->assertTextNode( "model", $model );
-               $this->skipWhitespace();
-
-               $this->assertTextNode( "format", $format );
-               $this->skipWhitespace();
-
                if ( !$text_found ) {
                        $this->assertText( $id, $text_id, $text_bytes, $text );
                }
index a37a97c..e620b08 100644 (file)
@@ -440,10 +440,10 @@ class TextPassDumperTest extends DumpTestCase {
                if ( $fname === null ) {
                        $fname = $this->getNewTempFile();
                }
-               $header = '<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.7/" '
+               $header = '<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" '
                        . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
-                       . 'xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.7/ '
-                       . 'http://www.mediawiki.org/xml/export-0.7.xsd" version="0.7" xml:lang="en">
+                       . 'xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ '
+                       . 'http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="en">
   <siteinfo>
     <sitename>wikisvn</sitename>
     <base>http://localhost/wiki-svn/index.php/Main_Page</base>
@@ -489,10 +489,10 @@ class TextPassDumperTest extends DumpTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP1Summary1</comment>
-      <sha1>0bolhl6ol7i6x0e7yq91gxgaan39j87</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
       <text id="' . $this->textId1_1 . '" bytes="23" />
+      <sha1>0bolhl6ol7i6x0e7yq91gxgaan39j87</sha1>
     </revision>
   </page>
 ';
@@ -507,10 +507,10 @@ class TextPassDumperTest extends DumpTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP2Summary1</comment>
-      <sha1>jprywrymfhysqllua29tj3sc7z39dl2</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
       <text id="' . $this->textId2_1 . '" bytes="23" />
+      <sha1>jprywrymfhysqllua29tj3sc7z39dl2</sha1>
     </revision>
     <revision>
       <id>' . ( $this->revId2_2 + $i * self::$numOfRevs ) . '</id>
@@ -520,10 +520,10 @@ class TextPassDumperTest extends DumpTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP2Summary2</comment>
-      <sha1>b7vj5ks32po5m1z1t1br4o7scdwwy95</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
       <text id="' . $this->textId2_2 . '" bytes="23" />
+      <sha1>b7vj5ks32po5m1z1t1br4o7scdwwy95</sha1>
     </revision>
     <revision>
       <id>' . ( $this->revId2_3 + $i * self::$numOfRevs ) . '</id>
@@ -533,10 +533,10 @@ class TextPassDumperTest extends DumpTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP2Summary3</comment>
-      <sha1>jfunqmh1ssfb8rs43r19w98k28gg56r</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
       <text id="' . $this->textId2_3 . '" bytes="23" />
+      <sha1>jfunqmh1ssfb8rs43r19w98k28gg56r</sha1>
     </revision>
     <revision>
       <id>' . ( $this->revId2_4 + $i * self::$numOfRevs ) . '</id>
@@ -546,10 +546,10 @@ class TextPassDumperTest extends DumpTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP2Summary4 extra</comment>
-      <sha1>6o1ciaxa6pybnqprmungwofc4lv00wv</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
       <text id="' . $this->textId2_4 . '" bytes="44" />
+      <sha1>6o1ciaxa6pybnqprmungwofc4lv00wv</sha1>
     </revision>
   </page>
 ';
@@ -566,10 +566,10 @@ class TextPassDumperTest extends DumpTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>Talk BackupDumperTestP1 Summary1</comment>
-      <sha1>nktofwzd0tl192k3zfepmlzxoax1lpe</sha1>
       <model>wikitext</model>
       <format>text/x-wiki</format>
       <text id="' . $this->textId4_1 . '" bytes="35" />
+      <sha1>nktofwzd0tl192k3zfepmlzxoax1lpe</sha1>
     </revision>
   </page>
 ';
index 2bdc9c9..2142061 100644 (file)
@@ -2,27 +2,22 @@
 
 class AutoLoaderTest extends MediaWikiTestCase {
        protected function setUp() {
-               global $wgAutoloadLocalClasses, $wgAutoloadClasses;
-
                parent::setUp();
 
                // Fancy dance to trigger a rebuild of AutoLoader::$autoloadLocalClassesLower
-               $this->testLocalClasses = array(
-                       'TestAutoloadedLocalClass' => __DIR__ . '/../data/autoloader/TestAutoloadedLocalClass.php',
-                       'TestAutoloadedCamlClass' => __DIR__ . '/../data/autoloader/TestAutoloadedCamlClass.php',
+               $this->mergeMwGlobalArrayValue( 'wgAutoloadLocalClasses', array(
+                       'TestAutoloadedLocalClass' =>
+                               __DIR__ . '/../data/autoloader/TestAutoloadedLocalClass.php',
+                       'TestAutoloadedCamlClass' =>
+                               __DIR__ . '/../data/autoloader/TestAutoloadedCamlClass.php',
                        'TestAutoloadedSerializedClass' =>
                                __DIR__ . '/../data/autoloader/TestAutoloadedSerializedClass.php',
-               );
-               $this->setMwGlobals(
-                       'wgAutoloadLocalClasses',
-                       $this->testLocalClasses + $wgAutoloadLocalClasses
-               );
+               ) );
                AutoLoader::resetAutoloadLocalClassesLower();
 
-               $this->testExtensionClasses = array(
+               $this->mergeMwGlobalArrayValue( 'wgAutoloadClasses', array(
                        'TestAutoloadedClass' => __DIR__ . '/../data/autoloader/TestAutoloadedClass.php',
-               );
-               $this->setMwGlobals( 'wgAutoloadClasses', $this->testExtensionClasses + $wgAutoloadClasses );
+               ) );
        }
 
        /**
index 4d24d9d..116065f 100644 (file)
@@ -8,12 +8,25 @@
 class ExtensionsTestSuite extends PHPUnit_Framework_TestSuite {
        public function __construct() {
                parent::__construct();
-               $files = array();
-               wfRunHooks( 'UnitTestsList', array( &$files ) );
-               foreach ( $files as $file ) {
-                       $this->addTestFile( $file );
+               $paths = array();
+               // Extensions can return a list of files or directories
+               wfRunHooks( 'UnitTestsList', array( &$paths ) );
+               foreach ( $paths as $path ) {
+                       if ( is_dir( $path ) ) {
+                               // If the path is a directory, search for test cases.
+                               // @since 1.24
+                               $suffixes = array(
+                                       'Test.php',
+                               );
+                               $fileIterator = new File_Iterator_Facade();
+                               $matchingFiles = $fileIterator->getFilesAsArray( $path, $suffixes );
+                               $this->addTestFiles( $matchingFiles );
+                       } else {
+                               // Add a single test case or suite class
+                               $this->addTestFile( $path );
+                       }
                }
-               if ( !count( $files ) ) {
+               if ( !count( $paths ) ) {
                        $this->addTest( new DummyExtensionsTest( 'testNothing' ) );
                }
        }
index 34007ed..a6fbfac 100644 (file)
@@ -66,6 +66,7 @@ return array(
                        'tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js',
+                       'tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.toc.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js',
@@ -106,6 +107,7 @@ return array(
                        'mediawiki.toc',
                        'mediawiki.Uri',
                        'mediawiki.user',
+                       'mediawiki.template',
                        'mediawiki.util',
                        'mediawiki.special.recentchanges',
                        'mediawiki.language',
index 0b7e87e..ca3f418 100644 (file)
@@ -1,13 +1,14 @@
 ( function ( $ ) {
        QUnit.module( 'jquery.getAttrs', QUnit.newMwEnvironment() );
 
-       QUnit.test( 'Check', 1, function ( assert ) {
+       QUnit.test( 'getAttrs()', 1, function ( assert ) {
                var attrs = {
                                foo: 'bar',
-                               'class': 'lorem'
+                               'class': 'lorem',
+                               'data-foo': 'data value'
                        },
                        $el = $( '<div>' ).attr( attrs );
 
-               assert.deepEqual( $el.getAttrs(), attrs, 'getAttrs() return object should match the attributes set, no more, no less' );
+               assert.propEqual( $el.getAttrs(), attrs, 'keys and values match' );
        } );
 }( jQuery ) );
index 1d5656e..b89526f 100644 (file)
 
                this.server.respond( function ( request ) {
                        if ( window.FormData ) {
-                               assert.ok( !request.url.match( /action=/), 'Request has no query string' );
+                               assert.ok( !request.url.match( /action=/ ), 'Request has no query string' );
                                assert.ok( request.requestBody instanceof FormData, 'Request uses FormData body' );
                        } else {
-                               assert.ok( !request.url.match( /action=test/), 'Request has no query string' );
+                               assert.ok( !request.url.match( /action=test/ ), 'Request has no query string' );
                                assert.equal( request.requestBody, 'action=test&format=json', 'Request uses query string body' );
                        }
                        request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
                } );
        } );
 
+       QUnit.test( 'Converting arrays to pipe-separated', function ( assert ) {
+               QUnit.expect( 1 );
+
+               var api = new mw.Api();
+               api.get( { test: [ 'foo', 'bar', 'baz' ] } );
+
+               this.server.respond( function ( request ) {
+                       assert.ok( request.url.match( /test=foo%7Cbar%7Cbaz/ ), 'Pipe-separated value was submitted' );
+                       request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
+               } );
+       } );
+
        QUnit.test( 'getToken( pre-populated )', function ( assert ) {
                QUnit.expect( 2 );
 
index 5ece31b..7ab309a 100644 (file)
                        assert.equal( title.getRelativeText( thisCase.relativeTo ), thisCase.expectedResult );
                }
        } );
+
+       QUnit.test( 'newFromUserInput', 8, function ( assert ) {
+               var title, i, thisCase, prefix,
+                       cases = [
+                               {
+                                       title: 'DCS0001557854455.JPG',
+                                       defaultNamespace: 0,
+                                       options: {
+                                               fileExtension: 'PNG'
+                                       },
+                                       expected: 'DCS0001557854455.JPG',
+                                       description: 'Title in normal namespace without anything invalid but with "file extension"'
+                               },
+                               {
+                                       title: 'MediaWiki:Msg-awesome',
+                                       defaultNamespace: undefined,
+                                       expected: 'MediaWiki:Msg-awesome',
+                                       description: 'Full title (page in MediaWiki namespace) supplied as string'
+                               },
+                               {
+                                       title: 'The/Mw/Sound.flac',
+                                       defaultNamespace: -2,
+                                       expected: 'Media:The-Mw-Sound.flac',
+                                       description: 'Page in Media-namespace without explicit options'
+                               },
+                               {
+                                       title: 'File:The/Mw/Sound.kml',
+                                       defaultNamespace: 6,
+                                       options: {
+                                               forUploading: false
+                                       },
+                                       expected: 'File:The/Mw/Sound.kml',
+                                       description: 'Page in File-namespace without explicit options'
+                               }
+                       ];
+
+               for ( i = 0; i < cases.length; i++ ) {
+                       thisCase = cases[i];
+                       title = mw.Title.newFromUserInput( thisCase.title, thisCase.defaultNamespace, thisCase.options );
+
+                       if ( thisCase.expected !== undefined ) {
+                               prefix = '[' + thisCase.description + '] ';
+
+                               assert.notStrictEqual( title, null, prefix + 'Parses successfully' );
+                               assert.equal( title.toText(), thisCase.expected, prefix + 'Title as expected' );
+                       } else {
+                               assert.strictEqual( title, null, thisCase.description + ', should not produce an mw.Title object' );
+                       }
+               }
+       } );
+
+       QUnit.test( 'newFromFileName', 62, function ( assert ) {
+               var title, i, thisCase, prefix,
+                       cases = [
+                               {
+                                       fileName: 'DCS0001557854455.JPG',
+                                       typeOfName: 'Standard camera output',
+                                       nameText: 'DCS0001557854455',
+                                       prefixedText: 'File:DCS0001557854455.JPG',
+                                       extensionDesired: 'jpg'
+                               },
+                               {
+                                       fileName: 'File:Sample.png',
+                                       typeOfName: 'Carrying namespace',
+                                       nameText: 'File-Sample',
+                                       prefixedText: 'File:File-Sample.png'
+                               },
+                               {
+                                       fileName: 'Treppe 2222 Test upload.jpg',
+                                       typeOfName: 'File name with spaces in it and lower case file extension',
+                                       nameText: 'Treppe 2222 Test upload',
+                                       prefixedText: 'File:Treppe 2222 Test upload.jpg',
+                                       extensionDesired: 'JPG'
+                               },
+                               {
+                                       fileName: 'I contain a \ttab.jpg',
+                                       typeOfName: 'Name containing a tab character',
+                                       nameText: 'I contain a tab',
+                                       prefixedText: 'File:I contain a tab.jpg'
+                               },
+                               {
+                                       fileName: 'I_contain multiple__ ___ _underscores.jpg',
+                                       typeOfName: 'Name containing multiple underscores',
+                                       nameText: 'I contain multiple underscores',
+                                       prefixedText: 'File:I contain multiple underscores.jpg'
+                               },
+                               {
+                                       fileName: 'I like ~~~~~~~~es.jpg',
+                                       typeOfName: 'Name containing more than three consecutive tilde characters',
+                                       nameText: 'I like ~~es',
+                                       prefixedText: 'File:I like ~~es.jpg'
+                               },
+                               {
+                                       fileName: 'BI\u200EDI.jpg',
+                                       typeOfName: 'Name containing BIDI overrides',
+                                       nameText: 'BIDI',
+                                       prefixedText: 'File:BIDI.jpg'
+                               },
+                               {
+                                       fileName: '100%ab progress.jpg',
+                                       typeOfName: 'File name with URL encoding',
+                                       nameText: '100% ab progress',
+                                       prefixedText: 'File:100% ab progress.jpg'
+                               },
+                               {
+                                       fileName: '<([>]):/#.jpg',
+                                       typeOfName: 'File name with characters not permitted in titles that are replaced',
+                                       nameText: '((()))---',
+                                       prefixedText: 'File:((()))---.jpg'
+                               },
+                               {
+                                       fileName: 'spaces\u0009\u2000\u200A\u200Bx.djvu',
+                                       typeOfName: 'File name with different kind of spaces',
+                                       nameText: 'Spaces \u200Bx',
+                                       prefixedText: 'File:Spaces \u200Bx.djvu'
+                               },
+                               {
+                                       fileName: 'dot.dot.dot.dot.dotdot',
+                                       typeOfName: 'File name with a lot of dots',
+                                       nameText: 'Dot.dot.dot.dot',
+                                       prefixedText: 'File:Dot.dot.dot.dot.dotdot'
+                               },
+                               {
+                                       fileName: 'dot. dot ._dot',
+                                       typeOfName: 'File name with multiple dots and spaces',
+                                       nameText: 'Dot. dot',
+                                       prefixedText: 'File:Dot. dot. dot'
+                               },
+                               {
+                                       fileName: 'dot. dot ._dot',
+                                       typeOfName: 'File name with different file extension desired',
+                                       nameText: 'Dot. dot . dot',
+                                       prefixedText: 'File:Dot. dot . dot.png',
+                                       extensionDesired: 'png'
+                               },
+                               {
+                                       fileName: 'fileWOExt',
+                                       typeOfName: 'File W/O extension with extension desired',
+                                       nameText: 'FileWOExt',
+                                       prefixedText: 'File:FileWOExt.png',
+                                       extensionDesired: 'png'
+                               },
+                               {
+                                       fileName: '𠜎𠜱𠝹𠱓𠱸𠲖𠳏𠳕𠴕𠵼𠵿𠸎𠸏𠹷𠺝𠺢𠻗𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵𢫕𢭃𢯊𢱑𢱕𢳂𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵𢫕𢭃𢯊𢱑𢱕𢳂.png',
+                                       typeOfName: 'File name longer than 240 bytes',
+                                       nameText: '𠜎𠜱𠝹𠱓𠱸𠲖𠳏𠳕𠴕𠵼𠵿𠸎𠸏𠹷𠺝𠺢𠻗𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵𢫕𢭃𢯊𢱑𢱕𢳂𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵',
+                                       prefixedText: 'File:𠜎𠜱𠝹𠱓𠱸𠲖𠳏𠳕𠴕𠵼𠵿𠸎𠸏𠹷𠺝𠺢𠻗𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵𢫕𢭃𢯊𢱑𢱕𢳂𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵.png'
+                               },
+                               {
+                                       fileName: '',
+                                       typeOfName: 'Empty string'
+                               },
+                               {
+                                       fileName: 'foo',
+                                       typeOfName: 'String with only alphabet characters'
+                               }
+                       ];
+
+               for ( i = 0; i < cases.length; i++ ) {
+                       thisCase = cases[i];
+                       title = mw.Title.newFromFileName( thisCase.fileName, thisCase.extensionDesired );
+
+                       if ( thisCase.nameText !== undefined ) {
+                               prefix = '[' + thisCase.typeOfName + '] ';
+
+                               assert.notStrictEqual( title, null, prefix + 'Parses successfully' );
+                               assert.equal( title.getNameText(), thisCase.nameText, prefix + 'Filename matches original' );
+                               assert.equal( title.getPrefixedText(), thisCase.prefixedText, prefix + 'File page title matches original' );
+                               assert.equal( title.getNamespaceId(), 6, prefix + 'Namespace ID matches File namespace' );
+                       } else {
+                               assert.strictEqual( title, null, thisCase.typeOfName + ', should not produce an mw.Title object' );
+                       }
+               }
+       } );
+
 }( mediaWiki, jQuery ) );
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js
new file mode 100644 (file)
index 0000000..86fd828
--- /dev/null
@@ -0,0 +1,63 @@
+( function ( mw ) {
+
+       QUnit.module( 'mediawiki.template', {
+               setup: function () {
+                       var abcCompiler = {
+                               compile: function () {
+                                       return 'abc default compiler';
+                               }
+                       };
+
+                       // Register some template compiler languages
+                       mw.template.registerCompiler( 'abc', abcCompiler );
+                       mw.template.registerCompiler( 'xyz', {
+                               compile: function () {
+                                       return 'xyz compiler';
+                               }
+                       } );
+
+                       // Stub register some templates
+                       this.sandbox.stub( mw.templates, 'get' ).returns( {
+                               'test_templates_foo.xyz': 'goodbye',
+                               'test_templates_foo.abc': 'thankyou'
+                       } );
+               }
+       } );
+
+       QUnit.test( 'add', 1, function ( assert ) {
+               assert.throws(
+                       function () {
+                               mw.template.add( 'module', 'test_templates_foo', 'hello' );
+                       },
+                       'When no prefix throw exception'
+               );
+       } );
+
+       QUnit.test( 'compile', 1, function ( assert ) {
+               assert.throws(
+                       function () {
+                               mw.template.compile( '{{foo}}', 'rainbow' );
+                       },
+                       'Unknown compiler names throw exceptions'
+               );
+       } );
+
+       QUnit.test( 'get', 4, function ( assert ) {
+               assert.strictEqual( mw.template.get( 'test.mediawiki.template', 'test_templates_foo.xyz' ), 'xyz compiler' );
+               assert.strictEqual( mw.template.get( 'test.mediawiki.template', 'test_templates_foo.abc' ), 'abc default compiler' );
+               assert.throws(
+                       function () {
+                               mw.template.get( 'this.should.not.exist', 'hello' );
+                       },
+                       'When bad module name given throw error.'
+               );
+
+               assert.throws(
+                       function () {
+                               mw.template.get( 'mediawiki.template', 'hello' );
+                       },
+                       'The template hello should not exist in the mediawiki.templates module and should throw an exception.'
+               );
+       } );
+
+}( mediaWiki ) );
index 62dccbf..b5fc800 100644 (file)
@@ -558,7 +558,7 @@ class TestFileIterator implements Iterator {
                                                $line = trim( $line );
 
                                                if ( $line ) {
-                                                       $delayedParserTest->requireTransparentHook( $line );
+                                                       $this->delayedParserTest->requireTransparentHook( $line );
                                                }
                                        }